30/11/2020
1
Bases de données
Les héritages :
Héritage dans le modèle conceptuel Passage au modèle relationnel des héritages Exercices d’application
17/03/2012 1
Ph. CHOCHOIS
La notion d’héritage
Exemple 1:
Représentez les entités pour une entreprise qui souhaite gérer les informations suivantes pour ses clients:
Numéro de client Adresse
Nom et prénom du client (pour les particuliers) Raison sociale et chiffre d’affaire (pour les professionnels)
Les informations numPro et numPart représentent une seule information qui est un numéro de client
Les informations adressePro et adressePart représentent une seule information qui est une adresse de client
Le but de l’héritage va être de factoriser (mettre en facteur) les informations communes qui appartiennent ni aux particuliers, ni aux sociétés mais aux clients
17/03/2012 2
SOCIETE num Pro adressePro CA raison sociale
PARTICULIER num Part adressePart nom prénom
La généralisation
Les informations communes sont regroupées dans une entité appelée « Entité Mère ».Ce type d'héritage s'appelle une généralisation.
Les informations spécifiques sont conservées dans les « entités Filles ».
Il n'y a pas d'identifiant dans les entités filles.
Dans notre exemple, l’identifiant d’une société est le numeroClient qui se trouve dans l’entité mère.
L'héritage est aussi appelé une association « IS_A ».
Toute occurrence d'une entité fille est obligatoirement une occurrence de l'entité Mère
Toutes les entités filles héritent de toutes les propriétés de l'entité mère donc toutes les occurrences de l'entité fille doivent pouvoir posséder les propriétés définies dans l'entité mère
17/03/2012 3
SOCIETE CA raison so ciale
CLIENT n umeroClient a dresse
P ARTICULIER nom préno m
La spécialisation
Exemple 2:
Une bibliothèque gère ses adhérents à l'aide de l'entité suivante:
La bibliothèque veut maintenant posséder le cycle des étudiants ainsi que l’échelon des enseignants. Les étudiants et enseignants sont des adhérents de la bibliothèque
08/12/2018 4
Les informations communes restent dans l’entité Mère.
Les informations spécifiques sont ajoutées dans des « entités Filles ». Ce type d'héritage s'appelle une spécialisation.
Les règles définies pour la généralisation s’appliquent pour la spécialisation:
Absence d’identifiant Héritage des propriétés
Héritage avec enfant unique
L’entité mère peut posséder une seule entité fille.
08/12/2018 5
Ce cas est fréquent pour les spécialisations.
Dans notre exemple, tous les types d’adhérents sont gérés mais les étudiants ont une spécificité (propriété cycle)..
Héritage à plusieurs niveaux
17/03/2012 6
Une entité fille peut posséder des entités filles et inversement une entité mère peut posséder une entité mère.
Remarque: Une entité mère ne peut pas
être une entité fille de sa fille !
30/11/2020
2
Héritage multiple
L’héritage multiple est autorisé dans le modèle conceptuel. Il représente le fait d’avoir plusieurs parents.
C’est une représentation théorique peu utilisée et difficile à mettre en œuvre dans la réalité !
08/12/2018 7
Outils de modélisation et Héritage
Tous les outils de modélisation (exemple:analyseSI) ne proposent pas la représentation d’un héritage !
Il est possible de contourner le problème avec une association de type 0,1.
Exemple:
08/12/2018 8
Tous les outils de modélisation ne transforment pas correctement les MCD en modèle relationnel (MLD) (exemple:
Jmerise en version gratuite).
Vous devez donc dans ce cas, modifier les scripts SQL générés par les outils.
Modèle relationnel: Héritage
Voici la solution standard pour passer un héritage du modèle conceptuel au modèle relationnel.
L’entité mère se transforme en table Les entités filles se transforment en table
L’identifiant de l’entité mère devient la clé primaire de la table qui correspond à l’entité mère et aux tables qui correspondent aux entités filles
Les propriétés des entités se transforment en attributs des tables
Les clés primaires des « tables filles » sont aussi des clés étrangères qui référencent la clé primaire de la « table mère »
17/03/2012 9
Modèle relationnel: Héritage
L’entité mère se transforme en table Les entités filles se transforment en table
L’identifiant de l’entité mère devient la clé primaire de la table qui correspond à l’entité mère et aux tables qui correspondent aux entités filles
Les propriétés des entités se transforment en attributs des tables
Les clés primaires des « tables filles » sont aussi des clés étrangères qui référencent la clé primaire de la « table mère »
17/03/2012 10
ADHERENT (numAdherent , nom, prénom, adresse, tel) Clé primaire : numAdherent
ETUDIANT (numAdherent , cycle) Clé primaire : numAdherent
Clé étrangère : numAdherent qui référence numAdherent de la table ADHERENT ENSEIGNANT (numAdherent , echelon)
Clé primaire : numAdherent
Clé étrangère : numAdherent qui référence numAdherent de la table ADHERENT
Modèle relationnel: Solution standard
Cette solution qui est la solution standard n’est pas toujours la meilleure.
D’autres solutions sont possibles…
Le choix de la solution va dépendre:
De la volumétrie
Du nombre de propriétés dans l’entité mère
Du nombre de propriétés dans les entités filles
De la participation ou non des entités filles à d’autres associations De l’évolutivité du système Des traitements à effectuer sur la base
30/11/2020 11
ADHERENT (numAdherent , nom, prénom, adresse, tel) Clé primaire : numAdherent
ETUDIANT (numAdherent , cy cle) Clé primaire : numAdherent
Clé étrangère : numAdherent qui réf érence numAdherent de la table ADHERENT ENSEIGNANT (numAdherent , echelon)
Clé primaire : numAdherent
Clé étrangère : numAdherent qui réf érence numAdherent de la table ADHERENT
Modèle relationnel: Solution avec type
Un attribut « type » est ajouté dans la table mère. La valeur du type permet de déterminer quelle est la table fille concernée !
Cette solution est à privilégier lorsque des requêtes font intervenir le type.
Exemple: Lister les noms et adresses des étudiants
17/03/2012 12
ADHERENT (numAdherent , nom, prénom, adresse, tel, type) Clé primaire : numAdherent
ETUDIANT (numAdherent , cy cle) Clé primaire : numAdherent
Clé étrangère : numAdherent qui réf érence numAdherent de la table ADHERENT ENSEIGNANT (numAdherent , echelon)
Clé primaire : numAdherent
Clé étrangère : numAdherent qui réf érence numAdherent de la table ADHERENT
30/11/2020
3 Modèle relationnel: Solution table de types
Une table « TY PE » est ajoutée. La table
« TY PE » permet de stocker tous les ty pes possibles et d’associer un ou plusieurs ty pes à la table mère.
Cette solution est à priv ilégier lorsque le nombre de tables f illes est important ou est amené à év oluer et qu’une occurrence de la table mère peut correspondre à des occurrences de plusieurs tables f illes.
17/03/2012 13
ADHERENT (numAdherent , nom, prénom, adresse, tel) Clé primaire : numAdherent
TYPE (code, tableFille) Clé primaire : code
ADHERENT_TYPE (numAdherent , code) Clé primaire composée: numAdherent , code
Clé étrangère : numAdherent qui référence numAdherent de la table ADHERENT Clé étrangère : code qui référence code de la table TYPE
ETUDIANT (numEtudiant , cycle) Clé primaire : numEtudiant
Clé étrangère : numEtudiant qui référence numAdherent de la table ADHERENT ENSEIGNANT (numAdherent , echelon)
Clé primaire : numAdherent
Clé étrangère : numAdherent qui référence numAdherent de la table ADHERENT
Modèle relationnel: Pas de table mère
Les propriétés de l’entité mère sont transférées dans les tables filles
Cette solution est à privilégier lorsque:
il n’existe pas d’occurrence de l’entité mère sans correspondance dans une entité fille L’entité mère ne participe pas à de nombreuses associations
Lorsque le nombre de propriétés de l’entité mère est faible.
17/03/2012 14
ETUDIANT (numEtudiant , nom, prénom, adresse, tel, cy cle) Clé primaire : numEtudiant
ENSEIGNANT (numEnseignant , nom, prénom, adresse, tel, echelon) Clé primaire : numEnseignant
Modèle relationnel: Pas de table fille
Les propriétés des entités filles sont transférées dans la table mère
Cette solution est à privilégier lorsque:
Les entités filles ne participent pas à des associations avec d’autres entités.
Lorsque le nombre de propriétés des entités filles est extrêmement faible.
17/03/2012 15
ADHERENT(numAdherent , nom, prénom, adresse, tel, cy cle, echelon) Clé primaire : numAdherent
Les contraintes sur héritage:
17/03/2012 16
Une société d’assurance gère des individus. Il y a des individus sociétaires pour lesquels on mémorise la date de souscription et des conducteur pour lesquels on mémorise la date d’obtention du permis de conduire.
Cet héritage nous indique:
- Qu’un sociétaire est un individu - Qu’un conducteur est un individu
Les contraintes sur héritage:
17/03/2012 17
Cet héritage nous indique:
- Qu’un sociétaire est un individu - Qu’un conducteur est un individu
Questions:
- Un individu peut-il être sociétaire ? - Un individu peut-il être conducteur ?
- Un individu peut-il être à la fois sociétaire et conducteur ? - Un individu peut-il être ni sociétaire ni conducteur ?
Les contraintes sur héritage:
17/03/2012 18
Il est possible d’ajouter des contraintes sur l’héritage.
1) Contrainte d’exclusion:
Une contrainte d’exclusion signifie qu’on ne peut pas participer aux deux entités filles.
Cet héritage indique:
- Un sociétaire est un individu - Un conducteur est un individu
- Mais un sociétaire ne peut pas être conducteur et inversement !
30/11/2020
4 Les contraintes sur héritage:
17/03/2012 19
Il est possible d’ajouter des contraintes sur l’héritage.
1) Contrainte de totalité:
Une contrainte de totalité signifie qu’on doit absolument participer à une des entités filles.
Cet héritage indique:
- Un sociétaire est un individu - Un conducteur est un individu
- Mais un sociétaire est obligatoirement sociétaire ou conducteur. Il ne peut pas être non sociétaire et non conducteur !
Les contraintes sur héritage:
17/03/2012 20
Il est possible d’ajouter des contraintes sur l’héritage.
1) Contrainte de partition:
Une contrainte de partition réunit les 2 contraintes précédentes (exclusion et totalité) et signifie qu’on ne peut pas participer à plusieurs entités filles mais qu’on participe obligatoirement à une d’entre elles.
Cet héritage indique:
- Un sociétaire est un individu - Un conducteur est un individu
- Un sociétaire ne peut pas être conducteur et inversement ! - Un individu est forcément un sociétaire ou un conducteur !
Les contraintes sur héritage:
17/03/2012 21
Il est possible d’ajouter des contraintes sur l’héritage.
1) Contrainte de totalité:
Une contrainte de totalité indique qu’on doit absolument participer à l’une ou l’autre des entités filles (l’une, l’autre ou les deux).
Cet héritage indique:
- Un sociétaire est un individu - Un conducteur est un individu
- Un individu ne peut pas être ni sociétaire, ni conducteur !
L’héritage: Exercice 1
21/11/2014 22
Modélisez cette gestion de fichiers :
- Les fichiers, les répertoires et les raccourcis sont contenus dans des répertoires et possèdent un nom et une date de modification.
- Un fichier possède une taille mais les répertoires n’en possèdent pas - Un raccourci peut concerner un fichier ou un répertoire
- Un répertoire peut contenir des fichiers, des raccourcis et des répertoires.
L’héritage: Exercice 2
08/12/2018 23