Sujet du contrôle 2 pour les EI 03/04

Institut National des Télécommunications

Contrôle des connaissances

Bases de données

BD21

Date : 12/2/2003 

Durée : 1h30

Coordonnateur : Samir Tata

Documents autorisés: ceux distribués en cours

Avertissements

1/ Lisez attentivement le sujet.

2/ Les questions sont indépendantes les unes des autres.

3/ Essayez d'être clair et précis dans vos réponses.

4/ Soignez la présentation, dans la mesure du possible.

5/ Barème indicatif

Question 1 : 4 points

Question 2 : 6 points (Q2.1 = 2, Q2.2 = 2, Q2,3=2)

Question 3 : 4 points (Q3.1 = 2, Q3,2 = 2)

Question 4 : 4 points (Q4,1 = 2, Q4,2 = 2)

Question 5 : 2 points

______________________________________________________________________________

 

La mairie d'Evry dispose d'une base de données dont le schéma est le suivant:

IMMEUBLE (Adresse, NbEtages, DateCons)

APPARTEMENT (Adresse, NumApp, Type, Superficie, Etage, Occup, Proprio)

PERSONNE (Nom, Age, Profession, Adresse, NumApp)

Les clés sont soulignées et les clés étrangères sont en gras. La sémantique associée à ce schéma est la suivante:

La relation IMMEUBLE (Adresse,
NbEtages, DateCons) est identifiée par l'adresse (on fait l'hypothèse
pour simplifier, que l'adresse identifie de manière unique un
immeuble). Elle est caractérisée par un nombre d'étages, et une date de
construction.

La relation APPARTEMENT (Adresse, NumApp, Type, Superficie, Etage, Occup, Proprio)
est identifiée par l'adresse d'immeuble et le numéro d'appartement
(Adresse, NumApp). Elle est caractérisée par, le type de l'appartement
(Studio, F2,...), sa superficie, l'étage où se situe l'appartement,
l'occupant de l'appartement (nom de la personne ayant signé le contrat
de location, éventuellement aucun) et le nom du propriétaire de
l'appartement. 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é, cet attribut prend la valeur NULL.
Adresse est une clé étrangère sur la relation IMMEUBLE. Proprio est une
clé étrangère sur la relation PERSONNE. Occup est une clé étrangère sur
la relation PERSONNE.

La relation PERSONNE (Nom, Age, Profession, Adresse, NumApp)
est identifiée par un nom de personne (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). Elle est caractérisée par l'âge de la
personne, sa profession et son adresse (il s'agit d'un immeuble et d'un
numéro d'appartement). les attributs Adresse et NumApp constituent une
clé étrangère sur la relation APPARTEMENT.

Question 1

En vous aidant des règles de passage d'une
modélisation Entité/Association à une modélisation relationnelle "à
l'envers", proposer un schéma Entité/Association équivalent à ce schéma
relationnel. Ce schéma devra comporter la description des entités (avec
leurs propriétés), des entités faibles (s'il y a lieu), des
associations (avec leurs propriétés) ainsi que les cardinalités minimum
et maximum des associations binaires.

Question 2

Exprimer chacune des 2 questions suivantes, d'une part en algèbre relationnelle sous la forme d'un arbre algébrique, et d'autre part en SQL :

(Q 2.1) Donner l'adresse des immeubles ayant plus de 10 étages et construits entre 1970 et 1980.

(Q 2.2) Donner les noms des personnes qui habitent des appartements de type 'F2'.

(Q 2.3) Donner les noms des personnes qui ne sont pas propriétaires.

Question 3

Exprimer les questions suivantes en SQL :

(Q 3.1) Donner le nombre d'appartements de l'immeuble dont l'adresse est '9 rue Charles Fourier'

(Q 3.2) Donner l'adresse de l'immeuble qui a le plus grand nombre d'appartements.

Question 4

Exprimer les questions suivantes en algèbre relationnelle (si possible) ou en SQL :

(Q 4.1) Donner pour chaque personne, le nombre d'appartements dont il est propriétaire.

Remarque: il existe des personnes qui ne sont propriétaires d'aucun appartement.

(Q 4.2) Donner les noms des personnes qui sont propriétaires de tous les appartements d'au moins un immeuble.

Question 5

On désire prototyper une application au dessus du
schéma relationnel de la base de données de la mairie d'Evry. Pour cela
on décide d’utiliser l’environnement de développement à base de
formulaires HTML utilisé dans le TP conception et développement
d’applications. On veut construire un formulaire permettant de générer
un formulaire d’insertion d’un tuple dans la relation PERSONNE. Le
développeur écrit le formulaire suivant :

<h1>Insertion dans la table personne</h1><p>

<form name="f1" action="http://mica/~oracle/cgi-bin/multi2.cgi" method="GET">

<input type ="hidden" name="login" value="binom25/iobd@TPC">

<input type="hidden" name="sqlstatement" value="">

<input type="hidden" name="table" value="PERSONNES">

<input type="button" value="inserer" onClick="for1.submit() ;">

</form>

</body>

</html>

A l’exécution le développeur n’obtient pas le
résultat escompté. Pouvez vous l’aider en trouvant les 4 erreurs
contenues dans ce formulaire.