93 lines
3.5 KiB
Markdown
93 lines
3.5 KiB
Markdown
### Entraînement sur les Schémas Relationnels
|
||
|
||
## Introduction
|
||
|
||
Nous disposons d'une base de données pour une sandwicherie. Voici les tables de cette base, comprenant des informations sur les sandwichs proposés, les clients, et les commandes passées.
|
||
|
||
---
|
||
|
||
## 1. Tables initiales
|
||
|
||
### **Table : Sandwichs**
|
||
|
||
| Nom_Sandwich | Type | Prix |
|
||
| ------------- | ------------- | ---- |
|
||
| Cheeseburger | Classique | 3.98 |
|
||
| Double cheese | Classique | 4.90 |
|
||
| Italien | Végétarien | 4.90 |
|
||
| Foie gras | Gastronomique | 8.50 |
|
||
|
||
### **Table : Clients**
|
||
|
||
| ID_Client | Nom | Prénom | Adresse |
|
||
| --------- | ------- | ------ | ---------------------------- |
|
||
| 1 | Bernard | Alain | 9, rue Bienvenu, Marseille |
|
||
| 2 | Bernard | Yves | 2, rue Vive la Joie, Aubagne |
|
||
| 3 | Dupont | Sophie | 154, boulevard Aune, Lyon |
|
||
|
||
### **Table : Commandes**
|
||
|
||
| ID_Commande | Date | ID_Client | Nom_Sandwich | Quantité |
|
||
| ----------- | ---------- | --------- | ------------ | -------- |
|
||
| 12452 | 2019-12-11 | 1 | Italien | 2 |
|
||
| 12453 | 2019-12-11 | 2 | Foie gras | 1 |
|
||
| 13301 | 2019-12-23 | 3 | Cheeseburger | 3 |
|
||
|
||
---
|
||
|
||
## 2. Questions pour réflexion
|
||
|
||
1. **Analyse des clés** :
|
||
- Quelle est la **clé primaire** de chaque table ?
|
||
- Les tables comportent-elles des **clés étrangères** ? Si oui, lesquelles ?
|
||
|
||
2. **Problèmes de modélisation** :
|
||
- La base est-elle bien modélisée ?
|
||
- Proposez des améliorations pour éviter la redondance et mieux gérer les relations.
|
||
|
||
---
|
||
|
||
## 3. Modélisation d'une base pour un forum
|
||
|
||
### **Contexte** :
|
||
On souhaite modéliser une base de données simplifiée pour un **forum en ligne** avec deux tables principales :
|
||
- **Users** : contenant des informations sur les utilisateurs (pseudonyme, email, rôle).
|
||
- **Posts** : contenant des informations sur les messages (titre, contenu, date, auteur).
|
||
|
||
### **Questions** :
|
||
1. Quel serait le schéma relationnel de la table **Users** ?
|
||
2. Quel serait celui de la table **Posts** ?
|
||
3. Les tables comportent-elles des **clés primaires** ou **clés étrangères** ? Si oui, lesquelles ?
|
||
4. Comment gérer les modifications de pseudonymes des utilisateurs ?
|
||
|
||
---
|
||
|
||
## 4. Extension : Albums sur le forum
|
||
|
||
### **Nouvelle fonctionnalité** :
|
||
Chaque utilisateur peut créer un ou plusieurs **albums** contenant des messages du forum.
|
||
|
||
1. **Modèle Entité-Association** : Dessinez un modèle entité-association pour cette fonctionnalité.
|
||
2. **Schéma Relationnel** : Proposez un schéma relationnel cohérent.
|
||
3. Donnez un exemple d’enregistrement pour illustrer le fonctionnement.
|
||
|
||
---
|
||
|
||
## 5. Normalisation : Exemple pour un lycée
|
||
|
||
### **Extrait initial** :
|
||
|
||
| Nom | Prénom | Date_Naissance | Classe | Option1 | Option2 | Option3 |
|
||
| ------ | ------ | -------------- | ------ | ------- | -------- | ------- |
|
||
| Alan | Michel | 12/12/2005 | 2de1 | CIT | Chinois | NULL |
|
||
| Bergue | John | 13/01/2006 | 2de1 | CIT | Chinois | Latin |
|
||
| Zidane | Michel | 12/12/2005 | 1S2 | Maths | Physique | NSI |
|
||
| Bergue | Inès | 06/04/2004 | T-STL | NULL | NULL | NULL |
|
||
|
||
### **Problèmes** :
|
||
1. Quel est le schéma relationnel de cette base ?
|
||
2. La table contient-elle une **clé primaire** ? Des **clés étrangères** ?
|
||
3. Quels sont les défauts de conception (redondance, incohérences) ?
|
||
|
||
### **Amélioration** :
|
||
- Proposez un schéma relationnel alternatif pour corriger ces défauts. |