Vous êtes sur la page 1sur 80

ConservatoireNational des Artset Métiers

292 Rue St Martin 75141 Paris Cedex03

Exercices Dirigés enBases deDonnées
M. Scholl,B. Amann,P. Rigaux et D. Vodislav

Solutions

27 septembre 2001
Table des matières

1 Conception 3
1.1 Interprétation deschémasentité/association . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Centre médical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 Tournoi detennis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.3 Un journal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Modèleréseau. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Modèle relationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Rétro­conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Algèbre Relationelle 7
2.1 Sélectionet Projection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Jointure relationnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 Auto­JointureetRenommage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3 Algèbre: Compagnie d’Assurance 10
3.1 Schéma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 Requêtes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4 Algèbre­ SQL: Employés ­ Départements 12
4.1 Schéma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1.1 Relation des Employés (EMP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1.2 Relationdes Départements(DEPT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2 OpérationsAlgébriques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.3 Requêtes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3.1 Interrogationd’une seuleRelation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3.2 Jointures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.3.3 Valeurs Nulles,Tris, Groupes,Agrégatset Expressions . . . . . . . . . . . . . . . . . . 19

5 Algèbre ­ SQL: Appartements ­ Écoles 21
5.1 Schéma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.2 Requêtes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.3 Mise à jour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.4 Contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

6 SQL: Fournisseurs ­ Produits ­ Clients 28
6.1 Schéma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.2 Requêtes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

7 Calcul ­ SQL ­ Algèbre: Cinémas ­ Films 32
7.1 Schéma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
7.2 Requêtes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
7.2.1 Interrogationd’une seuleRelation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
7.2.2 Jointures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7.2.3 Difference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.2.4 Division. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

8 Décomposition 40
8.1 Calcul desClés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
8.2 Troisième FormeNormale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
8.3 DécompositionsansPerted’Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
8.4 Préservationdes DépendancesFonctionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
8.5 Forme NormaledeBoyce­Codd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

9 Organisation Physique 51

10 Algorithmesde Jointure 56

11 Optimisationde Requêtes 60

12 Concurrence 73
12.1 Sérialisabilité etrecouvrabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
12.1.1 Graphe de sérialisabilité et équivalencedesexécutions . . . . . . . . . . . . . . . . . . 73
12.1.2 Recouvrabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
12.2 Contrôle deconcurrence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
12.2.1 Verrouillage à 2 phases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
12.2.2 Estampillageet la règle deThomas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
12.2.3 Comparaison desméthodes decontrôle deconcurrence. . . . . . . . . . . . . . . . . . 76
12.3 Reprise aprèspanne. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
12.3.1 Journalisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
12.4 Concurrence:Gestion Bancaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

Vertigo/CNAM, Paris SOLUTIONS 2
Interprétation deschémas entité/association

Chapitre1

Conception

1.1 Interprétationde schémasentité/association

1.1.1 Centre médical

Onvous donne un schémas E/A (figure 1.1)représentant des visites dans un centre médical.Répondez aux
questions suivantes en fonctiondes caractéristiques de ceschéma(i.e.: indiquez si la situation décrite est
représentable, indépendamment desa vraissemblance).

Medecin Patient
Matricule
Nom No SS
Nom
Medicament 0,n
Code 1,n
Libelle
0,n
Donne

Prescrit Assiste
Nb prises 1,1

Consultation
0,n No 1,1
Date

F IG .1.1–Centremédical

ExerciceA: Unpatientpeut­ileffectuerplusieursvisites?
ExerciceB: Unmédecinpeut­ilrecevoirplusieurspatientsdanslamêmeconsultation?
ExerciceC: Peut­onprescrireplusieursmédicamentsdansunemêmeconsultation?
ExerciceD: Deuxmédecinsdifférentspeuvent­ilsprescrirelemêmemédicament?

Solution:

1. Biensûr.

Vertigo/CNAM,Paris SOLUTIONS 3
Modèleréseau

2. Non(unpatientparconsultation).
3. Oui.
4. Oui(pasderapportentreunmédecinetuneconsultation).

1.1.2 Tournoidetennis

Lesecondschéma(figure1.2)représentedesrencontresdansuntournoidetennis.

Joueur
No carte 0,n Gagne
Nom Score
0,n 1,1
Participe
Match
1,1 Se joue sur
No
2,2
Horaire 0,n
Terrain
No
Surface

F IG .1.2–Tournoidetennis

ExerciceA: Peut­onjouerdesmatchsdedouble?
ExerciceB: Unjoueurpeut­ilgagnerunmatchsansyavoirparticipé?
ExerciceC: Peut­ilyavoirdeuxmatchssurlemêmeterrainàlamêmeheure?

1.1.3 Unjournal

Pourvousentraîner:voicileschémaE/A(figure1.3dusystèmed’information(trèssimplifié)d’unquotidien.

ExerciceA: Unarticlepeut­ilêtrerédigéparplusieursjournalistes?
ExerciceB: Unarticlepeut­ilêtrepubliéplusieursfoisdanslemêmenuméro?
ExerciceC: Peut­ilyavoirplusieursarticlessurlemêmesujetdanslemêmenuméro?
ExerciceD: ...

1.2 Modèleréseau
ExerciceA: PourchacundesschémasE/Adonnésprécédemment,construireleschémaréseaucorres­
pondant(typesd’enregistrementsettypesdesets).
ExerciceB: Exprimezlesrequêtessuivantes:
1. LalistedesconsultationsduDrDuchemin.
2. Lespatientsquiontconsultéle15mai1997.

Vertigo/CNAM,Paris SOLUTIONS 4
Modèlerelationnel

PERSONNALITE
JOURNALISTE
1,n 1,n ID
ID Interview Nom
Nom
Prenom
Date naiss. 1,n
Nation.
1,n
A travaille pour
Redige
1,n JOURNAL
1,1 ID
Titre
ARTICLE
0,n Adresse
ID Parait dans
Contenu

1,n
1,1
SUJET
NUMERO
ID
Relatif a 0,n ID
Libelle
Date

F IG .1.3–Journal

3. Aquellesdatesa­t­onprescritdel’aspirine?
4. Lesjoueursquiontgagnéaumoinsunmatch.
5. Lesjoeursquisesontrencontrésdansunmatch.

1.3 Modèlerelationnel
ExerciceA: PourchacundesschémasE/Adonnésprécédemment,construireleschémarelationnelcor­
respondant.Indiquezprécisément:
–Lacléprimaire.
–Lesclésétrangères.
–Lescontrainteséventuelles.

Solution:
Exemplepourlecentremédical:
–Médicament(Code,Libellé).
–Consultation(ID­consultation, Matricule, NO­SS, Date). Matriculeet NO­SSsont lesclés
étrangères.
–Prescription(Code­médicament,ID­consultation,Nb­prises)
–Médecin(Matricule,Nom).
–Patient(NO­SS,Nom).
✂✁☎✄✝✆✟✞✡✠☞☛✍✌✎☛✑✏✑✁☎✄ ✌✓☛✍✔✖✕

ExerciceB: DonnezlacommandeCreateTablepourlestables et ✒
.
Solution:

Vertigo/CNAM,Paris SOLUTIONS 5
Rétro­conception

ExemplepourlatableConsultation:
CreateTableConsultation
(Id­consultation NUMBER(10),
Matriculeé NUMBER(10),
NO­SS NUMBER(10),
Date­consultation DATE,
PRIMARYKEY(Id­consultation),
FOREIGNKEYMatriculeREFERENCESMédecin,
FOREIGNKEYNO­SSREFERENCESPatient)

ExerciceC: Répondezauxmêmesrequêtesquecellesdonnéespourlemodèleréseau(enalgèbreeten
SQL).

1.4 Rétro­conception

OntrouvedansunSGBDrelationnellesrelationsci­dessous.Lesclésprimairessontsoulignées,maispas
lesclésétrangères.

IMMEUBLE(Adresse,Nb­étages,Date­construction,Nom­Gérant)
APPART(Adresse,Numéro,Type,Superficie,Etage)
PERSONNE(Nom,Age,Code­Profession)
OCCUPANT(Adresse,Numéro­Appart,Nom­Occupant,Date­arrivée,Date­départ)
PROPRIÉTÉ(Adresse,Nom­Propriétaire,Quote­part)
TYPE­APPART(Code,Libellé)
PROFESSION(Code,Libellé)

ExerciceA: Identifierlesclésétrangèresdanschaquerelation.
ExerciceB: ReconstruireleschémaE/A.
ExerciceC: Existe­t­ildescontraintesd’intégrité?Lesquelles?
ExerciceD: Certainesdonnéesduschémarelationnelrésultent­ellesd’optimisation?

Vertigo/CNAM,Paris SOLUTIONS 6
SélectionetProjection

Chapitre2

AlgèbreRelationelle

2.1 SélectionetProjection

Soitlarelation

PERSONNE
Nom Age Ville
Marc 29 Paris
Catherine 32 Lyon
Sophie 54 Paris
Claude 13 Montpellier
Serge 40 Lyon

ExerciceA: Donnezlesrésultatsdesrequêtessuivantes:
Requête1: (sélection)
✗✙✘✛✚✢✜✑✣✝✤✦✥★✧☞✩✫✪✭✬✂✮✰✯✂✱✲✱✲✪✭✳

Requête2: (projection)✴ ✘✛✚✢✜ ✧☞✩✫✪✵✬✫✮✶✯✂✱✲✱✷✪✭✳

Requête3: (projection,sélection)
✴✸✘✛✚✢✜✹✧☞✗✙✺✼✻✾✽✿✣❁❀❃❂❄✜✑❅✾✚✢✜✑❀✾✧❆✩✫✪✵✬✫✮✶✯✂✱✲✱✲✪❇✳✦✳

ExerciceB: Exprimezlesrequêtessuivantesenalgèbrerelationnelle:
Requête1: lespersonnes(nom,âge,ville)quihabitentParis.
Solution:
✗✡❈❊❉❃❋ ●❋❃✜✑✣✝❀■❍ ❊❏❑ ❅✾❉▼▲✑❀✾✧☞✩✫✪✵✬✫✮✶✯✂✱✲✱✷✪✭✳

Requête2: lespersonnes(nom,âge,ville)quiontmoinsde30ans.
Solution:
✗ ✘✛✚✢✜❖◆✛✤✦✥ ✧❆✩✫✪✵✬✫✮✶✯✂✱✲✱✲✪✭✳

Requête3: lesvillesdanslarelationPERSONNE.
Solution:
✴ ❈❊❉❃❋●❋❃✜ ✧☞✩✫✪✵✬✫✮✶✯✂✱✲✱✷✪✭✳

Requête4: lesnomsdespersonneshabitantàParis.
Solution:
✴ ✺✼✻✾✽ ✧❆✗ ❈❊❉❃❋●❋❃✜✑✣ ❀ ❍✝❏✢❅✾❉ ▼▲ ❀ ✧☞✩✫✪✵✬✫✮✶✯✂✱✲✱✷✪✭✳✦✳

Vertigo/CNAM,Paris SOLUTIONS 7
Auto­JointureetRenommage

2.2 Jointurerelationnelle
ExerciceA: SoientRetSlesrelations

R S
A B B C
a b b c
a f e a
c b b d
d e g b

oùlesattributsA,B,Csontdéfinissurlesdomainesdeslettresdel’alphabet.
Donnezlerésultatdesrequêtessuivantes:
Requête1: ✬◗€❘✮
(jointurenaturelle).
Requête2: ✗✙✘❙✣✝❚❯✧❲❱❄❳❩❨❖❳
(équi­jointure).
❀ ✧❆✬✂✳✼❬❭✮✶✳

Requête3: ✬❫❪✝❴❵✮❵❛❜✴✡❝✼✧☞✬❞€❡✮✶✳
(semijoin).

Solution:

✬❢€❘✮ ✗ ✘❙✣❁❚ ✧❲❱❄❳❣❨✾❳ ❀ ✧❆✬✫✳❤❬❭✮✶✳ ✬❢❪❁❴✐✮

A B C A B’ B C A B
a b c a b e a a b
a b d a f e a c b
c b c c b b c d e
c b d d e b d
d e a

ExerciceB: Est­cequeleséquationssuivantessontvraies?

✴ ✘❩❥ ❳ ✧❆✬◗€❘✮✶✳❦❛ ✬
(2.1)
✴ ❳ ❥❚ ✧❆✬◗€❘✮✶✳❦❛ ✮
(2.2)

Solution:
NON:

✴ ✘❩❥ ❳ ✧☞✬❞€❡✮✶✳ ✴ ❳ ❥❚ ✧❆✬◗€❘✮✶✳

A B B C
a b b c
c b b d
d e e a

2.3 Auto­JointureetRenommage

SoitT(A,B)unerelationoùAetBprennentleursvaleursdanslemêmedomaine.Supposonsqu’onveuille
✌✸❧♥♠♣♦ ♠☎❧✌q♦

sélectionnerlesseulsn­uplets telsque ❴
estégalementunn­upletdeT. ❴

Vertigo/CNAM,Paris SOLUTIONS 8
Auto­JointureetRenommage

Exprimezcetteopérationparuneexpressiondel’algèbrerelationnelle.

Solution:

1. solution:
(a) OnfaitunecopiedeTdansS(A,B) ✮❘r●❛❜ s

(b) Onrenommel’attributAenA etBenB t t€ ✮€r♥€€€ ✘ ❨ ✘✝✈❖❥ ❳❣❨✾❳ ✈ ✧❆✮✶✳

❧③

(c) Samaintenantpourschéma ✇✰✧☞①②t t✖✳

(d) Lerésultatest s④❪❁❴ ❳ ✣❁✘ ✈✍⑤ ✘❙✣ ❳ ✈ ✮

2. solution:
s⑦⑥⑧❱✓❳❣❨ ❨❖❳♣✧☞s⑨✳
✘❩❥✘

Vertigo/CNAM,Paris SOLUTIONS 9
Schéma

Chapitre3

Algèbre:Compagnied’Assurance

3.1 Schéma

STATUT #EMP NOM SALAIRE

1,1 0,1
COURTIER EST­UN EMPLOYE
0,n 0,1 0,n

DIRIGE
VEND

1,1

POLICES

P# BENEFICIAIRE QUANTITE

F IG .3.1–Compagnied’assurances

ExerciceA: décrireceschémaEntité­Relation(enfrançais)
ExerciceB: représenterlediagrammeEntité­Relationprécédentdanslemodèlerelationnel.
Solution:
(lesattributscléssontsoulignés)
POLICES(P#,BENEFICIAIRE,QUANTITE,#EMP)
EMPLOYE(#EMP,NOM,SALAIRE,#EMP_D)
COURTIER(#EMP,STATUT)

Vertigo/CNAM,Paris SOLUTIONS 10
Requêtes

3.2 Requêtes
ExerciceA: exprimerlesrequêtessuivantesenalgèbrerelationelle:
Requête1: lesnumérosdespolicesvenduesàplusde20exemplaires.
Solution:
✴✡⑩❣❍✼✧❆✗✙❶❣❷✛✘❙✺✿❸✸❹❺❸✡❻❽❼✡❾✾✥★✧☞✩✵✯✂❿✉➀ ✪✭✮✰✳✦✳

Requête2: lesnomsdesemployésquigagnentmoinsque6000francs.
Solution:
✴ ✺✿➁❩➂ ✧❆✗ ❂✓✘❙➃➄✘❙❹❺❝❙❻❽◆✛➅✦✥❖✥❖✥ ✧❆✪✭✒❞✩✫❿✉✯✂➆❇✪✭✳✦✳

Requête3: lesnomsdetouslescourtiers.
Solution:
✴ ✺✿➁❩➂ ✧ ✯✵➇✂✬②s♣➀✓✪✵✬◗❡✪✭✒❞✩✫❿✉✯✂➆✭✪✭✳
€€ € € € € € € € € € € € € € € €

Requête4: lesbénéficiairesd’aumoins21policesaveclemêmenuméro( 20).


Solution:
✴ ❳ ❻✝✺✿❻❊➈❁❹❺❚✝❹❺✘❙❹❺❝❙❻❯✧☞✗✸❶❩❷✛✘❙✺✿❸✡❹❖❸✡❻❽❼✛❾✦✥★✧❆✩✵✯✂❿✰➀ ✪✭✮✶✳✦✳

Requête5: lesnomsdecourtiersdirigésparl’employé113.
Solution:

1. solution: ✴✡✺❤➁❩➂❵✧☞✗✡⑩❣❻❊➂➉❍

_ ➊
✣❊t✾t✦✤✹✧ ✯✵➇✂✬②s♣➀✓✪✵✬◗❡✪✭✒❞✩✫❿✉✯✂➆✭✪✭✳✦✳
€€ € € € € € € € € € € € € € € € € €

2. solution(plusefficace): ✴✸✺✿➁❊➂✐✧ ✯✵➇✂✬②s♣➀✎✪✭✬❢➋✗✡⑩❣❻❊➂➉❍


€€ € € € € € € € € €

_ ➊
✣❊t❖t✍✤✓✧☞✪✭✒❞✩✫❿❤✯✂➆✭✪✭✳✾✳

Requête6: lessalairesdescourtiersstagiaires(STATUT=’Stagiaire’).
Solution:
✴ ❂✓✘❙➃➄✘❙❹❺❝❙❻ ✧❆✗ ❂✓❸✡✘❙❸✛❷✛❸✡✣ ❀ ❂✎➌☞❏❺✚❑ ❉■❏✢❉❃❅❺✜ ❀ ✯✵➇✂✬②s♣➀✎✪✭✬◗❡✪✭✒❞✩✫❿✉✯✂➆✵✪❇✳
€€ € € € € € € € € € € € € € € €

Vertigo/CNAM,Paris SOLUTIONS 11
OpérationsAlgébriques

Chapitre4

Algèbre­SQL:Employés­Départements

4.1 Schéma

LesexemplessuivantssonttirésdessourcesdelasociétéOracle.

4.1.1 RelationdesEmployés(EMP)

EMP(ENO,ENOM,PROF,DATEEMB,SAL,COMM,DNO)

ENO: numérod’employé,clé
ENOM: nomdel’employé
PROF: profession(directeurn’estpasuneprofession)
DATEEMB: dated’embauche
SAL: salaire
COMM: commission(unemployépeutnepasavoirdecommission)
DNO: numérodedépartementauquelappartientl’employé

4.1.2 RelationdesDépartements(DEPT)

DEPT(DNO,DNOM,DIR,VILLE)

DNO: numérodedépartement,clé
DNOM: nomdudépartement
DIR: directeurdudépartement
VILLE: lieududépartement(ville)

4.2 OpérationsAlgébriques

Soitl’exemplesuivant:

Vertigo/CNAM,Paris SOLUTIONS 12
OpérationsAlgébriques

ENO ENOM PROF DATEEMB SAL COMM DNO


10 Joe Ingénieur 1.10.93 4000 3000 3
EMP 20 Jack Technicien 1.5.88 3000 2000 2
30 Jim Vendeur 1.3.80 5000 5000 1
40 Lucy Ingénieur 1.3.80 5000 5000 3

DNO DNOM DIR VILLE


1 Commercial 30 NewYork
DEPT
2 Production 20 Houston
3 Développement 40 Boston

ExerciceA: Calculer ✗ ▲✦❏❺❋➍◆✡➎✾✥❖✥✾✥ ✧☞✪❇✒❞✩✵✳


.
Solution:

ENO ENOM PROF DATEEMB SAL COMM DNO


10 Joe Ingénieur 1.10.93 4000 3000 3
20 Jack Technicien 1.5.88 3000 2000 2

ExerciceB: CalculerEMPbis= € ❻✝✺✿➁ ❨ ❻✝✺✿➁ ❀ ✧❲✴✡❻✝✺✿➁❽❥❚❊➁❊➂➏➂✐✧☞✪✭✒❞✩✵✳✾✳

Solution:

ENO’ COMM
10 3000
EMPbis 20 2000
30 5000
40 5000

♠❺✏✍✆

ExerciceC: Calculer ✴ ❻❊✺✿➁❽❥❂✓✘❙➃ ✧☞✪✭✒❞✩✵✳✶€ ❂✓✘❙➃➄✣✝❚✝➁❊➂➏➂ ✧☞✪✭✒❞✩ ✳

Solution:

ENO SAL ENO’ COMM’


20 3000 10 3000
30 5000 30 5000
40 5000 40 5000
30 5000 40 5000
40 5000 30 5000

ExerciceD: Exprimerparunephrasecequ’onobtientenévaluantlesrequêtesprécédentes.
Solution:

–Expression1:onobtientlesemployésdontlesalaireestinférieurà5000.
–Expression2:onobtientlenuméroetlacommissiondesemployés.
–Expression3:onobtientlescouplesdenumérosd’employésdontlepremieraunsalairequi
estégalàlacommissiondudeuxième.

Vertigo/CNAM,Paris SOLUTIONS 13
Requêtes

ExerciceE: Quelleestl’expressiondel’algèbrerelationnellequipermettraitd’obtenirlenometlapro­
fessiondel’employédenuméro10.
Solution:
✴✡❻✝✺✿➁❊➂➏❥❍ ❁❝❙➁✝➈❯✧❆✗✙❻❊✺❤➁❊✣❊t✍✥✓✧❆✪✭✒❞✩✵✳✦✳

ExerciceF: IdempourlalistedesnomsdesemployésquitravaillentàNewYork.
Solution:
✴✸❻❊✺✿➁❊➂✐✧☞✪✭✒❞✩➐€➑✧☞✗✡❈❊❹❺➃➄➃➄❻❊✣❁❀➒✺✼✜✑➓❁➔❩✻✾❅❖ →❑❀✾✧☞➣ ↔✪✭✩✂ s⑨✳✦✳✾✳

ExerciceG: Idempouravoirlenomdudirecteurdudépartement“Commercial”.
Solution:
✴✡❻✝✺✿➁❊➂✐✧☞✪❇✒❞✩❞€❤❻❊✺❤➁❊✣ ❹❺❝↕✴ ❹❺❝✿✧☞✗ ✺✿➁❊➂➉✣❁❀▼❚❊✻✾✽✿✽✿✜✍❅❖➙➛❉ ▼❏❺❋➒❀✾✧☞➣↔✪✵✩✂s②✳✦✳✦✳
➊ ➊ ➊

4.3 Requêtes
–ExprimerlesrequêtesQ1àQ18àl’aidedel’algèbrerelationnelle.
–ExprimerenSQLlesrequêtesQ1àQ24.

4.3.1 Interrogationd’uneseuleRelation
Requête1: Donnertouslesn­upletsdeDEPT.
Solution:
Algèbre: ➣↔✪✵✩✂s

SQL:
SELECT*FROMDEPT;

Requête2: Donnertouslesn­upletsdeEMP.
Solution:
Algèbre: ✪✭✒❞✩

SQL:
SELECT*FROMEMP;

Requête3: Donnerlesnomsetlessalairesdesemployés.
Solution:
Algèbre: ✴ ❻❊✺✿➁❊➂➉❥❂✓✘❙➃ ✧☞✪✭✒❞✩✵✳

SQL:
SELECTENOM,SAL
FROMEMP;

Requête4: Donnerlesprofessionsdesemployés(aprèséliminationdesduplicats).
Solution:
Algèbre: ✴✸❍✝❝❙➁✝➈❯✧❆✪✭✒❞✩✵✳

SQL:
SELECTDISTINCTPROF
FROMEMP;

Vertigo/CNAM,Paris SOLUTIONS 14
Requêtes

Requête5: Donnerlesdatesd’embauchedestechniciens.
Solution:
Algèbre: ✴

✘❙❸✸❻❊❻❊➂ ❳ ✧❆✗ ❍❁❝❙➁❊➈❁✣ ❀ ❸✡❻✝❚✝➜❤✺✿❹❺❚✝❹❺❻✝✺ ❀✍✧❆✪✭✒❞✩✵✳✦✳

SQL:
SELECTDATEEMB
FROMEMP
WHEREPROF=’TECHNICIEN’;

4.3.2 Jointures
Requête6: FaireleproduitcartésienentreEMPetDEPT.
Solution:
Algèbre: ✪✭✒❞✩➝❬➞➣q ✪✵✩✂ s

SQL:
SELECT*
FROMEMP,DEPT;

Requête7: Donnerlesnomsdesemployésetlesnomsdeleurdépartement.
Solution:
Algèbre: ✴ ❻❊✺✿➁❊➂➉❥

✺✿➁❩➂ ✧❆✪✭✒❞✩❞€ ❡➣↔✪✵✩✂ s②✳

SQL:
SELECTENOM,DNOM
FROMEMP,DEPT
WHEREEMP.DNO=DEPT.DNO;

Requête8: DonnerlesnumérosdesemployéstravaillantàBOSTON.
Solution:
Algèbre: ✴✸❻❊✺✿➁❯✧☞✪✭✒❞✩➐€❡✗✡❈❊❹❺➃➄➃➄❻✝✣✝❀ ❳ ➁❩❂✓❸✸➁❊✺❤❀✾✧☞➣ ↔✪✭✩✂s⑨✳✦✳

SQL:
SELECTENO
FROMEMP,DEPT
WHEREEMP.DNO=DEPT.DNOANDVILLE=’BOSTON’;

Requête9: Donnerlesnomsdesdirecteursdesdépartements1et3.Attention:directeurn’estpasune
profession!
Solution:
Algèbre: ✴✸❻❊✺✿➁❊➂✐✧☞✗

✺✿➁✝✣❊t✾➟

✺✿➁✝✣❁✤✓✧☞➣q ✪✵✩✂ s⑨✳❽€

❹❺❝❙✣❁❻✝✺✿➁⑦✪✭✒❞✩✵✳

SQL:
SELECTENOM
FROMEMP,DEPT
WHERE(DEPT.DNO=1ORDEPT.DNO=3)ANDDIR=ENO;
ou
SELECTENOM
FROMEMP,DEPT
WHEREDEPT.DNOIN(1,3)ANDDIR=ENO;

Vertigo/CNAM,Paris SOLUTIONS 15
Requêtes

Requête10: Donnerlesnomsdesemployéstravaillantdansundépartementavecaumoinsuningénieur.

Solution:
Algèbre:
✬➉➠➡r●€ ✴ ✺✿➁ ✧❆✗ ❍❁❝❙➁❊➈❁✣ ❀ ❹❺✺❤➢❊❻✝✺✿❹❺❻❩❷✛❝ ❀✾✧☞✪✭✒❞✩✵✳✾✳

✬✫➤ r●€ ✴ ❻✝✺✿➁❩➂ ✧❆✪✭✒❞✩➐€➋✬➉➠➥✳

SQL:
SELECTE2.ENOM
FROMEMPE1,EMPE2
WHEREE1.DNO=E2.DNO
ANDE1.PROF=’INGÉNIEUR’;

Requête11: Donnerlesalaireetlenomdesemployésgagnantplusqu’un(aumoinsun)ingénieur.
Solution:
Algèbre:

✬➉➠➡r●€ € ❂✓✘❙➃ ❨ ❂✓✘❙➃✸t ✧☞✴✡❂✓✘❙➃❽✧☞✗✸❍❁❝❙➁✝➈❁✣✝❀■ ❹❺✺✿➢✝❻❊✺✿❹❖❻❣❷✛❝❙❀✍✧❆✪✭✒❞✩✵✳✦✳✾✳

✬✫➤ r●€ ✴✸❻✝✺✿➁❩➂➉❥❂✓✘❙➃❩✧❆✪✭✒❞✩➐€ ✿❂✎✘❙➃❙❼✛❂✓✘❙➃✸ t✉✬➉➠➥✳

SQL:
SELECTE1.ENOM,E1.SAL
FROMEMPE1,EMPE2
WHEREE2.PROF=’INGENIEUR’
ANDE1.SAL>E2.SAL;

ou

SELECTENOM,SALFROMEMP
WHERESAL>ANY(SELECTSAL
FROMEMP
WHEREPROF=’INGENIEUR’);

Requête12: Donnerlesalaireetlenomdesemployésgagnantplusquetouslesingénieurs.
Solution:
SQL:
SELECTENOM,SALFROMEMP
WHERESAL>ALL(SELECTSAL
FROMEMP
WHEREPROF=’INGENIEUR’);

Requête13: Donnerlesnomsdesemployésetlesnomsdeleursdirecteurs.
Solution:
Algèbre:

✬❇➠➦r●€ € ❻✝✺✿➁❩➂ ❨ ❹❺❝❙✺❤➁❩➂ ✧❲✴✸❻❊✺✿➁❊➂➉❥ ✺✿➁⑨✧☞✪✭✒❞✩➐€❤❻✝✺✿➁✝✣ ❹❺❝✷➣↔✪✵✩✂s②✳✦✳


➊ ➊ ➊

✬✂➤ r●€ ✴✡❻✝✺✿➁❊➂➏❥ ✺✿➁✶✪✭✒❞✩


✬②➧ r●€ ✴✡❻✝✺✿➁❊➂➏❥ ❹❺❝❙✺❤➁❩➂✐✧☞✬➉➠⑨€➋✬✫➤✎✳


–R1(DIRNOM,DNO):lesdépartementsaveclesnomsdeleurdirecteur
–R2(ENOM,DNO):lesemployésaveclesnumérosdeleurdépartement

Vertigo/CNAM,Paris SOLUTIONS 16
Requêtes

–R3(ENOM,DIRNOM):lesemployés(ENOM)aveclesnomsdeleurdirecteur
SQL:
SELECTE1.ENOM,E2.ENOM
FROMEMPE1,EMPE2,DEPTD
WHEREE1.DNO=D.DNOANDE2.ENO=D.DIR;

Requête14: TrouverlesnomsdesemployésayantlemêmedirecteurqueJIM.Attention:unemployé
peutêtredirecteurdeplusieursdépartements.
Solution:
Algèbre:

✬❇➠➦r●€ ✴ ❹❺❝✼✧☞✗✸❻✝✺✿➁❊➂➉✣❁❀▼➨➩❹❑➂➉❀✾✧❆✪✭✒❞✩✵✳✶€ ❡➣ ↔✪✵✩✂ s⑨✳


✬✂➤ r●€ ➣q ✪✵✩✂ s❜❡✬➉➠


€€ € € €

✬②➧ r●€ ✴✡❻✝✺✿➁❊➂✐✧❆✗✙❻✝✺✿➁❩➂↔◆❊❼✡❀ ▼➨➩❹❑➂➉❀✾✧❆✪✭✒❞✩✵✳✶€❡✬✂➤✎✳

–R1(DIR):lenumérodudirecteurdeJIM
–R2(...):lesdépartementsaveclemêmedirecteur
–R3(ENOM):lesnomsdesemployésayantlemêmedirecteurqueJIM.
SQL:
SELECTENOM
FROMEMP
WHEREENOM<>’JIM’
ANDDNOIN(SELECTD2.DNO
FROMEMP,
DEPTD1,DEPTD2
WHEREENOM=’JIM’
ANDD1.DNO=EMP.DNO
ANDD1.DIR=D2.DIR);

Requête15: Donnerlenometladated’embauchedesemployésembauchésavantleurdirecteur;donner
égalementlenometladated’embauchedeleurdirecteur.
Solution:
Algèbre:

✬❇➠➦r●€ ✴ ✺✿➁❽❥❻❊✺❤➁❩➂➉❥ ✘❙❸✡❻✝❻❩➂ ❳ ✧☞✪✭✒❞✩➐€ ❹❺❝❙✣❁❻❊✺❤➁ ➣q ✪✵✩✂ s⑨✳


➊ ➊ ➊

✬✂➤ r●€ € ❻✝✺✿➁❩➂ ❨ ❹❺❝❙✺❤➁❩➂➉❥ ✘❙❸✡❻✝❻❩➂ ❳❣❨ ❹❺❝ ✘❙❸✡❻ ✧☞✬➉➠☎✳


➊ ➊ ➊ ➊

✬②➧ r●€ ✴ ❳ ✧❆✗ ❳ ✧☞✪✭✒❞✩➐€➋✬✫➤✎✳✦✳


❻✝✺✿➁❊➂➏❥ ✘❙❸✸❻❊❻❊➂ ❥ ❹❺❝❙✺❤➁❩➂➉❥ ❹❺❝ ✘❙❸✡❻ ❹❺❝ ✘❙❸✡❻❽◆ ✘❙❸✸❻❊❻❊➂
➊ ➊ ➊ ➊ ➊ ➊ ➊

–R1(DNO,ENOM,DATEEMB):lenometladated’embauchedudirecteurdudept.DNO.
–R2(DNO,DIRNOM,DIRDATE):renommagedesattributs
–R3(ENOM,DATEEMB,DIRNOM,DIRDATE):résultat
SQL:
SELECTE1.ENOM,E1.DATEEMB,E2.ENOM,E2.DATEEMB
FROMEMPE1,EMPE2,DEPTD
WHEREE2.ENO=D.DIR
ANDE1.DNO=D.DNO
ANDE1.DATEEMB<E2.DATEEMB;

Requête16: Donnerlesdépartementsquin’ontpasd’employés.
Solution:
Algèbre: ➣↔✪✵✩✂s➭➫④✧☞➣ ↔✪✵✩✂ s④❪❁❴✐✪✭✒❞✩✵✳

Vertigo/CNAM,Paris SOLUTIONS 17
Requêtes

SQL:
SELECT*
FROMDEPT
WHEREDNONOTIN(SELECTDNOFROMEMP);

Requête17: DonnerlesnomsdesemployésdudépartementCOMMERCIALembauchéslemêmejour
qu’unemployédudépartementPRODUCTION.
Solution:
Algèbre:
✬❇➠➯r●€ ✴ ✘❙❸✡❻✝❻❊➂ ❳ ✧☞✪✭✒❞✩➐€❡✗ ✺✿➁❊➂➉✣❁❀ ▼❍ ❁❝❙➁ ❷✛❚❊❸✸❹❺➁✝✺✿❀❖✧☞➣ ↔✪✭✩✂s⑨✳✦✳
➊ ➊ ➊

✬✂➤ r●€ ✴✡❻✝✺✿➁❊➂✐✧✾✧☞✪✭✒❞✩➐€➋✗ ✺✿➁❊➂➉✣ ❀ ❚✝➁❩➂➏➂❇❻❊❝❙❚✝❹❺✘❙➃ ❀ ➣↔✪✵✩✂s⑨✳❽❡✬➉➠➥✳


€€ € € € € €

SQL:
SELECTDISTINCTENOM
FROMEMPE1,DEPTD1,EMPE2,DEPTD2
WHEREE1.DNO=D1.DNO
ANDE2.DNO=D2.DNO
ANDD1.DNOM=’COMMERCIAL’
ANDD2.DNOM=’PRODUCTION’
ANDE1.DATEEMB=E2.DATEEMB

ou

SELECTENOM
FROMEMP,DEPT
WHEREEMP.DNO=DEPT.DNO
ANDDNOM=’COMMERCIAL’
ANDDATEEMBIN(SELECTDATEEMB
FROMEMP,DEPT
WHEREEMP.DNO=DEPT.DNO
ANDDNOM=’PRODUCTION’);

Requête18: Donnerlesnomsdesemployésembauchésavanttouslesemployésdudépartement1.
Solution:
Algèbre:
✬➉➠➦r♥€ € ❳❣❨ ✧☞✴ ✘❙❸✡❻✝❻❩➂ ❳ ✧☞✗ ✺✿➁✝✣❊t✹✧☞✪❇✒❞✩✵✳✦✳✦✳
✘❙❸✸❻❊❻❊➂ ✘❙❸✸❻❣t
➊ ➊
➊ ➊

✬✫➤ r♥€ ✴✸❻❊✺✿➁❊➂✐✧☞✪✭✒❞✩❢➫④✧☞✪✭✒❞✩❢❪❁❴ ✘❙❸✡❻✝❻❊➂ ❳ ❼✡✣ ✘❙❸✸❻❣t❣✬➉➠➥✳✦✳


➊ ➊

SQL:
SELECTENOM
FROMEMP
WHEREDATEEMB<ALL(SELECTDATEEMB
FROMEMP
WHEREDNO=1);

Requête19: DonnerlesnomsdesemployésayantlemêmeemploietlemêmedirecteurqueJOE.
Solution:
Algèbre:
✬➉➠➦r♥€ ✴ ❹❺❝❩❥❍ ❁❝❙➁❊➈ ♣✧❆✗✙❻✝✺✿➁❩➂❇✣✝❀ ■➨✹➁✝❻✝❀✾✧☞✪✭✒❞✩✵✳✶€ ❡➣ ↔✪✵✩✂ s②✳

✬✫➤ r♥€ ✴✸❻❊✺❤➁❩➂✐✧✦✧☞✪❇✒❞✩❞€ ❡➣ ↔✪✵✩✂ s⑨✳✶❡✬➉➠➥✳


€€ € € € € €

–R1(DIR,PROF):ledirecteurdeJoeetsaprofession

Vertigo/CNAM,Paris SOLUTIONS 18
Requêtes

–R2(ENOM):résultat
SQL:
SELECTENOM
FROMEMP,DEPT
WHEREENOM<>’JOE’
ANDEMP.DNO=DEPT.DNO
AND(PROF,DIR)=(SELECTPROF,DIR
FROMEMP,DEPT
WHEREENOM=’JOE’
ANDEMP.DNO=DEPT.DNO);

4.3.3 ValeursNulles,Tris,Groupes,AgrégatsetExpressions
Requête20: Donnerlalistedesemployésayantunecommission.
Solution:

SELECT*
FROMEMP
WHERECOMMISNOTNULL;

Requête21: Donnerlesnoms, emploiset salairesdesemployésparemploicroissantet, pourchaque


emploi,parsalairedécroissant.
Solution:

SELECTENOM,PROF,SAL
FROMEMP
ORDERBYPROFASC,SALDESC;

Requête22: Donnerlesalairemoyendesemployés.
Solution:

SELECTAVG(SAL)AS’SALAIREMOYEN’
FROMEMP;

Requête23: Donnerlenombred’employésdudépartementPRODUCTION.
Solution:

SELECTCOUNT(EMP.*)
FROMEMP,DEPT
WHEREEMP.DNO=DEPT.DNO
ANDDEPT.DNOM=’PRODUCTION’;

Requête24: Lesnumérosdedépartementetleursalairemaximum?
Solution:

SELECTDNO,MAX(SAL)
FROMEMP
GROUPBYDNO;

Vertigo/CNAM,Paris SOLUTIONS 19
Requêtes

Requête25: Donnerlesnomsdesemployésayantlesalairemaximumdechaquedépartement.
Solution:

SELECTENOM
FROMEMP
WHERE(DNO,SAL)IN(SELECTDNO,MAX(SAL)
FROMEMP
GROUPBYDNO);

ou

SELECTENOM
FROMEMPE
WHERESAL=(SELECTMAX(SAL)
FROMEMPF
WHEREF.DNO=E.DNO);

Requête26: Lesprofessionsetleursalairemoyen?
Solution:

SELECTPROF,AVG(SAL)
FROMEMP
GROUPBYPROF;

Requête27: Lesalairemoyenleplusbas(parprofession)?
Solution:

SELECTMIN(AVG(SAL))
FROMEMP
GROUPBYPROF;

Requête28: Donnerlesemploisayantlesalairemoyenleplusbas;donnezaussileursalairemoyen.
Solution:

SELECTPROF,AVG(SAL)
FROMEMP
GROUPBYPROF
HAVINGAVG(SAL)=(SELECTMIN(AVG(SAL))
FROMEMP
GROUPBYPROF);

Vertigo/CNAM,Paris SOLUTIONS 20
Schéma

Chapitre5

Algèbre­SQL:Appartements­Écoles

5.1 Schéma

IMMEUBLE(ADI,NBETAGES,DATEC,PROP)
APPIM(ADI,NAPR,OCCUP,TYPE,SUPER,ETAGE)
PERSONNE(NOM,AGE,PROF,ADR,NAPR)
ÉCOLE(NOMEC,ADEC,NBCLASSES,DIR)
CLASSE(NOMEC,NCL,MAITRE,NBEL)
ENFANT(NOMP,PRENOM,AN,NOMEC,NCL)

aveclasignificationsuivante:

1.RelationIMMEUBLE

ADI: adressed’immeuble,clé;onfaitl’hypothèsepoursimplifier,quel’adresseidentifiedemanièreuniqueun
immeuble
NBETAGES: nombred’étagesd’unimmeuble
DATEC: datedeconstruction
PROP: nomdupropriétairedel’immeublequiestunepersonne

2.RelationAPPIM(Appartement)

ADI: adressed’immeuble
NAPR: numérod’appartement
OCCUP: occupantdel’appartement(nomdelapersonne)
TYPE: typedel’appartement(Studio,F2,...)
SUPER: superficiedel’appartement
ETAGE: étageoùsesituel’appartement

3.RelationPERSONNE

NOM: nomdepersonne, clé;onfaitl’hypothèsepoursimplifier, quecenomestuniquesurl’ensembledes


personnesquel’onconsidèredanslabase
AGE: âgedelapersonne

Vertigo/CNAM,Paris SOLUTIONS 21
Requêtes

PROF: professiondelapersonne
ADR: adressedelarésidenced’unepersonne,ils’agitd’unimmeuble
NAPR: numérod’appartement

4.RelationÉCOLE

NOMEC: nomd’uneécole,clé
ADEC: adressed’uneécole
NBCLASSES: nombredeclasses
DIR: nomdudirecteur

5.RelationCLASSE

NOMEC: nomd’uneécole
NCL: nomdelaclasse,e.g.,CP1,CE2,CE3,etc...
MAITRE: nomdel’instituteur
NBEL: nombred’élèvesdanslaclasse

6.RelationENFANT

NOMP: nomdelapersonneresponsabledel’enfant,clée.g.,père,mèreetc...
PRENOM: prénomdel’enfant
AN: annéedenaissance
NOMEC: nomd’uneécole
NCL: nomdelaclasse

LarelationIMMEUBLEdécritunensembled’immeubles.Chaqueimmeubleaunpropriétaire.Larelation
APPIMdécritpourchaqueimmeublel’ensembledesappartementsquilecompose.Chaqueappartementpeut
hébergerplusieurspersonnesmaisilyenaunequiestresponsable(parexemplelelocataire)etquiestdésignée
parleconstituant OCCUP. Si l’appartement est inoccupé, ceconstituant prendlavaleurNULL. Larelation
PERSONNEdécritunensembledepersonnes. ADRetNAPRreprésententl’adresseoùrésideunepersonne.
UnepersonnepeutavoirplusieursenfantsdécritsparlarelationENFANT.Poursimplifier,onneconsidèreque
lesenfantsallantàl’écoleprimaire.LesécolesetlesclassessontdécritesdanslesrelationsÉCOLEetCLASSE.

5.2 Requêtes

Exprimerlesrequêtessuivantesàl’aidedel’algèbrerelationnelle,puislestraduireenSQL.

Requête1: Donnerl’adressedesimmeublesayantplusde10étagesetconstruitsavant1970.
Solution:

✴✡✘ ❹✓✧☞✗✙✺ ❳ ❻✝❸✡✘❙➢✝❻❩❂➄❼❁t✑✥ ⑤ ✘❙❸✡❻✝❚✶◆❙t✦➲✾➳✾✥❤➀❄✒➐✒❞✪❇➇ ❿✰✪✭✳


➊ ➊

SELECTADI
FROMIMMEUBLE
WHERENBETAGES>10ANDDATEC<1970

Vertigo/CNAM,Paris SOLUTIONS 22
Requêtes

Requête2: Donnerlesnomsdespersonnesquihabitentdansunimmeubledontilssontpropriétaires
(occupantsethabitants).
Solution:

✴✸✺✿➁❊➂✐✧❆✩✫✪✵✬✫✮✶✯✂✱✲✱✲✪➵€❤✺✿➁❊➂➉✣❁❍❁❝❙➁❊❍ ⑤ ✘ ❝❙✣❁✘ ❹♣➀❄✒➐✒❞✪❇➇ ❿✉✪✭✳


➊ ➊

SELECTNOM
FROMPERSONNE,IMMEUBLE
WHERENOM=PROPANDADR=ADI

Requête3: Donnerlesnomsdespersonnesquinesontpaspropriétaires.
Solution:

✴ ✺✿➁❊➂ ✧☞✩✫✪✵✬✫✮✶✯✂✱✷✱✲✪✭✳❩➫✐✴ ❍ ❁❝❙➁❊❍ ✧☞➀❄✒➐✒❞✪❇➇ ❿✰✪✭✳

SELECTNOM
FROMPERSONNE
MINUS
SELECTPROP
FROMIMMEUBLE

ou
SELECTNOM
FROMPERSONNE
WHERENOMNOTIN(SELECTPROP
FROMIMMEUBLE)

Requête4: Donnerlesadressesdesimmeublespossédéspardesinformaticiensdontl’âgeestinférieurà
40ans.
Solution:

✬➉➠➦r●€ ✗✸✘❙➢✝❻❽◆✡➸✾✥ ⑤ ❍❁❝❙➁❊➈❁✣❁❀ ■❹❖✺✿➈❁➁❊❝❁➂➉✘❙❸✸❹❺❚✝❹❺❻❊✺❤❀✡✩✫✪✵✬✫✮✶✯✂✱✲✱✷✪

✬✫➤ r●€ ✴✡✘ ❹✎✧❆✬➉➠⑨€❤✺❤➁❩➂➉✣❁❍❁❝❙➁✝❍⑦➀❄✒➐✒❞✪❇➇ ❿✰✪✭✳


SELECTADI
FROMPERSONNE,IMMEUBLE
WHERENOM=PROPANDAGE<40ANDPROF=’INFORMATICIEN’

Requête5: Donnerlalistedesoccupants(nom,âge,profession)desimmeublespossédésparDUPONT.

Solution:

✴✡✺✿➁❊➂➉❥✘❙➢❊❻❽❥❍ ❁❝❙➁❊➈❯✧☞✗✸❍❁❝❙➁✝❍❁✣✝❀ ❷✛❍ ❁➁✝✺✿❸✡❀✾✧❆➀✓✒➐✒❞✪➉➇ ❿✉✪✭✳❽€❤✘ ❹❺✣❁✘ ❝❡✧❆✩✫✪✵✬✫✮✶✯✂✱✲✱✲✪❇✳✦✳


➊ ➊ ➊

SELECTP.NOM,P.AGE,P.PROF
FROMPERSONNEP,IMMEUBLEI,APPIMA
WHEREI.ADI=A.ADI
ANDI.PROP=’DUPONT’
ANDP.NOM=A.OCCUP

Vertigo/CNAM,Paris SOLUTIONS 23
Requêtes

Requête6: Donnerlenomet laprofessiondespropriétairesd’immeublesoùilyadesappartements


vides.
Solution:

✬➉➠➦r●€ ✴ ✘ ❹✟❥✺❤✘❙❍ ✝❝ ✧❆①♣✩✫✩✫➀❄✒➺€ ➁❊❚✝❚❣❷✛❍ ❁✣❁✺✿➁❊➂ ✩✫✪✵✬✫✮✶✯✂✱✲✱✲✪❇✳


✬✫➤ r●€ ✴ ✘ ❹✟❥✺❤✘❙❍ ✝❝ ①♣✩✫✩✫➀❄✒➻➫❵✬➉➠


✬✂➧ r●€ ✴✡✺❤➁❩➂➉❥❍❁❝❙➁❊➈❯✧☞✩✫✪✵✬✫✮✶✯✂✱✷✱✲✪➵€❤✺❤➁❩➂➉✣❁❍❁❝❙➁✝❍④✧❆➀✓✒➐✒❞✪❇➇ ❿✰✪➐€❡✬✂➤✎✳✦✳

–R1(ADI,NAPR):adressesetnumérosd’appartementoccupés
–R2(ADI,NAPR):adressesetnumérosd’appartementvides
–R3(NOM,PROF):nomet professiondespropriétairesd’immeublesavecdesappartements
vides
Avecvaleurnulle:

SELECTDISTINCTP.NOM,P.PROF
FROMAPPIMA,IMMEUBLEI,PERSONNEP
WHEREP.NOM=I.PROPANDI.ADI=A.ADI
ANDA.OCCUPISNULL

Sansvaleursnulles:
SELECTDISTINCTP.NOM,P.PROF
FROMAPPIMA,IMMEUBLEI,PERSONNEP
WHEREP.NOM=I.PROP
ANDI.ADI=A.ADI
ANDNOTEXISTS(SELECT*
FROMPERSONNEO
WHEREO.ADR=I.ADI
ANDO.NAPR=A.NAPR)

Requête7: Donnerlesnomsdesmaîtresquihabitentdanslemêmeimmeuble(àlamêmeadresse)qu’au
moinsundeleursélèves(onsupposequelesenfantsviventsouslemêmetoitqueleurresponsable).

Solution:

✬➉➠➡r●€ ✴ ✘ ❝❩❥✺✿➁❊➂➉❻❊❚❁❥✺✿❚✝➃❙❥➂❇✘❙❹❺❸✡❝❙❻ ✧❆✩✫✪✵✬✫✮✶✯✂✱✲✱✲✪➐€ ➂➉✘❙❹❖❸✡❝❙❻✝✣✝✺❤➁❩➂ ❿✉①⑨✮✶✮✶✪✭✳


✬✫➤ r●€ ✴ ✘ ❝❩❥✺✿➁❊➂➉❻❊❚❁❥✺✿❚✝➃ ✧❆✩✫✪✵✬✫✮✶✯✂✱✲✱✲✪➵€ ✺✿➁❊➂➉❍ ❁✣✝✺❤➁❩➂ ✪✭✱✲➼✫①♣ ✱➽s②✳


✬✂➧ r●€ ✴ ➂➉✘❙❹❺❸✸❝❙❻ ✧☞✬➉➠⑨€➋✬✫➤✎✳

–R1(...):adressesdesmaîtres,écoles,classesetmaîtres
–R2(...):adressesdesélèves,écoles,classes
–R3(MAITRE):résultat
ou:

✬➉➠➦r♥€ ✴✸✘ ❝❩❥➂➉✘❙❹❺❸✡❝❙❻⑨✧❆✩✫✪✵✬✫✮✶✯✂✱✲✱✲✪➵€ ❤✺✿➁❊➂➉❍❁✣❁✺✿➁❩➂➾✧☞✪✭✱✲➼✫① ♣✱➽ s❫€ ❿✰①⑨✮✰✮❽✪✭✳✦✳


✬✫➤ r♥€ ✴✡➂➉✘❙❹❺❸✸❝❙❻②✧☞✗✸✺✿➁❊➂➉✣✝➂➉✘❙❹❺❸✸❝❙❻②✧☞✬➉➠⑨€❡✩✫✪✵✬✫✮✶✯✂✱✲✱✲✪✭✳✾✳

–R1(ADR,MAITRE):adressesdesenfantsetleursmaîtres
–R2(MAITRE):résultat

Vertigo/CNAM,Paris SOLUTIONS 24
Requêtes

SELECTDISTINCTM.NOM
FROMCLASSEC,PERSONNEM,
ENFANTE,PERSONNER
WHEREC.MAITRE=M.NOM
ANDE.NOMEC=C.NOMEC
ANDE.NCL=C.NCL
ANDE.NOMP=R.NOM
ANDM.ADR=R.ADR

ou(imbriqué):
SELECTC.MAITRE
FROMCLASSEC,PERSONNEP
WHEREC.MAITRE=P.NOMANDP.ADRIN(SELECTP.ADR
FROMPERSONNEP,ENFANTE
WHEREP.NOM=E.NOMPAND
E.NOMEC=C.NOMECAND
E.NCL=C.NCL)

Requête8: Donnerl’adressedel’immeuble,ladatedeconstruction,letyped’appartementetl’étageoù
habitentchacundesmaîtresdesenfantsdeDUPONT.
Solution:

✬➉➠➦r●€ ✴✛➂❇✘❙❹❺❸✡❝❙❻♣✧❆✗✙✺✿➁❊➂➉❍❁✣✝➚ ❷❙❍❁➁✝✺✿❸✡❀❙✪✵✱✲➼✫①♣✱✲s❜ € ❿✰①②✮✶✮❽✪✭✳


✬✫➤ r●€ ✬➉➠♣€✿➂➉✘❙❹❖❸✡❝❙❻✝✣✝✺❤➁❩➂➪✩✫✪✭✬✂✮✰✯✂✱✲✱✲✪

✬✂➧ r●€ ✴✡✘ ❹✟❥ ✘❙❸✸❻❊❚❁❥❸✛➔❊❍ ❁❻❽❥❻❊❸✸✘❙➢❊❻❯✧☞✬✫➤✵€❡➀✓✒➐✒❞✪❇➇ ❿✰✪❇✳


➊ ➊

–R1(MAITRE):lesmaîtresdesenfantsdeDUPONT
–R2(...):lesnoms,adresses,... desmaîtres
–R3(ADI,DATEC,TYPE,ETAGE):résultat

SELECTA.ADI,I.DATEC,A.TYPE,A.ETAGE
FROMCLASSEC,ENFANTE,PERSONNEP,IMMEUBLEI,APPIMA
WHEREI.ADI=P.ADR
ANDA.NAPR=P.NAPR
ANDA.ADI=I.ADI
ANDP.NOM=C.MAITRE
ANDC.NOMEC=E.NOMEC
ANDC.NCL=E.NCL
ANDE.NOMP=‘DUPONT’

Requête9: Donnerlenometl’âgedesmaîtresquihabitentdansunimmeubledontlepropriétaireest
responsabled’undeleursélèves.
Solution:

✬❇➠➦r●€ ✴ ➂❇✘❙❹❺❸✡❝❙❻❽❥✘❙➢❊❻❽❥✘ ❝❩❥✺✿➁❊➂➉❍ ✧☞✪✵✱✲➼✫①⑨✱➽s❫❫✧


€€ € ❿✰①⑨✮✰✮❽✪➵€ ➂❇✘❙❹❺❸✡❝❙❻✝✣❁✺✿➁❩➂ ✩✫✪✵✬✫✮✶✯✂✱✲✱✷✪✭✳✦✳

✬✂➤ r●€ ✴ ➂❇✘❙❹❺❸✡❝❙❻❽❥✘❙➢❊❻ ✧☞✬➉➠⑨€ ✺✿➁❊➂➉❍ ❁✣✝❍❁❝❙➁✝❍ ⑤ ✘ ❝❙✣❁✘ ❹ ➀❄✒➐✒❞✪❇➇ ❿✰✪✭✳


➊ ➊

–R1(MAITRE,AGE,ADR,NOMP):pourchaqueenfant:lenom,l’âgeetl’adressedesmaîtreset
lenomduresponsable
–R2(MAITRE,AGE):résultat

Vertigo/CNAM,Paris SOLUTIONS 25
Contraintes

SELECTM.NOM,M.AGE
FROMIMMEUBLEI,ENFANTE,CLASSEC,PERSONNEM
WHEREI.ADI=M.ADR
ANDI.PROP=E.NOMP
ANDC.NCL=E.NCL
ANDC.NOMEC=E.NOMEC
ANDM.NOM=C.MAITRE

Requête10: Donnerlenometl’âgedespersonnesquisontpropriétairesmaisquinesontnimaîtreni
directeurd’école.
Solution:

✬❇➠➦r●€ € ➂➉✘❙❹❺❸✸❝❙❻ ❨ ❍✝❝❙➁✝❍ ✧☞✴✡➂➉✘❙❹❺❸✸❝❙❻ ❿✰①②✮✶✮❽✪✭✳

✬✂➤ r●€ € ❨ ✧❲✴ ❹❖❝✷✪ ✯✂❿✰✪✭✮✰✳


❹❺❝ ❍❁❝❙➁✝❍
➊ ➊

✬②➧ r●€ ✴✡❍❁❝❙➁✝❍↕➀✓✒➐✒❞✪➉➇ ❿✉✪➑➫④✧☞✬➉➠✰➶➞✬✫➤✹✳

✬⑨➹ r●€ ✴✡✘❙➢✝❻✶❥✺❤➁❩➂✷✧❆✩✫✪✵✬✫✮✶✯✂✱✲✱✲✪➵€❤❍❁❝❙➁❊❍❁✣❁✺✿➁❊➂➘✬✂➧✎✳

SELECTNOM,AGE
FROMPERSONNE
WHERENOMIN(SELECTPROP
FROMIMMEUBLE
MINUS
(SELECTDIR
FROMECOLE
UNION
SELECTMAITRE
FROMCLASSE))

5.3 Miseàjour
Requête11: Ajouterunenfantdenomnp,deprénome,néenaetl’inscrireàlaclassecdel’écoleec.
Solution:

INSERTINTOENFANTVALUE(np,e,a,ec,c);
UPDATECLASSE
SET NBEL=NBEL+1
WHERE NOMEC=ecANDNCL=c;

5.4 Contraintes

Indiquerdelafaçonlaplusformellepossiblecertainescontraintesquelesdonnéesdelabasedoiventrespec­
terpourêtreconformesàlaréalitémodéliséeici.

Solution:

Vertigo/CNAM,Paris SOLUTIONS 26
Contraintes

Inclusionsdesensembles,parexemple:

– ➀✓✒➐✒❞✪❇➇ ❿✰✪q ➴✩✫✬✫✯✂✩②➷❙➬➭✩✫✪✭✬✂✮✰✯✂✱✲✱✲✪ ↔➴✱✷✯✫✒❢➷

– ✪ ❿✉✯✂❿✉✪ ↔➴➣q ➀✎✬⑨➷✝➬➭✩✫✪✵✬✫✮✶✯✂✱✲✱✲✪ ↔➴✱✷✯✫✒❢➷

– ❿✰①⑨✮✰✮❽✪↔➴✒❞①♣➀✎s♣✬✂✪✂➷❙➬➭✩✫✪✵✬✫✮✶✯✂✱✷✱✲✪ ↔➴✱✷✯✫✒❢➷

– ✪✵✱✲➼✫①♣✱✲s✭➴✱ ↕✯✫✒❞✩②➷✛➬④✩✫✪✵✬✫✮✶✯✂✱✲✱✷✪ ↔➴✱ ↕✯✫✒❢➷

L’étaged’unappartementdansunimmeubleestinférieurouégalaunombred’étagesdecetimmeuble:
③ ✌✸❧✄❽❧➮✙❧➱✝❧ ✌✡❧✌➥➱✝❧☛❑ ❧♥✆✹❧❒ ❒✭❰❘✄

✧☞➀❄✒➐✒❞✪❇➇ ❿✰✪↔✧ ✳❙✃q①⑨✩✫✩✫➀✓✒❐✧ ✳✦✳✶❮

Lenombred’élèvesdansuneclassecorrespondàl’ensembledesn­upletsdanslarelationENFANT:
❒ ✓❧✔Ï❧ Ð↕❧✄ ✔✢ €€✓ÑÏ➮ ❒ ✔ÏÓ ✄

❿✰①⑨✮✰✮❽✪ ↔✧ ✳❽❮ ✧✍Ò➥✪✵✱✲➼✫①⑨✱➽ s❞r✹✱✷✯✫✒❞✪ € ✃➞✱ ❿➋❛ ✳✶❛

Pourlesprofessions
Ô ➮➏Õ Ó ✌✡❧✌❄➮✸❧✌➥➱ ➮✙❧✌✡❧➒Ø ❧✌❄➮✙❧✌➥➱

Ò➥✪ ✯✂❿✉✪↔➴➣q➀✎✬⑨➷ ❮×Ö ✩✫✪✭✬✂✮✰✯✂✱✲✱✲✪↔✧ ➣↔➀✓✬②✪ s♣✪❇➇✂✬✂ Ù ✳

Ô ÐÚÕ Ó ✌✡❧✌✓➮✸❧✌✟➱ ➮✸❧✌✡❧❃Ø ❧✌❄➮✸❧✌➥➱

Ò ❿✰①⑨✮✰✮❽✪ ↔➴✒❞①♣➀✎s♣✬✂✪✂➷ ❮ÛÖ ✩✫✪✵✬✫✮✶✯✂✱✲✱✲✪q✧ ➀✓✱✷✮❣s♣➀✎ s②➇②s⑨✪❇➇✂✬ Ù ✳

etc...

Vertigo/CNAM,Paris SOLUTIONS 27
Schéma

Chapitre6

SQL:Fournisseurs­Produits­Clients

6.1 Schéma

LesexemplessuivantssonttirésdulivreAGuidetoDB,ThirdEditiondeC.J.Date.

CREATETABLEFOURNISSEUR
(F# CHAR(5) NOTNULL,
FNOM CHAR(20) NOTNULLWITHDEFAULT,
STATUS SMALLINT NOTNULLWITHDEFAULT,
VILLE CHAR(15) NOTNULLWITHDEFAULT,
PRIMARYKEY(F#));

CREATETABLEPRODUIT
(P# CHAR(6) NOTNULL,
PNOM CHAR(20) NOTNULLWITHDEFAULT,
COULEUR CHAR(6) NOTNULLWITHDEFAULT,
POIDS SMALLINT NOTNULLWITHDEFAULT,
PRIMARYKEY(P#));

CREATETABLECLIENT
(C# CHAR(6) NOTNULL,
CNOM CHAR(20) NOTNULLWITHDEFAULT,
VILLE CHAR(15) NOTNULLWITHDEFAULT,
PRIMARYKEY(C#));

CREATETABLECOMMANDE
(F# CHAR(5) NOTNULL,
P# CHAR(6) NOTNULL,
C# CHAR(6) NOTNULL,
QTE SMALLINT,
PRIMARYKEY(F#,P#,C#));

CREATEUNIQUEINDEXFXONFOURNISSEUR(F#);

Vertigo/CNAM,Paris SOLUTIONS 28
Requêtes

6.2 Requêtes

ExprimerlesrequêtessuivantesenSQL.

Requête1: Touteslesinformationssurlesclients.
Solution:

SELECTC#,CNOM,VILLE
FROMCLIENT;

ou
SELECT*
FROMCLIENT;

Requête2: TouteslesinformationssurlesclientsàParis.
Solution:

SELECT*
FROMCLIENT
WHEREVILLE=’Paris’;

Requête3: LalistetriéedesnumérosdesfournisseursduclientaveclenuméroC1.
Solution:

SELECTDISTINCTF#
FROMCOMMANDE
WHEREC#=’C1’
ORDERBYF#;

Requête4: Lescommandesavecunequantitéentre300et750.
Solution:

SELECT*
FROMCOMMANDE
WHEREQTE>=300ANDQTE<=750;

ou
SELECT*
FROMCOMMANDE
WHEREQTEBETWEEN300AND750;

Requête5: LescommandesavecunequantitédifférentedeNULL.
Solution:

SELECT*
FROMCOMMANDE
WHEREQTEISNOTNULL;

ou
SELECT*
FROMCOMMANDE
WHEREQTE=QTE;

Vertigo/CNAM,Paris SOLUTIONS 29
Requêtes

Requête6: Lesnumérosdesclientsquisontsituésdansunevillequicommencepar“P”.
Solution:

SELECTC#
FROMCLIENTS
WHEREVILLELIKE’P%’;

ou
SELECTC#
FROMCLIENTS
WHERESUBSTR(VILLE,1,1)=’P’;

Requête7: Lesnumérosdesfournisseursetdesclientsquisontsituésdanslamêmeville.
Solution:

SELECTF#,C#
FROMFOURNISSEUR,CLIENT
WHEREFOURNISSEUR.VILLE=CLIENT.VILLE;

Requête8: Lesnumérosdesfournisseursetdesclientsquinesontpassituésdanslamêmeville.
Solution:

SELECTF#,C#
FROMFOURNISSEUR,CLIENT
WHERENOTFOURNISSEUR.VILLE=CLIENT.VILLE;

ou
SELECTF#,C#
FROMFOURNISSEUR,CLIENT
WHEREFOURNISSEUR.VILLE<>CLIENT.VILLE;

Requête9: LesnumérosdesproduitsfournispardesfournisseursParisiens.
Solution:

SELECTDISTINCTP#
FROMCOMMANDE,FOURNISSEUR
WHERECOMMANDE.F#=FOURNISSEUR.F#
ANDVILLE=’Paris’;

Requête10: LesnumérosdesproduitsfournispardesfournisseursParisiensàdesclientsMarseillais.
Solution:

SELECTDISTINCTP#
FROMCOMMANDE,FOURNISSEUR,CLIENT
WHERECOMMANDE.F#=FOURNISSEUR.F#
ANDCOMMANDE.C#=CLIENT.C#
ANDFOURNISSEUR.VILLE=’Paris’
ANDCLIENT.VILLE=’Marseille’;

Vertigo/CNAM,Paris SOLUTIONS 30
Requêtes

Requête11: Lescouplesdevilles(v ❉
,v )telqu’ilexisteaumoinsunfournisseurdanslavillev
Ü ❉
d’un
clientdanslavillev .
Ü

Solution:

SELECTDISTINCTFOURNISSEUR.VILLE,CLIENT.VILLE
FROMCOMMANDE,FOURNISSEUR,CLIENT
WHERECOMMANDE.F#=FOURNISSEUR.F#
ANDCOMMANDE.C#=CLIENT.C#;

Requête12: Lesnumérosdesproduitsfournisàdesclientssituésdanslamêmevillequeleursfournis­
seurs.
Solution:

SELECTDISTINCTCOMMANDE.P#FROMCOMMANDE,FOURNISSEUR,CLIENT
WHERECOMMANDE.F#=FOURNISSEUR.F#ANDCOMMANDE.C#=CLIENT.C#
ANDCLIENT.VILLE=FOURNISSEUR.VILLE;

Requête13: Lesnumérosdesclientsquiontaumoinsunfournisseursituédansuneautreville.
Solution:

SELECTDISTINCTCLIENT.C#
FROMCOMMANDE,FOURNISSEUR,CLIENT
WHERECOMMANDE.F#=FOURNISSEUR.F#
ANDCOMMANDE.C#=CLIENT.C#
ANDCLIENT.VILLE<>FOURNISSEUR.VILLE;

Requête14: Lescouplesdeproduitsquisontfournisparlemêmefournisseur.
Solution:

SELECTDISTINCTA.P#,B#.P#
FROMCOMMANDEA,COMMANDEB
WHEREA.F#=B.F#
ANDA.P#>B.P#;

Vertigo/CNAM,Paris SOLUTIONS 31
Requêtes

Chapitre7

Calcul­SQL­Algèbre:Cinémas­Films

7.1 Schéma

LesexemplessuivantssonttirésdulivreFoundationsofDatabasesdeS.Abiteboul,R.HulletV.Vianu.

SALLE(Nom,Horaire,Titre)
FILM(Titre,Realisateur,Acteur)
PRODUIT(Producteur,Titre)
VU(Spectateur,Titre)
AIME(Spectateur,Titre)

UnfilmestréaliséparunmetteurenscènemaispeutêtrefinancéparplusieursProducteurs.UnSpectateur
peutaimerunfilmsansl’avoirvu.

7.2 Requêtes

Écrirelesrequêtessuivantesenalgèbrerelationnel, encalculàvariablen­upletetencalculàvariabledo­
maine.

7.2.1 Interrogationd’uneseuleRelation
Requête1: Dansquellesalleetàquelleheurepeutonvoirlefilm“MadMax”?
Solution:
Algèbre:
✴ ✺✿✻✾✽⑨❥➜❤✻✾❅❺❏ ❑❉❃❅❺✜ ✧☞✗ ❸✸❉❃➌❲❅❺✜✑✣❁❀➍➂➏❏ ✢Ý✶➂➏❏❑ Þ➥❀ ✧❆✮✶①♣❿✰❿✉✪✭✳✦✳

SQL:
SELECTNom,Horaire
FROMSALLE
WHERETitre=’MadMax’

Calculn­uplet:
✆✟ß✝à ✁☎Ð✐❧✆✟ ß❊àá✲✁☎ ÑÏ✌✓✏➛ ÑÏ❒➉ â ✆✟ß ✆✟ß❊à ✏➛☛✑ÑÏ❒ ✌✓➮ ✌✓ß Ó

Ò ✱ ✮✶①♣❿✰❿✉✪↔✧ ✳❁✃ s € Ù ✒ ✒ Ù

Vertigo/CNAM,Paris SOLUTIONS 32
Requêtes

Calculdomaine: ✄❙ß✝❧♥ ✕✙ß↕â ✌❄➮ ✌✓ß ❧✄❙ß❊❧✕✙ ß Ó

Ò ✮❽①⑨❿✰❿✰✪q✧ Ù ✒ ✒ Ù ✳

Requête2: QuelssontlesfilmsréalisésparOrsonWelles?
Solution:
Algèbre:
✴✸❸✡❉❃➌❲❅❖✜Ï✧❆✗✙❝❁✜✍❏❑❋➒❉ ■▲✦❏❺➌☞✜✑ ã☎❅✾✣✝❀❆ äå✜➛❋ ●❋ ■✜✍▲✑❀❺✧☞➼✫➀✓❿✉✒➐✳✾✳

SQL:
SELECTTitre
FROMFILM
WHERERealisateur=’Welles’

Calculn­uplet:
ß✝à ✏➛☛✑ÑÏ❒✭ â ß ß✝à ❒ ➥✌❄✠☞✏✑✆➥✌✓☛✍❒➥✞✸Ñ ❒ ➥✠❆✠☞❒ Ï✆ Ó

Ò☎æ s ➼✫➀✓❿✉✒❐ ✧çæ ✳❙✃❭æ ✬ € Ù✸ è Ù

Calculdomaine: ☛✑ß✷ â ✌✓ß ☛✑ß✝❧ ❒ ➥✠❆✠☞❒Ï✆ ❧✌✎ß Ó

Ò Ö ➼✫➀✓❿✉✒❐✧ Ù è Ù ✳

Requête3: QuelssontlesActeursdufilm“Ran”?
Solution:
Algèbre:
✴✡✘❁➙ç➌☞✜✑ã☎❅✹✧☞✗✸❸✸❉❃➌❲❅❺✜✑✣❁❀ ▼❝❁❏❑ é➩❀✾✧☞➼✫➀✓❿✉✒➐✳✦✳

SQL:
SELECTActeur
FROMFILM
WHERETitre=’Ran’

Calculn­uplet: ß✝à ✔❑ ☛✍❒➥✞✡Ñ➉â ß ß✝à ✏➛☛✑ÑÏ❒ ✌✓✄ Ó

ÒÏæ ① ➼✫➀✓❿✉✒❐ ✧çæ ✳❙✃❭æ s ❛②Ù➄✬ Ù

Calculdomaine: ✌✓ß✷â Ñ☎ß ✌✎✄ ❧Ñ ☎ß❊❧✌✓ ß

Ò Ö ➼✫➀✎❿❤✒❐ ✧ Ù ✬ Ù ✳

7.2.2 Jointures
Requête4: Dansquellessallespeut­onvoirunfilmavecSimoneSignoret?
Solution:
Algèbre:
✴ ✺✼✻✦✽ ✧❆✮✶①♣❿✰❿✉✪➵€❫✧❆✗ ✘❁➙ç➌☞✜✑ã☎❅❖✣ ❀ ❂✓❉❃✚❑é✹✻✦❅❺✜➛➌ ❀✾✧☞➼✫➀✓❿✉✒➐✳✦✳✾✳

SQL:
SELECTNom
FROMSALLE,FILM
WHERESALLE.Titre=FILM.Titre
ANDFILM.Acteur=’Signoret’

Vertigo/CNAM,Paris SOLUTIONS 33
Requêtes

Calculn­uplet:
✆✟ß✝à ✁☎Ðêâ ß ✆✟ß ß ß❊à ✔❑ ☛✍❒➥✞✸Ñ ✏❆ë❄✄❁✁☎ ÑÏ❒➥☛ ✆✟ß✝ à ✏➛☛✑Ñ☎❒ ß❊à ✏ç☛✑ÑÏ❒ Ó

Ò ✱ Ö✙æ ✧❆✮✶①♣❿✰❿✉✪↔✧ ✳✢✃❤➼✫➀✎❿❤✒❐ ✧❆æ ✳✖✃❤æ ① ❛②Ù✙✮ Ù❆✃ s ❛➑æ s ✳

Calculdomaine:
✄❙ß â ☛✑ß❊❧Ñ ☎ß✝❧ ♥✕✙ ß ☛✑ß✝❧Ñ ☎ß✝❧ ✏çë❄✄❁✁☎ Ñ☎❒➥☛

Ò Ö ✧☞➼✫➀✓❿✉✒❐ ✧ Ù❆✮ Ù■✳❁✃

✄❙ß✝❧♥✕✙ ß✝❧☛✑ ß Ó

✮❽①⑨❿✰❿✰✪q✧ ✳✦✳

Requête5: DansquellessallespeutonvoirMarlonBrandoaprès16h?
Solution:
Algèbre:
✴✸✺✼✻✾✽❇✧❆✗✙➜✿✻✦❅❺❏ ❑❉ ■❅❖✜❺❼❙t✦➅✓✧ ç✮❽①♣❿✉❿✰✪✭✳❽➑✧☞✗✸✘❁➙
€ ➌ç ☞✜✑ ã☎❅✾✣❁❀ ❳ ❅❖❏❑ é✎Ý❑✻✦❀✍✧❆➼✫➀✎❿❤✒➐✳✦✳✾✳

SQL:
SELECTNom
FROMSALLE,FILM
WHERESALLE.Titre=FILM.Titre
ANDFILM.Acteur=’Brando’
ANDSALLE.Horaire>16

Calculn­uplet:
✆✟ß❊à ✁☎Ð â ß ✆✟ß ß ß❊à ✔❑ ☛✍❒➥✞✸Ñ ③✭Ñ☎✌✓✄❁➮✓✁

Ò ✱ Ö➄æ ✧ç✮❽①♣❿✉❿✰✪↔✧ ✳❁✃⑧➼✫➀✎❿❤✒❐ ✧❆æ ✳❁✃⑧æ ① € Ù Ù ✃

✆✟ß✝ àá✲✁☎ÑÏ✌✎✏➛ ÑÏ❒❇ ♦ ✆✟ß✝à ✏➛☛✑ÑÏ❒ ß✝à ✏➛☛✑Ñ☎❒ Ó

€€ì ✿✃ s €❢ æ s ✳

Calculdomaine:
✄❙ß✷ â ☛✑ß✝❧ Ñ ☎ß✝❧ ♥✕➄ ß ☛✑ß✝❧ Ñ ➥ß❊❧ ③✵ÑÏ✌✓✄❁➮✎✁ ✄❙ß❊❧✕✙ ß✝❧☛✑ ß ✕✙߀♦ Ó

Ò Ö ✧☞➼✫➀✓❿✉✒❐✧ Ù Ù ✳❁✃❭✮❽①⑨❿✰❿✉✪↔✧ ✳❁✃ €€ì ✎✳

Requête6: QuelssontlesActeursquiontproduitunfilm?
Solution:
Algèbre:
✴✸✘❁➙ç➌☞✜✍ã➥❅✓✧☞➼✫➀✓❿✉✒➺❤✘❁➙
€ ➌ç ☞✜✑ ã☎❅✾✣✝❍❁❅❖✻❖ Ý❺ãÏ➙ ç➌☞✜✑ã☎❅✼✩✫✬✫✯✂➣⑧➇✂➀✎ s⑨✳

SQL:
SELECTActeur
FROMPRODUIT,FILM
WHEREActeur=Producteur

Calculn­uplet:
ß❊à ✔❑ ☛✍❒➥✞✸Ñ â € ✸ß ➱✙ß ß

Ò☎æ ① Ö ✧☞✩✫✬✫✯✂➣⑧➇✫➀✹s✭✧ ✳❁✃q ➼✫➀✓❿✉✒❐✧ çæ ✳❙✃

ß✝à ✔✢☛✍❒✟✞✡Ñ ➱✙ß❊à ÑÏ✁ Ï➮✎✞✡✔✢☛✍❒✟✞✡ Ñ Ó

æ ① € ✩ ✳

Calculdomaine:
✌✎ß✷â ☛✑ß✝❧☛✑ í ✛❧ Ñ☎ß ☛✑ß❊❧ Ñ ☎ß✝❧✌✓ ß ✌✓ß✝❧☛✑í Ó

Ò Ö ✧❆➼✫➀✎❿❤✒❐✧ ✳❣✃➞✩✫✬✫✯✂➣⑧➇✂➀✎s✭✧ ✳✦✳

Requête7: QuelssontlesActeursquiontproduitunfilmdanslequelilsjouent?
Solution:

Vertigo/CNAM,Paris SOLUTIONS 34
Requêtes

Algèbre:
✴ ✘❁➙ç➌☞✜✑ã☎❅ ✧☞✗ ✘❁➙ç➌☞✜✑ã☎❅✾✣❁❍✝❅❖✻❖ Ý❺ãÏ➙ ç➌☞✜✑ ã☎❅ ✧☞➼✫➀✓❿✉✒➺€➋✩✫✬✫✯✂➣⑧➇✫➀✹ s⑨✳✾✳

SQL:
SELECTActeur
FROMFILM,PRODUIT
WHEREFILM.Titre=PRODUIT.Titre
ANDActeur=Producteur

Calculn­uplet:
ß❊à ✔❑ ☛✍❒➥✞✸Ñ â ➱✙ß ➱✸ß ß

Ò☎æ ① Ö ✧☞✩✫✬✫✯✂➣⑧➇✂➀✎s✭✧ ✳❁✃➞➼✫➀✓❿✉✒❐ ✧çæ ✳❙✃

ß✝à ✔❑ ☛✍❒➥✞✡Ñ ➱✙ß✝à ÑÏ✁Ï➮✹✞✛✔❑☛✍❒➥✞✡ Ñ ß✝à ✏➛☛✑ÑÏ❒ ➱✙ß✝à ✏➛☛✑ÑÏ❒ Ó

æ ① € ✩ ✃➞æ s € s ✳

Calculdomaine:
✌✓ß✷â ☛✑ß✝❧ Ñ ☎ß ☛✑ß✝❧ Ñ ☎ß✝❧✌✓ ß ✌✓ß✝❧☛✑ß Ó

Ò Ö ✧❆➼✫➀✎❿❤✒❐✧ ✳❽✃⑧✩✫✬✂✯✂➣➞➇✂➀✹s❇✧ ✳✾✳

Requête8: QuelssontlesActeursquiontproduitetréaliséunfilm?
Solution:
Algèbre:
✬➉➠➡r●€ ✴✸❝❁✜✍❏❺❋❃❉■▲✍❏❑ ➌☞✜✑ã☎❅★✧☞✗✙❍✝❅❖✻❖ Ý❺ãÏ➙ç➌☞✜✑ ã☎❅✾✣❁❝❁✜✦❏❺❋➒❉ ▼▲✍❏❺➌☞✜✑ ã☎❅★✧☞✩✫✬✫✯✂➣⑧➇✫➀✹ s❫➋➼✫➀✓❿✉✒➐✳✾✳
€€ € € € € € € € € € € €

✬✫➤ r●€ ✴✸✘❁➙ç➌☞✜✑ã☎❅✓✧☞➼✫➀✓❿✉✒ î€ ❤✘❁➙ ç➌☞✜✍ ã➥❅❖✣❁❝❁✜✍❏❑❋➒❉ ■▲✦❏❺➌☞✜✑ã☎❅⑨✬➉➠☎✳

SQL:
SELECTA.Acteur
FROMFILMA,FILMB,PRODUITC
WHEREA.Acteur=B.Realisateur
ANDB.Realisateur=C.Producteur
ANDB.Titre=C.Titre
Calculn­uplet:
ß✝à ✔❑ ☛✍❒➥✞✡Ñ â í✡❧➱✙ ß ß í ➱✙ß

ÒÏæ ① Ö✙æ ✧☞➼✫➀✓❿✉✒❐✧çæ ✳❙✃➞➼✫➀✎❿❤✒❐ ✧❆æ ✳✛✃➞✩✫✬✂✯✂➣➞➇✂➀✹s❇✧ ✳❙✃

ß❊à ✔❑ ☛✍❒➥✞✸Ñ ➱✸ß✝à ÑÏ✁Ï➮✹✞✛✔❑☛✍❒➥✞✸ Ñ í ✛à ❒ ☎✌❄✠❲✏✍✆➥✌✎☛✍❒ ➥✞✡Ñ ß❊à ✔❑ ☛✍❒➥✞✸Ñ

æ ① € ✩ ✃❭æ ✬ ❛➑æ ① ✃

➱✸ß✝à ✏➛☛✑ÑÏ❒ í ✛à ✏➛☛✑ÑÏ❒ Ó

s €€æ s ✳

Calculdomaine:
✌✎ß â ☛✑ß✝❧☛✑í ✛❧ Ñ☎ß✝❧✌✓ í ☛✑ß❊❧Ñ ☎ß❊❧✌✓ ß ✌✓ß✝❧☛✑í ☛✑í✛❧✌✓ ß❊❧✌✓ í Ó

Ò Ö ✧☞➼✫➀✓❿✉✒❐✧ ✳❩✃➞✩✫✬✫✯✂➣⑧➇✂➀✎s✭✧ ✳❙✃➞➼✫➀✎❿❤✒❐ ✧ ✳✦✳

Requête9: QuelssontlesProducteursquiregardentlesfilmsqu’ilsontproduits?
Solution:
Algèbre:
✴✸❍❁❅❺✻❖Ý❺ã☎➙ ç➌☞✜✍ã➥❅✎✧☞✗✡❂ Ïï✟✜✍➙ ç➌☞❏❑➌☞✜✑ ã☎❅✾✣❁❍✝❅❖✻❖ Ý❺ãÏ➙ç➌☞✜✑ã☎❅✎✧❆✩✫✬✂✯✂➣➞➇✂➀✹ s➑❘
€❇ð➇✫✳✾✳

Calculn­uplet:
➱✙ß❊à ÑÏ✁Ï➮✎✞✡✔❑☛✍❒➥✞✡ Ñ➉â ß ➱✙ß ß ➱✸ß✝ à ÑÏ✁Ï➮✹✞✛✔❑☛✍❒➥✞✸ Ñ ß✝à ➱✡❒➥✔✢☛✍✌✎☛✍❒ ➥✞✡Ñ

Ò ✩ Ö❄ñ ✧☞✩✫✬✫✯✂➣⑧➇✂➀✎s✭✧ ✳✝✃➞ð➉➇➏✧❲ ñ ✳✝✃ ✩ ❛④ñ ✮

➱✙ß❊à ✏ç☛✑ÑÏ❒ ß✝à ✏➛☛✑Ñ☎❒ Ó

✃ s ❛④ñ s ✳

Calculdomaine: ➱✙ß✲â ☛✑ß ➱✙ß✝❧☛✑ ß ➱✙ß✝❧☛✑ ß Ó

Ò Ö ✧☞✩✫✬✫✯✂➣⑧➇✂➀✎s✭✧ ✳❊✃❭ð❇➇➏✧ ✳✾✳

Vertigo/CNAM,Paris SOLUTIONS 35
Requêtes

7.2.3 Difference
Requête10: Quelsfilmsnepassentencemomentdansaucunesalle?
Solution:
Algèbre:
✴ ❸✸❉❃➌❲❅❺✜ ✧☞➼✫➀✓❿✉✒➐✳❩➫✐✴ ❸✡❉➒➌❲❅❺✜ ✧ç✮❽①♣❿✉❿✰✪✭✳

Calculn­uplet:
ß✝à ✏➛☛✑ÑÏ❒✭ â ß ✆✟ß ✆✖ß ✆✟ß✝à ✏➛☛✑Ñ☎❒ ß❊à ✏➛☛✑ÑÏ❒ Ó

Ò☎æ s ➼✫➀✓❿✉✒❐✧çæ ✳❙✃❭ò❽Ö ✧ç✮❽①♣❿✉❿✰✪↔✧ ✳❁✃ s €€æ s ✳

Calculdomaine:
☛✑ß✷ â Ñ☎ß✝❧✌✎ ß ☛✑ß❊❧Ñ ☎ß✝❧✌✓ ß ✄❙ß✝❧♥ ✕✙ß ✄❙ß❊❧✕✙ ß✝❧☛✑ ß Ó

Ò Ö ➼✫➀✎❿❤✒❐✧ ✳❣✃❭ò❽Ö ✧❆✮✶①♣❿✰❿✉✪↔✧ ✳✾✳

Requête11: Quelestlerésultatdelarequêtesuivante(ATTENTION,larequêten’estpassaine!)?
ß✝à ✏➛☛✑Ñ☎❒✵ â ß Ô ✆✖ß ✆✟ß ✆✟ß✝à ✏➛☛✑ÑÏ❒ åó ß✝à ✏➛☛✑Ñ☎❒ Ó

ÒÏæ s ➼✫➀✎❿❤✒❐✧❆æ ✳✝✃ ✧❆✮❽①⑨❿✰❿✉✪↔✧ ✳✝✃ s ❛➑æ s ✳

Solution: ✆✟ß

Larequêten’estpasindépendantedudomaine:lavariable peutcorrespondreàtouteslessalles,
maisaussiàtouteslesacteurs,filmsetc....Danslederniercas,lerésultatestvide.

Requête12: QuelsSpectateursaimentunfilmqu’ilsn’ontpasvu?
Solution:
Algèbre:
✴✡❂➩ï✟✜✍➙ ç➌☞❏❺➌☞✜✍ã➥❅✓✧☞①⑨➀✓✒❞✪❞➫⑦ ð❇➇✵✳

Calculn­uplet:
✌✎ß❊à ➱✸❒☎✔❑☛✍✌✓☛✍❒➥✞✸Ñ â ✌✓ß ß ß

Ò ✮ ①♣➀❄✒❞✪ ↔✧ ✳✝✃➞ò❽Ö★ñ ✧❆ð➏➇➏✧❲ ñ ✳❊✃

✌✎ß❊à ➱✸❒☎✔❑☛✍✌✓☛✍❒ ➥✞✸Ñ ß✝à ➱✸❒☎✔❑☛✍✌✓☛✍❒➥✞✸Ñ ✌✓ß❊à ✏➛☛✑ÑÏ❒ ß✝à ✏➛☛✑Ñ☎❒ Ó

✮ €€ñ ✮ ✃ s €€ñ s ✳

Calculdomaine: ✆✟ß✷â ☛✑ß ✆✟ß✝❧☛✑ß ✆✟ß❊❧☛✑ ß Ó

Ò Ö ①⑨➀✓✒❞✪q✧ ✳❊✃➞ò❽ð➉➇➏✧ ✳

Requête13: Quin’aimeaucunfilmqu’ilavu?
Solution:
Algèbre:
✴✡❂➩ï✟✜✍➙ ç➌☞❏❺➌☞✜✑ã☎❅❄✧❆ ð➉➇✫✳❩➫ ↕✴✛❂➩ ï ✖✜✦➙ ç➌☞❏❺➌☞✜✑ ã☎❅❄✧☞①♣➀❄✒❞✪➵❡
€➉ð➇✫✳

Calculn­uplet:
ß❊à ➱✸❒☎✔❑☛✍✌✓☛✍❒➥✞✸Ñ â ß ✌✓ß✝❧ ✌✓ß

Ҁñ ✮ ð❇➇➏✧☞ ñ ✳❁✃❭ò❽Ö ñ✓ô✡✧☞①⑨➀✓✒❞✪↔✧ ✳✝✃❭ð➉➇➏✧❲ ñ❄ ô✓✳

✌✎ß❊ à ➱✸❒☎✔❑☛✍✌✓☛✍❒➥✞✸Ñ ß✝à ➱✸❒☎✔❑☛✍✌✓☛✍❒➥✞✸Ñ ✌✎ß❊ à ✏ç☛✑ÑÏ❒ à ✏➛☛✑ÑÏ❒

✃ ✮ ❛④ñ ✮ ✃ s ❛④ñ❄ô s ✃

ß❊à ➱✡❒☎✔❑☛✍✌✓☛✍❒✟✞✡Ñ à ➱✸❒☎✔❑☛✍✌✓☛✍❒➥✞✸Ñ Ó

ñ ✮ ❛❜ñ✓ô ✮ ✳

Calculdomaine:
✆✟ß✷ â ✆✟ß✝❧☛✑ß ☛✑í ✆✟ß✝❧☛✑í ✆✟ß✝❧☛✑í Ó

Ò ð❇➇➏✧ ✳✝✃❭ò❽Ö ✧❆①♣➀❄✒❞✪ ↔✧ ✳❁✃❭ð❇➇➏✧ ✳✾✳

Vertigo/CNAM,Paris SOLUTIONS 36
Requêtes

Requête14: Quin’aproduitaucunfilmdeDoillon?
Solution:
Algèbre:
✴✡❍❁❅❖✻❖Ý❺ãÏ➙ç➌☞✜✑ ã☎❅✹✧❆✩✫✬✂✯✂➣➞➇✂➀✹ s②✳❩➫↕✴✡❍❁❅❖✻❖ Ý❺ãÏ➙ç➌☞✜✑ ã☎❅✹✧❆✩✫✬✂✯✂➣➞➇✂➀✹ s❫➑✧☞✗✙❝❁✜✦❏❺❋➒❉
€✍▼▲ ❏❺➌☞✜✑ ã☎❅❖✣❁❀ ✻✾❉➒❋➒❋❃✻✦é✹❀✸➼✫➀✓❿✉✒➐✳✾✳

Calculn­uplet:
➱✙ß❊à ÑÏ✁Ï➮✎✞✡✔✢☛✍❒✟✞✡ Ñ â ➱✙ß ➱✙ß ❧ ß ➱✸ß ß

Ò ✩ ✩✫✬✂✯✂➣➞➇✂➀✹s❇✧ ✳❙✃❭ò❽Ö Ù æ ✧❆✩✫✬✫✯✂➣⑧➇✂➀✎s✭✧ Ù▼✳❁✃➞➼✫➀✎❿❤✒❐✧❆ æ ✳❙✃

ß✝à ❒ ☎✌❄✠❲✏✍✆➥✌✓☛✍❒ ➥✞✸Ñ ✁☎✏➛✠❆✠☞✁☎✄ ß✝à ✏➛☛✑ÑÏ❒ ➱✙ß à ✏➛☛✑ÑÏ❒ ➱✙ß à Ñ☎✁Ï➮✎✞✛✔❑☛✍❒➥✞✸ Ñ ➱✸ß✝ à ÑÏ✁Ï➮✹✞✛✔❑☛✍❒➥✞✸ Ñ Ó

æ ✬ € Ù ➣ Ù ✃❭æ s € Ù s ✃ Ù ✩ € ✩ ✳

Calculdomaine:
➱✸ß â ☛✑ß ➱✙ß❊❧☛✑ß

Ò Ö ✩✫✬✫✯✂➣⑧➇✫➀✹s✭✧ ✳❁✃

✌✓ß✝❧☛✑ß ➱✙ß❊❧☛✑ ß ☛✑ß ❧ ✁☎✏✑✠☞✠❆✁☎✄ ❧✌✓ß Ó

ò❽Ö Ù➛✧☞✩✫✬✫✯✂➣⑧➇✫➀✹ s✭✧ Ù▼✳❙✃➞➼✫➀✓❿✉✒❐✧ Ù Ù▼➣ Ù ✳✦✳

Requête15: Quiaproduitunfilmquinepassedansaucunesalle?
Solution:
Algèbre:
✴ ❍❁❅❖✻❖Ý❺ãÏ➙ç➌☞✜✑ ã☎❅ ✧❆✩✫✬✂✯✂➣➞➇✂➀✹s❫➑✧❲✴
€€ € € € ❸✡❉❃➌❲❅❖✜ ➼✫➀✎❿❤✒õ➫✐✴ ❸✡❉➒➌❲❅❺✜ ✮✶①♣❿✰❿✉✪✭✳✦✳

Calculn­uplet:
➱✙ß❊ à ÑÏ✁ Ï➮✎✞✡✔✢☛✍❒✟✞✡ Ñ â ➱✸ß ß ß ß❊à ✏ç☛✑ÑÏ❒ ➱✙ß❊ à ✏ç☛✑ÑÏ❒

Ò ✩ ✩✫✬✫✯✂➣⑧➇✂➀✎s✭✧ ✳❙✃❭Ö➄æ ✧❆➼✫➀✎❿❤✒❐✧❆æ ✳❙✃➞æ s € s ✃

✆✟ß ✆✖ß ✆✟ß✝à ✏➛☛✑Ñ☎❒ ß❊à ✏➛☛✑ÑÏ❒ Ó

ò❽Ö ✧ç✮❽①♣❿✉❿✰✪↔✧ ✳❁✃ s €€æ s ✳✦✳

Calculdomaine:
➱✙ß â ☛✑ß ➱✸ß✝❧☛✑ ß Ñ☎ß✝❧✌✓ ß ☛✑ß✝❧ Ñ ☎ß✝❧✌✓ ß

Ò Ö ✩✫✬✫✯✂➣⑧➇✂➀✎s✭✧ ✳✝✃➞Ö ✧❆➼✫➀✎❿❤✒❐✧ ✳❽✃

✄❙ß❊❧✕✙ ß ✄❙ß✝❧ ♥✕➄ ß❊❧☛✑ ß Ó

ò❽Ö ✧ç✮❽①♣❿✉❿✰✪↔✧ ✳✦✳✾✳

7.2.4 Division
Requête15: QuelsSpectateursontvutouslesfilms?(ouSpectateurspourlesquelsiln’existepasunfilm
qu’ilsn’ontpasvu)
Solution:
Algèbre:
ð✭➇❜ ö⑦✴✡❸✸❉❃➌❲❅❺✜ Ï✧☞➼✫➀✓❿✉✒➐✳

Calculn­uplet:
ß❊à ➱✡❒ ☎✔❑☛✍✌✓☛✍❒✟✞✡Ñ â ß ß ß í í

Ҁñ ✮ ð➉➇➏✧❲ ñ ✳❊✃❭ò❽Ö➄ æ ✧❆➼✫➀✎❿❤✒❐✧❆æ ✳❙✃❭ò❽Ö❄ ñ ✧❆ð➏➇➏✧❲ ñ ✳❙✃

í ✛à ✏ç☛✑ÑÏ❒ ß✝à ✏➛☛✑ÑÏ❒ í ✡à ➱✡❒➥✔✢☛✍✌✎☛✍❒ ➥✞✡Ñ ß✝à ➱✡❒➥✔✢☛✍✌✎☛✍❒ ➥✞✡Ñ Ó

ñ s €€æ s ✃⑧ñ ✮ ❛❜ñ ✮ ✳✦✳

Calculdomaine:
✆✟ß✷ â ☛✑ß ✆✖ß❊❧☛✑ß ☛✑í Ñ☎ß❊❧✌✓ ß ☛✑í✛❧ Ñ➥ ß❊❧✌✓ ß ✆✟ß✝❧☛✑í Ó

Ò Ö ð➏➇➏✧ ✳❁✃❭ò❽Ö ✧❆Ö ✧❆➼✫➀✎❿❤✒❐✧ ✳❩✃❭ò❽ð➉➇➏✧ ✳✦✳✾✳

☛✑ß

Attention,larequêtesuivanten’estpassaine:lavariable peutcorrespondreauxtitredefilms
maisaussiauxacteurs,spectateursetc... Danslederniercas,lerésultatesttoujoursvide.
✆✟ß✷â Ô ☛✑ß Ñ☎ß✝❧✌✓ ß ☛✑ß✝❧Ñ ☎ß✝❧✌✓ ß ✆✖ß❊❧☛✑ ß Ó

Ò ✧❆Ö ✧❆➼✫➀✎❿❤✒❐✧ ✳❣✃❭ð❇➇➏✧ ✳✦✳✾✳

Vertigo/CNAM,Paris SOLUTIONS 37
Requêtes

Requête16: QuelsActeursjouentdanstouslesfilmsdeWelles?(ouActeurspourlesquelsiln’existe
pasunfilmdeWellesqu’ilsn’ontpasjoué)
Solution:
Algèbre:
✧☞✴✸✘❁➙ç➌☞✜✑ ã☎❅✾❥❸✡❉➒➌❲❅❺✜➩✧❆➼✫➀✎❿❤✒➐✳✦✳❁ ö➑✧❲✴✸❸✡❉❃➌❲❅❖✜✹✧☞✗✙❝❁✜✦❏❺❋➒❉ ▼▲✍❏❺➌☞✜✑ ã☎❅❖✣❁❀❆ äå✜➛❋➒❋❃✜✍ ▲✑❀❺✧☞➼✫➀✓❿✉✒➐✳✾✳✦✳

SQL:
SELECTfx.Acteur
FROMFILMfx
WHERENOTEXISTS(SELECTfy
FROMFILMfy
WHEREfy.Realisateur=’Welles’
ANDNOTEXISTS(SELECTfz
FROMFILMfz
WHEREfz.Titre=fy.Titre
ANDfz.Acteur=fx.Acteur
))
Calculn­uplet:
ß✝à ✔❑ ☛✍❒➥✞✡Ñ â ß í í

ÒÏæ ① ➼✫➀✓❿✉✒❐✧çæ ✳❙✃❭ò❽Ö➄ æ ✧☞➼✫➀✓❿✉✒❐ ✧çæ ✳✛✃

í ✛à ❒☎✌❄✠❲✏✍✆➥✌✓☛✍❒ ➥✞✸Ñ ❒ ☎✠☞✠❆❒ Ï✆

æ ✬ ❛②Ù è Ù➩✃❭ ò❽Ö➄æ✛ô✡✧☞➼✫➀✓❿✉✒❐✧ çæ✛ô✓✳✡✃

à ✏ç☛✑ÑÏ❒ í ✛à ✏➛☛✑ÑÏ❒ à ✔✢☛✍❒✟✞✡Ñ ß✝à ✔❑ ☛✍❒➥✞✡Ñ Ó

æ✛ô s €❢ æ s ✃❭æ✛ô ① €❢ æ ① ✳✦✳

Calculdomaine:
✌✎ß â ☛✑ß✝❧ Ñ ☎ß ☛✑ß❊❧Ñ ☎ß❊❧✌✓ ß

Ò Ö ➼✫➀✓❿✉✒❐✧ ✳❣✃

☛✑í ✌✓í ☛✑í✛❧ ❒ ☎✠☞✠❆❒ ☎✆ ❧✌✓í Ñ☎í ☛✑í✛❧ Ñ➥ í✛❧✌✓ ß Ó

ò❽Ö ✧❆Ö ➼✫➀✎❿❤✒❐✧ Ù è Ù ✳✦✳❁✃❭ò❽Ö ➼✫➀✎❿❤✒❐✧ ✳

Attention,larequêtesuivanten’estpassaine(indépendantedudomaine):elledonnelebonrésultat,
☛✑í

si correspondàtouslesfilmsd’OrsonWellesetfauxsinon.
✌✎ß â Ô ☛✑í ☛✑í ✛❧ ❒ ☎✠☞✠☞❒ Ï✆ ❧✌✓ß Ó

Ò ➼✫➀✎❿❤✒❐ ✧ Ù è Ù ✳

Requête17: QuelssontlesSpectateursquiaiment touslesfilmsqu’ilsontvu?(ouSpectateurspour


lesquelsiln’existepasunfilmqu’ilsontvuetqu’ilsn’ontpasaimé)
Solution:
Algèbre:
✧☞①♣➀❄✒❞✪➵€⑦❱ ❂➩ï✟✜✍➙ ç➌☞❏❺➌☞✜✑ ã☎❅ ❨ ❂➩ï ✟✜✍➙ ç➌☞❏❺➌☞✜✍ ã➥❅❖❀ ✧❆ð➉➇✫✳✦✳❁ ö❘ð❇➇

Calculn­uplet:
✌✓ß✝ à ➱✸❒☎✔❑☛✍✌✓☛✍❒➥✞✡Ñ â ✌✓ß ß ß

Ò ✮ ①♣➀❄✒❞✪ ↔✧ ✳✝✃➞ò❽Ö❄ñ ✧❆ðå➇➏✧☞ ñ ✳❁✃

✌✓í ✌✎í ✌✓í ✛à ✏ç☛✑ÑÏ❒ ß❊à ✏ç☛✑ÑÏ❒

ò❽Ö ✧☞①♣➀❄✒❞✪ ↔✧ ✳❁✃ s ❛❜ñ s ✃

✌✓í✡à ➱✡❒➥✔✢☛✍✌✎☛✍❒ ➥✞✡Ñ ✌✎ß❊à ➱✸❒☎✔❑☛✍✌✓☛✍❒ ➥✞✸Ñ Ó

✮ € ✮ ✳✦✳

Calculdomaine:
✆✟ß✲ â ☛✑ß ✆✟ß❊❧☛✑ß ☛✑í ✆✟ß✝❧☛✑í ✆✟ß❊❧☛✑ í Ó

Ò Ö ①♣➀❄✒❞✪ ↔✧ ✳✝✃❭ò❽Ö ✧❆ð➉➇➏✧ ✳❁✃❭ò❣①♣➀❄✒❞✪ ↔✧ ✳✦✳

Requête18: QuelssontlesProducteursquivoienttouslesfilmsqu’ilsontproduit?(ouProducteurspour
lesquelsiln’existepasunfilmqu’ilsontproduitetqu’ilsn’ontpasvu)
Solution:

Vertigo/CNAM,Paris SOLUTIONS 38
Requêtes

Algèbre:

✧☞✴✸❍❁❅❺✻❖Ý❺ã☎➙ç➌☞✜✍ã➥❅❤✩✫✬✫✯✂➣⑧➇✂➀✎ s❜❤❍✝❅❖✻❖
€ ❺Ý ➙ãÏ➌ç☞✜✑ ã☎❅✾✣✝❂➩ ï✟✜✍➙ ç➌☞❏❺➌☞✜✍ã➥❅⑨ð❇➇✫✳❁ ö❡✩✫✬✫✯✂➣⑧➇✂➀✎ s

Calculn­uplet:
➱✙ß❊à ÑÏ✁ Ï➮✎✞✡✔✢☛✍❒✟✞✡ Ñ â ➱✙ß ß ß

Ò ✩ ✩✫✬✂✯✂➣➞➇✂➀✹s❇✧ ✳❁✃➞ò❽Ö❄ ñ ✧❆ðå➇➏✧☞ ñ ✳❁✃

➱✙ß✝ à ÑÏ✁ Ï➮✹✞✛✔❑☛✍❒➥✞✡ Ñ ß❊à ➱✸❒☎✔❑☛✍✌✓☛✍❒➥✞✸Ñ ➱✙í ➱✙í

✩ €€ñ ✮ ✃➞ò❽Ö ✧☞✩✫✬✫✯✂➣⑧➇✂➀✎s✭✧ ✳✛✃

➱✙í ✛à ✏ç☛✑ÑÏ❒ ß✝à ✏➛☛✑Ñ☎❒ ➱✙í✛ à ÑÏ✁Ï➮✎✞✡✔✢☛✍❒✟✞✡ Ñ ➱✙ß❊à ÑÏ✁Ï➮✎✞✡✔❑☛✍❒➥✞✡ Ñ Ó

s €€ñ s ✃ ✩ € ✩ ✳✦✳

Calculdomaine:
➱✸ß✷ â ☛✑ß ➱✙ß❊❧☛✑ ß ☛✑í ➱✸ß✝❧☛✑í ➱✙ß❊❧☛✑í Ó

Ò Ö ✩✫✬✂✯✂➣➞➇✂➀✹s❇✧ ✳❁✃❭ò❽Ö ✧❆ð➉➇➏✧ ✳✝✃➞ò❣✩✫✬✫✯✂➣⑧➇✫➀✹ s✭✧ ✳✦✳

Requête19: QuelsProducteursvoient touslesfilmsdeKurosawa?(ouProducteurspourlesquelsil


n’existepasunfilmdeKurosawaqu’ilsn’ontpasvu)
Solution:
Algèbre:

✬➉➠➦r♥€ ✴✸❸✡❉➒➌❲❅❺✜Ï✧❆✗✙❝❁✜✍❏❺❋❃❉ ■▲✍❏❑➌☞✜✑ ã☎❅✾✣❁❀☞ ÷✼ ã➥❅❺✻❖▲✍❏❑➓❁❏❑❀❲➼✫➀✓❿✉✒➐✳

✬✫➤ r♥€ ð❇➇➑❪❁❴❯❂➩ ï ✟✜✍➙ ç➌☞❏❺➌☞✜✑ ã☎❅❖✣❁❍❁❅❺✻✾ Ý❺ãÏ➙ ç➌☞✜✑ã☎❅✶✩✫✬✫✯✂➣⑧➇✂➀✎ s

✬✂➧ r♥€ ✴✡❂➩ï✟✜✍➙ ç➌☞❏❺➌☞✜✑ã☎❅✓✧☞✬✫➤❯ ö❡✬❇➠☎✳

–R1(Titre):touslesTitresdefilmsdeKurosawa
–R2(...):lesfilmsvuspardesProducteurs
–R3(Spectateur):résultat
Calculn­uplet:
➱✙ß❊à ÑÏ✁Ï➮✎✞✡✔✢☛✍❒✟✞✡ Ñ â❐➱✙ ß ➱✙ß ß ß

Ò ✩ ✩✫✬✂✯✂➣➞➇✂➀✹s❇✧ ✳❙✃❭ò❽Ö➄æ ✧❆➼✫➀✎❿❤✒❐✧❆æ ✳✝✃

ß✝à ❒➥✌❄✠☞✏✑✆➥✌✓☛✍❒➥✞✸Ñ ✞✡Ñ☎✁➩✆➥✌✓ ù♣✌ ß ß

æ ✬ € Ù✙ø Ù ✃❭ò❽Ö❄ñ ✧çð➉➇ å✧❲ ñ ✳❁✃

ß❊à ✏ç☛✑ÑÏ❒ ß✝à ✏➛☛✑ÑÏ❒ ß✝à ➱✸❒☎✔❑☛✍✌✓☛✍❒➥✞✸Ñ ➱✸ß✝ à Ñ☎✁Ï➮✎✞✛✔❑☛✍❒➥✞✸ Ñ Ó

ñ s €€æ s ✃⑧ñ ✮ € ✩ ✳✦✳

Calculdomaine:
➱✙ß â ☛✑ß ➱✙ß✝❧☛✑ß ☛✑í ✌✓ß ☛✑í✛❧ ✞✡ÑÏ✁➩✆➥✌✎ ù⑨✌ ❧✌✓ß

Ò Ö ✩✫✬✫✯✂➣⑧➇✂➀✎s✭✧ ✳✝✃➞ò❽Ö❁✧ Ö ✧❆➼✫➀✎❿❤✒❐✧ Ù ø Ù ✳✦✳✝✃

➱✙ß✝❧☛✑í Ó

ò❽ð❇➇➏✧ ✳✦✳

Vertigo/CNAM,Paris SOLUTIONS 39
CalculdesClés

Chapitre8

Décomposition

8.1 CalculdesClés
❧ ③↔❧♥ ②❧ ③þý

ExerciceA: Soitleschémarelationnel
②❧③ÿý ❧③➉ ◗ý Ó
ú✷✧❆① ➣⑧✳
aveclesdépendancefonctionnelles û➘❛ üÒ☎①


.Quellessontlesclés? ①

Solution:
③ ③

1. n’apparaîtdanslemembredroitd’aucunedépendance,donc appartientàlaclé.

2. Montronsque n’estpasuneclé:
③✁ ③ ③q❧ Ó➉ó
t

€ €➐Ò ➣ ❛◗➇

③ ③➉ ③

3. Essayonsdemontrerque ①
, ,et ➣
sontdeclés:
Etape1:
③ ❧③↔Ó ②❧ Ó
t

① €➐Ò➥① ➶✲Ò ➣ ❛➑➇

③ÿý× ③➝ý

Eneffet vientde ①
, ➣
vientde ➣
.
③ ③
t

① ❛❜① ❛◗➇

–donc ①
estunesuperclé.
Etape2:
③❇ ③↔❧♥ ❇Ó ❧ Ó
t

❛❞Ò ➶✷Ò➥① ➣ ❛◗➇

③❇ ❞ý ③➝ý

Eneffet ①
vientde ①
, ➣
vientde ➣
.
③❇ ③➉
t

€ ❛◗➇

③❇

–donc estunesuperclé.
Etape3:
③ ③q❧ Ó Ó ③ ➑ó
t

➣ €➐Ò ➣ ➶✲Ò➥➣ € ➣ €❢➇

–donc n’estpasunesuperclé.

4. Donc,comme

(a) doitapparaîtredanstouteclé

(b) n’estpasuneclé

Vertigo/CNAM,Paris SOLUTIONS 40
CalculdesClés

③ ③➉

(c) ①


, sontdessuperclés
③➉

alors ①
et sontles2seulesclés.
❧③q ❧ ②❧ ý➯③q ❧③î ý ②❧ ý ❧ ý €Ó

ExerciceB: Soit leschémarelationnel ú✷✧☞① ➣q✳


, û €õÒ☎① ① ➣ ➣
.
Montrerque estlaseuleclé. ①

Solution:
1. ①
appartientàtoutecléparceque ①
n’apparaîtdansaucunmembredroitdedépendance.
2.
Ó ③↔❧♥ ❇Ó ❧③q❧ Ó
t

① ❛❞Ò➥① ➶✷Ò €➐Ò➥① ➣

€Ó
t

① ❛❫① ➶✷Ò ❛◗➇

Donc estuneclé. ①

3. de1)etdufaitquetoutsous­ensemble ð
de contenantuneclénepeutêtrequ’unesuperclé ➇

etnonpasuneclé,onendéduitque ①
estlaseuleclé.
❧③q ❧ ②❧ ýõ③q❧③ ý ②❧ ý ③åÓ

ExerciceC: Soitleschémarelationnel ú✷✧☞① ➣q✳


et ûڀ Ò➥① ➣
.Trouverles
clés.
Solution:
1. et ① ➣
n’apparaissentdansaucunmembredroitdedépendanceetfontpartiedetouteclé.
2. Si ①⑨➣
estuneclé,alorsc’estlaseule
❧ Ó ③åÓ
t

①♣➣ ❛❞Ò☎① ➣ ➶✷Ò

€Ó
❾ t

①⑨➣ ❛❜①⑨➣ ❛➑①♣➣ ➶✷Ò ❛◗➇

Donc ①⑨➣
estlaseuleclé.

ExerciceD: Soitleschémarelationnel
✂ ✁☎✞✡ÑÏ✆✎❧✄✂ ÑÏ✁ ❒☎✆☎✆➥❒ ➥✞✸ÑÏ❧☎➽✁☎ ÑÏ✌✓✏ çÑÏ❒✓❧ ✌❄✠☞✠❆❒ ✓❧✆⑨☛✑✞✡➮✎✏✑✌✓✄❙☛❑ ❧✝➽✁☎☛✍❒

ú✷✧ æ ✇ ✳

◗ý ❧á ýÛ ②❧á ý ❧♥ ý ❧á ý Ó

ûü❛◗Ò ✩ ✮ ✩ ✮ ✪ ✱ ✪ ✮

Montrerquelaseulecléest ✪
.
Solution:
á

Etape1: et sont les2attributsqui ✪


n’apparaissentdansaucunmembrededroitede
dépendance.
Etape2:
á á➽❧ Ó Ó á➽❧ ❧ Ó
t

✪ ❛◗Ò ✪ ➶✲ÒÏ✮ ❛◗Ò ✪ ✮

á ý


vientde ✪ ✮
.
á á✲❧ ❧ Ó €Ó á➽❧ ❧ ❧♥ ❇Ó

✪ ❛◗Ò ✪ ✮ ➶✷Ò €➐Ò ✪ ✮

á ý×

vientde ✮
. á

á➽❧ ❧ ❧ ❇Ó ❧ Ó

✪ ❛◗Ò ✪ ✮ ➶✷Ò➥✩ ✱

❞ý ý


vientde ✩
, ✱
vientde ✪ ✱
.
á á

✪ € ✪ €❢➇

Donc ✪
estuneclé–de1)c’estlaseuleclé.
❧③q ❧ ②❧

ExerciceE: Soitleschémarelationnel ú✷✧☞① ➣q✳


, ûü❛✟✞
.Quellessontlesclés?
Solution:
Étantdonnéqu’iln’yapasdedépendancesfonctionnelles,aucunattributdansl’universapparaît
ducotédroited’unedépendancefonctionnelle.Donclaseulecléestcomposéedetouslesattributs
dans . ú

Vertigo/CNAM,Paris SOLUTIONS 41
TroisièmeFormeNormale

8.2 TroisièmeFormeNormale
ExerciceA: Est­cequeleschéma ✞✛❒✎❧☛➞✏➛✠❆✠☞❒ ✓❧ ✂ ✁Ï➮✓❒ ✁➩✆✟☛✍✌✓✠

ú✷✧✡✠ ✩ ✳

ýÛ ②❧♥ ➐ ý Ó

û❐❛◗ Ò➥✬✫ ð ð

esten3FN? Ô ý✌☞ Õ ☞

Définition3FN: ① € ÿrÏ①
estunesupercléou appartientàuneclé.
Solution:
1. Lescléssont et . ✬✫ð ✬

ý✌☞ ☞

2. Montronsquepourtoutedépendancede , ,soit estunesuperclé,soit appartient € ① ①

àuneclé:
ýÛ

– ✬✫ð

➐ý
: estuneclé. ✬✫ð

– : appartientàlaclé
ð
. ð ✬✫ð

Donc esten3FN.Donciln’estpasnécessairededécomposer
ú
.Remarqueztoutefoisque ✬

certainesredondancesnesontpaséliminéesdansunerelation3FN:
R Rue Ville Code­Postal
DeGaulle Paris 75008
ChampsElysées Paris 75008
✏✑✠❆✠☞❒ ✂✁Ï➮✎❒ ✁➩✆✟☛✍✌❄✠

Nonseulementonalaredondance ,
✏✑✠☞✠❆❒ ✓❧ ✂✁Ï➮✓❒
,maisonnepeutpasinsérerunnouveau
✁➩✆✖☛✍✌❄✠
ð ✩

couple ✧çð
sansconnaîtreunerueaveccecode. ✩ ✳

ExerciceB: Montrerquelesschémassuivantsnesontpasen3FN:
Schéma1:
❧③↔❧ ♥ ②❧

ú✷✧❆① ➣⑧✳

③ÿýÛ ②❧③➝ý ❧③❇ ❞ý Ó

ûü❛➐Ò➥① ➣ ①

Solution: ③ ③➉ ③ÿý ③

Clés: et①
(voirexerciceplushaut).Dansladépendance , ➣
n’estpasune
supercléet n’appartientàaucuneclé.Doncleschéman’estpasen3FN.

Schéma2:
❧③↔❧ ♥ ②❧

ú✷✧❆① ➣⑧✳

ý ③↔❧③➝ýÛ ②❧ ý ❧ ýÛ €Ó

ûü❛◗Ò☎① ① ➣ ➣

Solution: ③üý ③

Clé: (voirexerciceplushaut).Dansladépendance

, ý
n’estpasunesuperclé
et n’appartientpasàuneclé(demêmepourladépendance ➣
.Doncleschéma
n’estpasen3FN.
Schéma3:
②❧ ❧á➽❧ ❧ ❧

ú✷✧ ✩ ✮ ✪ ✱✷✳

◗ý ❧á ýÛ ②❧á ý ❧♥ ý ❧á ý Ó

ûü❛◗Ò ✩ ✮ ✩ ✮ ✪ ✱ ✪ ✮

Solution:
Aucunedépendancesaufladernièresatisfaitlescritèresde3FN.Doncceschéman’est
pasen3FN.

Vertigo/CNAM,Paris SOLUTIONS 42
DécompositionsansPerted’Information

Schéma4:
❧ ❧ ❧

ú✷✧❆➼ ① ✱ ✩✵✳

ý ❧ ý Ó

û❐❛❞ Ò☎➼ ① ➼✫✱ ✩

Solution: ý

➼✫✱
estlaseuleclé(montrezle).Dansladépendance € ①
, €
n’estpasunesuperclé
et n’appartientpasàuneclé.

Schéma5:
❧ ❧ ❧

ú✷✧ç✒ ① ➣ ✬✫✳

ý ❧ ý Ó

➼➐❛❞ÒÏ✒❞① ➣ ✒❞➣ ✬

Solution: ý

✒❞①
estlaseuleclé(montrez­le).Dansladépendance ✒❞➣ ✬
, ✒❞➣
n’estpasune
supercléet n’appartientpasàlaclé. ✬

8.3 DécompositionsansPerted’Information
❧③q ❧ ②❧ ý ③↔❧♥ ×ý Ó

ExerciceA: Soit leschémarelationnel


✍ ③q ❧

ú✷✧☞① ➣q✳ û➻❛ ×Ò➥① ➣
et ladécomposition
❛◗Ò☎①
. ➣

1. Montrerque n’estpasunedécompositionsansperted’information.
2. Donnerunedécompositionsansperted’information.

Solution:
❧ Ó

1. Unedécomposition Ò➥✬➉➠ ✬✫➤


estsansperted’information,sional’unedesdépendances:
ý

✬➉➠✶⑥⑧✬✫➤ ✬➉➠✼➫❵✬✂➤

✬➉➠✶⑥⑧✬✫➤ ✬✫➤②➫❵✬❇➠

or ✬➉➠✶⑥⑧✬✫➤✫❛✟✞
,donc estavecperted’information.
Exemple

R A B C D
R1 A B R2 C D
a1 b1 c1 d1
a1 b1 c1 d1
a1 b1 c2 d1
a2 b2 c2 d1
a2 b2 c1 d1

R1 ❬
R2 A B C D
a1 b1 c1 d1
a1 b1 c2 d1
a2 b2 c1 d1
a2 b2 c2 d1

Unedécompositionestsansperted’information,siparjointure(ouproduitcartésien)des2
relations et ,onpeutobtenirlarelationinitiale
✬❇➠ ✬✫➤
. ✬

Ladécompositionprécédentedonneaprèsproduitcartésienunerelationdifférentedelarela­
tioninitiale.

Vertigo/CNAM,Paris SOLUTIONS 43
DécompositionsansPerted’Information

✍ ③q❧ Ó

2. Ù
❛❞Ò➥① ① ➣
estunedécompositionsansperted’information.Eneffet:
✬➉➠❽⑥➞✬✫➤✫❛❫①

✬➉➠✼➫❵✬✂➤✫❛

ý ③

orona . ①

Surl’exempleprécédent:

R2 A C D
R1 A B
a1 c1 d1
a1 b1
a1 c2 d1
a2 b2
a2 c1 d1

✬➉➠ ♣€➋✬✫➤✫❛➑✬

✍ ③➉ ②❧ Ó

ÙÙ €➐Ò➥① ➣
estégalementunedécompositionsansperted’information:
✬➉➠✰⑥⑧✬✫➤✵❛

✬✫➤⑨➫✐✬➉➠ ♣❛❫➣

➐ý Õ

➣ €

ExerciceB: Soitleschémarelationnel
✁☎✞✸Ñ☎✄❙✏✍✆☎✆➥❒✟✞✡ ÑÏ❧✏ q ➮✎ Ñ☎❒ Ï✆☎✆➥❒✓❧✝➽✁☎ Ð ÑÏ✁Ï➮✙❧✄✂ Ñ ☎✏çß

ú✷✧✡✎ ✩ ✳

ý ❧ ý Ó

û❐❛❞ Ò☎➼ ① ➼✫✱ ✩

Trouverunedécompositionsansperted’information.
Solution:
Décomposition1:
✍ ❧ Ó

t ❛❞Ò➥➼✫① ➼✫✱✲✩

✬➉➠✰⑥⑧✬✂➤✵❛❫➼

✬❇➠✿➫❵✬✫➤✵❛❜①

ý Õ

€ ① û

Décomposition2:
✍ ❧ Ó

❾⑨❛◗Ò☎➼✫✱✲① ➼✫✱✲✩

✬❇➠✰⑥⑧✬✫➤✵❛❜➼✫✱

✬✫➤②➫❵✬❇➠♣❛➑✩

ý Õ

➼✫✱ ✩ û

ExerciceC: Soitleschémarelationnel
✌✎ë❄✌★✆✟✏➛✄❽❧✏ qÑ➥☛✑✏✑✔✢✠❆❒✓❧✒❇➱✸✌✓ Ñ ☎☛✍❒➥Ð ➞❒➥✄❙☛❑❧ ❒ Ï✆✾➱✸✁☎✄✝✆➥✌★ ♠❑✠☞❒

ú✷✧✡✑ ✠ ✳

ý ❧ ý Ó

ûü❛➐ Ò☎✒❞① ➣ ✒❞➣ ✬

1. Montrerquelaseulecléest . ✒❞①

2. Trouverunedécompositionsansperted’information.

Vertigo/CNAM,Paris SOLUTIONS 44
PréservationdesDépendancesFonctionnelles

Solution:
1. ✒
et ①
n’apparaissentpasàdroited’unedépendance.Donctoutecléinclut ✒❞①
.Prouvons
que ✒❞①
estuneclé: t
❧ ❧ Ó

✒❞① €➐Ò☎✒ ① ➣

✒❞① ❛❫✒❞① ❛➑➇

Donc

✒❞①
estlaseuleclé.
❧ Ó

2. t ❛◗ÒÏ✒❞①♣➣ ✒❞➣↔✬
estunedécompositionsansperted’information:
✬➉➠✰⑥⑧✬✫➤✫❛❢✒❞➣

✬✂➤②➫❵✬➉➠ ♣❛❫✬

ý Õ

✒❞➣ ✬ €

✍ ❧ Ó

Demêmepour ❾♣❛❞ÒÏ✒❞①♣➣ ✒❞①♣✬


:
✬➉➠❽⑥➞✬✫➤✫❛➑✒❞①

✬➉➠✿➫✐✬✫➤✫❛❫➣

ý Õ

✒❞① ➣ €

8.4 PréservationdesDépendancesFonctionnelles
ExerciceA: Soitleschéma ③❇

ú✷✧☞① ➣q✳

③ÿý× ②❧③➝ý ❧ ➐ý Ó

û➝❛➐ Ò➥① ➣ ①

1. Donnerunedécompositionquipréservelesdépendancesde û
.
2. Est­cequecettedécompositionestsansperted’information?

Solution:
☞ ☞Úý

1. Oncréeunerelationdeschéma pardépendance
③➉ ②❧③
.Onobtientdoncladécompo­❧♥
✧ ①②✳ ①

sition: .Lesdépendancessontpréservées.Eneffet
✧☞① ➣ ①⑨✳

③❇ ③ÿýÛ ③

– ✧☞①



apourdépendance ③ÿý

(projetéede sur û


① ➣
).
– ✧ ➣q✳
apourdépendance ➐ý

(projetéede sur ). û ➣

– ✧ ①②✳
apourdépendance ①
(projetéede sur ). û ①

③❇

Cependant, encréant
③➉ ③➉
✧❆①
et

, onauneredondanceinutile(
✧ ①⑨✳ ①
est incluedans

).Larelation ✧☞① ✳
aveclesdépendances
③ÿýÛ ②❧♥ ❞ý Ó

Ò➥① ①

✍ ③❇ ②❧③

estsuffisante.Ladécompositionfinaleestdonc: ✍
❛➵✧❆① ➣⑧✳
.
2. Ladécomposition estsansperted’informationsi:
③❇ ③ ý ③➉ ③ ③ ③❇ à

① ⑥ ➣ ① ➫ ➣✲✧ ➣þ➫✐① ✳

Eneffet, ③➝ý Õ à

➣ û

Donc c’est unebonnedécompositionc.a.d. sansperted’informationet qui préserveles


③➉ ③

dépendances.Onpeutvérifierquelesrelations ✧☞①
et ainsiobtenuessonten3FN. ✳ ✧ ➣q✳

Vertigo/CNAM,Paris SOLUTIONS 45
PréservationdesDépendancesFonctionnelles

ExerciceB: Soitleschéma ③❇

ú✷✧☞① ➣q✳

ý ③q ❧③➝ ý× ②❧ ý ③↔Ó

ûü❛❞ Ò➥① ➣

etladécomposition ✍ ❧③

€ÿ✧☞① ➣ ➣q✳

1. Est­ceque préservelesdépendancesde ? ③
û

2. Est­cequelesrelations et obtenuessonten3FN? ✧☞① ➣q✳ ✧ ➣⑧✳

Solution:
ý€ ý➺③↔❧③➾ýî

1. Unedépendanceprojetéede û
sur ✧☞①

ý
➣⑧✳

Õ
est ①
.Eneffet, ①

ýõ
appar­
tiennentàF.Doncpartransitivité ① û
.Demêmeonpeutvérifierque ➣
est
aussiunedépendanceprojetéede û
sur ✧☞① ➣⑧✳
telleque:
③ÿýÛ ②❧ ý ③↔Ӏâ ýÛ ②à

Ò ➣ ❛➑➣

ý ③ ③ ý×③ ③❐ ý

Deplus, estunedépendanceprojetéede

sur .Parcontre et û ✧ ➣q✳


① ➣

nepeuventêtredesdépendancesprojetéesde

nisur nisur .Ladécomposition û ✧❆① ➣q✳ ✧ ➣q✳

nepréservedoncpaslesdépendancesde .Elleleferaitsil’ensembledesdépendancesde

û

✧☞①
etde
➣q✳
: ✧ ➣q✳ ✓

ýÛ ②❧ ýÛ ②❧ ý ③åÓ

€➐Ò➥① ➣ ➣

impliqueraitlesmêmesdépendancesque : . û ❛④û

Onpeutillustrersurcetexemplepourquoiilestsouhaitablequ’unedécompositionpréserveles ♠✢➮ ③

dépendances:lorsqu’oninsèreunn­uplet danslarelation ,onvérifiequ’ilsatisfasse


ýÛ③
✧ ➣⑧✳

③ÿý×

ladépendance .Maisonnepeutpasvérifierlacontrainte

sansfairelajointure ③

entrelesdeuxrelations et . ✧❆① ➣q✳ ✧ ➣q✳

ýõ ②❧ ýõ €Ó

2. Larelation apourdépendances
✬➉➠✎✧☞①
.Lacléuniqueest
➣q✳
.Mon­ ý✔☞
Ò➥① ➣


①♣➣

tronsquepourtoutedépendancede , ,soit estunesuperclé,soit appartientà € ① ①

uneclé:
ýÛ

– ①
: n’appartientpasàlaclé.
ýÛ

– ➣
: n’appartientpasàlaclé.
Donc n’estpasen3FN.
✬➉➠

③ ý➻③åÓ

Larelation apourdépendance
✬✫➤➄✧
.Lacléuniqueest ➣q✳
.Danscettedépen­ Ò➥➣ ➣

dance estlaclé.Donc

esten3FN. ✬✂➤

ExerciceC: Trouverdesdécompositionsenrelationsquisonten3FN,décompositionsquipréserventles
dépendancesetquisontsansperted’information,pourlesschémassuivants:
Schéma1:
③❇

ú✷✧☞① ➣q✳

ý ③↔❧③➝ýÛ ②❧ ý ❧ ýÛ €Ó

ûü❛◗Ò☎① ① ➣ ➣

Schéma2:
á

ú✷✧ ✩ ✮❽✪✵✱✷✳

◗ý ❧á ýÛ ②❧á ý ❧♥ ý ❧á ý Ó

ûü❛◗Ò ✩ ✮ ✩ ✮ ✪ ✱ ✪ ✮

Schéma3:
ú✷✧☞➼✫①⑨✱✲✩✵✳

ý ❧ ý Ó

û❐❛❞ Ò☎➼ ① ➼✫✱ ✩

Vertigo/CNAM,Paris SOLUTIONS 46
PréservationdesDépendancesFonctionnelles

Schéma4:

ú✷✧❆✒❞①⑨➣↔✬✫✳

ý ❧ ý Ó

ûü❛➐ Ò☎✒❞① ➣ ✒❞➣ ✬

Schéma5:
③❇

ú✷✧☞① ➣q✳

③❇ ➐ý Ó

û❐❛◗ Ò➥① ➣

Schéma6:
③❇

ú✷✧☞① ➣q✳

ý ③q❧ ý× ②❧ ý Ó

ûü❛❞Ò➥① ① ① ➣

Schéma7:
③❇

ú✷✧☞① ➣q✳

ý ③↔Ó

ûü❛➐Ò➥①

Schéma8:
③❇

ú✷✧☞① ➣q✳

ý ③↔❧③➝ý ❧③ÿý Ó

ûü❛➐Ò➥① ① ➣

Solution:
1
Rappelonsquelabonnedécompositionpeuttoujours êtreobtenueen:
–créantunerelationpardépendance:
☞➾ý ☞

Si estunedépendance,oncréeunerelationdeschéma

:c’estladécomposition ✧ ①②✳

quipréservelesdépendances.
–si aucuneclén’est déjàinclusedansunerelationcrééeprécédemment, il faut ajouterune í í

relationdeschéma ,où estuneclé. ✧ ✳

☞ ❧✖à✖ à✟à✖❧ ☞

–enremplaçant lesschémas ☞
obtenusdanslapremièreétapeparunseul
à✟à✖à
✧ ① t ✳ ✧ ① é ✳

☞ ☞➾ý

schéma .Eneffetpourchaqueschéma
✧ ①②t
onaladépendanceprojetée ☞
①♣é✙✳

à✖à✟à
✧ ①♣❉➛✳

☞êý ❧✖à✟ à✖à✢❧☞êý

etlarelation
①♣❉
préservetouteslesdépendancesprojetées ✧


①✂t ①⑨é➄✳ ①②t

.Danscettecas
①♣é
c’estlaclédelarelation.Donccetterelationestdéjàen3FNetladé­ ☞ ❧✖à✟ à✖à✟❧ ☞

composition(sansperted’informationetquipréservelesdépendances)enschémas ✧ ①②t✖✳ ✧ ①♣é➄✳

estsuperflue.

Schéma1: Laclé ①
inclusedans:
③q ❧③➉ ②❧ ❧ à

✧☞① ①⑨➣ ➣ ✳

③ ③

Lesrelations ✧❆① ✳
, ✧❆①♣➣q✳
sontremplacéespar ✧☞① ➣q✳
. Donclabonnedécomposition
est:
③ ýÛ③ ý

– ✧☞① ➣q✳❩①
, ① ➣

③➉ ③ÿýÛ

– ✧ ✳

ýÛ

– ✧☞➣ ✳❊➣

á á

Schéma2: Lacléunique ✪
inclusedans: ✪ ✮
.Donclabonnedécompositionest:
❞ý

– ✧ ✩✵✳ ✩

1.Onn’apasbesoindevérifiersiladécompositionestsansperted’informationetpréservelesdépendancesfonctionnelles.

Vertigo/CNAM,Paris SOLUTIONS 47
FormeNormaledeBoyce­Codd

á á ý×

– ✧

á
✮ ✳

á

– ✧ ✩✵✮✶✳ ✩ ✮

– ✧ ✪✭✱✷✳

á á

ý

– ✧☞✪ ✮✶✳ ✪ ✮

Schéma3: Laclé ➼✫✱


inclusedans: ➼✫✱✲✩
.Donclabonnedécompositionest:
ý

– ✧☞➼✫①②✳❩➼ ①

– ✧☞➼✫✱✷✩✵✳✝➼✫✱ ✩

Schéma4: Laclé ✒❞①


inclusedans: ✒❞①♣➣
.Donclabonnedécompositionest:
ý

– ✧❆✒❞①⑨➣q✳❣✒❞①

ý

– ✧❆✒❞➣q✬✂✳❩✒❞➣ ✬

Schéma5: Larelationestdéjàen3FN(elleestmêmeenBCNF),cen’estpaslapeinedela
décomposer.
Schéma6: Idem

Schéma7: Lacléest .Larelationn’estpasen3FN.Leschéma estobtenudelaý



➣ ✧☞① ✳

dépendance . Onrajouteaussileschéma pourlaclé. Donclabonne


① ✧❆① ➣q✳

décompositionest:
③ ý ③

– ✧☞① ✳❩①

– ✧☞① ➣q✳
(pasdedépendance)
③❇ ③

Schéma8: Lescléssont et .Larelationn’estpasen3FN.Leschéma estobtenu ①

ý ③ ③ ý ③
✧☞① ✳

desdépendances
③ÿý
et . Leschéma estobtenudeladépendance ① ① ✧ ➣q✳

③ ③

.Onrajouteaussileschéma

pourlacléetonremplace par . ✧☞① ✳ ✧ ➣q✳ ✧☞① ➣q✳

Donclabonnedécompositionest:
③ ýÛ③ ③ÿý ③ÿý

– ✧☞① ➣q✳❩①
, et ① ➣

– ✧☞① ✳
(pasdedépendance)

8.5 FormeNormaledeBoyce­Codd
ExerciceA: Soitleschéma ③❇

ú✷✧☞① ➣q✳

③ÿý× ②❧③➝ý ❧ ➐ý Ó

û➝❛➐ Ò➥① ➣ ①

1. Donnerunedécompositionsansperted’informationetquipréservelesdépendancesde û
.
2. Est­cequecettedécompositionestenBCNF?

Solution:

1. Rappelonsquetouterelationaunedécomposition(sansperted’informationetquipréserve
lesdépendances)enrelationsquisonten3FN.Maiscesrelationsnesontpasforcementen
BCNF.
UnerelationenBCNFestunerelationoùlesseulesdépendancesquiexistentviennentdes
clés.Plusexactement,toutedépendanced’unerelationenBCNFapourmembregaucheune
superclé.
Onatrouvéqu’unebonnedécomposition(sansperted’informationetquipréservelesdépen­ ③❇

dancesde )duschéma est: û ✧☞① ➣q✳

③❇ ③üýÛ ❞ý

– ✧☞①
et . ✳❩① ①

Vertigo/CNAM,Paris SOLUTIONS 48
FormeNormaledeBoyce­Codd

③ ③ÿý

– ✧
. ➣q✳ ➣

③➉ ③ ✂③ ÿý

2. Cependantlesclésduschéma sont
③➉
et .Ordansladépendance ✧☞① ✳ ①

✍ ③➉ ②❧③

dela
relation , n’estpasunesuperclé.Doncladécomposition
✧☞① ✳ €ÿ✧☞① ➣q✳
n’estpas
enBCNF.

ExerciceB: Parmilesschémasobtenusaprèsladécompositiondesschémassuivantes, trouverlesdé­


compositionsenrelationsquisontenBCNF.
Schéma1:
③❇

ú✷✧☞① ➣q✳

ý ③↔❧③➝ýÛ ②❧ ý ❧ ýÛ €Ó

ûü❛◗Ò☎① ① ➣ ➣

Schéma2:
á

ú✷✧ ✩ ✮❽✪✵✱✷✳

◗ý ❧á ýÛ ②❧á ý ❧♥ ý ❧á ý Ó

ûü❛◗Ò ✩ ✮ ✩ ✮ ✪ ✱ ✪ ✮

Schéma3:

ú✷✧☞➼✫①⑨✱✲✩✵✳

ý ❧ ý Ó

û❐❛❞ Ò☎➼ ① ➼✫✱ ✩

Schéma4:

ú✷✧❆✒❞①⑨➣↔✬✫✳

ý ❧ ý Ó

ûü❛➐ Ò☎✒❞① ➣ ✒❞➣ ✬

Schéma5:
③❇

ú✷✧☞① ➣q✳

③❇ ➐ý Ó

û❐❛◗ Ò➥① ➣

Schéma6:
③❇

ú✷✧☞① ➣q✳

ý ③q❧ ý× ②❧ ý Ó

ûü❛❞Ò➥① ① ① ➣

Schéma7:
③❇

ú✷✧☞① ➣q✳

ý ③↔Ó

ûü❛➐Ò➥①

Schéma8:
③❇

ú✷✧☞① ➣q✳

ý ③↔❧③➝ý ❧③ÿý Ó

ûü❛➐Ò➥① ① ➣

Solution:
TouteslesrelationsobtenuesaprèsladécompositiondesschémadonnéessontenBCNF.Prenons
parexempleleschéma . ú✷✧❆✒❞①⑨➣↔✬✫✳

Laclé inclusedans:
✒❞①
.Donclabonnedécompositionest: ✒❞①⑨➣

– ✧❆✒❞①⑨➣q✳❩✒❞① ➣

– ✧❆✒❞➣q✬✂✳❩✒❞➣ ✬

Vertigo/CNAM,Paris SOLUTIONS 49
FormeNormaledeBoyce­Codd

Larelation apourclé
✧ç✒❞①♣➣q ✳
quiestlapartiegauchedelaseuleD.F.quisatisfait.Demême
✒❞①

pourlarelation .DoncladécompositionobtenueestenBCNF.
✧ç✒❞➣ ↔✬✫✳

2
Remarquonsqu’unerelationsansaucunecontrainteestenBCNF (cf.exercices7et8).
ExerciceC: Montrequeleschéma ✞✛❒✎❧☛➞✏➛✠❆✠☞❒ ✓❧ ✂ ✁Ï➮✓❒ ✁➩✆✟☛✍✌✓✠

ú✷✧✡✠ ✩ ✳

ýÛ ②❧♥ ➐ ý Ó

û❐❛◗ Ò➥✬✫ ð ð

n’estpasenBCNF.
Solution:
Lesclésdecetterelationsont et .Lemembregauchedelapremièredépendanceestuneclé
✬✫ð ✬

(✬✫ð
).Maispasceluideladeuxièmedépendance( ).Pourtantonavuquecommelemembredroit
deladeuxièmedépendance( )appartientàuneclé(
ð
),larelationesten3FN. ✬✫ð

2.Ilfautnoterqu’unerelationsansaucunecontrainteesttoujoursentouteslesformesnormales.

Vertigo/CNAM,Paris SOLUTIONS 50
CHAPITRE9. ORGANISATIONPHYSIQUE

Chapitre9

OrganisationPhysique
ExerciceA: OnprendicicommeexemplelarelationDirecteur(nom_directeur,nom_film).
1. OrganisationSéquentielle:Expliquerl’organisationséquentielleetreprésenterunexemplesur
larelationDirecteur. Montrerlefichieraprèsuneinsertionet aprèsquelquessuppressions
d’articles.
Solution:
Lesarticlessontstockéslesunsderrièrelesautresdansdespagessuccessives. L’avantage
decettestructurephysiqueestsasimplicité. Enparticulier, iln’existepasd’ordreentreles
articles. Laseulefaçond’accéderàunarticleest parbalayageséquentiel:onparcourt le
fichierenséquence,pageparpage:chaquepageestlueenmémoire:lesarticlesdanslapage
sontalorsparcourusséquentiellement.Onlitchaquearticleetlesélectionnesilavaleurdeses
champscorrespondau(x)critère(s)derecherche.Unexempled’uneorganisationséquentielle
pourlarelationDirecteursetrouvedanslaFigure9.1

Allen Annie Hall Allen Annie Hall Allen Annie Hall


Bergman Persona Bergman Persona
Allen Manhattan Allen Manhattan

De Palma Scarface De Palma Scarface De Palma Scarface


Coppola Dracula Coppola Dracula Coppola Dracula
Hitchcock Psychose Hitchcock Psychose Hitchcock Psychose
chainage de places vides
dans l’ordre de suppressions
Fischer Dracula Fischer Dracula Suppression Fischer Dracula
Insertion de
successives de
Jarmusch Down By Law Jarmusch Down By Law Jarmusch Down By Law
"De Palma Carrie" "Allen Radio Days"
De Palma Carlito’s Way De Palma Carlito’s Way
"Bergman Persona"
"De Palma Carlito’s Way"
Jarmusch  Ghost Dog Jarmusch  Ghost Dog "Allen Manhattan" Jarmusch  Ghost Dog
Hitchcock Vertigo Hitchcock Vertigo Hitchcock Vertigo
Jarmusch Night on Earth Jarmusch Night on Earth Jarmusch Night on Earth

Allen Radio Days Allen Radio Days
Coppola GodFather, The Coppola GodFather, The Coppola GodFather, The adresse du 1er article vide
De Palma Carrie De Palma Carrie

F IG .9.1–OrganisationSéquentielledelarelationDirecteur

Vertigo/CNAM,Paris SOLUTIONS 51
CHAPITRE9. ORGANISATIONPHYSIQUE

2. OrganisationIndexée:Montrerdesexemplesd’indexnondense(primaire)etdense(secon­
daire)surlarelationDirecteur.
Solution:
OnillustredanslesFigures9.2et 9.3desexemplesd’indexnondenserespectivementsur
l’attributdirecteuretsurl’attributnomdefilm.L’indexestordonnésurlemêmeattributque
lefichier.Danslafigure9.4onmontredeuxindexdenses,l’unsurl’attributdirecteurl’autre
surlenomdufilm.L’indexesttriésurlacléalorsquel’ordredesarticlesdanslefichierest
quelconque.Deuxremarquessontimportantes:onasupposédanscesexemplesquel’index
tientdansunepage(feuilleunique). Ilfautserappelerqu’enpratique,l’indexaunestruc­
turearborescente(ArbreB, voirhttp://deptinfo.cnam.fr/CycleA/SD/pourunedémonstration
enlignedel’arbreBetdestris).Ensuite,l’exempledanslafigure9.4supposequ’onassocieà
unevaleurdeclé“c”dansl’indexuneadressedepage(oùsetrouventunouplusieursnuplets
ayant“c”pourvaleurdel’attributclé).Enfaitlaplupartdutemps,cen’estpasuneadresse
depage,maisuneadressecomplètedunuplet(adressedepageetadressedanslapage,voir
cours)quiestassociéeà“c”dansl’index.Ceciapourconséquence,ques’ilya“n”nuplets
danslapageayantpourvaleurdeclé“c”,ilyaura“n”couples(“c,adressedenuplet)dans
l’index.
Index 

Allen Bergman De Palma Hitchcock Jarmusch

pointeurs vers les pages de la relation

Bergman Persona De Palma Carlito’s Way Hitchcock Psychose Jarmusch Down By Law pages de la


Allen Annie Hall
Jarmusch Night on Earth
Coppola Dracula De Palma Scarface Hitchcock Vertigo relation
Allen Manhattan
Coppola The Godfather Fischer Dracula Jarmusch  Ghost Dog
Allen Radio Days

F IG .9.2–Indexnondensesurl’attributnom_directeurdelarelationDirecteur

Index 

Annie Hall Dracula Godfather, The Persona Scarface

pointeurs vers les pages de la relation
pages de la relation

Allen Annie Hall Fischer Dracula Coppola Godfather, The Bergman Persona De Palma Scarface

De Palma Carlito’s Way Coppola Dracula Allen Manhattan Hitchcock Psychose Hitchcock Vertigo

Jarmusch Down By Law Jarmusch  Ghost Dog Jarmusch Night on Earth Allen Radio Days

F IG .9.3–Indexnondensesurl’attributnom_filmdelarelationDirecteur

ExerciceB: Construireunindexsurladatedenaissancedesmusicien(arbreB,ordre2):
Monteverdi 1589
Couperin 1668
Bach 1685
Rameau 1684
Debussy 1862
Ravel 1875
Mozart 1756

Vertigo/CNAM,Paris SOLUTIONS 52
CHAPITRE9. ORGANISATIONPHYSIQUE

Index 
Allen Bergman Coppola De Palma Fischer Hitchcock Jarmusch

pointeurs vers les pages de la relation

Allen Annie Hall Coppola Dracula Jarmusch Night on Earth Hitchcock Psychose Coppola Godfather, The


pages de la relation
De Palma Carlito’s Way Jarmusch  Ghost Dog Bergman Persona Allen Radio Days De Palma Scarface
Fischer Dracula Allen Manhattan Hitchcock Vertigo Jarmusch Down By Law

Index dense sur directeur

Index 

Annie Hall Carlito’s Way Down By Law Dracula Ghost Dog Godfather, The Manhattan Night On Earth Persona Psychose Radio Days Scarface Vertigo

pointeurs vers les pages de la relation

Allen Annie Hall Coppola Dracula Jarmusch Night on Earth Hitchcock Psychose Coppola Godfather, The pages de la relation


De Palma Carlito’s Way Jarmusch  Ghost Dog Bergman Persona Allen Radio Days De Palma Scarface
Fischer Dracula Allen Manhattan Hitchcock Vertigo Jarmusch Down By Law

Index dense sur nom de film

F IG .9.4–Indexdense

Faure 1856

Solution:
1684 Rameau 1856 Faure

1589 Monteverdi 1668 Couperin 1685 Bach 1756 Mozart 1862 Debussy 1875 Ravel

ExerciceC: Construireunindexsurlesnomsdesmusicien(arbreB,ordre2).
Solution:
Debussy 1862 Mozart 1756

Bach 1685 Couperin 1668 Faure 1856 Monteverdi 1589 Rameau 1684 Ravel 1875

ExerciceD: ConstruireunarbreB+d’ordre2surlesnumérosdedépartement.
3 Allier
36 Indre
18 Cher
9 Ariège
11 Aude
12 Aveyron
73 Savoie
55 Meuse
46 Lot
39 Jura

Vertigo/CNAM,Paris SOLUTIONS 53
CHAPITRE9. ORGANISATIONPHYSIQUE

81 Tarn
25 Doubs
15 Cantal
51 Marne
42 Loire

Solution:
36

11 18 46 55

3 9 11 12 15 18 25 36 39 42 46 51 55 73 81

ExerciceE: Soitlefichierséquentielsuivant(onnedonnepourchaquearticledufichierquelaclésur
laquelleonconstruitl’arbre): 1153126411725148917101316 .L’indexenarbreB
d’ordre2aprèsl’insertiondesclés 1153126411725148 estmontrédanslafiguresuivante:

3 6 12

1 2 4 5 7 8 11 14 15
1. Donnezl’arbrerésultantaprèsl’insertiondetouslesarticlesdufichierséquentiel.
Solution:
9

3 6 12 15

1 2 4 5 7 8 10 11 13 14 16 17

2. Combiendenœudsdifférents(racineetfeuillescompris)doit­onparcourirdansl’indexpour
répondreàlarequêtequicherchelesarticlesdontlacléappartientàl’intervalle [5,10].
Solution:
Ilfautparcourir6noeuds:[9],[3,6],[4,5],[7,8][12,15],[10,11].

ExerciceF: Soitlesfichiersséquentielssuivants(onnedonnepourchaquearticledufichierquelaclé
surlaquelleonconstruitl’arbre):
– 5,29,17,68,60,43,10,11,12,20,55,30,40,50,25 .
– 100,29,170,70,600,430,99,11,13,21,550,30,400,50,25
– 21530281241819242913279203322123

Vertigo/CNAM,Paris SOLUTIONS 54
CHAPITRE9. ORGANISATIONPHYSIQUE

1. ConstruireunindexenarbreBd’ordre2pourchacundesfichier.
Solution:

11 29 55

(a) 5 10 1217 20 25 30 4043 55 60 68

29 100 430

(b) 11 13 21 25 30 50 70 99 170 400 550 600


20

9 15 24 29

(c) 2 3 4 12 13  18 19  21 23 27 28  30 32

2. ConstruireunindexenarbreB+d’ordre2pourchacundesfichier.

Vertigo/CNAM,Paris SOLUTIONS 55
CHAPITRE10. ALGORITHMESDEJOINTURE

Chapitre10

AlgorithmesdeJointure

Soitlesrelationssuivantes:

–Directeur(nom_directeur,nom_film)
–Acteur(nom_film,nom_acteur)

Soitlarequêtesuivante:

SELECTnom_directeur,nom_acteur
FROMDirecteurJoinActeur
WHEREDirecteur.nom_film=Acteur.nom_film

Pourévaluercetterequête,ilfautcalculerlajointureDirecteur Acteur.Pourl’éxecutiondesjointures,

décrivezetévaluezlacomplxitédel’algorithmeavecbouclesimbriquéesetavectri­fusion.Danslesdeuxcason
tiendracomptedesmouvementsentremémoirecentraleetdisqueetonévlueralenombred’entrées­sorties.

ExerciceA: Algorithmeavecbouclesimbriquées;
Solution:

Algorithme
OnsupposequelesrelationsDirecteuret Acteursont stockéesséquentiellement:ellesnepos­
sèdentaucunchemind’accèsprivilégié(aucunindex)(Figure10.1). L’algorithmeleplussimple
pourévaluerlajointureDirecteur Acteurconsisteàcomparerchaquenuplet

delarelation
DirecteuràtouslesnupletsdelarelationActeur,puisaconcaténerlesnupletspourlesquelsDi­
recteur.nom_film=Acteur.nom_filmetenfinàajouterlenouveautupleaurésultat.L’algorithme
estesquissédansleTableau10.1 1:
Pourévaluerlecoût(lenombredesE/S)decetalgorithmeilfautconnaitrelesparamètressuivants:
(a)latailledechacunededeuxrelationset(b)latailledisponibleenMémoireCentralepourréaliser
cetteopération.
Supposonsquelesdeuxrelationsàjoindreontunetaillesupérieureàlatailledel’espaceMémoire
Centraledisponible. Onsupposeuntamponenm’éoirecentralede pages. Onaffecteen
✖✘✗✚✙

Mémoirecentrale pages(tamponprincipal)pourliredesnupletsdelatableDirecteur,unepage

(tamponauxiliaire)pourliredesnupletsdelatableActeuretunepagepourstockerlerésultatde
lajointure(tamponécriture). OnchargeséquentiellementlarelationDirecteurparpaquetsde ✖

pagesdansletamponprincipal(Figure10.1).
1.Pourl’algorithmeonjointlesrelations ✛
, ✜
oùl’attributdejointureest ✢
.

Vertigo/CNAM,Paris SOLUTIONS 56
CHAPITRE10. ALGORITHMESDEJOINTURE

R =Ø
✤✦✥★✧✪✩✬✫✮✭✯✫

tantqueRn’estpasfinie
liretuple deR
✫✮✰

tantqueSn’estpasfinie
liretuple deS
✫✲✱

si = ,R sultat=R sultat { }
✫ ✰✴✳ ✭ ✫ ✱✵✳ ✭ ✤ ✤ ✫ ✰ ✫ ✱

✣ ✣ ✶ ✕

ftq
ftq

TAB .10.1–Esquissedel’algorithmedesBouclesImbriquées
Directeur Acteur

Allen Annie Hall Annie Hall Mia Farrow
Bergman Persona Night On Earth Benini
Allen Manhattan Dracula Gary Oldman
pages de relation

pages de relation

De Palma Scarface Annie Hall Allen tampon principal


(b pages)
Coppola Dracula Radio Days Allen
Hitchcock Psychose Night On Earth Ryder

Fischer Dracula Down By Law Benini
Jarmusch Down By Law Carlito’s Way Al Pacino
De Palma Carlito’s Way Down By Law Waits tampon auxiliaire
(1 page)

Jarmusch  Ghost Dog Ghost Dog F. Whitaker
Hitchcock Vertigo GodFather, The Al Pacino
Jarmusch Night on Earth Dracula Cushing tampon ecriture
(1 page)

Allen Radio Days Scarface Al Pacino
Coppola GodFather, The GodFather,The M. Brando
Memoire Centrale (MC)

F IG .10.1–RelationsDirecteuretActeursurdisque,etimagedelaMémoireCentrale

Quandletamponprincipal est plein, onchargelapremièrepagedelarelationActeurdansle


tamponauxiliaire. Ensuite, oncomparechaquenupletdutamponprincipalàtouslesnupletsdu
tamponauxiliaire.Lesnupletsquivérifientlecritèredejointuresontjoints.Lenupletrésultatest
alorsécritdansletamponécriture.Lorsqueletamponécritureestplein,soncontenuestécritsur
disque.
Unefoisquelajointuredes premièrespagesdeDirecteuresteffectuéeaveclapremièrepagede ✖

Acteur,onréitèreletraitementenchargeantlasecondepagedeActeurdansletamponauxiliaire
etainsidesuitejusqu’àépuisementdelarelationActeur.Acemomentlà,touslesnupletsdes ✖

premièrespagesdelarelationDirecteurchargéesenMC,ontétécomparésavectouslesnupletsde
larelationActeur.Onréitèrealorsletraitementenchargeantles pagessuivantesdelarelation ✖

Directeurdansletamponprincipal,etcejusqu’àépuisementdelarelationDirecteur.

Performances
LarelationDirecteurestlueuneseulefois( E/S) 2 parmorceauxde pages.Pourchaque ✷✪✸✺✹✼✻✾✽✮✿❁❀✬✽❃❂❄✻ ✖

morceau,larelationActeurestlueentièrement.Alors,larelationDirecteurdoitêtredécoupéeen
❅ ❅✬❍ ❍

morceaux(où
✷❆✸❇✹✼✻✾✽✮✿❁❀✬✽❃❂❄✻❉❈❊✖●❋
dénotelapartieentièresupérieurede ). Lenombretotalde ❋

2.Ici ■❊❏
dénotelenombredepagesdelarelation ✛
,et ❑ ▲❏
dénotelenombredenupletsdelarelation ✛
.

Vertigo/CNAM,Paris SOLUTIONS 57
CHAPITRE10. ALGORITHMESDEJOINTURE

lecturesgénéréesparl’algorithmedejointureparbouclesimbriquéesest:
▼❖◆◗€ ◆❄❲❨❳ ◆ ❅

_ _
✧✪✫✮❘ ✧❭❬❪✩✬✤✦✥

❈❊❙❯❚❃❱ ❩ ❫✯❴❵✖❜❛✦❝✺❞❡✷ ✸❇✹✼✻✾✽✮✿❁❀✬✽❃❂❄✻ ✗ ✷ ✸✺✹✼✻✾✽✮✿❁❀✬✽❃❂❄✻ ❈❢✖●❋❤❣✐✷❆❥ ✿❁❀✬✽❃❂❄✻

Lenombred’écrituresdépenddelatailledurésultat.Comptetenudelaformuleducoûtd’E/Son
aintérêtàchargerlapluspetiterelationdansletamponprincipaletàfairedéfilerlaplusgrande
relationdansletamponauxiliaire.DanslecasoùlapluspetiterelationtientenMC,alorslecoût
d’E/Sdevient . ✷ ✸✺✹❦✻ ●✽✮✿❁❀✬✽✮❂❉✻ ✗❧✷✪❥ ✿❁❀✬✽❃❂❄✻

❳ ❳

Lesnombredecomparaisonsenmémoirecentraleest . ✸✺✹❦✻✾✽✮✿❁❀✬✽❃❂❄✻❤❣ ❥ ✿❁❀✬✽❃❂❄✻

ExerciceB: Algorithmeavectri­fusion;
Solution:
LapremièreétapeconsisteàtrierchacunedesrelationsDirecteuretActeursurleurattributde
jointure(nom_film)(Figure10.2). Ladeuxièmeétape(fusion)nécessitepoursonexécutiontrois
tamponsduMémoireCentrale,d’unepagechacun.Lesdeuxpremiérstamponspermettentdelire
séquentiellementlesrelationsDirecteuretActeurpageparpageetletroisièmetamponestréservé
pourécrirelerésultatdelajointure.

Algorithme
L’algorithmeconsisteàpositionnerunpointeurcourant ( )surlepremiérnu­
✫ ✫

✷ ✸✺✹✼✻✾✽✮✿❁❀✬✽❃❂❄✻ ✷ ❥ ✿❁❀✬✽❃❂❄✻

pletdelarelationDirecteur(Acteur)etàcomparerlesattributsdejointuredecesdeuxnuplets.
L’algorithmerépèteletestsuivant:
–Si l’attribut Directeur.nomdunuplet pointépar est inférieuràl’attribut Ac­

✷ ✸✺✹✼✻✾✽✮✿❁❀✬✽❃❂❄✻

teur.nomdunuplet pointépar , onincrémente afinqu’il pointesurle


✫ ✫

✷ ❥ ✿❁❀✬✽✮❂❉✻ ✷ ✸❇✹✼✻✾✽✮✿❁❀✬✽❃❂❄✻

nupletsuivantdeDirecteur.
–Si l’attribut Directeur.nomdunuplet pointépar est supérieuràl’attribut Ac­

✷ ✸✺✹❦✻✾✽✮✿❁❀✬✽❃❂❄✻

teur.nomdunupletpointépar ,onincrémente afinqu’ilpointesurlenuplet


✫ ✫

✷ ❥ ✿❁❀✬✽❃❂❄✻ ✷ ❥ ✿❁❀✬✽❃❂❄✻

suivantdeActeur.
–Silesdeuxnupletscourantsontleursattributsdejointureégaux,ongénèreunnupletrésultat
etonincrémentel’undesdeuxpointeurs.
Lorsquel’undespointeurscourantspointesurlederniernupletd’unepage, sonincrémentation
génèrelalecturedelapagesuivantedelarelation,dansletamponassociéàcetterelation,etle
pointeurestpositionnésurlepremiérnupletdecettenouvellepage.
Unevariantedel’algorithmeci­dessuspeutetreutiliséepourlestheta­jointuresautresquel’equi­
jointure.

Performances
Lenombred’E/Sdelajointurepartri­fusioncomprendlecoûtéventueldutridela(oudes)relations
àjoindre 3 pluslecoûtdelectureséquentielledesdeuxrelationsàjoindre,pluslecoûtd’écriture
surdisquedurésultat(cedernierestexclusdelaformuleci­dessous)
♦♣
❲✈✉ ◆❄❳ ❲

✱ ✰ts✯✥ s ✥ ✫①✇②✤✾③②✭④✫ ✤❄✤✦✥✯s

✷ ✗❧✷ ❙ €

◆❉⑤✯⑥ ❲ ❲
q
✰ ✩ ✰ ✱ ✰ts✯✥ ✤✦✥⑨✫⑩✫ ✤❉✤

◆ ◆❄❲❁❳ ❲ ❲❃◆❄❳

_ _
✙❪✷ ❣ ✷ ✗⑦✷ ✗⑧✷ ❙ € ✣
❬ ✧❆✫ ✫ ✧❭✥


◆❉⑤✯⑥ ❲⑩✉ ❲
❚✮❱ € ♠ ❝♥❞
♣r
✱ ✩ ✱ ✱ ✰ts✯✥ ✤✦✥★✫✵✫ ✤❉✤

✙❪✷ ❣ ✷ ✗⑦✷ ✗⑦✷ € ✣

◆❉⑤✯⑥ ◆❉⑤✯⑥ ❲◗❳❸❲⑩✉ ❳❸❲ ❳ ◆❄❳ ❲

✰ ✩ ✰ ✱ ✩ ✱ ✱ ✰ts✥ s ✤❹✥ ✫①✫ ✤❄✤✦✥

✙❪✷ ❣ ✷ ✗❶✙❜✷ ❣ ✷ ✗⑦✷ ✗❷✷ ❙ € ✣

❳ ❳

Lecoûtmémoirecentraledefusiondedeuxlistestriéesde et nupletsdanslepiredescas
✰ ✱

❳ ❳

estquadratique.Dansuncasnondégénéréilestlinéaireen .Noteraussiquedanslecas
✰ ✱

dégénéré,l’algorithmemontréplushautnemarchepas.Pourquoi?

3.Lecoûtdutrid’unerelationdeppagesestdel’ordrede ❺❃ ■❤❻❤❼✼❽❿❾❜➀➁■
E/S ➂
étantlenombredepagesdutamponenmémoirecentrale
disponiblepourletri.

Vertigo/CNAM,Paris SOLUTIONS 58
CHAPITRE10. ALGORITHMESDEJOINTURE

Directeur Acteur

Allen Annie Hall Annie Hall Allen
De Palma Carlito’s Way Annie Hall Mia Farrow
Jarmusch Down By Law Carlito’s Way Al Pacino
pages de relation

Fischer Dracula Down By Law Benini
Coppola Dracula Down By Law Waits
Jarmusch  Ghost Dog Dracula Cushing

Coppola GodFather, The Dracula Gary Oldman
Allen Manhattan Ghost Dog F. Whitaker
Jarmusch Night on Earth GodFather, The Al Pacino

Bergman Persona GodFather,The M. Brando
Hitchcock Psychose Night On Earth Benini
Allen Radio Days Night On Earth Ryder

De Palma Scarface Radio Days Allen
Hitchcock Vertigo Scarface Al Pacino

F IG .10.2–RelationsDirecteuretActeurtriéessurnom_film

Vertigo/CNAM,Paris SOLUTIONS 59
CHAPITRE11. OPTIMISATIONDEREQUÊTES

Chapitre11

OptimisationdeRequêtes
ExerciceA: SoitlabaseSTATIONDESKIdeschéma:
hotel(noms,nomh,categorie,adresse,tel,nb_chambres)
station(noms,gare)
activite(type_activite,noms)
Pourchacunedesrequêtessuivantes,ondemande:
1. l’arbresyntaxiquedelarequête
2. lepland’exécutionobtenuparlarestructurationalgébrique
3. lepland’exécutionobtenuparuneoptimisationglobale.

Requête1: adresse,numérodetéléphoneetnombredechambresdeshôtelsdecatégorie3’
danslastationdenom(noms’persey’.
SELECTadresse,tel,nb_chambres
FROMhotel
WHEREnoms=’pesey’ANDcategorie=3;

Solution:
(1)arbresyntaxiquedelarequête:Figure11.1

(2)restructurationalgébrique:Lesprincipesqu’ilfautprendreencomptepourlare­
structurationalgébriquesontlessuivants:
1. évaluerlessélections(ourestrictions)leplustôtpossible.Eneffet,larelationqu’on
obtientparl’évaluationdesélectionsestpluspetitequelarelationinitiale.
2. fairedesprojectionspourréduirelatailledelarelationenquestion.
3. permuterlesjointures.Enprincipe(R ✕
S) ✕
T=R ✕
(S ✕
T)sietseulementsi,
l’attributcommunestlemêmepourlestroisrelations.
Pourlarequêteci­dessus,aucunerestructurationalgébriquen’estnécessaire.

(3)optimisationglobale:Pourtrouverlepland’exécution“optimal”,ilfautestimerle
coûtd’E/Spourchaqueopérationalgébrique.
Pourévaluerlasélection( noms=’pesey’ANDcatégorie=3 ),plusieursstratégiesexistent:
utiliserlesindexexistantsdelarelation“hotel”oubalayageséquentieldecetterelation.
L’utilisationdel’indexpermetd’avoirunaccèsdirectauxtuplesdelarelationquisatis­
fontleprédicatdesélection.

balayageséquentiel: onparcourt séquentiellement larelation:onlit enMCchaque


pagedelarelationenséquence,onlitenséquencelestuplesdelapagecouranteon

Vertigo/CNAM,Paris SOLUTIONS 60
CHAPITRE11. OPTIMISATIONDEREQUÊTES

évalueleprédicatenMémoireCentrale(MC).LecoûtenE/Sdel’évaluationdela
sélectionestlecoûtdelecturedelarelationenMC(danslasuitedel’exerciceon
necomptepaslecoutd’écrituredurésultatsurledisquequiestlemêmequelleque
soitlastratégie.
◆◗€ ❲❃◆❄❳ ❳◗◆ ⑤ ❲❃◆❄❳❵➄➅◆

❬ ✧✪✫ ✥❉✤❄✩✬✤❄❬❜✫ ✤ ✭ ✤✦✥✴✇✯✤➃✩✬✭ ✤❄✩✡✭✯✫ ✫✮✤❄✩

❚ ❝♥❞ ❴❧✖✾❛ ✷ € ❞➇➆★➈❊➈✯➈

.
indexnondensesurnoms: Onutilisel’indexpourtrouveretlireenMClapagequi
contient lestuplesqui satisfont lacontrainte( noms=’pesey’). Lepr’edicat (les
contraintes noms=’pesey’ et catégorie=3 sont vérifiéessurtouslestuplesde
lapage.Lecoûtdelasélectionestestiméparlaformule:
❲❁➊②❲ ❲ ➄❆◆ ✉ ➄❆◆

_ _ _ _
✤★✩✡✤❉❬❪✫ ✫ ✤ ✤✦✇ ❬❪✭②✫ ✇②✤ ✩✬✭ ❬❪✩ ✤ ✫✮✤❄✩ ✫✮✤❉✩

❙➉✣ ✣ ✷❆❛❇✣ ✣ ❣➋❚✬➌➎➍❤❫✪❚ ❝◗✗➏➌➎➍ ❚ ❝✲❝⑨❚✮➆❉❝

–Sélectivité_prédicat_de_la_clé(noms); ➄➅◆

– estlenombredespagesfeuillesdel’indexplaçantdelarelation
✫✮✤❄✩

➌➐➍❤❫❆❚ ❝

hôtel; ✉ ➄➅◆

– estlenombredepagesdelarelationhôtel.
✫✮✤❄✩

➌➐➍ ❚ ❝

Lasélectivitéduprédicat( noms=’pesey’)estcalculeparlaformule:
❲❨➊②❲ ❲ ❳ ➊ ❲ ❳ ❳◗◆

_ _ _
✤❄✩✬✤❄❬❜✫ ✫ ✤ ✤✦✇ ❬❪✭②✫ ✥★✧ ❬⑨✩ ✤ ✭➓✩✬✤❉✧ ✥❯✇ ✤ ✤ ✫✮✤✦✥✯➔❿✇②✤❹✩✡✭ →❬❪✩✡✤ ✥

❙➉✣ ✣ ✷❆❛❇✣ € ✣ ❞➑➆❄❈➒❚ ✖ € ♠❸♠④✣ € ❚ ❴ ❝✲❝

Pourlarequêtedonnée,onn’apasdirectementl’informationsurlenombredeva­
leursdifférentesdenoms,maisonpeutl’obteniràpartirdelarelationstation.En
effetnomsestlecléprimairedelarelationstation,etlenombredevaleursdiffé­
rentesest1000(lenombredetuplesdelarelationstation).Alorscommeonaune
contrainteréférentiellepourl’attributnomsdelarelationhôtel,lenombredeva­
leursdifférentesdeceattributpourhôtelestaumaximum1000.Donc,lasélectivité
duprédicatsurnomsest1/1000=0.001
Apartirdelaformule(1),lecoûtd’E/Sest0.001 (26+1000)=1.026E/S(accès ❣

direct).

indexdensesurcatégorie: Lecoûtdel’évaluationduprédicatdanscecasestcalculé
parlaformule:
❲❁➊②❲ ❲ ➄❆◆ ➄❆◆

_ _ _ _
✤❄✩✡✤❉❬❪✫ ✫ ✤ ✤❉✇ ❬❪✭②✫ ✇②✤ ✩✬✭ ❬❪✩ ✤ ✫✮✤❄✩ ✫✮✤❄✩

❙➉✣ ✣ ✷❆❛❇✣ ✣ ❣➋❚✬➌➎➍❤❫✪❚ ❝◗✗➏➌➎➍❖➣④❚ ❝❿❝

–Sélectivité_prédicat_de_la_clé(catégorie);
–NPIestlenombredespagesfeuillesdel’indexnonplaçantdelarelationhôtel;
–NPT(R)estlenombredetuplesdelarelationhôtel.
Lasélectivitéduprédicat( catégorie=3’)estestiméeparlaformule:
❲❨➊②❲ ❲ ❳ ➊ ❲ ❳ ⑤▲◆ ❲

_ _ _
✤❄✩✬✤❄❬❜✫ ✫ ✤ ✤✦✇ ❬❪✭②✫ ✥★✧ ❬⑨✩ ✤ ✭➓✩✬✤❉✧ ✥❯✇ ✤ ✤ ✫✮✤✦✥❹✇✯✤➃✩✬✭→❬❪✩✡✤ ❬⑨✭✯✫✮✤ ✤

❙➉✣ ✣ ✷❆❛❇✣ € ✣ ❞➑➆❄❈➒❚ ✖ € ♠❸♠④✣ € ❚ € ❝❿❝

Pourlarequêtedonnée, lasélectivitéduprédicat surl’attribut catégorieest 1/5.


Donc,lecoûtd’évaluationdelasélectionest: 1/5 (33+10000)=2007E/S.Le ❣

coûtesttropélevé(l’indexn’aaucunintérêtcarlenombredecatégoriesdifférentes
esttropfaible).

Requête2: nomdestation(noms)etlagaredelastationpourlesstationsayantpouractivité
letennis.

SELECTnoms,gare
FROMstation,activite
WHEREtype_activite=‘‘tennis’’
ANDstation.noms=activite.noms

Vertigo/CNAM,Paris SOLUTIONS 61
CHAPITRE11. OPTIMISATIONDEREQUÊTES

Solution:
arbresyntaxiquedelarequête:Figure11.1

restructurationalgébrique:Figure11.1

optimisationglobale:Pourchoisirlepland’exécutionlemeilleur,ilfautestimerlecoût
d’E/Sminimumpourchacundesopérationsalgébriquesetchoisirlemoinscher.Lecoût
decetterequêteest:
◆◗€ ◆◗€ ➊ ❲❨◆❄❳ ❲ ❲ ❲❃◆❄❳ ◆◗€ ➊ ❲❨◆❄❳ ◆❄❲❨❳

_ _ _
❬ ✧✪✫ ✤❄ ↔❄✧✪✤❉✫✮✤ ❬ ✧❆✫ ✤ ✭➓✩➁✧❭✭②✫ ✤❉✇ ❬❪✭②✫ ✤❢✥★✫ ❬❜✫ ❬ ✧➅✫ ✤ ✭➓✩➁✧❭✭②✫ ③ ✫❃✧ ✤

❚➁❛ ❝✺❞ ❚➓✣ ✷❆❛❇✣ ❛❇✣ € ❝●✗ ❚➓✣ € ❝

–coût(évaluation_prédicat_restriction):
balayageséquentiel: Lecoût d’évaluationdelarestrictionest égal aunombre
pagesdelarelationactivité=300.
indexdensesurtype_activité: Lecoûtd’E/Sestestimépar:
❲❁➊②❲ ❲ ➄❆◆ ➄➅◆

_ _ _ _
✤★✩✡✤❉❬❪✫ ✫ ✤ ✤❄✇ ❬❪✭②✫ ✇②✤ ✩✬✭ ❬❪✩ ✤ ✫✮✤❄✩ ✫✮✤❄✩

❙➉✣ ✣ ✷➅❛❇✣ ✣ ❣➋❚✬➌➎➍❤❫✪❚ ❝◗✗➏➌➎➍❖➣④❚ ❝❿❝

Pourlarequêtedonnée,lasélectivitéduprédicatsurl’attributtype_activitéest
1/(nbdifférentesdevaleursdetype_activité)=1/40.Alors,lecoûtd’évaluation
delasélectionest:1/40 (10+3000)=76E/S.Larelationobtenuen’estpas ❣

dansl’ordredenoms.
–coût(évaluation_jointure): Pourl’évaluationdejointureil existeplusieursalgo­
rithmesqu’onpeututiliser:(a)bouclesimbriquées,(b)tri­fusion.Pourcalculerle
coûtdelajointureilfautd’abordcalculerlatailledelarelationTemp(Figure11.1).
Latailled’unerelationaprèsavoirévaluéleprédicatdelasélectionestdonnépar
laformule:
❲❨➊②❲ ❲ ❲ ❲❃◆❄❳ ✉

✤❄✩ ✤★❬❜✫ ✫✮✤↕✇❊✧ ✤✦✇ ❬❪✭②✫ ✤❢✥★✫ ❬❜✫

❙➉✣ ✣ ✷❆❛❇✣ ❛➙✣ € ❣➛➌➎➍❖➣④❚ ❝

Lasélectivitéduprédicat type_activité=’tennis’est 1/40, alorslenombredes


tupleslusenMC(tailledelarelationTemp)est1/40 3000=75tuples.Comme ❣

larelationTempestconstituéed’unseulattribut(noms),alorsonpeutconsidérer
qu’elletientdans1ouauplus2pages.

bouclesimbriquées: Lecoûtdel’évaluationdelajointureest:



s

➌➐❩④➍①➜❨❀✬➝✾❀➁✹➟➞✲➠→✗ ➌➎❩✁➍⑩➜❨❀✬➝❜❀➁✹❦➞❿➠❆❈❢✖✾❋→❣➡➌➎❩✁➍✈➢❭✽❃➤❇➥


❲✵➦★➧★➨➒➧★➩✬➫✪➭ ❲ ❲❃◆❄❳

✥ ✤✦✥★✫⑩✩✡✭ ✤❉✫ ✫✮✤ ✤❄✩✬✭②✫

✷ €

q
s

◆◗€ ❲❃◆❄❳
➌➐❩④➍⑩➢✪✽❃➤❇➥❹✗ ➌➎❩④➍⑩➢✪✽✮➤✺➥②❈❊✖ ●❋→❣➡➌➐❩④➍①➜❨❀✬➝✾❀➁✹➟➞✲➠
❬ ✧➅✫ ✥★✫✮✭②✫ ✤


❲✵➯t➲➓➸
€ € € ❲ ❲❃◆❄❳
❚ ✕❡➣ ❴✐✷✪❝♥❞

✥ ✤✦✥★✫⑩✩✡✭ ✤❉✫ ✫✮✤ ✤❄✩✬✭②✫

✷ €

♣r
s

➌➐❩④➍ ➢€ € € € € € ✗❡➌➎❩✁➍ ➜❃❀✬➝✾❀➁✹❦➞❿➠

❲ ❳ ❲❃◆❄❳ ❲ ❳ ❳➡➻➼ ▼

✥ ✧ ✤↕✇②✤❹✇②✤❉✧❆➺ ✤❄✩✬✭②✫ ✥❯✫ ✤ ✫✈✤

Dansnotrecas,larelationTemptientenMC(2pagesaumaximum)alorsle
❲❃◆❄❳➾➽◗➚

coût( )= =2+100=102E/S.
✥★✫✮✭✯✫ ✤

➣ ❴✐✷ ➌➎❩✁➍ ➢❭✽❃➤❇➥ ✗➪➌➎❩✁➍ ➜❃❀✬➝✾❀➁✹❦➞❿➠

DanslecasoùTempestdéjàenMC(aprèsl’évaluationdelasélectionetdela ❲❃◆❄❳➶➽◗➚ ❲❃◆❄❳

projection),lecoût( )= =100E/S.
✥★✫✮✭②✫ ✤ ✫✮✭✯✫

➣ ❴✁✷ ➌➎❩✁➍ ➜

tri­fusion: Lecoûtd’évaluationdelajointureest:
◆◗€ ❲❃◆❄❳ ♥➽◗➚ ◆◗€ ❲ ❲❃◆❄❳ ◆◗€ ❲

_ _
❬ ✧➅✫ ✥★✫✮✭②✫ ✤ ❬ ✧➅✫ ✫ ✥⑨✫✮✭②✫ ❬ ✧➅✫ ✫ ✤

❚ ➣ ❴✁✷❭❝♥❞➹➌➎❩✁➍⑩➜❨❀✬➝❜❀➁✹❦➞❿➠❆✗✘➌➎❩✁➍✈➢❭✽❃➤❇➥②✗ ❚ € ❝❿✗ ❚ € ➣ ❴✁✷❭❝

Vertigo/CNAM,Paris SOLUTIONS 62
CHAPITRE11. OPTIMISATIONDEREQUÊTES

station activite

station activite type_activite = ’tennis’

hotel noms = 

noms
noms = "persey" AND categorie = 3
type_activite = ’tennis’
Temp

adresse, tel, nb_chambres noms = 
noms, gare
noms, gare

Arbre Syntaxique du q1 Arbre Syntaxique du q2 Restructuration Algebrique du q2

F IG .11.1–ArbresSyntaxiqueetRestructurationAlgébriquepourlesrequêtes(1)et(2)

ExerciceB: Soitleschémasuivant:
CREATETABLEFILM( CREATETABLEVU(
TITRE VARCHAR2(32), SPECTATEUR VARCHAR2(32),
REALISATEURVARCHAR2(32), TITRE VARCHAR2(32)
ACTEURVARCHAR2(32) );
);
SoitlarequêteSQL:
SELECTACTEUR,REALISATEUR
FROMFILM,VU
WHEREFILM.TITRE=VU.TITRE
Danschacundescassuivants,donnerl’algorithmedejointuredeORACLE(parEXPLAIN,unarbre
d’exécutioncommenté,uneexplicationtextuelleoutoutautremoyendevotrechoix):
1. Iln’existepasd’indexsurTITREnidansFILMnidansVU,
Solution:
Tri­fusion(voircours):Figure11.2etpland’exécutionOracle.

Pland’exécution
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
0SELECTSTATEMENT
1MERGEJOIN
2SORTJOIN
3TABLEACCESSFULLVU
4SORTJOIN
5TABLEACCESSFULLFILM

2. IlexisteunindexsurTITREdansFILMseulement.
Solution:
LatableVUestprisecommetabledirectrice:pourchaquetitredansVUparcouruséquen­
tiellement,onchercheàtraversl’indexleROWIDs’ilexisted’unnupletdeFILMetonfaitla
jointure(commelarelationFILMn’estpasnormalisée,ilyaplusieursnupletsdemêmetitre)
(Figure11.3).

Vertigo/CNAM,Paris SOLUTIONS 63
CHAPITRE11. OPTIMISATIONDEREQUÊTES

ACTEUR, REALISATEUR
Projection

Fusion

TITRE TITRE
Tri Tri

sequentiel sequentiel

VU FILM

F IG .11.2–Pland’exécution

CREATEINDEXFILM_TITRE_idxonFILM(TITRE);

Pland’exécution
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
0SELECTSTATEMENT
1NESTEDLOOPS
2TABLEACCESSFULLVU
3TABLEACCESSBYROWIDFILM
4INDEXRANGESCANFILM_TITRE_IDX

3. IlexisteunindexsurTITREdanslesdeuxrelations.
Solution:
idem(l’optimiseurchoisitladernièretablecommetabledirectricedelaclauseFROMquand
ilexisteunindexsurlacolonnedejointuredanslesdeuxtables)
CREATEINDEXFILM_TITRE_idxonFILM(TITRE);
CREATEINDEXVU_TITRE_idxonVU(TITRE);

Pland’exécution
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
0SELECTSTATEMENT
1NESTEDLOOPS
2TABLEACCESSFULLVU
3TABLEACCESSBYROWIDFILM
4INDEXRANGESCANFILM_TITRE_IDX

ExerciceC: Soitlarequête:
SELECT e.enom,d.dnom
FROM empe,deptd

Vertigo/CNAM,Paris SOLUTIONS 64
CHAPITRE11. OPTIMISATIONDEREQUÊTES

ACTEUR, REALISATEUR
Projection

VU.TITRE=FILM.TITRE

Jointure

sequentiel adresse

VU FILM

=VU.TITRE unique

FILM_TITRE_IDX

F IG .11.3–Pland’exécution

WHERE e.dno=d.dno
AND e.sal=10000
surlarelationEMPdeschéma(EMPNO, SAL, MGR, DNO). Cetterequêteaffichelenomdes
employésdont lesalaire( )est égalà10000, et celui deleurdépartement. Indiquezleplan
➘♥➴❹➷

d’exécutiondanschacunedeshypothèsessuivantes.
1. Indexsur etsur
➬➱➮④✃❖❐ ④❒ ✬➬❰❮◗Ï❢Ð ➮✁ÑÒ✃❰❒✡➘ ♥Ó➓Ô✡Ð

Solution:
Figure11.4.
Pland’execution
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
0SELECTSTATEMENT
1NESTEDLOOPS
2TABLEACCESSBYROWIDEMP
3INDEXRANGESCANEMP_SAL
4TABLEACCESSBYROWIDDEPT
5INDEXUNIQUESCANDEPT_DNO
Bouclesimbriquées( NESTEDLOOP ):onchoisitdeparcourirunsous­ensembledeEMPen
utilisantl’index,puisonaccèdeaDEPTavecl’indexsurDEPTNO.
2. Indexsur ➮④ÑÒ✃❰❒❁➘ ♥Ó➓Ô✡Ð
seulement.
Solution:
Figure11.5.
Pland’execution
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
0SELECTSTATEMENT
1NESTEDLOOPS
2TABLEACCESSFULLDEPT
3TABLEACCESSBYROWIDEMP

Vertigo/CNAM,Paris SOLUTIONS 65
CHAPITRE11. OPTIMISATIONDEREQUÊTES

E.ENOM, D.DNOM
Projection

E.DNO=D.DNO
Jointure

adresse
adresse

EMP E DEPT D

=10000  range unique =E.DNO

EMP_SAL_IDX DEPT_DNO_IDX

F IG .11.4–Pland’exécution

4INDEXRANGESCANEMP_SAL
AlgorithmedeSCAN­INDEX.EquivalentàunejointureparNESTED­LOOPbrutal.Onpour­
rait(i)changerl’ordredestablessansmodifierlacomplexité,et(ii)faireuntri­fusion.
3. Indexsur ➮④ÑÒ✃❰❒✡➬❰❮◗ Ï❢ Ð
etsur ➮④ÑÒ✃❰❒❁➘ ♥Ó➓ Ô✡Ð

Solution:
Figure11.6.
Pland’execution
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
0SELECTSTATEMENT
1NESTEDLOOPS
2TABLEACCESSFULLDEPT
3TABLEACCESSBYROWIDEMP
4AND­EQUAL
5INDEXRANGESCANEMP_DNO
6INDEXRANGESCANEMP_SAL
Commel’indexsurEMP(DNO)n’estpasunique,onaintérêtàlimiterlalistedesadressesde
tuplesenutilisantlesdeuxindexetenfaisantl’intersection.
4. Voiciuneautrerequête,légèrementdifférente.Pland’exécutions’iln’yapasd’index.
SELECTe.enom
FROMempe,deptd
WHERE e.dno=d.dno
AND d.ville=’Paris’

Solution:

Pland’execution
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
0SELECTSTATEMENT

Vertigo/CNAM,Paris SOLUTIONS 66
CHAPITRE11. OPTIMISATIONDEREQUÊTES

E.ENOM, D.DNOM
Projection

E.DNO=D.DNO
Jointure

sequentiel adresse

DEPT D EMP E

=10000  range

EMP_SAL_IDX

F IG .11.5–Pland’exécution

1MERGEJOIN
2SORTJOIN
3TABLEACCESSFULLDEPT
4SORTJOIN
5TABLEACCESSFULLEMP

Algorithmedetri­fusionclassique.
5. Quepensez­vousdelarequêtesuivanteparrapportàlaprécédente?
SELECTe.enom
FROMempe
WHERE e.dnoIN(SELECTd.dno
FROMDeptd
WHEREd.Ville=’Paris’)

Voicilepland’exécutiondonnéparORACLE:
0SELECTSTATEMENT
1MERGEJOIN
2SORTJOIN
3TABLEACCESSFULLEMP
4SORTJOIN
5VIEW
6SORTUNIQUE
7TABLEACCESSFULLDEPT

Qu’enditesvous?
Solution:

Vertigo/CNAM,Paris SOLUTIONS 67
CHAPITRE11. OPTIMISATIONDEREQUÊTES

E.ENOM, D.DNOM
Projection

E.DNO=D.DNO
Jointure

adresse

DEPT D EMP E

  Intersection

=D.DNO  range SAL=10000  range

EMP_DNO_IDX EMP_SAL_IDX

F IG .11.6–Pland’exécution

Créationd’unetabletemporaire( VIEW)contenantlesnumérosdesdépartementsàParis.Ona
éliminélesdoublons( SORTUNIQUE ).Ensuiteonfaituntri­fusion.Doncexécutiondifférente
pourunerequêteéquivalente.

ExerciceD: Surlemêmeschéma,voicimaintenantlarequêtesuivante.
SELECT*
FROMEMPXWHEREX.SALIN(SELECTSAL
FROMEMP
WHEREEMP.EMPNO=X.MGR)
Cetterequêtecherchelesemployésdontlesalaire( )estégalàceluideleurpatron(
➘✺➴❹➷
).On ÑÒÕ❤ Ö

donnelepland’exécutionavecOracle(outilEXPLAIN)pourcetterequêtedansdeuxcas:(i)pas
d’index,(ii)unindexsurlesalaireetunindexsurlenumérod’employé.Expliquezdanslesdeux
cascepland’exécution(éventuellementenvousaidantd’unereprésentationarborescentedeceplan
d’exécution).
1. Pasd’index.
Pland’exécution
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
0FILTER
1TABLEACCESSFULLEMP
2TABLEACCESSFULLEMP

Solution:
Figure11.7.Bouclesimbriquées(FILTER):OnparcourtlatableEMP(ligne2);pourchaque
employé,onregardelesalaire etlenumérodupatron
➘✺➴❹➷
;onparcourtalorslatable
ÑÒÕ❤ Ö

EMP(ligne3)pourtrouverl’employédontlenuméroest etoncomparelesalaireà
ÑÒÕ❤ Ö

➘♥➴➃➷
.Doncc’estuneboucleimbriquéebrutale:onauraitpufaireuntri­fusion.
2. Indexempnoetindexsal.
Pland’exécution
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
0FILTER
1TABLEACCESSFULLEMP

Vertigo/CNAM,Paris SOLUTIONS 68
CHAPITRE11. OPTIMISATIONDEREQUÊTES

X.*

X.SAL=E.SAL
X.MGR=E.EMPNO
Filtre

sequentiel sequentiel

EMP X EMP E

F IG .11.7–Pland’exécution

2AND­EQUAL
3INDEXRANGESCANI­EMPNO
4INDEXRANGESCANI­SAL

Solution:
Figure11.8.Bouclesimbriquées(FILTER):onparcourtlatableEMP(ligne2).Pourchaque
X.SAL=E.SAL
X.MGR=E.EMPNO
Filtre

sequentiel adresse

EMP X Jointure

=X.MGR range =X.SAL range

I­EMPNO I­SAL

F IG .11.8–Pland’exécution

employé, lesalaire etlenuméro


➘♥➴❹➷
, valeurdel’attribut
➮④ÑÒ✃❤ ×➐Ø
serventdeclé
ÑÒÕ❤ Ö

pouraccéderàl’index(lignes4et5). L’intersectiondeslistesderow­id(ligne3)obtenues
parlesétapes4et5donnesielleestnonvideunrow­iddepatronayantmêmesalaireque
l’employé
3. Danslecasoùilyalesdeuxindex(salaireetnumérod’employé)etoùlarequêteest:
SELECT*
FROMEMPX
WHEREX.SAL=(SELECTSAL
FROMEMP
WHEREEMP.EMPNO=X.MGR)
onalepland’exécutionsuivant:
Pland’exécution

Vertigo/CNAM,Paris SOLUTIONS 69
CHAPITRE11. OPTIMISATIONDEREQUÊTES

­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
0FILTER
1TABLEACCESSFULLEMP
2TABLEACCESSROWIDEMP
3INDEXRANGESCANI­EMPNO
Expliquez­le.
Solution:
Danscecas,seull’indexsurlesnumérosd’employésestutilisé.Bouclesimbriquées(FILTER);
onparcourtlatableEMP:pourchaqueemployé,l’attribut donnelenumérod’employé ÑÒÕ❤ Ö

desonpatron.Onaccèdeàsonpatronparl’indexsurlesnumérosd’employé(lignes4puis
3):onvérifiealorssisonsalaireestégalàceluidel’employé.

ExerciceE: OnreprendleschémaCINEMAdonnédanslecours, maisonnesaisplusquelsindex


existent.
Questions:
1. Donnerl’ordreSQLpourlarequête:Quelssontlesfilmsd’Hitchcockvisiblesaprès20h00?
Solution:

SELECTF.TITRE
FROMSEANCES,FILMF,ARTISTEA
WHEREA.NOM=’Hitchcock’
ANDF.ID­REALISATEUR=A.ID­REALISATEUR
ANDS.ID­FILM=F.ID­FILM
ANDS.HEURE_DEBUT>’20:00’

2. Donnerl’expressionalgébriquecorrespondanteetproposezunarbrederequêtequivousparaît
optimal.
Solution:
_
Ù➅ÚtÛ⑩Ü❸Ý❸Û Û✵ ß♥Ü ❭à✵á✪ â❦ ã✲ä❪åä❿ä✾â Ù❆étê⑩ë✐ì ◗â✼ Útí ✼î ✬ï ❃ð❉ï ❃ ñ●ï ❃ò❜ â î➁ í❦ ø❨î ✬ù✮ì Ý◗ù✮ ú❜ûüí❦ ø✲ú✾î ✬ù❃ ý

➘♥➮④➴❹×➐æ❖➮✚ çè❒ ➴❹Ö✘❐❹ó➓➘①❐❹➮ Òçtô ô


Þ Þ❯õ✪ö❸÷ Þ✴õ ÷

ó②➷➙Ñ➼Ð

3. SousORACLE,l’outilEXPLAINdonnelepland’exécutionsuivant:
0SELECTSTATEMENT
1MERGEJOIN
2SORTJOIN
3NESTEDLOOPS
4TABLEACCESSFULLARTISTE
5TABLEACCESSBYROWIDFILM
6INDEXRANGESCANIDX­ARTISTE­ID
7SORTJOIN
8TABLEACCESSFULLSEANCE
CommentezleplandonnéparEXPLAIN. Pourrait­onaméliorerlesperformancesdecette
requête?
Solution:
L’existenced’untri­fusionindiquequ’ilmanqueunindex.Icionpeutrésoudrelepbencréant
þ

unindexsur .
➘♥➮ →➴➃×➐ æ❖➮➱❒✬ ÿ✁ ✄✂ ÿ❃ Ô✆☎❧ Ð

ExerciceF: Soitleschémasuivant:

CREATETABLEArtiste( CREATETABLEFilm(
ID­artiste NUMBER(4), ID­film NUMBER(4),
Nom VARCHAR2(32), Titre VARCHAR2(32),

Vertigo/CNAM,Paris SOLUTIONS 70
CHAPITRE11. OPTIMISATIONDEREQUÊTES

Adresse VARCHAR2(32) Année NUMBER(4),


); ID­réalisateurNUMBER(4)
);

CREATETABLEJoue(
ID­artiste NUMBER(4),
ID­film NUMBER(4)
);
Questions:
1. Donnerl’ordreSQLpourlarequête:Afficherlenomdesacteursetletitredesfilmsoùilsont
joué.
2. Donnerl’expressionalgébriquecorrespondante.
3. Quelestàvotreavislepland’exécutiondanss’iln’existequedeuxindex,unsurFILM(ID­
réalisateur),etunsurARTISTE(ID­artiste)ÿ?
þ þ

4. Idem,avecunindexsur ,etunsur ó②➷➙Ñ


.
❒ ✡ó✯➬✝✂ ÿ❃Ô✆☎❧ Ð ✞✵Ø✄✟❖➮➶❒✬ ó②➬✠✂ ➴☛✡✌☞❃ÿ✎✍✏☞✒✑✦ Ð

þ þ þ

5. Idem,avecunindexsur ,etunsur ó②➷➙Ñ


.
❒ ✡ó✯➬✝✂ ÿ❃Ô✆☎❧ Ð ✞✵Ø✄✟❖➮➶❒✬ ó②➬✠✂ ÿ❃ Ô✓☎❵ Ð

Solution:

1. SELECTnom,titre
FROM artiste,film,joue
WHERE artiste.ID­artiste=joue.ID­artiste
AND film.ID­film=joue.ID­film
þ

2. ➴✔✡✌☞❃ÿ✒✍✏☞✒✑✘ çè❒ ÿ❃Ô✆☎⑧ç✕✞◗Ï✌✖✗✑❄ Ð❿Ð

3. 0SELECTSTATEMENT
1MERGEJOIN
2SORTJOIN
3NESTEDLOOPS
4TABLEACCESSFULLJOUE
5TABLEACCESSBYROWIDARTISTE
6INDEXUNIQUESCANARTISTE_IDX
7SORTJOIN
8TABLEACCESSFULLFILM
Commeiln’yaqu’unseulindexutilisable,onfaitunparcoursséquentielsurJouepourutiliser
l’indexleplustôtpossible,puisonfaituntrifusion.Onpeutaussifaireleparcoursséquentiel
initialsurFilm.Petitpiège:l’indexsurID_réalisateurn’estpasutilisablepourlajointure.
4. 0SELECTSTATEMENT
1NESTEDLOOPS
2NESTEDLOOPS
3TABLEACCESSFULLARTISTE
4TABLEACCESSBYROWIDJOUE
5INDEXRANGESCANJOUE_ARTISTE
6TABLEACCESSBYROWIDFILM
7INDEXUNIQUESCANFILM_IDX
Commeilyauneseuletable(ARTISTE)sansindexpropreàlajointure,onlachoisitpour
effectuerleparcoursséquentielinitial.
5. 0SELECTSTATEMENT
1MERGEJOIN
2SORTJOIN
3NESTEDLOOPS
4TABLEACCESSFULLJOUE
5TABLEACCESSBYROWIDFILM
6INDEXUNIQUESCANFILM_IDX

Vertigo/CNAM,Paris SOLUTIONS 71
CHAPITRE11. OPTIMISATIONDEREQUÊTES

7SORTJOIN
8TABLEACCESSFULLARTISTE
Lesindexexistantnepeuventservirqu’àuneseulejointure:celleentreJOUEetFILM.Donc
ilnerestequelasolutiondefaireunTRI­FUSIONpourlajointureavecARTISTE.NB:on
parcoursJOUEpuisonaccèdeàFILMparl’index.Onpourraitfairelecontraire(parcourir
FILMetaccéderàJOUE).Quandiladesstatistiques,leSGBDchoisitlapluspetitedestables
pourleparcoursséquentiel.

Vertigo/CNAM,Paris SOLUTIONS 72
Sérialisabilitéetrecouvrabilité

Chapitre12

Concurrence

12.1 Sérialisabilitéetrecouvrabilité

12.1.1 Graphedesérialisabilitéetéquivalencedesexécutions

Construisezlesgraphesdesérialisabilitépourlesexécutions(histoires)suivantes.Indiquezlesexécutionsséria­
lisablesetvérifiezs’ilyadesexécutionséquivalentes.

1.
ã✥✤✦★✧ ✤✫✣✧ ã✬✤✭✥✧✬✮❪ ã ✤✦★✧ ✤✫✰✧✬✮ ✤✭✥✧✥✮

✘✚✙✜✛✣✢ ✢✪✩ ✢ ✡✯✙ ✢✔✙ ✙✱✡✏✩ ✩

Solution:
lesconflits
sur : ; sur : ; sur :
✦ ã ✤✦★✧ ✤✦✲✧ ✭ ã ✤✭✥✧ ✤✭✥✧ ✫ ✤✫✣✧ ✤✫✰✧

✢ ✡ ✙ ✢ ✡ ✩ ✢ ✩ ✢ ✙

legraphedesérialisabilité
✳ ã ✴

❐ ✙ ❐ ❐ ✩

2.
ã ✤✦✲✧ ã✣✤✭✥✧ ✤✭✥✧ ✤✫✣✧✬✮ ✤✫✣✧✬✮ ã✥✤✦★✧✥✮⑨ ã

✘ ✛✣✡✌✙ ✢ ✡✏✩ ✢✶✩ ✩✷✢✔✙ ✙✸✢

Solution:
lesconflits
sur : ; sur : ; sur :
✦ ✤✦★✧ ã ✤✦✲✧ ✭ ã ✤✭✥✧ ✤✭✥✧ ✫ ✤✫✣✧ ✤✫✰✧

✡ ✙ ✢ ✢ ✡ ✩ ✢ ✩ ✢ ✙

legraphedesérialisabilité
✴ ã ✴

❐ ✙ ❐ ❐ ✩

3.
✤✫✰✧ ✤✫✣✧ ã✬✤✭✥✧ ã✬✤✦★✧✻✮❪ ã ✤✭✬✧✥✮ ✤✦★✧✥✮

✘✹✩✺✛✣✢✶✩ ✢☛✙ ✢ ✢ ✡✏✩ ✩✼✡✌✙ ✙

Solution:
lesconflits
sur : ; sur : ; sur :
✦ ã✬✤✦★✧ ✤✦✲✧ ✭ ã✬✤✭✥✧ ✤✭✥✧ ✫ ✤✫✣✧ ✤✫✰✧

✢ ✡✌✙ ✢ ✡✏✩ ✢✪✩ ✢☛✙

legraphedesérialisabilité

Vertigo/CNAM,Paris SOLUTIONS 73
Contrôledeconcurrence

✳ ã ✴

❐ ✙ ❐ ❐ ✩

Conclusion: , et sérialisables,

✘✽✙✿✾ ✘✹✩ ✘✚✙ ✘❁✩

Leshistoires et nesontpaséquivalentes.Pouravoiréquivalence,deuxconditionssontnécessaires:(i)
✘ ✙ ✘ ✩

avoirlesmêmestransactionsetlesmêmesoperations,et(ii)avoirlememeordredesoperationsconflictuelles.

Icilasecondeconditionestremplie,maispaslapremiere!Eneffet,sionextraitlatransaction ❐
deceshistoires,

onremarquequepour ona ,tandisquepour , .Etc’estpareilpour


✤✦✲✧ ✤✫✣✧❄✮ ✤✫✣✧ ✤✦★✧❅✮

✘ ✙ ❐ ✙❃❂ ✡ ✙ ✢ ✙ ✙ ✘ ✩ ❐ ✙✜❂ ✢ ✙ ✡ ✙ ✙

.
ã

12.1.2 Recouvrabilité

Parmi lesexécutions(histoires)suivantes, lesquellessont recouvrables, lesquellesévitent lesannulationsen


cascadeetlesquellessontstrictes?Indiquezs’ilyadesexécutionssérialisables.

1.
✤✦✲✧ ã ✤✭✥✧ ✤✭✥✧ ✤✦✲✧✥✮ ã ✤✦✲✧ ã ✤✦★✧✻✮ ã

✘ ✙ ✛✣✡ ✙ ✢ ✡ ✙ ✢ ✙ ✙ ✡ ✢

Solution:
lit de ( après ),mais setermineavant non­recouvrable
✭ ã ✤✭✥✧ ã✥✤✭✥✧ ã

❐ ❆✙ ❐ ✡✯✙ ✢ ❐ ❇✙ ❐ ❂❆❈ ✘✚✙

n’estpassérialisable(lesconflits ­ et ­ formentuncycle)
ã ✤✭✥✧ ✤✭✥✧ ✤✦★✧ ã ✤✦✲✧

✘ ✙ ✢ ✡ ✙ ✢ ✙ ✡

2.
ã ✤✦✲✧ ✤✭✥✧ ã ✤✭✥✧✻✮ ã ✤✦★✧✻✮ ã

✘ ✛✣✡ ✙ ✢ ✙ ✡ ✙ ✢

Solution:
lit de ( après )avant que setermine recouvrable, maisn’évitepasles
ã ✭ ã✣✤✭✬✧ ✤✭✥✧ ã

❐ ❐❇✙ ✡ ✢✔✙ ❐❇✙ ❂❆❈ ✘

avortementsencascade
estsérialisable(lesseulsconflitssont ­ et ­ )
ã ✤✦✲✧ ã ✤✦★✧ ✤✭✥✧ ã ✤✭✥✧

✘ ✡ ✙ ✢ ✢ ✙ ✡

3.
✤✭✥✧ ã ✤✦✲✧ ã ✤✭✥✧ ✤✦✲✧✥✮ ã ✤✦✲✧✥✮

✘ ✩ ✛✣✡ ✙ ✢ ✡ ✢ ✙ ✡ ✙ ✙

Solution:
lit de ( après )aprèslafinde ,maisécrit ( après )avantlafinde
✦ ã ✤✦✲✧ ã✬✤✦★✧ ã ✦ ✤✦✲✧ ã✣✤✦★✧ ã

❐ ❆✙ ❐ ✡✌✙ ✢ ❐ ✢☛✙ ✢ ❐

❂❆❈
évitelesannulationsencascade,maisn’estpasstricte
✘❁✩

estsérialisable(lesseulsconflitssont ­ et ­ )
ã ✤✦★✧ ✤✦✲✧ ã ✤✦★✧ ✤✦✲✧

✘ ✩ ✢ ✢ ✙ ✢ ✡ ✙

12.2 Contrôledeconcurrence

12.2.1 Verrouillageà2phases

Unscheduleravecverrouillageà2phasesreçoitlaséquenced’opérationsci­dessous.
✤✦★✧ ã ✤✭✥✧ ✤✦★✧ ✤✭✬✧ ✤✦★✧ ã ✤✭✥✧✬✮ ã ✤✭✥✧ ✤✭✥✧✬✮ ✤✭✥✧✬✮

✘❉✛✰✡ ✙ ✡ ✢ ✩ ✢ ✙ ✢ ✙ ✢ ✡ ✩ ✡ ✙ ✙ ✢ ✩ ✩

Indiquezl’ordred’exécutionétabliparlescheduler, enconsidérantqu’uneopérationbloquéeenattented’un
verrouestexécutéeenprioritédèsqueleverroudevientdisponible.Onsupposequelesverrousd’unetransaction
sontrelâchésaumomentduCommit.

Solution:

Vertigo/CNAM,Paris SOLUTIONS 74
Contrôledeconcurrence

, exécutées
❊ ✤✦★✧ ã ✤✭✥✧

✡ ✙ ✡

bloquéeàcausede
❊ ✤✦✲✧ ✤✦✲✧

✢ ✩ ✡ ✙

bloquéeàcausede
❊ ✤✭✥✧ ã ✤✭✥✧

✢ ✙ ✡

L’opération quiestbloquéevaaussibloquertoutlerestedelatransaction !Donc nepeutpas


✤✭✬✧ ✤✦✲✧

✢✔✙ ❐ ❇✙ ✢☛✙

s’exécuter,mêmesicetteopérationn’apasdeproblèmedeverrou:

bloquéeàcausede
❊ ✤✦✲✧ ✤✭✬✧

✢☛✙ ✢✔✙

exécutée
❊ ã✥✤✭✥✧

relâchelesverroussur , peuvents’exécuter
❊ ✮ ã ✭ ✤✭✥✧ ✤✦★✧

❈ ✢ ✙ ✢ ✙

bloquéecar bloquéeàcausede
❊ ✤✭✥✧ ✤✦★✧

✡ ✩ ❐ ✩ ✢ ✩

exécutée
❊ ✤✭✥✧

✡✯✙

relâchelesverroussur , , peuvents’exécuter
❊ ✮ ✦ ✭ ✤✦★✧ ✤✭✥✧

✙ ❈ ✢✪✩ ✡❋✩

, exécutées
❊ ✤✭✥✧ ✮

✢ ✩ ✩

Résultat:
✤✦✲✧ ã ✤✭✬✧ ã ✤✭✬✧✥✮ ã ✤✭✥✧ ✤✦★✧ ✤✭✥✧✬✮ ✤✦★✧ ✤✭✥✧ ✤✭✥✧✥✮

✡ ✙ ✡ ✢ ✢ ✙ ✢ ✙ ✡ ✙ ✙ ✢ ✩ ✡ ✩ ✢ ✩ ✩

12.2.2 EstampillageetlarègledeThomas

Etantdonéelaséquenced’opérationssuivante,comparezlesexécutionsétabliesparunscheduleravecestam­
pillagesimpleetunschedulerintégrépurutilisantlarègledeThomas.Lescheduleravecestampillagen’utilise
queletestdesestampilles,sansretarderensuitel’exécutiondesopérations.Considérezqu’unetransactionreje­
téeestrelancéetoutdesuiteavecunenouvelleestampilleetquesesopérationsdéjàexécutéessonttraitéesavec
priorité.
✤✦★✧ ã✣✤✭✥✧ ✤✦★✧ ✤✦★✧ ✤✭✥✧ ã✥✤✭✥✧

✘❉✛✰✡✌✙ ✡ ✢✪✩ ✢✔✙ ✢✪✩ ✢

Solution:

Estampillage:
, , exécutées
❊ ✤✦★✧ ã✬✤✭✥✧ ✤✦★✧

✡✯✙ ✡ ✢✶✩

rejetéeàcausede rejetéeetrelancéeentantque , exécutées


❊ ✤✦✲✧ ✤✦★✧ ✤✦★✧ ✤✦✲✧

✢ ✙ ✢ ✩ ❈ ❐ ✙ ❐✗ ● ❈ ✡✏ ● ✢✶ ●

exécutée
❊ ✤✭✥✧

✢ ✩

rejetéeàcausede rejetéeetrelancéeentantque , exécutées


❊ ã ✤✭✥✧ ✤✭✥✧ ã ✤✭✥✧ ✤✭✥✧

✢ ✢ ✩ ❈ ❐ ❐■❍ ❈ ✡✏❍ ✢✪❍

Résultat:
✤✦✲✧ ã✥✤✭✬✧ ✤✦★✧ ✤✦★✧ ✤✦★✧ ✤✭✥✧ ã ✤✭✥✧ ✤✭✥✧

✡✌✙ ✡ ✢✶✩ Ó★✙✱✡ ● ✢ ● ✢✪✩ Ó ✡ ❍ ✢ ❍

SchedulerintégréaveclarègledeThomas:
, , exécutées
❊ ✤✦★✧ ã ✤✭✥✧ ✤✦★✧

✡ ✙ ✡ ✢ ✩

ignoréeàcausede (règledeThomas)
❊ ✤✦✲✧ ✤✦★✧

✢ ✙ ✢ ✩

exécutée
❊ ✤✭✥✧

✢ ✩

ignoréeàcausede (règledeThomas)
❊ ã✥✤✭✥✧ ✤✭✥✧

✢ ✢✪✩

Vertigo/CNAM,Paris SOLUTIONS 75
Repriseaprèspanne

Résultat:
✤✦✲✧ ã ✤✭✬✧ ✤✦★✧ ✤✭✥✧

✡ ✙ ✡ ✢ ✩ ✢ ✩

12.2.3 Comparaisondesméthodesdecontrôledeconcurrence

Parmilesexécutionssuivantes,lesquellesnepeuventpasêtreobtenuesparverrouillageà2phasesetlesquelles
nepeuventpasêtreobtenuesparestampillagesimple?
✤✦★✧ ã✬✤✭✥✧ ã✬✤✦★✧✻✮❪ ã ✤✭✬✧✥✮

✘✽✙✜✛✰✡✌✙ ✡ ✢ ✡✌✙ ✙

Solution:

verrouillage:impossible,carpourexécuter , doitrelâcherleverrouobtenupar ,doncnepourra


ã✬✤✦✲✧ ✤✦✲✧

✢ ❐ ❆✙ ✡✌✙

plusobtenirleverroupour
✤✭✥✧

✡✯✙

estampillage:possible
ã ✤✦★✧ ã ✤✭✥✧ ã ✤✦★✧✻✮ ã ✤✭✥✧✬✮

✘ ✛✰✡ ✙ ✢ ✡ ✢ ✙ ✙

Solution:

verrouillage:possible

estampillage:impossible,car rejetéeàcausede
✤✭✬✧ ã ✤✭✥✧

✢ ✙ ✢

12.3 Repriseaprèspanne

12.3.1 Journalisation

Soitlejournalphysiqueci­dessous,danslequelonamarquélesopérationsCommitetAbortréalisées:
✤ ✦ ✧ ✤ ã ✭ ✧ ✤ ✫ ✧ ✮ ✤ ã ✫ ✧ ✤ ✦ ✧ ã ✤ ✭ ✧ ✮ ✤ ✦ ✧

❐❆✙✯❏ ❏❑ ❏ ❐ ❏ ❏ ▼▲ ❏ ❐ ❇✙❋❏ ❏❖◆ ❏ ✙❋❏ ❐ ❏ ❏€ ❏ ❐■✩✯❏ ❏ ❖◆ ❏Ó ❏ ❐ ● ❏ ❏❑ ❏ ✩✰❏ ❐ ❍ ❏ ❏◗

1. Indiquezlecontenudeliste_commit,liste_abort,liste_active.
Solution:
liste_commit= ;liste_abort= ;liste_active= ;
ã

❘★❐ ✙ ❏❐ ✩✯❙ ❘★❐ ❙ ❘❉❐✗ ●✣❏ ❐✗❍ ❙

2. Ensupposantqu’unenouvelleécriturevientdes’ajouteraujournal,lesquellesdesécrituressuivantessont
compatiblesavecuneexécutionstricte: , ou ?
✤ ✭ ✧ ✤ ✫ ✧ ✤ ✦ ✧

❐■❍ ✣❏ ❏€ ❐✗ ●✬❏ ❏❑ ❐✗❚✣❏ ❏❯ ▲

Solution:
écrit ; déjàécritpar (encoreactive) exécutionnon­stricte
✤ ✭ ✧ ✭ ✭

❐ ❍ ❏ ❏€ ❐ ● ❈

écrit ; déjàécritpar et ,déjàterminées exécutionstricte


✤ ✫ ✧ ✫ ✫ ã

❐ ✗●✰❏ ❏ ❑ ❐ ✙ ❐ ❈

écrit ; déjàécritpar (encoreactive) exécutionnon­stricte


✤ ✦ ✧ ✦ ✦

❐ ■❚✯❏ ❏▼▲ ❐■❍ ❈

3. Quellessontlesentréesrécupérablesparl’algorithmederamasse­miettes?
Solution:
, récupérables,car rejetée
✤ ã ✭ ✧ ✤ ã ✫ ✧ ã

❐ ❏ ❏ ❯▲ ❐ ❏ ❏€ ❐

récupérable,car validéeaécritensuite
✤ ✦ ✧ ✦

❐ ❇✙❋❏ ❏ ❑ ❐■✩

Vertigo/CNAM,Paris SOLUTIONS 76
Concurrence:GestionBancaire

4. Silesvaleursinitialesdesenregistrementsétaient , , , etsiunepannesurvenaitàce
✦ ✭ ✫

❂ ▲ ❂ ◆ ❂ ❑

moment,quellesseraientlesvaleursrestauréespour , et aprèslareprise?
✦ ✭ ✫

Solution:
estladernièretransactionvalidéeàavoirécritdans ( ),donclavaleurrestauréeest =2.
✦ ✤ ✦ ✧ ✦

❐ ✩ ❐ ✩ ❏ ❏◆

Aucunetransactionvalidéen’aécritdans ,donclavaleurrestauréeest =2,valeurinitiale.


✭ ✭

estladernièretransactionvalidéeàavoirécritdans ( ),donclavaleurrestauréeest =2.


✫ ✤ ✫ ✧ ✫

❐ ❆✙ ❐ ❇✙✯❏ ❏◆

12.4 Concurrence:GestionBancaire
Lestroisprogrammessuivantspeuvents’exécuterdansunsystèmedegestionbancaire.Débitdiminuelesolde
d’uncompte c avecunmontant donné m. Poursimplifier, tout débitestpermis(onacceptedesdécouverts).
Créditaugmentelesolded’uncompte c avecunmontantdonné m.Transferttransfèreunmontant m àpartird’un
comptesource s versuncomptedestination d.L’exécutiondechaqueprogrammedémarreparunStartetse
termineparunCommit(nonmontrésci­dessous).

Débit(c:Compte; | Crédit(c:Compte; | Transfert(s,d:Compte;


m:Montant) | m:Montant) | m:Montant)
begin | begin | begin
t:=Read(c); | t=Read(c); | Débit(s,m);
Write(c,t­m); | Write(c,t+m); | Crédit(d,m);
end | end | end

Lesystèmeexécuteenmêmetempslestroisopérationssuivantes:

(1) untransfertdemontant100ducompteAverslecompteB
(2) uncréditde200pourlecompteA
(3) undébitde50pourlecompteB

1. Écrirelestransactions , et quicorrespondentàcesopérations. Montrerquel’histoireH:


ã ✤ ✧

❐ ✙ ❐ ❐ ✩ ✡ ✙ ➴

estuneexécutionconcurrentede , et .
✤❱❲✧ ✤ ✧ ã✬✤ ✧ ✤❱✄✧ ✤❱❲✧★✮ ã✬✤ ✧★✮❪ã ✤❱❲✧★✮ ã

✡✏✩ ✢☛✙ ➴ ✡ ➴ ✢✪✩ ✡✯✙ ✩❳✢ ➴ ✢☛✙ ✙ ❐❇✙ ❐ ❐ ■✩

Solution:
Débit et Crédit sontconstituéschacund’unelecture,suivied’uneécriture.Danscecas,lestransac­
tions , et seront:
ã

❐ ✙ ❐ ❐ ✩

:
✤ ✧ ✤ ✧ ✤❱✄✧ ✤❱✄✧★✮

❐ ❇✙ ✡✌✙ ➴ ✢✔✙ ➴ ✡✌✙ ✢✔✙ ✙

:
ã ã✥✤ ✧ ã✥✤ ✧★✮❪ã

❐ ✡ ➴ ✢ ➴

:
✤❱✄✧ ✤❱❲✧★✮

❐ ■✩ ✡✏✩ ✢✶✩ ✩

L’histoireHcontienttouteslesopérationsde , et etrespectel’ordredesopérationsdanschaque
ã

❐ ✙ ❐ ❐ ✩

transaction.DoncHestuneexécutionconcurrentede , et .
ã

❐ ✙ ❐ ❐ ✩

2. MettreenévidencelesconflitsdansHetconstruirelegraphedesérialisationdecettehistoire.Hest­elle
sérialisable?Hest­ellerecouvrable?
Solution:
LesconflitssurA: ­ ; ­ ; ­
✤ ✧ ã✥✤ ✧ ✤ ✧ ã✬✤ ✧ ✤ ✧ ã✣✤ ✧

✡✌✙ ➴ ✢ ➴ ✢☛✙ ➴ ✡ ➴ ✢✔✙ ➴ ✢ ➴

LesconflitssurB: ­ ; ­ ; ­
✤❱❲✧ ✤❱✄✧ ✤❱❲✧ ✤❱❲✧ ✤❱❲✧ ✤❱❲✧

✡✏✩ ✢☛✙ ✢✪✩ ✡✯✙ ✢✶✩ ✢☛✙

LegraphedesérialisationSG(H):
ã

❐ ✩☛❨ ❐ ✙✪❨ ❐

Hestsérialisable,carlegraphenecontientpasdecycle.
Hn’estpasrecouvrable,car litAde (après ona ),mais setermineavant .La
ã ✤ ✧ ã✥✤ ✧ ã

❐ ❐❇✙ ✢☛✙ ➴ ✡ ➴ ❐ ❐ ❇✙

mêmeconclusionestobtenueenconsidérantlasuite .
✤❱✄✧ ✤❱✄✧

✢✶✩ ✡✌✙

Vertigo/CNAM,Paris SOLUTIONS 77
Concurrence:GestionBancaire

3. Quelleestl’exécutionH’obtenueàpartirdeHparverrouillageàdeuxphases?Onsupposequelesverrous
d’unetransactionsontrelâchésaprèsleCommitdecelle­ci.Uneopérationbloquéeenattented’unverrou
bloquelerestedesatransaction.Aumomentdurelâchementdesverrous,lesopérationsenattentesont
exécutéesenpriorité.
SiaudébutlecompteAavaitunsoldede100etBde50, quelseralesoldedesdeuxcomptesaprèsla
reprisesiunepanneintervientaprèsl’exécutionde ?
✤❱✄✧

✢☛✙

Solution:
, reçoiventlesverrousdelectureets’exécutent
✤ ✧ ✤❱❲✧

✡✌✙ ➴ ✡❋✩

obtientleverroud’écrituresurA(déjàobtenuenlecturepar )ets’exécute
✤ ✧

✢✔✙ ➴ ❐❆✙

bloquéeenattentedeverrousurA bloquée
ã✣✤ ✧ ã

✡ ➴ ❈ ❐

obtientleverroud’écrituresurB(déjàobtenuenlecturepar )ets’exécute
✤❱✄✧

✢✶✩ ❐✗✩

bloquéeenattentedeverrousurB bloquée
✤❱❲✧

✡✌✙ ❈ ❐ ❇✙

s’exécuteetrelâchelesverroussurB débloquée,obtientleverrouets’exécute( débloquée)


✮ ✤❱✄✧

✩ ❈ ✡ ✙ ❐ ✙

et bloquéescar bloquée
ã ✤ ✧ ✮ ã ã

✢ ➴ ❐

obtientleverrouets’exécute
✤❱✄✧

✢ ✙

s’exécuteetrelâchelesverroussurA , et s’exécutent.
✮ ã ✤ ✧ ã ✤ ✧ ✮ ã

✙ ❈ ✡ ➴ ✢ ➴

LerésultatestH’:
✤ ✧ ✤❱✄✧ ✤ ✧ ✤❱✄✧✲✮ ✤❱❲✧ ✤❱✄✧❩✮ ã✣✤ ✧ ã✣✤ ✧★✮❪ã

✡✌✙ ➴ ✡✏✩ ✢☛✙ ➴ ✢✶✩ ✩✷✡✯✙ ✢☛✙ ✙✼✡ ➴ ✢ ➴

Si unepanneintervient aprèsl’exécutionde , seulelatransaction (ledébit de50surB)est


✤❱❲✧

✢ ✙ ❐ ✩

validéeàcemoment.Aprèslareprise,seull’effetde seraretrouvé,donclecompteAauraunsoldede ❐ ✩

100etBde0.

Vertigo/CNAM,Paris SOLUTIONS 78

Vous aimerez peut-être aussi