Tout au long de ce cours, nous allons travailler sur un exemple “fil rouge” : une base de données simplifiée d’une boutique en ligne.
Représentation textuelle
1Clients (numero, nom, prenom, rue, codePostal, ville, telephone, categorie, compte)2Commandes (numero, numeroClient*, dateCommande, statut)3Produits (numero, nom, prix, stock)4Details (numeroCommande*, numeroProduit*, quantite)
Diagramme Entité-Association
erDiagram Clients { int numero PK string nom string prenom string rue string codePostal string ville string telephone string categorie float compte } Commandes { int numero PK int numeroClient FK date dateCommande string statut } Produits { int numero PK string nom double prix int stock } Details { int numeroCommande PK, FK int numeroProduit PK, FK int quantite } Clients ||--o{ Commandes : "passent des" Commandes ||--o{ Details : "sont composées de" Produits ||--o{ Details : "sont liés à des"
Jeu de données
Clients | ||||||||
---|---|---|---|---|---|---|---|---|
numero | nom | prenom | rue | codePostal | ville | telephone | categorie | compte |
1 | Lebreton | Éléonore | 6 avenue Françoise Olivier | 38240 | Meylan | 0776059929 | A1 | 10000 |
2 | Vasseur | Georges | 54, avenue Jean | 38000 | Grenoble | +33 1 44 68 49 74 | B2 | 1903 |
3 | Da Costa | Léon | 18, boulevard Brigitte Faivre | 75000 | Paris | 0568740044 | C3 | -1500 |
4 | Rey | Michel | 49, avenue de Adam | 38220 | Vizille | B1 | 3251 | |
5 | Weiss | Dominique | 98, boulevard Remy | 59000 | Lille | B2 | 0 | |
6 | Berlioz | Diane | 27 avenue de la Chartreuse | 75000 | Paris | 123094 | ||
7 | Lefevre | Jean | 12, rue de la République | 69000 | Lyon | C1 | -1000 | |
9 | Barda | Jérôme | 128 rue de la Paix | 75000 | Paris | C1 | -2000 | |
8 | Jacques | Chaoui | 1240 rue des Ateliers | 75001 | Paris | C1 | -1750 |
Produits | |||
---|---|---|---|
numero | nom | prix | stock |
1 | T-shirt | 25 | 30 |
2 | Pantalon | 60 | 50 |
3 | Chaussures | 120 | 100 |
4 | Casquette | 15 | 10 |
5 | Sac à dos | 80 | 5 |
Commandes | |||
---|---|---|---|
numero | numeroClient | dateCommande | statut |
1 | 1 | 2024-02-01 | livrée |
2 | 1 | 2024-03-15 | livrée |
3 | 3 | 2024-04-28 | livrée |
4 | 4 | 2024-06-24 | annulée |
5 | 5 | 2024-06-30 | en cours |
6 | 5 | 2024-07-12 | en cours |
7 | 4 | 2024-08-19 | annulée |
Details | ||
---|---|---|
numeroCommande | numeroProduit | quantite |
1 | 1 | 3 |
1 | 2 | 1 |
1 | 3 | 1 |
2 | 4 | 1 |
2 | 5 | 1 |
3 | 1 | 4 |
3 | 2 | 1 |
3 | 3 | 2 |
3 | 4 | 1 |
3 | 5 | 1 |
4 | 1 | 7 |
4 | 2 | 1 |
5 | 1 | 2 |
5 | 2 | 1 |
5 | 3 | 1 |
6 | 1 | 10 |
7 | 1 | 1 |
Jeu de données
On peut remarquer que le scénario de données est le suivant :
- Le client 1 a commandé tous les produits en 2 commandes (la commande 1 et 2)
- Le client 2 n’a rien commandé
- Le client 3 a commandé tous les produits en 1 commande (la commande 3)
- Le client 4 a commandé 2 produits en 1 commande (la commande 4)
- Le client 5 a commandé 3 produits en 1 commande (la commande 5)
Travailler sur la base de données
Vous pouvez travailler directement sur cette base de données sur le Compilateur SQL en ligne
Vous pouvez aussi télécharger la base de données pour travailler dessus sur votre machine :
-
- Vous pouvez ouvrir ce fichier un outil de gestion de base de données SQLite comme :
- SQLiteStudio
- VSCode avec une extension DB
- en ligne de commande avec
sqlite3 ecommerce-fr-erd-v2.sqlite
(vérifier bien d’avoir installé sqlite3 sur votre machine)
- Vous pouvez ouvrir ce fichier un outil de gestion de base de données SQLite comme :
-
Export MySQL
- Fichier à importer dans un serveur MySQL
- Par exemple avec phpMyAdmin
- Ou en ligne de commande avec
mysql -u root -p < ecommerce-fr-erd-v2-mysql-EXPORT.sql
(en remplaçantroot
par votre utilisateur MySQL)
-
Export PostgreSQL
- Fichier à importer dans un serveur PostgreSQL
- Par exemple avec pgAdmin
- Ou en ligne de commande avec
psql -U postgres -f ecommerce-fr-erd-v2-postgresql-EXPORT.sql
(en remplaçantpostgres
par votre utilisateur PostgreSQL)
-
Pour les plus aventureux, vous pouvez regarder comment je modifie et génère ces différents fichiers ici