RENDU FINAL

master
Leo TUAILLON 2 years ago
commit fb33961007

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Binary file not shown.

@ -0,0 +1,33 @@
# Présentation entreprise : Skiklö
```Elèves``` : MARTINS DA SILVA GOMES Rui / CALATAYUD Yvan / TUAILLON Léo / HERSAN Mathéo
Groupe : 10
Le directeur de ```Skiklö```, qui désire informatiser la gestion de son établissement, nous a chargé de modéliser le système d'information.
L'entreprise ```Skiklö``` est une entreprise de location d'équipement de sports d'hiver. Elle est implantée aux stations des Deux Alpes, Courchevel et Villard de Lans.
Chaque client est identifié par un numéro unique à x chiffres qui lui est attribué lorsqu'il réserve ou loue un produit.
A l'arrivée d'un nouveau client nous enregistrons ses informations personnelles afin de le retrouver en cas de vol ou de casse.
On connaît son nom, prénom, date de naissance, adresse, ville, pays, Code Postal, Téléphone, son email et aussi son type c'est à dire si c'est un particulier ou une entreprise.
Chaque type de produit est identifié par un numéro unique, un nom, une marque, une taille et un prix par jour. Les équipements de sports d'hiver que nous louons dans nos boutiques respectives sont classés dans différentes catégories identifié un numéro unique et un nom.(ski de piste, ski de fond, luge, protections...).
Tous les produits que nous recevons sont enregistrés afin que nous puissions connaître la quantité, la date d'approvisionnement et les informations concernant le fournisseur tel que son nom, son adresse, ses informations de contact. Les produits sont ensuite stockés dans nos magasins, ceux-ci sont repartis dans différentes villes de France, chaque magasins est doté d'un nom, d'une adresse et d'un numéro de téléphone pour pouvoir contacter le gérant en cas, par exemple, de rupture de stocks.
## MCD et MLD de Skiklö
MCD :
![image](https://codefirst.iut.uca.fr/git/matheo.hersan/Tout_et_rien/raw/branch/master/SAE1.04/MCD-MLD-FINAL/MCD.png)
Nous avons décidé de mettre l'attribut quantité dans la relation stocker et à la base nous pensions rajouter un attribut quantité totale dans la table Produit. Mais dans le cadre de notre entreprise la quantité totale ne sera utile que dans le cadre d'un inventaire, ce qui nous arrive qu'une seule fois par an. Nous avons donc pas jugé utile de rajouter un élément dans la table produit puisque en faisant une requête qui additionne la quantité de chacun de nos magasins pour un produit donné nous aurions le même résultat. Certe la requête est plus complexe mais le magasin ne la fera pas souvent (une fois par ans), donc celà permet de ne pas surcharger inutilement la table Produits de données.
Au départ nous avions pensé lister chaque produit dans la table produit avec un attribut "Statut" pour chaque produit qui contiendrait la valeur char "Réservé, Louée ou bien disponible". Nous nous sommes assez vite rendu compte que ce n'était pas très optimisé car si nous avons 150 fois la même paire de ski par exemple, cela impliquerait 150 lignes identiques dans la table produit à l'exception de l'idProduit qui changerait. Nous avons donc décidé de lister dans la table produit une référence de produit par ligne, puis de mettre une relation 'stocker' entre les produits et les magasins afin de savoir combien de produit d'un type donné est stocké dans quel magasin. Cela permet que, lorsqu'on éffectue une réservation pour un client, on peut vérifier pour une date donnée combien de produits sont disponible ou non.
MLD :
![image](https://codefirst.iut.uca.fr/git/matheo.hersan/Tout_et_rien/raw/branch/master/SAE1.04/MCD-MLD-FINAL/MLD.png)
##

@ -0,0 +1,10 @@
idfournisseur,idproduit,quantite,date_approvisionement
F0003,P0008,500,01/10/15
F0003,P0001,700,20/10/15
F0002,P0005,200,09/11/16
F0006,P0006,400,12/11/16
F0008,P0003,200,30/11/16
F0004,P0001,500,20/07/17
F0002,P0007,350,05/08/18
F0001,P0002,500,06/09/19
F0005,P0005,800,27/08/20
1 idfournisseur idproduit quantite date_approvisionement
2 F0003 P0008 500 01/10/15
3 F0003 P0001 700 20/10/15
4 F0002 P0005 200 09/11/16
5 F0006 P0006 400 12/11/16
6 F0008 P0003 200 30/11/16
7 F0004 P0001 500 20/07/17
8 F0002 P0007 350 05/08/18
9 F0001 P0002 500 06/09/19
10 F0005 P0005 800 27/08/20

@ -0,0 +1,9 @@
idCategorie,nom
CA001,ski de fond
CA002,ski de piste
CA003,casque
CA004,batons ski
CA005,batons raquettes
CA006,raquettes
CA007,luge
CA008,snowboard
1 idCategorie nom
2 CA001 ski de fond
3 CA002 ski de piste
4 CA003 casque
5 CA004 batons ski
6 CA005 batons raquettes
7 CA006 raquettes
8 CA007 luge
9 CA008 snowboard

@ -0,0 +1,51 @@
idClient,nom,prenom,date_naissance,adresse,ville,pays,code_postal,telephone,email,type
C0001,Martin,Gabriel,13/05/1999,rue du cimetiere,Paris,FR,75001,0654512352,thisisatest@gmail.com,particulier
C0002,Bernard,Leo,11/08/1995,avenue de la paix,Nantes,FR,44000,0751562652,thisisatest@gmail.com,entreprise
C0003,Thomas,Raphael,06/05/2001,Rue Jule Ferry,Vichy,FR,3200,0655132124,thisisatest@gmail.com,ecole
C0004,Dubois,Louis,08/05/2001,Avenue Marechal Foch,Clermont-Ferrand,FR,63000,0615651513,thisisatest@gmail.com,particulier
C0005,Robert,Mael,09/05/2001,rue du cimetiere,Paris,FR,75001,0654512352,thisisatest@gmail.com,particulier
C0006,Richard,Jules,10/05/2001,avenue de la paix,Nantes,FR,44000,0751562652,thisisatest@gmail.com,entreprise
C0007,Durand,Noah,11/05/2001,Rue Jule Ferry,Vichy,FR,3200,0655132124,thisisatest@gmail.com,ecole
C0008,Dubois,Emma,12/05/1951,Avenue Marechal Foch,Clermont-Ferrand,FR,63000,0615651513,thisisatest@gmail.com,particulier
C0009,Petit,Adam,13/05/1991,rue du cimetiere,Paris,FR,75001,0654512352,thisisatest@gmail.com,particulier
C0010,Morel,Lucas,14/05/2002,avenue de la paix,Nantes,FR,44000,0751562652,thisisatest@gmail.com,entreprise
C0011,Bertrand,Ambre,15/05/2006,Rue Jule Ferry,Vichy,FR,3200,0655132124,thisisatest@gmail.com,ecole
C0012,Dupont,Hugo,16/05/2001,Avenue Marechal Foch,Clermont-Ferrand,FR,63000,0615651513,thisisatest@gmail.com,particulier
C0013,Girard,Alice,17/05/2001,rue du cimetiere,Paris,FR,75001,0654512352,thisisatest@gmail.com,particulier
C0014,Gerard,Gabin,18/05/2001,avenue de la paix,Nantes,FR,44000,0751562652,thisisatest@gmail.com,entreprise
C0015,Lambert,Rose,19/05/2001,Rue Jule Ferry,Vichy,FR,3200,0655132124,thisisatest@gmail.com,ecole
C0016,Fontaine,Liam,20/05/2001,Avenue Marechal Foch,Clermont-Ferrand,FR,63000,0615651513,thisisatest@gmail.com,particulier
C0017,Rousseau,Sacha,21/05/2001,rue du cimetiere,Paris,FR,75001,0654512352,thisisatest@gmail.com,particulier
C0018,Vincent,Mia,22/05/2001,avenue de la paix,Nantes,FR,44000,0751562652,thisisatest@gmail.com,entreprise
C0019,Muller,Eden,23/05/2001,Rue Jule Ferry,Vichy,FR,3200,0655132124,thisisatest@gmail.com,ecole
C0020,Lefevre,Anna,24/05/2001,Avenue Marechal Foch,Clermont-Ferrand,FR,63000,0615651513,thisisatest@gmail.com,particulier
C0021,Faure,Alba,25/05/1987,rue du cimetiere,Paris,FR,75001,0654512352,thisisatest@gmail.com,particulier
C0022,Andre,Alice,26/05/1957,avenue de la paix,Nantes,FR,44000,0751562652,thisisatest@gmail.com,entreprise
C0023,Mercier,Romy,27/05/1937,Rue Jule Ferry,Vichy,FR,3200,0655132124,thisisatest@gmail.com,ecole
C0024,Blanc,Aron,28/05/1984,Avenue Marechal Foch,Clermont-Ferrand,FR,63000,0615651513,thisisatest@gmail.com,particulier
C0025,Guerin,Noe,29/05/1987,rue du cimetiere,Paris,FR,75001,0654512352,thisisatest@gmail.com,particulier
C0026,Boyer,Paul,30/05/1987,avenue de la paix,Nantes,FR,44000,0751562652,thisisatest@gmail.com,entreprise
C0027,Gauthier,Nathan,31/05/2001,Rue Jule Ferry,Vichy,FR,3200,0655132124,thisisatest@gmail.com,ecole
C0028,Masson,Nael,01/06/1998,Avenue Marechal Foch,Clermont-Ferrand,FR,63000,0615651513,thisisatest@gmail.com,particulier
C0029,Marchand,Chloe,02/06/1999,rue du cimetiere,Paris,FR,75001,0654512352,thisisatest@gmail.com,particulier
C0030,Duval,Julia,03/06/1954,avenue de la paix,Nantes,FR,44000,0751562652,thisisatest@gmail.com,entreprise
C0031,Meunier,Mohamed,04/06/1927,Rue Jule Ferry,Vichy,FR,3200,0655132124,thisisatest@gmail.com,ecole
C0032,Martinez,Iris,05/06/1985,Avenue Marechal Foch,Clermont-Ferrand,FR,63000,0615651513,thisisatest@gmail.com,particulier
C0033,Gerard,Theo,06/06/1922,rue du cimetiere,Paris,FR,75001,0654512352,thisisatest@gmail.com,particulier
C0034,Leroux,Malo,07/06/1979,avenue de la paix,Nantes,FR,44000,0751562652,thisisatest@gmail.com,entreprise
C0035,Roche,Zoe,08/06/1981,Rue Jule Ferry,Vichy,FR,3200,0655132124,thisisatest@gmail.com,ecole
C0036,Renard,Eva,09/06/1954,Avenue Marechal Foch,Clermont-Ferrand,FR,63000,0615651513,thisisatest@gmail.com,particulier
C0037,Caron,Nina,10/06/1992,rue du cimetiere,Paris,FR,75001,0654512352,thisisatest@gmail.com,particulier
C0038,Colin,Ivana,11/06/1993,avenue de la paix,Nantes,FR,44000,0751562652,thisisatest@gmail.com,entreprise
C0039,Rodriguez,Juliette,12/06/2001,Rue Jule Ferry,Vichy,FR,3200,0655132124,thisisatest@gmail.com,ecole
C0040,Chevallier,Marius,13/06/1987,Avenue Marechal Foch,Clermont-Ferrand,FR,63000,0615651513,thisisatest@gmail.com,particulier
C0041,Chauvin,Nino,14/06/1920,rue du cimetiere,Paris,FR,75001,0654512352,thisisatest@gmail.com,particulier
C0042,Da Silva,Marceau,15/06/1973,avenue de la paix,Nantes,FR,44000,0751562652,thisisatest@gmail.com,entreprise
C0043,Bouchet,Mathis,16/06/1951,Rue Jule Ferry,Vichy,FR,3200,0655132124,thisisatest@gmail.com,ecole
C0044,Gaie,Victor,17/06/1972,Avenue Marechal Foch,Clermont-Ferrand,FR,63000,0615651513,thisisatest@gmail.com,particulier
C0045,Gilbert,Ayden,18/06/2006,rue du cimetiere,Paris,FR,75001,0654512352,thisisatest@gmail.com,particulier
C0046,Pasquier,Leonie,19/06/2011,avenue de la paix,Nantes,FR,44000,0751562652,thisisatest@gmail.com,entreprise
C0047,Poulain,Jeanne,20/06/1980,Rue Jule Ferry,Vichy,FR,3200,0655132124,thisisatest@gmail.com,ecole
C0048,Tessier,Charlie,21/06/1991,Avenue Marechal Foch,Clermont-Ferrand,FR,63000,0615651513,thisisatest@gmail.com,particulier
C0049,Lamy,Milo,22/06/1997,rue du cimetiere,Paris,FR,75001,0654512352,thisisatest@gmail.com,particulier
C0050,Carrier,Victor,23/06/1998,avenue de la paix,Nantes,FR,44000,0751562652,thisisatest@gmail.com,entreprise
1 idClient nom prenom date_naissance adresse ville pays code_postal telephone email type
2 C0001 Martin Gabriel 13/05/1999 rue du cimetiere Paris FR 75001 0654512352 thisisatest@gmail.com particulier
3 C0002 Bernard Leo 11/08/1995 avenue de la paix Nantes FR 44000 0751562652 thisisatest@gmail.com entreprise
4 C0003 Thomas Raphael 06/05/2001 Rue Jule Ferry Vichy FR 3200 0655132124 thisisatest@gmail.com ecole
5 C0004 Dubois Louis 08/05/2001 Avenue Marechal Foch Clermont-Ferrand FR 63000 0615651513 thisisatest@gmail.com particulier
6 C0005 Robert Mael 09/05/2001 rue du cimetiere Paris FR 75001 0654512352 thisisatest@gmail.com particulier
7 C0006 Richard Jules 10/05/2001 avenue de la paix Nantes FR 44000 0751562652 thisisatest@gmail.com entreprise
8 C0007 Durand Noah 11/05/2001 Rue Jule Ferry Vichy FR 3200 0655132124 thisisatest@gmail.com ecole
9 C0008 Dubois Emma 12/05/1951 Avenue Marechal Foch Clermont-Ferrand FR 63000 0615651513 thisisatest@gmail.com particulier
10 C0009 Petit Adam 13/05/1991 rue du cimetiere Paris FR 75001 0654512352 thisisatest@gmail.com particulier
11 C0010 Morel Lucas 14/05/2002 avenue de la paix Nantes FR 44000 0751562652 thisisatest@gmail.com entreprise
12 C0011 Bertrand Ambre 15/05/2006 Rue Jule Ferry Vichy FR 3200 0655132124 thisisatest@gmail.com ecole
13 C0012 Dupont Hugo 16/05/2001 Avenue Marechal Foch Clermont-Ferrand FR 63000 0615651513 thisisatest@gmail.com particulier
14 C0013 Girard Alice 17/05/2001 rue du cimetiere Paris FR 75001 0654512352 thisisatest@gmail.com particulier
15 C0014 Gerard Gabin 18/05/2001 avenue de la paix Nantes FR 44000 0751562652 thisisatest@gmail.com entreprise
16 C0015 Lambert Rose 19/05/2001 Rue Jule Ferry Vichy FR 3200 0655132124 thisisatest@gmail.com ecole
17 C0016 Fontaine Liam 20/05/2001 Avenue Marechal Foch Clermont-Ferrand FR 63000 0615651513 thisisatest@gmail.com particulier
18 C0017 Rousseau Sacha 21/05/2001 rue du cimetiere Paris FR 75001 0654512352 thisisatest@gmail.com particulier
19 C0018 Vincent Mia 22/05/2001 avenue de la paix Nantes FR 44000 0751562652 thisisatest@gmail.com entreprise
20 C0019 Muller Eden 23/05/2001 Rue Jule Ferry Vichy FR 3200 0655132124 thisisatest@gmail.com ecole
21 C0020 Lefevre Anna 24/05/2001 Avenue Marechal Foch Clermont-Ferrand FR 63000 0615651513 thisisatest@gmail.com particulier
22 C0021 Faure Alba 25/05/1987 rue du cimetiere Paris FR 75001 0654512352 thisisatest@gmail.com particulier
23 C0022 Andre Alice 26/05/1957 avenue de la paix Nantes FR 44000 0751562652 thisisatest@gmail.com entreprise
24 C0023 Mercier Romy 27/05/1937 Rue Jule Ferry Vichy FR 3200 0655132124 thisisatest@gmail.com ecole
25 C0024 Blanc Aron 28/05/1984 Avenue Marechal Foch Clermont-Ferrand FR 63000 0615651513 thisisatest@gmail.com particulier
26 C0025 Guerin Noe 29/05/1987 rue du cimetiere Paris FR 75001 0654512352 thisisatest@gmail.com particulier
27 C0026 Boyer Paul 30/05/1987 avenue de la paix Nantes FR 44000 0751562652 thisisatest@gmail.com entreprise
28 C0027 Gauthier Nathan 31/05/2001 Rue Jule Ferry Vichy FR 3200 0655132124 thisisatest@gmail.com ecole
29 C0028 Masson Nael 01/06/1998 Avenue Marechal Foch Clermont-Ferrand FR 63000 0615651513 thisisatest@gmail.com particulier
30 C0029 Marchand Chloe 02/06/1999 rue du cimetiere Paris FR 75001 0654512352 thisisatest@gmail.com particulier
31 C0030 Duval Julia 03/06/1954 avenue de la paix Nantes FR 44000 0751562652 thisisatest@gmail.com entreprise
32 C0031 Meunier Mohamed 04/06/1927 Rue Jule Ferry Vichy FR 3200 0655132124 thisisatest@gmail.com ecole
33 C0032 Martinez Iris 05/06/1985 Avenue Marechal Foch Clermont-Ferrand FR 63000 0615651513 thisisatest@gmail.com particulier
34 C0033 Gerard Theo 06/06/1922 rue du cimetiere Paris FR 75001 0654512352 thisisatest@gmail.com particulier
35 C0034 Leroux Malo 07/06/1979 avenue de la paix Nantes FR 44000 0751562652 thisisatest@gmail.com entreprise
36 C0035 Roche Zoe 08/06/1981 Rue Jule Ferry Vichy FR 3200 0655132124 thisisatest@gmail.com ecole
37 C0036 Renard Eva 09/06/1954 Avenue Marechal Foch Clermont-Ferrand FR 63000 0615651513 thisisatest@gmail.com particulier
38 C0037 Caron Nina 10/06/1992 rue du cimetiere Paris FR 75001 0654512352 thisisatest@gmail.com particulier
39 C0038 Colin Ivana 11/06/1993 avenue de la paix Nantes FR 44000 0751562652 thisisatest@gmail.com entreprise
40 C0039 Rodriguez Juliette 12/06/2001 Rue Jule Ferry Vichy FR 3200 0655132124 thisisatest@gmail.com ecole
41 C0040 Chevallier Marius 13/06/1987 Avenue Marechal Foch Clermont-Ferrand FR 63000 0615651513 thisisatest@gmail.com particulier
42 C0041 Chauvin Nino 14/06/1920 rue du cimetiere Paris FR 75001 0654512352 thisisatest@gmail.com particulier
43 C0042 Da Silva Marceau 15/06/1973 avenue de la paix Nantes FR 44000 0751562652 thisisatest@gmail.com entreprise
44 C0043 Bouchet Mathis 16/06/1951 Rue Jule Ferry Vichy FR 3200 0655132124 thisisatest@gmail.com ecole
45 C0044 Gaie Victor 17/06/1972 Avenue Marechal Foch Clermont-Ferrand FR 63000 0615651513 thisisatest@gmail.com particulier
46 C0045 Gilbert Ayden 18/06/2006 rue du cimetiere Paris FR 75001 0654512352 thisisatest@gmail.com particulier
47 C0046 Pasquier Leonie 19/06/2011 avenue de la paix Nantes FR 44000 0751562652 thisisatest@gmail.com entreprise
48 C0047 Poulain Jeanne 20/06/1980 Rue Jule Ferry Vichy FR 3200 0655132124 thisisatest@gmail.com ecole
49 C0048 Tessier Charlie 21/06/1991 Avenue Marechal Foch Clermont-Ferrand FR 63000 0615651513 thisisatest@gmail.com particulier
50 C0049 Lamy Milo 22/06/1997 rue du cimetiere Paris FR 75001 0654512352 thisisatest@gmail.com particulier
51 C0050 Carrier Victor 23/06/1998 avenue de la paix Nantes FR 44000 0751562652 thisisatest@gmail.com entreprise

@ -0,0 +1,10 @@
idFournisseur,nom,adresse,ville,code_postal,telephone,email
F0001,GOSPORT,15 rue de la paix,Paris ,75000,0654525350,test@gmail.com
F0002,Sport 2000,25 Avenue xxxxx,Clermont-Ferrand,63000,0651666165,test@gmail.com
F0003,GO SKI,32 rue xxxxx,Nantes,44000,0655456652,test@gmail.com
F0004,SKIONS,63 Bd Jean Pierre Foucau,Angers,49000,0654565965,test@gmail.com
F0005,Luge&co,16 rue de la paix,Paris ,75000,0649498998,test@gmail.com
F0006,Ski&co,26 Avenue xxxxx,Clermont-Ferrand,63000,0654598988,test@gmail.com
F0007,SnowboardGO,33 rue xxxxx,Nantes,44000,0654144555,test@gmail.com
F0008,WinterSport,64 Bd Jean Pierre Foucau,Angers,49000,0654525167,test@gmail.com
F0009,EGEEE,17 rue de la paix,Paris ,75000,0655265358,test@gmail.com
1 idFournisseur nom adresse ville code_postal telephone email
2 F0001 GOSPORT 15 rue de la paix Paris 75000 0654525350 test@gmail.com
3 F0002 Sport 2000 25 Avenue xxxxx Clermont-Ferrand 63000 0651666165 test@gmail.com
4 F0003 GO SKI 32 rue xxxxx Nantes 44000 0655456652 test@gmail.com
5 F0004 SKIONS 63 Bd Jean Pierre Foucau Angers 49000 0654565965 test@gmail.com
6 F0005 Luge&co 16 rue de la paix Paris 75000 0649498998 test@gmail.com
7 F0006 Ski&co 26 Avenue xxxxx Clermont-Ferrand 63000 0654598988 test@gmail.com
8 F0007 SnowboardGO 33 rue xxxxx Nantes 44000 0654144555 test@gmail.com
9 F0008 WinterSport 64 Bd Jean Pierre Foucau Angers 49000 0654525167 test@gmail.com
10 F0009 EGEEE 17 rue de la paix Paris 75000 0655265358 test@gmail.com

@ -0,0 +1,4 @@
idmagasin,nom,adresse,ville,code_postal,telephone,email
M0001,Skiklo Les Deux Alpes,80 Avenue de la Muzelle,Les Deux Alpes,38860,0689754526,test@gmail.com
M0002,Skiklo Courchevel,158 Rue de la Madelon,Courchevel,73120,0679956527,test@gmail.com
M0003,Skiklo Villard-de-Lans,314 Avenue du General de Gaulle,Villard-de-Lans,38250,0626759628,test@gmail.com
1 idmagasin nom adresse ville code_postal telephone email
2 M0001 Skiklo Les Deux Alpes 80 Avenue de la Muzelle Les Deux Alpes 38860 0689754526 test@gmail.com
3 M0002 Skiklo Courchevel 158 Rue de la Madelon Courchevel 73120 0679956527 test@gmail.com
4 M0003 Skiklo Villard-de-Lans 314 Avenue du General de Gaulle Villard-de-Lans 38250 0626759628 test@gmail.com

@ -0,0 +1,9 @@
idclient,idproduit,quantite,date_debut,date_fin
C0001,P0001,3,03/12/2022,05/12/2022
C0002,P0005,2,04/11/2022,04/11/2022
C0003,P0008,6,10/10/2022,10/10/2022
C0004,P0004,1,22/02/2023,23/02/2023
C0005,P0003,3,05/12/2022,20/12/2022
C0006,P0007,5,06/01/2023,09/01/2023
C0007,P0001,4,04/12/2022,02/01/2023
C0008,P0008,3,04/12/2022,23/02/2023
1 idclient idproduit quantite date_debut date_fin
2 C0001 P0001 3 03/12/2022 05/12/2022
3 C0002 P0005 2 04/11/2022 04/11/2022
4 C0003 P0008 6 10/10/2022 10/10/2022
5 C0004 P0004 1 22/02/2023 23/02/2023
6 C0005 P0003 3 05/12/2022 20/12/2022
7 C0006 P0007 5 06/01/2023 09/01/2023
8 C0007 P0001 4 04/12/2022 02/01/2023
9 C0008 P0008 3 04/12/2022 23/02/2023

@ -0,0 +1,92 @@
DROP TABLE IF EXISTS APPROVISIONNER;
DROP TABLE IF EXISTS STOCKER;
DROP TABLE IF EXISTS RESERVER;
DROP TABLE IF EXISTS PRODUIT;
DROP TABLE IF EXISTS MAGASIN;
DROP TABLE IF EXISTS FOURNISSEUR;
DROP TABLE IF EXISTS CLIENT;
DROP TABLE IF EXISTS CATEGORIE;
CREATE TABLE CATEGORIE (
idcategorie char(5) NOT NULL UNIQUE,
nom varchar(30) NOT NULL,
PRIMARY KEY (idcategorie)
);
CREATE TABLE CLIENT (
idclient char(5) NOT NULL UNIQUE,
nom varchar(30) NOT NULL,
prenom varchar(20) NOT NULL,
date_de_naissance date,
adresse varchar(42),
ville varchar(30),
pays char(2),
code_postal char(5),
telephone char(10),
email varchar(40) NOT NULL,
type varchar CHECK(type IN ('particulier','entreprise','ecole','centre de loisir')),
PRIMARY KEY (idclient)
);
CREATE TABLE FOURNISSEUR (
idfournisseur char(5) NOT NULL UNIQUE,
nom varchar(30) NOT NULL,
adresse varchar(40) NOT NULL,
ville varchar(30) NOT NULL,
code_postal char(5) NOT NULL,
telephone char(10) NOT NULL,
email varchar(40) NOT NULL,
PRIMARY KEY (idfournisseur)
);
CREATE TABLE MAGASIN (
idmagasin char(5) NOT NULL UNIQUE,
nom varchar(30) NOT NULL,
adresse varchar(40) NOT NULL,
ville varchar(30) NOT NULL,
code_postal char(5) NOT NULL,
telephone char(10) NOT NULL,
email varchar(42) NOT NULL,
PRIMARY KEY (idmagasin)
);
CREATE TABLE PRODUIT (
idproduit char(5) NOT NULL UNIQUE,
nom varchar(40) NOT NULL,
marque varchar(30) NOT NULL,
taille varchar(20) NOT NULL,
prix numeric NOT NULL,
idcategorie char(5) NOT NULL,
FOREIGN KEY (idcategorie) REFERENCES CATEGORIE (idcategorie),
PRIMARY KEY (idproduit)
);
CREATE TABLE RESERVER (
idclient char(5) NOT NULL,
idproduit char(5) NOT NULL,
quantite numeric NOT NULL,
date_debut date NOT NULL,
date_fin date NOT NULL,
FOREIGN KEY (idproduit) REFERENCES PRODUIT (idproduit),
FOREIGN KEY (idclient) REFERENCES CLIENT (idclient),
PRIMARY KEY (idclient, idproduit)
);
CREATE TABLE STOCKER (
idmagasin char(5) NOT NULL,
idproduit char(5) NOT NULL,
quantite numeric NOT NULL,
FOREIGN KEY (idproduit) REFERENCES PRODUIT (idproduit),
FOREIGN KEY (idmagasin) REFERENCES MAGASIN (idmagasin),
PRIMARY KEY (idmagasin, idproduit)
);
CREATE TABLE APPROVISIONNER (
idfournisseur char(5) NOT NULL,
idproduit char(5) NOT NULL,
quantite numeric NOT NULL,
date_approvisionnement date,
FOREIGN KEY (idproduit) REFERENCES PRODUIT (idproduit),
FOREIGN KEY (idfournisseur) REFERENCES FOURNISSEUR (idfournisseur),
PRIMARY KEY (idfournisseur, idproduit)
);

@ -0,0 +1,9 @@
idproduit,nom,marque,taille,prix,idcategorie
P0001,Ski,Rossignol,Adulte,100,CA001
P0002,Ski,Dynastar,Enfant ,50,CA002
P0003,Casque,Head,Ado,40,CA003
P0004,Bâton ski Classiques rouges,Salomon,Adulte,60,CA004
P0005,Batons raquettes,Atomic,Enfant ,15,CA005
P0006,raquettes a Cran,Elan,Ado,80,CA006
P0007,luge,Fischer,Bebe,25,CA007
P0008,snowboard freestyle,Volkl,Ado,25,CA008
1 idproduit nom marque taille prix idcategorie
2 P0001 Ski Rossignol Adulte 100 CA001
3 P0002 Ski Dynastar Enfant 50 CA002
4 P0003 Casque Head Ado 40 CA003
5 P0004 Bâton ski Classiques rouges Salomon Adulte 60 CA004
6 P0005 Batons raquettes Atomic Enfant 15 CA005
7 P0006 raquettes a Cran Elan Ado 80 CA006
8 P0007 luge Fischer Bebe 25 CA007
9 P0008 snowboard freestyle Volkl Ado 25 CA008

@ -0,0 +1,34 @@
--Question 1
SELECT *
FROM Produit
WHERE idProduit NOT IN (SELECT idProduit FROM RESERVER);
-- Cette requête sélectionne les noms des produits dont l'identifiant n'apparaît pas dans la table Location,
--ce qui signifie qu'ils n'ont jamais été loués.
--Question 2 incomprehension de la question : cette requête ci-dessous renvoi le chiffre d'affaire fais pendant les 7 derniers jours par les clients de types entreprise.
-- Calculer le montant des locations en fonction des types de clients
SELECT c.type, SUM(p.prix*(CURRENT_DATE-r.date_debut)) AS Total
-- Sélectionner les informations des clients et des locations
FROM Client c, Produit p, RESERVER r
WHERE c.type = 'entreprise' and c.idclient = r.idclient and r.idproduit = p.idproduit and (r.date_debut <= (CURRENT_DATE)
and r.date_debut >= (CURRENT_DATE-7))
-- Regrouper les résultats par type de client
GROUP BY c.type;
--Question 3
SELECT *
FROM Produit
WHERE idProduit NOT IN (SELECT idProduit FROM RESERVER);
--Même question que la 1 formulé autrement. Donc même requête.
--Question 4
-- Calculer le montant des locations en fonction des types de clients et du nombre de jours loues
SELECT c.type, SUM(p.prix*(CURRENT_DATE-r.date_debut)) AS Total
-- Sélectionner les tables client produit et reserver
FROM Client c, Produit p, RESERVER r
WHERE c.idclient = r.idclient and r.idproduit = p.idproduit and (r.date_debut <= (CURRENT_DATE) and r.date_debut >= (CURRENT_DATE-30))
-- Selectionne les reservations qui sont datÉs d'il y a moins de 30 jours et qui ne depasse pas la date du jour.
GROUP BY c.type;
-- Regrouper les résultats par type de client

@ -0,0 +1,103 @@
import pandas as pd
import psycopg2 as psy
client = pd.read_csv(r'Client.csv')
df = pd.DataFrame(client)
df2 = df.drop_duplicates()
df3 = df2.dropna()
print(df3)
co = None
try:
co = psy.connect(host='londres',
database='dbletuaillon',
user='letuaillon',
password='03Ninja&*')
curs=co.cursor()
for row in df3.itertuples():
curs.execute('''INSERT INTO CLIENT VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);''',
(row.idClient, row.nom, row.prenom, row.date_naissance, row.adresse, row.ville, row.pays, row.code_postal, row.telephone, row.email, row.type))
categorie = pd.read_csv(r'Categorie.csv')
df = pd.DataFrame(categorie)
df2 = df.drop_duplicates()
df3 = df2.dropna()
print(df3)
for row in df3.itertuples():
curs.execute('''INSERT INTO CATEGORIE VALUES (%s,%s);''',
(row.idCategorie, row.nom))
fournisseur = pd.read_csv(r'Fournisseur.csv')
df = pd.DataFrame(fournisseur)
df2 = df.drop_duplicates()
df3 = df2.dropna()
print(df3)
for row in df3.itertuples():
curs.execute('''INSERT INTO FOURNISSEUR VALUES (%s,%s,%s,%s,%s,%s,%s);''',
(row.idFournisseur,row.nom,row.adresse,row.ville,row.code_postal,row.telephone,row.email))
produit = pd.read_csv(r'produit.csv')
df = pd.DataFrame(produit)
df2 = df.drop_duplicates()
df3 = df2.dropna()
print(df3)
for row in df3.itertuples():
curs.execute('''INSERT INTO PRODUIT VALUES (%s,%s,%s,%s,%s,%s);''',
(row.idproduit,row.nom,row.marque,row.taille,row.prix,row.idcategorie))
magasin = pd.read_csv(r'Magasin.csv')
df = pd.DataFrame(magasin)
df2 = df.drop_duplicates()
df3 = df2.dropna()
print(df3)
for row in df3.itertuples():
curs.execute('''INSERT INTO MAGASIN VALUES (%s,%s,%s,%s,%s,%s,%s);''',
(row.idmagasin,row.nom,row.adresse,row.ville,row.code_postal,row.telephone,row.email))
reserver = pd.read_csv(r'Reserver.csv')
df = pd.DataFrame(reserver)
df2 = df.drop_duplicates()
df3 = df2.dropna()
print(df3)
for row in df3.itertuples():
curs.execute('''INSERT INTO RESERVER VALUES (%s,%s,%s,%s,%s);''',
(row.idclient,row.idproduit,row.quantite,row.date_debut,row.date_fin))
stocker = pd.read_csv(r'stocker.csv')
df = pd.DataFrame(stocker)
df2 = df.drop_duplicates()
df3 = df2.dropna()
print(df3)
for row in df3.itertuples():
curs.execute('''INSERT INTO STOCKER VALUES (%s,%s,%s);''',
(row.idmagasin,row.idproduit,row.quantite))
appro = pd.read_csv(r'Appro.csv')
df = pd.DataFrame(appro)
df2 = df.drop_duplicates()
df3 = df2.dropna()
print(df3)
for row in df3.itertuples():
curs.execute('''INSERT INTO APPROVISIONNER VALUES (%s,%s,%s,%s);''',
(row.idfournisseur,row.idproduit,row.quantite,row.date_approvisionement))
co.commit()
curs.close()
except (Exception , psy. DatabaseError ) as error :
print (error)
finally:
if co is not None:
co.close()

@ -0,0 +1,8 @@
idmagasin,idproduit,quantite
M0001,P0001,35
M0002,P0002,45
M0003,P0003,120
M0003,P0004,64
M0001,P0005,87
M0003,P0006,22
M0002,P0007,25
1 idmagasin idproduit quantite
2 M0001 P0001 35
3 M0002 P0002 45
4 M0003 P0003 120
5 M0003 P0004 64
6 M0001 P0005 87
7 M0003 P0006 22
8 M0002 P0007 25
Loading…
Cancel
Save