Partie 1 · Modéliser
Le MCD : entités, associations, cardinalités
Un MCD (modèle conceptuel de données) est un diagramme qui représente tout ou partie d'une base de données relationnelle. Il appartient à une méthode de conception (MCD, MOT, schéma relationnel) et, avec la programmation objet, il tend en pratique à être remplacé par la notation UML. Il a sa syntaxe : des entités et des associations (on parle de modèle entités-associations).
| Élément | Représentation | Correspond à |
|---|---|---|
| Entité : unité qui se suffit à elle-même (client, produit…) | rectangle, avec son nom et ses propriétés (attributs) | une table ; propriétés = colonnes |
| Clé primaire | propriété(s) soulignée(s) | l'identifiant unique de la ligne ; composée si plusieurs propriétés |
| Association : lien entre entités (souvent nommée par un verbe) | ovale, avec éventuellement des propriétés portées | une table ou une clé étrangère (selon les cardinalités) |
Toute table possède une clé primaire. Celle d'une association est sous-entendue : c'est l'ensemble des clés primaires des entités qu'elle relie.
Vérifie que tu as compris
Les cardinalités
Une association relie au moins deux entités (trois : une ternaire, dont les cardinalités sont forcément du type 0..* ou 1..*). Les cardinalités précisent la quantité minimale et maximale (« de 0 à plusieurs », « exactement 1 »). Association et entités sont reliées par un trait, la patte, sur laquelle on note la cardinalité (et éventuellement un rôle).
Lecture adoptée ici, cohérente avec la règle du cours sur la clé étrangère : la cardinalité écrite près d'une entité dit combien de fois chaque occurrence de cette entité participe à l'association. Dans l'exemple du cours, une écriture comptable est constituée de 2 à plusieurs lignes (2..*) et un compte peut n'apparaître dans aucune à plusieurs écritures (0..*).
CIF et CIM : deux familles qui décident de tout
| Forme des cardinalités | Nom | Devient en base |
|---|---|---|
| X..* — Y..* (ex. 0..* — 1..*) | CIM (contrainte d'intégrité multiple) | une table pour l'association (dont la clé primaire regroupe les clés des entités reliées) |
| X..1 — Y..* (ex. 1..1 — 0..*) | CIF (contrainte d'intégrité fonctionnelle) | pas de table : une clé étrangère, placée dans la table de l'entité qui porte la cardinalité de la forme X..1 |
Exemple (exemple ajouté) : « un client passe 0 à plusieurs commandes, une commande est passée par exactement un client ». Le côté Commande est 1..1 : c'est une CIF, la table Commande reçoit une clé étrangère vers Client.
Vérifie que tu as compris
Vérifie que tu as compris