Masar
Masar
Bac Tunisie
Entraîner la reconnaissance
BD-BBases de données et SQL

Schéma relationnel — représentation textuelle, PK et FK

Idée directrice

Passage classique des bases de données SI : à partir d’une représentation textuelle (tables, # pour FK), repérer clés primaires, clés étrangères et relations. Ancré sur le schéma bibliothèque de i-s1-04.

Signature de reconnaissance — l'énoncé se trahit ainsi

« représentation textuelle d’une base de données »

« LIVRES (NumLV, Titre, … NumED#) »

« clés primaires ainsi que les clés étrangères »

Sujet principal

Exercice — dans l'esprit des sujets du bac

7 questionsCorrigé masqué

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.

  1. 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).
  2. Exprimer en français le lien sémantique entre LIVRES et EDITEURS, puis entre PRET, LIVRES et LECTEURS.
  3. 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 = NumEDEDITEURS(NumED).
- EDITEURS : PK = NumED ; pas de FK.
- LECTEURS : PK = NumLE ; pas de FK.
- PRET : PK composite = (NumLV, NumLE, DateP) : un même livre peut être prêté plusieurs fois au même lecteur, seule la date distingue les prêts ; FK NumLVLIVRES, FK NumLELECTEURS (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. PK/FK lues sur la repreˊsentation textuelle\boxed{\text{PK/FK lues sur la représentation textuelle}}

Exercices d'entraînement — une nuance à la fois

Entraînement 01 / 02

Drill BD-B.1 — représentation textuelle d’un site de téléchargement

2 questionsCorrigé masqué

Une base gère des fichiers téléchargeables. Chaque fichier a un code unique CodeF, un type TypeF (référence à une table Types), une taille, une date de création. Un téléchargement relie un internaute (Login) et un fichier.

  1. Proposer une représentation textuelle minimale à trois tables Types, Fichiers, Telecharger en marquant les FK par #.
  2. Indiquer les clés primaires et les intégrités référentielles à maintenir.
Voir la correction commentéeAprès avoir posé votre démarche

1. Représentation textuelle :
- Types (Type, Designat)
- Fichiers (CodeF, NomF, Extension, TypeF#, Taille, Datcreat)
- Telecharger (NumTel, Login#, CodeF#, …)

2. PK : Types.Type, Fichiers.CodeF, Telecharger.NumTel. FK : Fichiers.TypeFTypes.Type ; Telecharger.CodeFFichiers.CodeF (et Login → table internautes si présente). Les intégrités référentielles interdisent un type/fichier inexistant. repreˊsentation textuelle + PK/FK\boxed{\text{représentation textuelle + PK/FK}}

Entraînement 02 / 02

Drill BD-B.2 — tables déduites d’une liste de colonnes

2 questionsCorrigé masqué

On dispose d’une liste de colonnes regroupées par entité pour une base de données de médiathèque scolaire : élève (num_ele, nom_pre, classe), livre (code_liv, titre, auteur), emprunt (num_emp, num_ele, code_liv, date_emp).

  1. Déduire la liste des tables du schéma relationnel.
  2. Donner une représentation textuelle de la base ( clé primaire notée, clé étrangère en # ) et indiquer les liens d’intégrité référentielle.
Voir la correction commentéeAprès avoir posé votre démarche

1. Trois tables : Eleve, Livre, Emprunt — une par entité de la liste de colonnes.

2. Représentation textuelle :
- Eleve (num_ele, nom_pre, classe, …) avec clé primaire num_ele ;
- Livre (code_liv, titre, auteur, …) PK code_liv ;
- Emprunt (num_emp, num_ele#, code_liv#, date_emp, …) avec clés étrangères num_ele → Eleve et code_liv → Livre.
Les contraintes d’intégrité référentielle interdisent un emprunt vers un élève ou un livre inexistant. 3 tables ; 2 FK dans Emprunt\boxed{\text{3 tables ; 2 FK dans Emprunt}}

Méthode / Automatismes
  • Lire d’abord les # : ce sont les FK.
  • La PK est en général le premier attribut non # (ou le couple des # pour une table d’association).
  • Écrire Table (… ) puis lister PK / FK séparément pour la copie.
Pièges classiques
  • Prendre NumED pour PK de LIVRES.
  • Oublier que PRET porte deux FK (livre et lecteur).
  • Confondre association N-N et héritage.