Le chemin des écoliers
[30 min]
Soit le schéma relationnel suivant :
IMMEUBLE (#ADI, NBETAGES, DATEC, PROP)
APPIM (#ADI, #NAPR, OCCUP, TYPE, SUPER, ETAGE)
PERSONNE (#NOM, AGE, PROF, ADR, NAPR)
ÉCOLE (#NOMEC, ADEC, DIR)
CLASSE (#NOMEC, #NCL, MAITRE)
ENFANT (#NOMP, #PRENOM, AN, NOMEC, NCL)
Avec la signification suivante :
Relation IMMEUBLE
ADI : adresse d'immeuble, clé ; on fait l'hypothèse pour simplifier, que l'adresse identifie de manière unique un immeuble
NBETAGES : nombre d'étages d'un immeuble
DATEC : date de construction (année)
PROP : nom du propriétaire de l'immeuble qui est une personne
Relation APPIM (Appartement)
ADI : adresse d'immeuble
NAPR : numéro d'appartement
OCCUP : occupant de l'appartement (nom de la personne ayant signé le contrat de location, éventuellement aucun)
TYPE : type de l'appartement (Studio, F2, ...)
SUPER : superficie de l'appartement
ETAGE : étage où se situe l'appartement
Relation PERSONNE
NOM : nom de personne, clé ; on fait l'hypothèse pour simplifier, que ce nom est unique sur l'ensemble des personnes que l'on considère dans la base
AGE : âge de la personne
PROF : profession de la personne
ADR : adresse de la résidence d'une personne, il s'agit d'un immeuble
NAPR : numéro d'appartement
Relation ÉCOLE
NOMEC : nom d'une école, clé
ADEC : adresse d'une école
DIR : nom du directeur
Relation CLASSE
NOMEC : nom d'une école
NCL : nom de la classe, e.g., CP1, CE2, CE3, etc...
MAITRE : nom de l'instituteur
Relation ENFANT
NOMP : nom de la personne responsable de l'enfant, clé e.g., père, mère etc...
PRENOM : prénom de l'enfant
AN : année de naissance
NOMEC : nom d'une école
NCL : nom de la classe
La relation IMMEUBLE décrit un ensemble d'immeubles. Chaque immeuble a un propriétaire. La relation APPIM décrit pour chaque immeuble l'ensemble des appartements qui le compose (il y a au mimimum un appartement par immeuble). Chaque appartement peut héberger plusieurs personnes mais il y en a une qui est responsable (par exemple la personne qui a signé le contrat de location) et qui est désignée par l'attribut OCCUP. Si l'appartement est inoccupé, il prend la valeur NULL. La relation PERSONNE décrit un ensemble de personnes. ADR et NAPR représentent l'adresse où réside une personne. Une personne peut avoir plusieurs enfants décrits par la relation ENFANT. Pour simplifier, on ne considère que les enfants allant à l'école primaire. Les écoles et les classes sont décrites dans les relations ÉCOLE et CLASSE, chaque école est composée au minimum d'une classe et chaque classe est au moins fréquentée par un enfant.
Question
Identifier les clés étrangères dans chaque relation.
Solution
IMMEUBLE (#ADI, NBETAGES, DATEC, PROP=>PERSONNE(NOM)) WITH PROP NOT NULL
APPIM (#ADI=>IMMEUBLE, #NAPR, OCCUP=>PERSONNE(NOM), TYPE, SUPER, ETAGE)
PERSONNE (#NOM, AGE, PROF, ADR=>APPIM(ADI), NAPR=>APPIM(NAPR)) WITH ADR, NAPR NOT NULL
ÉCOLE (#NOMEC, ADEC, DIR=>PERSONNE(NOM)) WITH DIR NOT NULL
CLASSE (#NOMEC=>ECOLE(NOMEC), #NCL, MAITRE=>PERSONNE(NOM)) WITH MAITRE NOT NULL
ENFANT (#NOMP=>PERSONNE(NOM), #PRENOM, AN, NOMEC=>CLASSE(NOMEC), NCL=>CLASSE(NCL))
- Constraints :
PROJ(IMMEUBLE, ADI) IN PROJ(APPIM, ADI)
AND PROJ(ECOLE,NOMEC) IN PROJ(CLASSE, NOMEC)
AND PROJ(CLASSE,NCL) IN PROJ(ENFANT,NCL)
ADEC de la relation ECOLE aurait pu être vue également comme une clé étrangère si on avait supposé que l'école se situe dans un des immeubles de la relation IMMEUBLE (ce que nous n'avons pas fait ici).
Question
Rétro-conception : reconstruire le schéma E-A (on identifiera les compositions).
Solution
Solution sous forme E-A
On fait l'hypothèse qu'un appartement pourrait être vide, d'où la cardinalité (0,1) du côté de APPIM pour l'association occupe. Par contre pour la même relation coté PERSONNE, il y a deux possibilités : ou l'on suppose qu'une personne "occupant" est le signataire du contrat de location et par conséquent la même personne pourrait signer plusieurs contrats (p.ex. pour les enfants) d’où la cardinalité (0,n), ou l'on pourrait supposer qu'elle ne pourrait signer qu'un seul contrat, en utilisant alors une cardinalité (0,1).