ajout cours conception bdd et exercices modele relationnel

This commit is contained in:
2024-11-15 08:10:58 +01:00
parent cc90687a5c
commit 464631689b
3 changed files with 268 additions and 2 deletions

93
BDD_SGBD/Exercices.md Normal file
View File

@@ -0,0 +1,93 @@
### 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 denregistrement 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.