Le retour des écoliers

[45 minutes]

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

Donner l'adresse des immeubles ayant plus de 10 étages et construits avant 1970.

Solution

1
R1 = SELECTION  (IMMEUBLE, NBETAGES>10 ET DATEC<1970
2
R = PROJECTION (R1, ADI)

Question

Donner les noms des personnes qui habitent dans un immeuble dont ils sont propriétaires.

Solution

1
R1 = JOINTURE (PERSONNE, IMMEUBLE, PERSONNES.NOM=IMMEUBLE .PROP ET PERSONNE.ADR=IMMEUBLE.ADI
2
R = PROJECTION (R1, NOM)

Question

Donner les noms des personnes qui ne sont pas propriétaires.

Solution

1
R1 = PROJECTION (PERSONNE, NOM)
2
R2 = PROJECTION (IMMEUBLE, PROP)
3
R = R1 - R2

Question

Donner les adresses des immeubles possédés par des informaticiens dont l'âge est inférieur à 40 ans .

Solution

1
R1 = SELECTION (PERSONNE, PROF="INFORMATICIEN" AND AGE<40)
2
R2 = JOINTURE (R1, IMMEUBLE, IMMEUBLE.PROP=R1.NOM)
3
R = PROJECTION ( R2, ADI)

Question

Donner la liste des occupants (nom, âge, profession) des immeubles possédés par DUPONT.

Solution

1
R1 = SELECTION (IMMEUBLE, PROP="DUPONT")
2
R2 = JOINTURE (R1, APPIM, APPIM.ADI=R1.ADI)
3
R3 = JOINTURE (R2, PERSONNE, PERSONNE.NOM=R2.OCCUP)
4
R = PROJECTION (R3, NOM, AGE, PROF)

Question

Donner le nom et la profession des propriétaires d'immeubles dans lesquels il y a des appartements vides.

Solution

1
R1=SELECTION (APPIM, OCCUP="NULL")
2
R2 = JOINTURE (IMMEUBLE, R1, R1.ADI=IMMEUBLE.ADI)
3
R3 = JOINTURE (R2, PERSONNE, PERSONNE.NOM=R2.PROP)
4
R = PROJECTION (R3, PROP, PROF)

Question

Donner les noms des maîtres qui habitent dans le même immeuble (à la même adresse) qu'au moins un de leurs élèves (on suppose que les enfants vivent sous le même toit que leur parents).

Solution

1
R1 =JOINTURE (CLASSE, ENFANT, NOMEC=NOMEC AND NCL=NCL)
2
R2 = JOINTURE (R1, PERSONNE, PERSONNE.NOM=R1. MAITRE)
3
R3 = JOINTURE (R2, PERSONNE, PERSONNE.NOM=R2.NOMP AND PERSONNE.ADR=R2.ADR)
4
R = PROJECTION (R3, MAITRE)

Question

Donner l'adresse de l'immeuble, la date de construction, le type d'appartement et l'étage où habitent chacun des maîtres des enfants de DUPONT.

Solution

1
R1 = SELECTION (ENFANT, NOMP="DUPONT ")
2
R2 = JOINTURE (CLASSE, R1, NOMEC=CLASSE.NOMEC AND CLASSE.NCL=R1.NCL)
3
R3 = JOINTURE (R2, PERSONNE.NOM=R2.MAITRE)
4
R4 = JOINTURE (R3, APPIM, APPIM.ADI=R3.ADR AND R3.NAPR=APPIM.NAPR)
5
R5 = JOINTURE (R4, IMMEUBLE, IMMEUBLE.ADI=R4.ADR)
6
R = PROJECTION (R5, ADI, DATEC, TYPE, ETAGE)