Aller au contenu
MCD → MLD

Généralisation → MLD (héritage)

Une généralisation du MCD se traduit de trois façons : table unique avec colonne de type, table mère et tables filles, ou tables filles seules. Le choix dépend des requêtes et des contraintes.

  • héritage
  • spécialisation
  • sous-type
  • table unique
  • tables filles

Syntaxe

Modèle
1. Table unique  : personne(num PK, type, communs…, propres_A…, propres_B…)2. Mère + filles : personne(num PK, communs…)                   salarie(num PK FK → personne, propres_A…)3. Filles seules : salarie(num PK, communs…, propres_A…)                   prestataire(num PK, communs…, propres_B…)

Exemple

Exemple concret
MCD : PERSONNE (num_personne, nom, email), partition XT      SALARIE (salaire)     PRESTATAIRE (taux_journalier)Stratégie 2 retenue :  personne(num_personne PK, nom, email)  salarie(num_personne PK FK → personne, salaire)  prestataire(num_personne PK FK → personne, taux_journalier)  personne    : (1, Léa, …), (2, Karim, …)  salarie     : (1, 3200)  prestataire : (2, 550)

À retenir

  1. Table unique : requêtes simples, mais des colonnes vides pour chaque sous-type, et « salaire obligatoire pour un salarié » doit s'écrire en CHECK sur la colonne type.
  2. Mère et filles : modèle fidèle et sans colonne vide, au prix d'une jointure pour lire une personne complète ; la clé primaire de chaque fille est aussi clé étrangère vers la mère.
  3. Filles seules : adapté à une partition quand on n'interroge jamais l'ensemble ; lister toutes les personnes demande alors un UNION, et l'unicité du numéro entre filles n'est plus garantie.
  4. Aucune stratégie ne garantit seule les contraintes X, T ou XT : il faut une colonne type avec CHECK, un déclencheur ou un contrôle applicatif.
  5. Piège : choisir par habitude. Partez des requêtes principales (lister tout le monde ? traiter les salariés à part ?) et du nombre d'attributs propres à chaque sous-type.

Voir aussi