Le chemin des écoliers

[30 min]

Soit le schéma relationnel suivant :

1
IMMEUBLE (#ADI, NBETAGES, DATEC, PROP) 
2
APPIM (#ADI, #NAPR, OCCUP, TYPE, SUPER, ETAGE) 
3
PERSONNE (#NOM, AGE, PROF, ADR, NAPR) 
4
ÉCOLE (#NOMEC, ADEC, DIR) 
5
CLASSE (#NOMEC, #NCL, MAITRE) 
6
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

1
IMMEUBLE (#ADI, NBETAGES, DATEC, PROP=>PERSONNE(NOM)) WITH PROP NOT NULL
2
APPIM (#ADI=>IMMEUBLE, #NAPR, OCCUP=>PERSONNE(NOM), TYPE, SUPER, ETAGE)
3
PERSONNE (#NOM, AGE, PROF, ADR=>APPIM(ADI), NAPR=>APPIM(NAPR)) WITH ADR, NAPR NOT NULL
4
ÉCOLE (#NOMEC, ADEC, DIR=>PERSONNE(NOM)) WITH DIR NOT NULL
5
CLASSE (#NOMEC=>ECOLE(NOMEC), #NCL, MAITRE=>PERSONNE(NOM)) WITH MAITRE NOT NULL
6
ENFANT (#NOMP=>PERSONNE(NOM), #PRENOM, AN, NOMEC=>CLASSE(NOMEC), NCL=>CLASSE(NCL))
7
- Constraints : 
8
PROJ(IMMEUBLE, ADI) IN PROJ(APPIM, ADI) 
9
AND PROJ(ECOLE,NOMEC) IN PROJ(CLASSE, NOMEC) 
10
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
modèle 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).

Complément
Modèle UML