Exercice — dans l'esprit des sujets du bac
Soit la représentation textuelle d’une base de données d’une bibliothèque :
- `LIVRES (NumLV, Titre, NomAuteur, ValeurLV, NumED#)`
- `EDITEURS (NumED, NomED, AdrED, TelED)`
- `LECTEURS (NumLE, NomLE, AdrLE, VilleLE)`
- `PRET (NumLV#, NumLE#, DateP, DateRet)`
La notation `#` marque une clé étrangère.
- Donner, pour chaque table, la clé primaire et, le cas échéant, les clés étrangères (en précisant la table référencée).
- Exprimer en français le lien sémantique entre `LIVRES` et `EDITEURS`, puis entre `PRET`, `LIVRES` et `LECTEURS`.
- Un même livre peut-il être prêté plusieurs fois à des lecteurs différents ? Justifier à partir de la clé de `PRET`.
Voir la correction commentéeAprès avoir posé votre démarche
1.
- `LIVRES` : PK = `NumLV` ; FK = `NumED` → `EDITEURS(NumED)`.
- `EDITEURS` : PK = `NumED` ; pas de FK.
- `LECTEURS` : PK = `NumLE` ; pas de FK.
- `PRET` : PK composite = (`NumLV`, `NumLE`, …) selon le sujet — au minimum FK `NumLV` → `LIVRES`, FK `NumLE` → `LECTEURS` (les deux colonnes marquée `#`).
2. Chaque livre a un éditeur (`NumED` dans `LIVRES`). Un prêt associe un livre et un lecteur à des dates données : relation N-N entre livres et lecteurs matérialisée par `PRET`.
3. Oui : plusieurs lignes de `PRET` peuvent partager le même `NumLV` avec des `NumLE` (ou des dates) différents, tant que la clé primaire de `PRET` reste unique.