Вы находитесь на странице: 1из 2

Département d’Informatique,

F. E. I., USTHB.

Rattrapage de Bases de Données 


(2010/2011)

Exercice N°1 :
L’office national des manifestations culturelles veut informatiser sa gestion des
représentations théâtrales. Nous disposons des informations suivantes :

Les représentations sont données par plusieurs troupes théâtrales, chaque troupe est identifiée
par un numéro unique (NUMT), possède un nom (NOMT), peut être professionnelle ou
amateur selon son type (TYPET), et est composée d’un ensemble de comédiens, dont un est
responsable de la troupe.
Un comédien est caractérisé par un numéro unique (NUMC), un nom (NOMC), et appartient
à une seule troupe (on ne gère pas l’historique).
Chaque troupe peut interpréter des pièces de théâtre. Chaque pièce est identifié par un numéro
unique (NUMP), a un titre (TITREP), et est écrite par un auteur (NOMAUT). Une pièce peut
être interprétée par différentes troupes, mais pour chaque interprétation il y a un seul metteur
en scène (NOMMS).
Chaque comédien d’une troupe joue un rôle (NOMR) dans chaque pièce.
Plusieurs représentations d’une pièce par une troupe peuvent avoir lieu, à des dates
différentes. Mais bien sûr à une date donnée une troupe ne peut donner qu’une seule
représentation. Celle-ci se fait au niveau d’un théâtre.
Chaque théâtre est caractérisé par un numéro unique (NUMTH), un nom (NOMTH), et se
trouve dans une ville (VILLETH).

a) Donner l’ensemble des dépendances fonctionnelles ?


b) Déterminer la base de données relationnelle 3 FN selon l’algorithme de synthèse ?

Les Df :
NUMTNOMT, TYPET, NUMCRESP
NUMC NOMC, NUMT
NUMP TITREP, NOMAUT
NUMP, NUMTNOMMS
NUMC, NUMT, NUMPNOMR (peut être simplifiée NUMC, NUMPNOMR )
NUMT, DATE  NUMP, NUMTH
NUMTHNOMTH, VILLETH

Exercice N°2 :
Considérons la base de données relationnelle suivante :

Cheval (NumCh, NomCh, SexeCh, NumP) Le prix d’une course est le montant gagné par le
Propriétaire (NumP, NomP, Nationalité) premier.
Jockey (NumJ, NomJ, DateNaissJ) Le classement est le rang du couple cheval,
Course (NumC, NomC, DateC, PrixC) jockey dans la course (1er, 2ème,…etc).
Participe (NumCh, NumC, NumJ, Classement)

Exprimez les requêtes suivantes en langage algébrique :


1- Donnez les noms des jockeys n’ayant gagné aucune course
2- Donnez les noms des chevaux ayant participé à toutes les courses dont le prix est supérieur à
250000 DA
Exprimez les requêtes suivantes en langage prédicatif :
3- Quels sont les propriétaires (NumP, NomP) dont tous les chevaux ont gagné au moins une
course ?
4- Quels sont les jockeys (NomJ), qui se classent dans les 2 premières places (soit 1 er soit 2ème),
dans toutes les courses auxquelles ils participent ?
Exprimez les requêtes suivantes en SQL :
5- Quelle est le montant global gagné par chaque cheval (NumCh, NomCh)  ?
6- Quelle est le cheval (NumCh, NomCh) qui a gagné le plus grand nombre de courses ?

NumJ
1- NomJ(NumJ(Jockey) - NumJ(Classement=’1’(Participe)) Jockey)

NumCh

2- NomCh((NumCh,NumC(Partcipe)÷ NumC(PrixC>250000(Course))  Cheval))

3-{P.Nump, P.Nomp/ Propriétaire(P)   ch Cheval(ch)  ch.NumP=P.NumP  x Partcipe(x) 


x.NumCh= ch.NumCh  x.Classement=’1’}

4- {J.NomJ/ Jockey(J)  P Partcipe(P)  P.NumJ= J.NumJ  P.Classement’1’ 


P.Classement’2’}

5- Select ch.NumCh, NomCh, Sum(PrixC)


From Cheval ch, Course c, Participe p
Where ch.NumCh = p.NumCh and p.NumC=c.NumC and Classement=’1’
Group by ch.NumCh, NomCh ;

6- Select ch.NumCh, NomCh,


From Cheval ch, Participe p
Where ch.NumCh = p.NumCh and Classement=’1’
Group by ch.NumCh, NomCh 
Having count(*) = (Select Max (Count(*))
From Cheval ch, Participe p
Where ch.NumCh = p.NumCh and Classement=’1’
Group by ch.NumCh, NomCh ) ;

Вам также может понравиться