Professional Documents
Culture Documents
Solutions
2 mai 2011
Chapitre 1
Conception
1.1 Interprtation de schmas entit/association
1.1.1
Centre mdical
On vous donne un schmas E/A (figure 1.1) reprsentant des visites dans un centre mdical. Rpondez aux
questions suivantes en fonction des caractristiques de ce schma (i.e. : indiquez si la situation dcrite est
reprsentable, indpendamment de sa vraissemblance).
Patient
Medecin
Matricule
Nom
Medicament
Code
Libelle
No SS
Nom
0,n
1,n
Donne
0,n
Assiste
Prescrit
Nb prises
1,1
0,n
Consultation
No
Date
1,1
Solution :
NFP 107 et 107J - Exercices dirigs
CHAPITRE 1. CONCEPTION
1. Bien sr.
2. Non (un patient par consultation).
3. Oui.
4. Oui (pas de rapport entre un mdecin et une consultation).
1.1.2
Tournoi de tennis
Le second schma (figure 1.2) reprsente des rencontres dans un tournoi de tennis.
Joueur
No carte
Nom
0,n
Gagne
Score
0,n
1,1
Participe
Match
No
Se joue sur
1,1
2,2
Horaire
0,n
Terrain
No
Surface
F IGURE 1.2 Tournoi de tennis
Exercice A : Peut-on jouer des matchs de double ?
Exercice B : Un joueur peut-il gagner un match sans y avoir particip ?
Exercice C : Peut-il y avoir deux matchs sur le mme terrain la mme heure ?
Solution :
1. Non (cardinalit 2,2)
2. Oui (pas de lien participe / Gagne)
3. Oui (pas de contrainte sur lhoraire entre 2 matchs)
1.1.3
Un journal
Pour vous entraner : voici le schma E/A (figure 1.3 du systme dinformation (trs simplifi) dun quotidien.
Exercice A : Un article peut-il tre rdig par plusieurs journalistes ?
Exercice B : Un article peut-il tre publi plusieurs fois dans le mme numro ?
NFP 107 et 107J - Exercices dirigs
PERSONNALITE
JOURNALISTE
1,n
ID
Nom
Date naiss.
1,n
Interview
1,n
ID
Nom
Prenom
Nation.
1,n
A travaille pour
Redige
1,n
1,1
ARTICLE
JOURNAL
ID
Titre
Adresse
0,n
Parait dans
ID
Contenu
1,n
1,1
SUJET
NUMERO
Relatif a
CHAPITRE 1. CONCEPTION
0,n
ID
Libelle
ID
Date
F IGURE 1.3 Journal
CHAPITRE 1. CONCEPTION
Exercice C : Peut-il y avoir plusieurs articles sur le mme sujet dans le mme numro ?
Solution :
1. Non (1,1)
2. Non (lien unique)
3. Oui (pas de lien dunicit numro / sujet)
1.3. RTRO-CONCEPTION
CHAPITRE 1. CONCEPTION
1.3 Rtro-conception
On trouve dans un SGBD relationnel les relations ci-dessous. Les cls primaires sont soulignes, mais pas
les cls trangres.
IMMEUBLE (Adresse, Nb-tages, Date-construction, Nom-Grant)
APPART (Adresse, Numro, Type, Superficie, Etage)
PERSONNE (Nom, Age, Code-Profession)
OCCUPANT (Adresse, Numro-Appart, Nom-Occupant, Date-arrive, Date-dpart)
PROPRIT (Adresse, Nom-Propritaire, Quote-part)
TYPE-APPART (Code, Libell)
PROFESSION (Code, Libell)
Exercice A : Identifier les cls trangres dans chaque relation.
Exercice B : Reconstruire le schma E/A.
Exercice C : Existe-t-il des contraintes dintgrit ? Lesquelles ?
Exercice D : Certaines donnes du schma relationnel rsultent-elles doptimisation ?
Chapitre 2
Algbre Relationelle
2.1 Slection et Projection
Soit la relation
PERSONNE
Nom
Age
Ville
Marc
29
Paris
Catherine
32
Lyon
Sophie
54
Paris
Claude
13
Montpellier
Serge
40
Lyon
Exercice A : Donnez les rsultats des requtes suivantes :
Requte 1 : Age=30 (P ERSON N E) (slection)
Requte 2 : Age (P ERSON N E) (projection)
Requte 3 : Age (N om= Serge (P ERSON N E)) (projection, slection)
Exercice B : Exprimez les requtes suivantes en algbre relationnelle :
Requte 1 : les personnes (nom, ge, ville) qui habitent Paris.
Solution :
V ille= P aris (P ERSON N E)
Requte 2 : les personnes (nom, ge, ville) qui ont moins de 30 ans.
Solution :
Age<30 (P ERSON N E)
Requte 3 : les villes dans la relation PERSONNE.
Solution :
V ille (P ERSON N E)
Requte 4 : les noms des personnes habitant Paris.
Solution :
N om (V ille= P aris (P ERSON N E))
NFP 107 et 107J - Exercices dirigs
R
A
a
a
c
d
S
B
b
f
b
e
B
b
e
b
g
C
c
a
d
b
o les attributs A, B, C sont dfinis sur les domaines des lettres de lalphabet.
Donnez le rsultat des requtes suivantes :
Requte 1 : R S (jointure naturelle).
Requte 2 : A=C (B/B (R) S) (qui-jointure).
Requte 3 : R < S = R (R S) (semijoin).
Solution :
RS
A=C (B/B (R) S)
A B C
A B B
C
a b c
a b
e
a
a b d
a
f
e
a
c b c
c
b b
c
c b d
d
e
b
d
d e a
Exercice B : Est-ce que les quations suivantes sont vraies ?
A,B (R S) =
B,C (R S) =
R < S
A
B
a
b
c
b
d
e
R
S
(2.1)
(2.2)
Solution :
NON :
A,B (R S)
A
B
a
b
c
b
d
e
B,C (R S)
B
C
b
c
b
d
e
a
T
A
a
a
c
c
b
e
B
b
c
a
d
a
f
TS
A B
a b
a c
c a
b a
Solution 2 :
TS = T B/A,A/B (T)
Chapitre 3
3.1.1
3.1.2
ENO
10
EMP 20
30
40
DNO
1
DEPT
2
3
ENOM
Joe
Jack
Jim
Lucy
PROF
Ingnieur
Technicien
Vendeur
Ingnieur
DNOM
Commercial
Production
Dveloppement
DATEEMB
1.10.93
1.5.88
1.3.80
1.3.80
DIR
30
20
40
SAL
4000
3000
5000
5000
COMM
3000
2000
5000
5000
DNO
3
2
1
3
VILLE
New York
Houston
Boston
ENOM
Joe
Jack
PROF
Ingnieur
Technicien
DATEEMB
1.10.93
1.5.88
SAL
4000
3000
COMM
3000
2000
DNO
3
2
COMM
3000
2000
5000
5000
SAL
3000
5000
5000
5000
5000
ENO
10
30
40
40
30
COMM
3000
5000
5000
5000
5000
Exercice D : Exprimer par une phrase ce quon obtient en valuant les requtes prcdentes.
Solution :
Expression 1 : on obtient les employs dont le salaire est infrieur 5000.
Expression 2 : on obtient le numro et la commission des employs.
Expression 3 : on obtient les couples de numros demploys dont le premier a un salaire qui est
gal la commission du deuxime.
Exercice E : Quelle est lexpression de lalgbre relationnelle qui permettrait dobtenir le nom et la profession de lemploy de numro 10.
Solution :
EN OM,P ROF (EN O=10 (EM P ))
3.3. REQUTES
Exercice F : Idem pour la liste des noms des employs qui travaillent New York.
Solution :
EN OM (EM P (V ILLE= N ewY ork (DEP T )))
Exercice G : Idem pour avoir le nom du directeur du dpartement Commercial.
Solution :
EN OM (EM P EN O=DIR DIR (DN OM = Commercial (DEP T )))
3.3 Requtes
Exprimer les requtes Q1 Q18 laide de lalgbre relationnelle.
Exprimer en SQL les requtes Q1 Q24.
3.3.1
3.3. REQUTES
3.3.2
Jointures
SQL :
SELECT E2.ENOM
FROM EMP E1, EMP E2
WHERE E1.DNO = E2.DNO
AND E1.PROF = INGNIEUR;
3.3. REQUTES
Requte 11 : Donner le salaire et le nom des employs gagnant plus quun (au moins un) ingnieur.
Solution :
Algbre :
R1
R2
:=
:=
SQL :
SELECT E1.ENOM, E1.SAL
FROM EMP E1, EMP E2
WHERE E2.PROF=INGENIEUR
AND E1.SAL > E2.SAL;
ou
SELECT ENOM, SAL FROM EMP
WHERE SAL > ANY (SELECT SAL
FROM EMP
WHERE PROF=INGENIEUR);
Requte 12 : Donner le salaire et le nom des employs gagnant plus que tous les ingnieurs.
Solution :
SQL :
SELECT ENOM, SAL FROM EMP
WHERE SAL > ALL (SELECT SAL
FROM EMP
WHERE PROF=INGENIEUR);
Requte 13 : Donner les noms des employs et les noms de leurs directeurs.
Solution :
Algbre :
R1 :=
R2 :=
R3 :=
3.3. REQUTES
:=
R2
:=
SQL :
SELECT DISTINCT ENOM
FROM EMP E1, DEPT D1, EMP E2, DEPT D2
WHERE E1.DNO=D1.DNO
AND E2.DNO=D2.DNO
AND D1.DNOM=COMMERCIAL
NFP 107 et 107J - Exercices dirigs
3.3. REQUTES
AND D2.DNOM=PRODUCTION
AND E1.DATEEMB=E2.DATEEMB
ou
SELECT ENOM
FROM EMP, DEPT
WHERE EMP.DNO=DEPT.DNO
AND DNOM=COMMERCIAL
AND DATEEMB IN (SELECT DATEEMB
FROM EMP, DEPT
WHERE EMP.DNO=DEPT.DNO
AND DNOM=PRODUCTION);
Requte 18 : Donner les noms des employs embauchs avant tous les employs du dpartement 1.
Solution :
Algbre :
R1
R2
:=
:=
SQL :
SELECT ENOM
FROM EMP
WHERE DATEEMB < ALL (SELECT DATEEMB
FROM EMP
WHERE DNO=1);
Requte 19 : Donner les noms des employs ayant le mme emploi et le mme directeur que JOE.
Solution :
Algbre :
R1
R2
:=
:=
3.3.3
3.3. REQUTES
Requte 21 : Donner les noms, emplois et salaires des employs par emploi croissant et, pour chaque
emploi, par salaire dcroissant.
Solution :
SELECT ENOM, PROF, SAL
FROM EMP
ORDER BY PROF ASC, SAL DESC;
Requte 22 : Donner le salaire moyen des employs.
Solution :
SELECT AVG(SAL) AS SALAIRE MOYEN
FROM EMP;
Requte 23 : Donner le nombre demploys du dpartement PRODUCTION.
Solution :
SELECT COUNT(EMP.*)
FROM EMP, DEPT
WHERE EMP.DNO = DEPT.DNO
AND DEPT.DNOM = PRODUCTION;
Requte 24 : Les numros de dpartement et leur salaire maximum ?
Solution :
SELECT DNO, MAX(SAL)
FROM EMP
GROUP BY DNO;
Requte 25 : Donner les noms des employs ayant le salaire maximum de chaque dpartement.
Solution :
SELECT ENOM
FROM EMP
WHERE (DNO, SAL) IN (SELECT DNO, MAX(SAL)
FROM EMP
GROUP BY DNO);
ou
SELECT ENOM
FROM EMP E
WHERE SAL = (SELECT MAX(SAL)
FROM EMP F
WHERE F.DNO = E.DNO);
Requte 26 : Les professions et leur salaire moyen ?
Solution :
SELECT PROF, AVG(SAL)
FROM EMP
GROUP BY PROF;
NFP 107 et 107J - Exercices dirigs
3.3. REQUTES
PROF, AVG(SAL)
EMP
BY PROF
AVG(SAL) = (SELECT MIN(AVG(SAL))
FROM EMP
GROUP BY PROF);
Chapitre 4
4.2. REQUTES
4.2 Requtes
Exprimer les requtes suivantes laide de lalgbre relationnelle, puis les traduire en SQL.
Requte 1 : Donner ladresse des immeubles ayant plus de 10 tages et construits avant 1970.
Solution :
ADI (N BET AGES>10DAT EC<1970 IM M EU BLE)
SELECT ADI
FROM IMMEUBLE
WHERE NBETAGES > 10 AND DATEC < 1970
NFP 107 et 107J - Exercices dirigs
4.2. REQUTES
Requte 2 : Donner les noms des personnes qui habitent dans un immeuble dont ils sont propritaires
(occupants et habitants).
Solution :
N OM (P ERSON N E N OM =P ROP ADR=ADI IM M EU BLE)
SELECT NOM
FROM PERSONNE, IMMEUBLE
WHERE NOM = PROP AND ADR = ADI
Requte 3 : Donner les noms des personnes qui ne sont pas propritaires.
Solution :
N OM (P ERSON N E) P ROP/N OM (P ROP (IM M EU BLE))
SELECT
FROM
MINUS
SELECT
FROM
NOM
PERSONNE
PROP
IMMEUBLE
ou
SELECT NOM
FROM PERSONNE
WHERE NOM NOT IN (SELECT PROP
FROM IMMEUBLE)
Requte 4 : Donner les adresses des immeubles possds par des informaticiens dont lge est infrieur
40 ans.
Solution :
R1 :=
R2 :=
SELECT ADI
FROM PERSONNE, IMMEUBLE
WHERE NOM = PROP AND AGE < 40 AND PROF = INFORMATICIEN
Requte 5 : Donner la liste des occupants (nom, ge, profession) des immeubles possds par DUPONT.
Solution :
N OM,AGE,P ROF (P ROP = DU P ON T (IM M EU BLE) ADI=ADR (P ERSON N E))
SELECT P.NOM, P.AGE, P.PROF
FROM PERSONNE P, IMMEUBLE I, APPIM A
WHERE I.ADI = A.ADI
AND I.PROP = DUPONT
AND P.NOM = A.OCCUP
4.2. REQUTES
R2 :=
R3 :=
ADI,N AP R AP P IM R1
N OM,P ROF (P ERSON N E N OM =P ROP (IM M EU BLE R2))
4.2. REQUTES
AND
AND
AND
AND
E.NOMEC = C.NOMEC
E.NCL = C.NCL
E.NOMP = R.NOM
M.ADR = R.ADR
ou (imbriqu) :
SELECT C.MAITRE
FROM CLASSE C, PERSONNE P
WHERE C.MAITRE = P.NOM AND P.ADR IN (SELECT P.ADR
FROM PERSONNE P, ENFANT E
WHERE P.NOM = E.NOMP AND
E.NOMEC = C.NOMEC AND
E.NCL = C.NCL)
Requte 8 : Donner ladresse de limmeuble, la date de construction, le type dappartement et ltage o
habitent chacun des matres des enfants de DUPONT.
Solution :
R1
R2
R3
:=
:=
:=
R2 :=
Requte 10 : Donner le nom et lge des personnes qui sont propritaires mais qui ne sont ni matre ni
directeur dcole (des classes et coles rpertories dans ECOLE et CLASSE).
Solution :
R1
R2
R3
R4
:=
:=
:=
:=
4.4 Contraintes
Indiquer de la faon la plus formelle possible certaines contraintes que les donnes de la base doivent respecter pour tre conformes la ralit modlise ici.
Solution :
Inclusions des ensembles, par exemple :
IM M EU BLE[P ROP ] P ERSON N E[N OM ]
ECLOLE[DIR] P ERSON N E[N OM ]
CLASSE[M AIT RE] P ERSON N E[N OM ]
EN F AN T [N OM P ] P ERSON N E[N OM ]
Ltage dun appartement dans un immeuble est infrieur ou gal au nombre dtages de cet immeuble :
(IM M EU BLE(a, n, d, p, ) AP P IM (a, ap, o, t, s, e)) e n
NFP 107 et 107J - Exercices dirigs
4.4. CONTRAINTES
Le nombre dlves dans une classe correspond lensemble des n-uplets dans la relation ENFANT :
CLASSE(e, c, m, n) card({EN F AN T : N OM EC = e N CL = c}) = n
Pour les professions
d {ECOLE[DIR]} a, ad, apP ERSON N E(d, a, IN ST IT U T EU R , ad, ap)
etc...
Chapitre 5
5.2 Requtes
crire les requtes suivantes en algbre relationnelle .
5.2.1
Requte 1 : Dans quelle salle et quelle heure peut on voir le film Mad Max ?
Solution :
Algbre :
SQL :
SELECT Nom, Horaire
FROM SALLE
WHERE Titre = Mad Max
Requte 2 : Quels sont les films raliss par Orson Welles ?
Solution :
NFP 107 et 107J - Exercices dirigs
5.2. REQUTES
Algbre :
SQL :
SELECT Titre
FROM FILM
WHERE Realisateur = Welles
Requte 3 : Quels sont les Acteurs du film Ran ?
Solution :
Algbre :
SQL :
SELECT Acteur
FROM FILM
WHERE Titre = Ran
5.2.2
Jointures
Requte 4 : Dans quelles salles peut-on voir un film avec Simone Signoret ?
Solution :
Algbre :
SQL :
SELECT Nom
FROM SALLE, FILM
WHERE SALLE.Titre = FILM.Titre
AND FILM.Acteur = Signoret
Requte 5 : Dans quelles salles peut on voir Marlon Brando aprs 16h ?
Solution :
Algbre :
SQL :
SELECT Nom
FROM SALLE, FILM
WHERE SALLE.Titre = FILM.Titre
AND FILM.Acteur = Brando
AND SALLE.Horaire > 16
Requte 6 : Quels sont les Acteurs qui ont produit un film ?
Solution :
Algbre :
SQL :
5.2. REQUTES
SELECT Acteur
FROM PRODUIT, FILM
WHERE Acteur = Producteur
Requte 7 : Quels sont les Acteurs qui ont produit un film dans lequel ils jouent ?
Solution :
Algbre :
SQL :
SELECT Acteur
FROM FILM, PRODUIT
WHERE FILM.Titre = PRODUIT.Titre
AND Acteur = Producteur
Requte 8 : Quels sont les Acteurs qui ont produit et ralis un mme film ?
Solution :
Algbre :
R1 :=
R2 :=
SQL :
SELECT A.Acteur
FROM FILM A, FILM B, PRODUIT C
WHERE A.Acteur = B.Realisateur
AND B.Realisateur = C.Producteur
AND B.Titre = C.Titre
Requte 9 : Quels sont les Producteurs qui regardent les films quils ont produits ?
Solution :
Algbre :
5.2.3
Difference
Spectateur (AIM E V U )
5.2. REQUTES
5.2.4
Division
Requte 15 : Quels Spectateurs ont vu tous les films ? (ou Spectateurs pour lesquels il nexiste pas un film
quils nont pas vu)
Solution :
Algbre :
V U T itre (F ILM )
SQL :
SELECT Spectateur
FROM Vu v1
WHERE NOT EXISTS ( SELECT *
FROM FILM f
WHERE NOT EXISTS ( SELECT *
FROM Vu v2
WHERE v2.Titre = f.Titre
AND v2.Spectateur = v1.Spectateur
) )
Requte 16 : Quels Acteurs jouent dans tous les films de Welles ? (ou Acteurs pour lesquels il nexiste
pas un film de Welles quils nont pas jou)
Solution :
Algbre :
SQL :
SELECT fx.Acteur
FROM FILM fx
WHERE NOT EXISTS ( SELECT
FROM
WHERE
AND
fy
FILM fy
fy.Realisateur = Welles
NOT EXISTS ( SELECT fz
FROM FILM fz
WHERE fz.Titre = fy.Titre
AND fz.Acteur = fx.Acteur
) )
5.2. REQUTES
Requte 17 : Quels sont les Spectateurs qui aiment tous les films quils ont vu ? (ou Spectateurs pour
lesquels il nexiste pas un film quils ont vu et quils nont pas aim)
Solution :
Algbre :
(AIM E Spectateur/Spectateur (V U )) V U
Requte 18 : Quels sont les Producteurs qui voient tous les films quils ont produit ? (ou Producteurs pour
lesquels il nexiste pas un film quils ont produit et quils nont pas vu)
Solution :
Algbre :
(P roducteur P RODU IT P roducteur=Spectateur V U ) P RODU IT
Requte 19 : Quels Producteurs voient tous les films de Kurosawa ? (ou Producteurs pour lesquels il
nexiste pas un film de Kurosawa quils nont pas vu)
Solution :
Algbre :
R1
R2
R3
:=
:=
:=