Bases de données et modélisation (MCD/MLD, SQL)
Ce que l'épreuve attend
L'épreuve porte sur le MCD (entités, associations, cardinalités), sa transformation en MLD relationnel, les clés et l'intégrité, puis SQL. Il faut lire une cardinalité et écrire une requête correcte.
Notions clés
- Entité -> table; identifiant -> clé primaire; attributs -> colonnes.
- Association 1:N: clé étrangère du côté N. Association M:N: table de jonction avec les deux clés étrangères, formant souvent une clé composée.
- Cardinalités: 0,1; 1,1; 0,n; 1,n. Elles expriment le nombre minimum et maximum de participations.
- Intégrité: clé primaire unique et non nulle; clé étrangère référençant une clé existante; contraintes NOT NULL, UNIQUE, CHECK.
- SQL: SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY; JOIN; INSERT, UPDATE, DELETE.
Exemple raisonné
MCD: Client (id, nom) passe Commande (num, date), cardinalités Client 1,n et Commande 1,1. Commande contient Produit (ref, libellé), cardinalités Commande 1,n et Produit 0,n. MLD: Client(id, nom); Commande(num, date, #id_client); Produit(ref, libellé); Ligne(#num, #ref, quantité). La table Ligne traduit le M:N et porte la quantité. Requête des clients ayant au moins deux commandes: SELECT id_client FROM Commande GROUP BY id_client HAVING COUNT(*) >= 2; on filtre après regroupement avec HAVING, pas WHERE.
Pièges
Inverser les cardinalités; oublier la table de jonction; mettre la clé étrangère du mauvais côté; confondre WHERE et HAVING; ignorer NULL; produire des doublons sans DISTINCT.