Académique Documents
Professionnel Documents
Culture Documents
2022-2023
TD Modèle relationnel
Exercice 1 Quelques requêtes simples.
Soient les relations CHIEN S , HOM M ES et DRESSE
CHIENS Prenom HOMMES Prenom DRESSE Homme Chien Annee
Arthur Arthur Arthur Corso 2010
Billy Bernard Bernard Billy 2012
Corso Charles Charles Corso 2008
Damien
1. Donner la valeur (i.e. écrire la relation calculée par) des expressions suivantes, et indiquer en
français ce qu'elles calculent :
σAnnee>2009 (DRESSE) , HOM M ES ∩ CHIEN S , Card(HOM M ES ∪ CHIEN S),
Π(homme,chien) (DRESSE), (Charles) ∈ HOM M ES ,
5. Pour gérer les liens entre chiens, nous avons la relation AV U (P renom_1, P renom_2). Si le
couple (p1 , p2 ) appartient à AV U , alors cela veut dire que le chien p1 a déjà vu le chien p2 . Bien
sûr cela n'est pas forcément réciproque, le chien p1 a pu avoir vu p2 sans que p2 ait vu p1 ; mais
il peut y avoir 2 exemplaires de la même paire {p1 , p2 } si les prénoms ne sont pas dans le même
ordre (ex: si AV U contient (Billy, Corso) et (Corso, Billy) indique que Billy a vu, et a été vu,
par Corso).
• Donner une expression calculant la liste de tous les couples de chiens (A, B) tels que A a vu B
et que B a vu A (chacun a vu l'autre).
• Comme précédemment, donner une expression calculant la liste de toutes les paires {A, B}
telles que A a vu B et B a vu A. Mais attention, cette fois, on veut que chaque paire apparaisse
une seule fois. Par exemple, si AV U contient les deux couples (Billy, Corso) et (Corso, Billy),
on achera un seul de ces deux couples. Si AV U contient un seul des deux couples (Billy, Corso)
ou (Corso, Billy), on n'achera aucun de ces deux couples.
Remarque : nous avons la possibilité de comparer les chaines de caractères avec l'opérateur <.
1
6. Lorsqu'on fait des manipulations sur les relations, il faut pouvoir dénir précisement, sans aucune
ambiguité les attributs que l'on souhaite manipuler. Cela pose parfois certains problèmes : par
exemple si on veut utiliser dans une même expression plusieurs relations dont certains attributs
portent le même nom, ou bien lorsqu'on veut faire l'union de relations dont les attributs portent
des noms diérents.
La fonction rename(table, {oldN ame_1→newN ame_1, ...oldN ame_i→newN ame_i, ...}) per-
met de renommer les attributs d'une relation.
Ainsi rename(DRESSE, {homme→prenom_1, chien→prenom_2}) retourne comme résultat
la relation :
prenom_1 prenom_2 Annee
Arthur Corso 2010
Billy Belphegor 2012
Catherine Corso 2002
• Écrire l'aectation (ou les suites d'aectations) permettant de remplir la table AV U avec
l'ensemble de tous les liens de connaissances possibles entre animaux, que ce soit entre chien et
humain, entre chien et chien, entre humain et humain, ou entre humain et chien.
Dans l'absolu, il faudrait faire ce renommage à chaque fois que nécessaire ; mais en pratique c'est
très lourd de l'écrire, et on s'abstiendra en TD si le contexte ou les noms sont clairs et lèvent
toute ambiguité.
2. La clé de la relation Séjour n'est pas précisée. Pour chacun des cas suivant, donner la bonne
clé de cette relation (on suppose évidemment que l'hôpital peut accueillir autant de malades que
nécessaire chaque jour) :
2
a) Un malade séjourne au plus une fois dans l'hôpital.
b) Un malade séjourne autant de fois qu'il est nécessaire (bien sûr à des dates d'entrées dif-
férentes).
c) Si un malade eectue plusieurs séjours, alors, alors ce doit être à chaque fois sous la respons-
abilité de médecins diérents.
1. Tout système de gestion de base de données doit respecter certaintes propriétés, lesquelles ne
sont pas respectées ici ?
3
Exercice 4
Soit le schéma relationnel :
Fleuve = (NumFleu, Nom, Longueur)
Traverse = (NumFleu, NumPays)
NumFleu est une clé étrangère qui référence Fleuve(NumFleu),
NumPays est une clé étrangère qui référence Pays(NumPays).
Pays = (NumPays, Nom, Supercie, Population)
Appartient = (NumPays, NomCont, Pourcentage)
NumPays est une clé étrangère qui référence Pays(NumPays),
NomCont est une clé étrangère qui référence Continent(Nom).
Continent = (Nom, Supercie)
Appartient
La relation Pourcentage % surface du pays NumPays appartenant au
indique le de la
continentNomCont NumPays, nous avons dans Appartient
. Exemple : si la Turquie a 12 comme
les deux enregistrements (12, Europe, 10%) (12, Asie, 90%)
et