Files
TermNSI/BDD_SGBD/Exercices.md

93 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### 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.