• Aucun résultat trouvé

Héritage dans le modèle conceptuel Passage au modèle relationnel des héritages Exercices d’application

N/A
N/A
Protected

Academic year: 2022

Partager "Héritage dans le modèle conceptuel Passage au modèle relationnel des héritages Exercices d’application"

Copied!
4
0
0

Texte intégral

(1)

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 !

(2)

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

(3)

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 !

(4)

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

Une entreprise gère le personnel. Elle emploie des salariés et des intérimaires.

On mémorisera les informations suivantes pour tous les individus qui travaillent dans l’entreprise : matricule, nom, prénom.

Pour tous les individus, on remboursera forfaitairement les frais de déplacements domicile-travail. Pour cela, il faut mémoriser le montant forfaitaire lié à chaque code postal correspondant au domicile des individus. On mémorisera pour les salariés le nombre d’enfants ainsi que le salaire mensuel.

Pour les intérimaires, on mémorisera le tarif journalier et la société d’intérim (nom, adresse, tel, correspondant).

1. Faire le schéma représentant le modèle conceptuel 2. Faire le schéma représentant le modèle relationnel 3. Ecrire les requêtes suivantes :

- Liste (nom et prénom) de tous les individus triés par nom, prénom - Liste (nom et prénom) de tous les intérimaires triés par nom, prénom - Créer une vue qui fournit les informations suivantes des intérimaires : matricule,

nom, prénom, montant du forfait, tarif et nom de société d’interim - - En utilisant la vue, lister les nom et prénoms des intérimaires triés par nom de

société d’Interim .

Références

Documents relatifs

Pour tout tuple de Individu, il existe un tuple de même numéro soit dans Homme, soit dans

Dans le cas d’une association hiérarchique, la clé primaire de l’entité supérieure devient attribut clé étrangère dans la table issue de l’entité inférieure. Dans le cas

La quantité correspond à la quantité de produit stocké pour un numéro de produit et un numéro de dépôt. Dans un dépôt, il peut y avoir plusieurs produits. Un dépôt peut

Pour traduire qu’une entité est faible par rapport à une autre, c’est-à-dire que son identifiant est relatif à celui d’une autre entité, on encadre les cardinalités

Pour traduire qu’une entité est faible par rapport à une autre, c’est-à-dire que son identifiant est relatif à celui d’une autre entité, on encadre les cardinalités 1,1

À partir des données contenues dans la table « film », donner le schéma relationnel d’une table « genre » contenant les genres des films. Ajoutez à cette

Table des livres (Numéro inventaire du livre, titre et auteur du livre, nombre d’exemplaires dans la

5 Quels producteurs voient tous les films qu’ils produisent. 6 Quels producteurs voient tous les films