You are on page 1of 29

Conservatoire National des Arts et Mtiers

292 Rue St Martin 75141 Paris Cedex 03

Informatique - CNAM, Paris Bases de donnes relationnelles NFP 107 et NFP 107J
(ancien SGBD B7, UV 19786 (HTO) et 21928 (ICPJ))

Exercices dirigs
B. Amann, V. Gouet-Brunet, D. Gross-Amblard, J. Lafaye, P. Rigaux, M. Scholl et D. Vodislav

14 fvrier 2006

Table des matires


1 Conception 1.1 Interprtation de schmas entit/association 1.1.1 Centre mdical . . . . . . . . . . . 1.1.2 Tournoi de tennis . . . . . . . . . . 1.1.3 Un journal . . . . . . . . . . . . . 1.2 Modle relationnel (rappel cycle A) . . . . 1.3 Rtro-conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 3 4 4 4 6 7 7 7 8 9 9 9 9 9 10 10 10 11 12 12 13 14 14 15 15 15 15 15 16 16 17 19 20

Algbre Relationelle 2.1 Slection et Projection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Jointure relationnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Auto-Jointure et Renommage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Algbre - SQL : Employs - Dpartements 3.1 Schma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Relation des Employs (EMP) . . . . . . . . . . . . . 3.1.2 Relation des Dpartements (DEPT) . . . . . . . . . . 3.2 Oprations Algbriques . . . . . . . . . . . . . . . . . . . . . 3.3 Requtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Interrogation dune seule Relation . . . . . . . . . . . 3.3.2 Jointures . . . . . . . . . . . . . . . . . . . . . . . . 3.3.3 Valeurs Nulles, Tris, Groupes, Agrgats et Expressions Algbre - SQL : Appartements - coles 4.1 Schma . . . . . . . . . . . . . . . 4.2 Requtes . . . . . . . . . . . . . . . 4.3 Mise jour . . . . . . . . . . . . . 4.4 Contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

SQL - Algbre : Cinmas - Films 5.1 Schma . . . . . . . . . . . . . . . . . . 5.2 Requtes . . . . . . . . . . . . . . . . . . 5.2.1 Interrogation dune seule relation 5.2.2 Jointures . . . . . . . . . . . . . 5.2.3 Difference . . . . . . . . . . . . 5.2.4 Division . . . . . . . . . . . . . . Organisation Physique Algorithmes de Jointure Optimisation de Requtes

6 7 8

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

Concurrence 9.1 Srialisabilit et recouvrabilit . . . . . . . . . . . . . . . . 9.1.1 Graphe de srialisation et quivalence des excutions 9.1.2 Recouvrabilit . . . . . . . . . . . . . . . . . . . . 9.2 Contrle de concurrence . . . . . . . . . . . . . . . . . . . 9.2.1 Verrouillage 2 phases . . . . . . . . . . . . . . . . 9.2.2 Verrouillage, interblocage . . . . . . . . . . . . . . 9.2.3 Verrouillage hirarchique . . . . . . . . . . . . . . . 9.3 Reprise aprs panne . . . . . . . . . . . . . . . . . . . . . . 9.3.1 Journalisation . . . . . . . . . . . . . . . . . . . . . 9.4 Concurrence : Gestion Bancaire . . . . . . . . . . . . . . . 9.5 Concurrence : Agence environnementale . . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

24 24 24 24 24 24 25 25 26 26 26 27

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

Chapitre 1

Conception
1.1 Interprtation de schmas entit/association
1.1.1 Centre mdical
On vous donne un schmas E/A (gure 1.1) reprsentant des visites dans un centre mdical. Rpondez aux questions suivantes en fonction des caractristiques de ce schma (i.e. : indiquez si la situation dcrite est reprsentable, indpendamment de sa vraissemblance).

Medecin Matricule Nom Medicament Code Libelle


0,n 0,n

Patient No SS Nom
1,n

Donne Assiste
1,1

Prescrit Nb prises

0,n

Consultation No Date

1,1

F IG . 1.1 Centre mdical Exercice A : Un patient peut-il effectuer plusieurs visites ? Exercice B : Un mdecin peut-il recevoir plusieurs patients dans la mme consultation ? Exercice C : Peut-on prescrire plusieurs mdicaments dans une mme consultation ? Exercice D : Deux mdecins diffrents peuvent-ils prescrire le mme mdicament ?

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

Modle relationnel (rappel cycle A)

1.1.2 Tournoi de tennis


Le second schma (gure 1.2) reprsente des rencontres dans un tournoi de tennis.

Joueur No carte Nom


0,n

0,n

Gagne Score
1,1

Participe

Match No
2,2

1,1

Se joue sur
0,n

Horaire No

Terrain Surface

F IG . 1.2 Tournoi de tennis

Exercice A : Peut-on jouer des matchs de double ? Exercice B : Un joueur peut-il gagner un match sans y avoir particip ? Exercice C : Peut-il y avoir deux matchs sur le mme terrain la mme heure ?

1.1.3 Un journal
Pour vous entraner : voici le schma E/A (gure 1.3 du systme dinformation (trs simpli) dun quotidien. Exercice A : Un article peut-il tre rdig par plusieurs journalistes ? Exercice B : Un article peut-il tre publi plusieurs fois dans le mme numro ? Exercice C : Peut-il y avoir plusieurs articles sur le mme sujet dans le mme numro ?

1.2 Modle relationnel (rappel cycle A)


Exercice A : Pour chacun des schmas E/A donns prcdemment, construire le schma relationnel correspondant. Indiquez prcisment : La cl primaire. Les cls trangres. Les contraintes ventuelles. Exercice B : Donnez la commande Create Table pour les tables Consultation et M atch.

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

Modle relationnel (rappel cycle A)

JOURNALISTE ID Nom Date naiss. 1,n A travaille pour Redige 1,n 1,1 ARTICLE 0,n ID Contenu Parait dans 1,n Interview 1,n 1,n

PERSONNALITE ID Nom Prenom Nation.

JOURNAL ID Titre Adresse

1,1 SUJET ID 0,n Libelle

1,n NUMERO

Relatif a

ID Date
F IG . 1.3 Journal

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

Rtro-conception

1.3 Rtro-conception
On trouve dans un SGBD relationnel les relations ci-dessous. Les cls primaires sont soulignes, mais pas les cls trangres. IMMEUBLE (Adresse, Nb-tages, Date-construction, Nom-Grant) APPART (Adresse, Numro, Type, Supercie, Etage) PERSONNE (Nom, Age, Code-Profession) OCCUPANT (Adresse, Numro-Appart, Nom-Occupant, Date-arrive, Date-dpart) PROPRIT (Adresse, Nom-Propritaire, Quote-part) TYPE-APPART (Code, Libell) PROFESSION (Code, Libell) Exercice A : Identier les cls trangres dans chaque relation. Exercice B : Reconstruire le schma E/A. Exercice C : Existe-t-il des contraintes dintgrit ? Lesquelles ? Exercice D : Certaines donnes du schma relationnel rsultent-elles doptimisation ?

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

Chapitre 2

Algbre Relationelle
2.1 Slection et Projection
Soit la relation PERSONNE Nom Age Ville Marc 29 Paris Catherine 32 Lyon Sophie 54 Paris Claude 13 Montpellier Serge 40 Lyon Exercice A : Donnez les rsultats des requtes suivantes : Requte 1 : Age=30 (P ERSON N E) (slection) Requte 2 : Age (P ERSON N E) (projection) Requte 3 : Age (N om= Serge (P ERSON N E)) (projection, slection) Exercice B : Exprimez les requtes suivantes en algbre relationnelle : Requte 1 : les personnes (nom, ge, ville) qui habitent Paris. Requte 2 : les personnes (nom, ge, ville) qui ont moins de 30 ans. Requte 3 : les villes dans la relation PERSONNE. Requte 4 : les noms des personnes habitant Paris.

2.2 Jointure relationnelle


Exercice A : Soient R et S les relations

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

Auto-Jointure et Renommage

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

S C c a d b

o les attributs A, B, C sont dnis sur les domaines des lettres de lalphabet. Donnez le rsultat des requtes suivantes : Requte 1 : R I S (jointure naturelle). Requte 2 : A=C (B/B (R) S) (qui-jointure). Requte 3 : R < S = R (R I S) (semijoin). Exercice B : Est-ce que les quations suivantes sont vraies ? A,B (R I S) = R B,C (R I S) = S (2.1) (2.2)

2.3 Auto-Jointure et Renommage


Soit T(A,B) une relation o A et B prennent leurs valeurs dans le mme domaine. Supposons quon veuille construire une relation TS contenant les seuls n-uplets < a, b > tels que < b, a > est galement un n-uplet de T. Par exemple :

T A a a c c b e B b c a d a f

TS A B a b b a a c c a

Exprimez cette opration par une expression de lalgbre relationnelle.

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

Chapitre 3

Algbre - SQL : Employs - Dpartements


3.1 Schma
Les exemples suivants sont tirs des sources de la socit Oracle.

3.1.1 Relation des Employs (EMP)


EMP(ENO, ENOM, PROF, DATEEMB, SAL, COMM, DNO) ENO : numro demploy, cl ENOM : nom de lemploy PROF : profession (directeur nest pas une profession) DATEEMB : date dembauche SAL : salaire COMM : commission (un employ peut ne pas avoir de commission) DNO : numro de dpartement auquel appartient lemploy

3.1.2 Relation des Dpartements (DEPT)


DEPT(DNO, DNOM, DIR, VILLE) DNO : numro de dpartement, cl DNOM : nom du dpartement DIR : directeur du dpartement VILLE : lieu du dpartement (ville)

3.2 Oprations Algbriques


Soit lexemple suivant : Vertigo/CNAM, Paris NFP 107 et 107J - Exercices dirigs 9

Requtes

ENO 10 EMP 20 30 40

ENOM Joe Jack Jim Lucy

PROF Ingnieur Technicien Vendeur Ingnieur

DATEEMB 1.10.93 1.5.88 1.3.80 1.3.80

SAL 4000 3000 5000 5000

COMM 3000 2000 5000 5000

DNO 3 2 1 3

DNO 1 DEPT 2 3

DNOM Commercial Production Dveloppement

DIR 30 20 40

VILLE New York Houston Boston

Exercice A : Calculer sal<5000 (EM P ). Exercice B : Calculer EMPbis = EN O/EN O (EN O,COMM (EM P )) Exercice C : Calculer EN O,SAL (EM P ) ISAL=COMM (EM P bis) Exercice D : Exprimer par une phrase ce quon obtient en valuant les requtes prcdentes. Exercice E : Quelle est lexpression de lalgbre relationnelle qui permettrait dobtenir le nom et la profession de lemploy de numro 10. Exercice F : Idem pour la liste des noms des employs qui travaillent New York. Exercice G : Idem pour avoir le nom du directeur du dpartement Commercial.

3.3 Requtes
Exprimer les requtes Q1 Q18 laide de lalgbre relationnelle. Exprimer en SQL les requtes Q1 Q24.

3.3.1 Interrogation dune seule Relation


Requte 1 : Donner tous les n-uplets de DEPT. Requte 2 : Donner tous les n-uplets de EMP. Requte 3 : Donner les noms et les salaires des employs. Requte 4 : Donner les professions des employs (aprs limination des duplicats). Requte 5 : Donner les dates dembauche des techniciens.

3.3.2 Jointures
Requte 6 : Faire le produit cartsien entre EMP et DEPT. Requte 7 : Donner les noms des employs et les noms de leur dpartement.

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

10

Requtes

Requte 8 : Donner les numros des employs travaillant BOSTON. Requte 9 : Donner les noms des directeurs des dpartements 1 et 3. Attention : directeur nest pas une profession ! Requte 10 : Donner les noms des employs travaillant dans un dpartement avec au moins un ingnieur. Requte 11 : Donner le salaire et le nom des employs gagnant plus quun (au moins un) ingnieur. Requte 12 : Donner le salaire et le nom des employs gagnant plus que tous les ingnieurs. Requte 13 : Donner les noms des employs et les noms de leurs directeurs. Requte 14 : Trouver les noms des employs ayant le mme directeur que JIM. Attention : un employ peut tre directeur de plusieurs dpartements. Requte 15 : Donner le nom et la date dembauche des employs embauchs avant leur directeur ; donner galement le nom et la date dembauche de leur directeur. Requte 16 : Donner les dpartements qui nont pas demploys. Requte 17 : Donner les noms des employs du dpartement COMMERCIAL embauchs le mme jour quun employ du dpartement PRODUCTION. Requte 18 : Donner les noms des employs embauchs avant tous les employs du dpartement 1. Requte 19 : Donner les noms des employs ayant le mme emploi et le mme directeur que JOE.

3.3.3 Valeurs Nulles, Tris, Groupes, Agrgats et Expressions


Requte 20 : Donner la liste des employs ayant une commission. Requte 21 : Donner les noms, emplois et salaires des employs par emploi croissant et, pour chaque emploi, par salaire dcroissant. Requte 22 : Donner le salaire moyen des employs. Requte 23 : Donner le nombre demploys du dpartement PRODUCTION. Requte 24 : Les numros de dpartement et leur salaire maximum ? Requte 25 : Donner les noms des employs ayant le salaire maximum de chaque dpartement. Requte 26 : Les professions et leur salaire moyen ? Requte 27 : Le salaire moyen le plus bas (par profession) ? Requte 28 : Donner les emplois ayant le salaire moyen le plus bas ; donnez aussi leur salaire moyen.

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

11

Chapitre 4

Algbre - SQL : Appartements - coles


4.1 Schma
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) avec la signication suivante :

1. Relation IMMEUBLE ADI : adresse dimmeuble, cl ; on fait lhypothse pour simplier, que ladresse identie de manire unique un immeuble NBETAGES : nombre dtages dun immeuble DATEC : date de construction PROP : nom du propritaire de limmeuble qui est une personne 2. Relation APPIM (Appartement) ADI : adresse dimmeuble NAPR : numro dappartement OCCUP : occupant de lappartement (nom de la personne) TYPE : type de lappartement (Studio, F2, . . .) SUPER : supercie de lappartement ETAGE : tage o se situe lappartement 3. Relation PERSONNE NOM : nom de personne, cl ; on fait lhypothse pour simplier, que ce nom est unique sur lensemble des personnes que lon considre dans la base AGE : ge de la personne PROF : profession de la personne (directeur dcole nest pas une profession) ADR : adresse de la rsidence dune personne, il sagit dun immeuble Vertigo/CNAM, Paris NFP 107 et 107J - Exercices dirigs 12

Requtes

NAPR : numro dappartement 4. Relation COLE NOMEC : nom dune cole, cl ADEC : adresse dune cole NBCLASSES : nombre de classes DIR : nom du directeur 5. Relation CLASSE NOMEC : nom dune cole NCL : nom de la classe, e.g., CP1, CE2, CE3, etc... MAITRE : nom de linstituteur NBEL : nombre dlves dans la classe 6. Relation ENFANT NOMP : nom de la personne responsable de lenfant, cl e.g., pre, mre etc... PRENOM : prnom de lenfant AN : anne de naissance NOMEC : nom dune cole NCL : nom de la classe La relation IMMEUBLE dcrit un ensemble dimmeubles. Chaque immeuble a un propritaire. La relation APPIM dcrit pour chaque immeuble lensemble des appartements qui le compose. Chaque appartement peut hberger plusieurs personnes mais il y en a une qui est responsable (par exemple le locataire) et qui est dsigne par le constituant OCCUP. Si lappartement est inoccup, ce constituant prend la valeur NULL. La relation PERSONNE dcrit un ensemble de personnes. ADR et NAPR reprsentent ladresse o rside une personne. Une personne peut avoir plusieurs enfants dcrits par la relation ENFANT. Pour simplier, on ne considre que les enfants allant lcole primaire. Les coles et les classes sont dcrites dans les relations COLE et CLASSE. On suppose ici que toutes ces relations vrient les contraintes dintgrit de base. Par exemple,une personne rpertorie dans la relation CLASSE en tant que matre exerce bien la profession dinstituteur dans la relation PERSONNE. De mme, un directeur dcole est un instituteur.

4.2 Requtes
Exprimer les requtes suivantes laide de lalgbre relationnelle, puis les traduire en SQL. Requte 1 : Donner ladresse des immeubles ayant plus de 10 tages et construits avant 1970. Requte 2 : Donner les noms des personnes qui habitent dans un immeuble dont ils sont propritaires (occupants et habitants). Requte 3 : Donner les noms des personnes qui ne sont pas propritaires. Requte 4 : Donner les adresses des immeubles possds par des informaticiens dont lge est infrieur 40 ans.

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

13

Contraintes

Requte 5 : Donner la liste des occupants (nom, ge, profession) des immeubles possds par DUPONT. Requte 6 : Donner le nom et la profession des propritaires dimmeubles o il y a des appartements vides. Requte 7 : Donner les noms des matres qui habitent dans le mme immeuble ( la mme adresse) quau moins un de leurs lves (on suppose que les enfants vivent sous le mme toit que leur responsable). Requte 8 : Donner ladresse de limmeuble, la date de construction, le type dappartement et ltage o habitent chacun des matres des enfants de DUPONT. Requte 9 : Donner le nom et lge des matres qui habitent dans un immeuble dont le propritaire est responsable dun de leurs lves. Requte 10 : Donner le nom et lge des personnes qui sont propritaires mais qui ne sont ni matre ni directeur dcole (des classes et coles rpertories dans ECOLE et CLASSE).

4.3 Mise jour


Requte 11 : Ajouter un enfant de nom np, de prnom e, n en a et linscrire la classe c de lcole ec.

4.4 Contraintes
Indiquer de la faon la plus formelle possible certaines contraintes que les donnes de la base doivent respecter pour tre conformes la ralit modlise ici.

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

14

Chapitre 5

SQL - Algbre : Cinmas - Films


5.1 Schma
Les exemples suivants sont tirs du livre Foundations of Databases de S. Abiteboul, R. Hull et V. Vianu. SALLE (Nom,Horaire,Titre) FILM (Titre, Realisateur, Acteur) PRODUIT (Producteur,Titre) VU (Spectateur,Titre) AIME (Spectateur,Titre) Un lm est ralis par un metteur en scne mais peut tre nanc par plusieurs Producteurs. Un Spectateur peut aimer un lm sans lavoir vu.

5.2 Requtes
crire les requtes suivantes en algbre relationnelle .

5.2.1 Interrogation dune seule relation


Requte 1 : Dans quelle salle et quelle heure peut on voir le lm Mad Max ? Requte 2 : Quels sont les lms raliss par Orson Welles ? Requte 3 : Quels sont les Acteurs du lm Ran ?

5.2.2 Jointures
Requte 4 : Dans quelles salles peut-on voir un lm avec Simone Signoret ? Requte 5 : Dans quelles salles peut on voir Marlon Brando aprs 16h ? Requte 6 : Quels sont les Acteurs qui ont produit un lm ?

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

15

Requtes

Requte 7 : Quels sont les Acteurs qui ont produit un lm dans lequel ils jouent ? Requte 8 : Quels sont les Acteurs qui ont produit et ralis un mme lm ? Requte 9 : Quels sont les Producteurs qui regardent les lms quils ont produits ?

5.2.3 Difference
Requte 10 : Quels lms ne passent en ce moment dans aucune salle ? Requte 11 : Quels Spectateurs aiment un lm quils nont pas vu ? Requte 12 : Qui naime aucun lm quil a vu ? Requte 13 : Qui na produit aucun lm de Doillon ? Requte 14 : Qui a produit un lm qui ne passe dans aucune salle ?

5.2.4 Division
Requte 15 : Quels Spectateurs ont vu tous les lms ? (ou Spectateurs pour lesquels il nexiste pas un lm quils nont pas vu) Requte 16 : Quels Acteurs jouent dans tous les lms de Welles ? (ou Acteurs pour lesquels il nexiste pas un lm de Welles quils nont pas jou) Requte 17 : Quels sont les Spectateurs qui aiment tous les lms quils ont vu ? (ou Spectateurs pour lesquels il nexiste pas un lm quils ont vu et quils nont pas aim) Requte 18 : Quels sont les Producteurs qui voient tous les lms quils ont produit ? (ou Producteurs pour lesquels il nexiste pas un lm quils ont produit et quils nont pas vu) Requte 19 : Quels Producteurs voient tous les lms de Kurosawa ? (ou Producteurs pour lesquels il nexiste pas un lm de Kurosawa quils nont pas vu)

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

16

Chapitre 6

Organisation Physique
Exercice A : On prend ici comme exemple la relation Directeur (nom_directeur, nom_lm). 1. Organisation Squentielle : Expliquer lorganisation squentielle et reprsenter un exemple sur la relation Directeur. Montrer le chier aprs une insertion et aprs quelques suppressions darticles. 2. Organisation Indexe : Montrer des exemples dindex non dense (primaire) et dense (secondaire) sur la relation Directeur. Exercice B : Construire un index sur la date de naissance des musicien (arbre B, ordre 2) : Monteverdi 1589 Couperin 1668 Bach 1685 Rameau 1684 Debussy 1862 Ravel 1875 Mozart 1756 Faure 1856 Exercice C : Construire un index sur les noms des musicien (arbre B, ordre 2). Exercice D : Construire un arbre B+ dordre 2 sur les numros de dpartement. 3 Allier 36 Indre 18 Cher 9 Arige 11 Aude 12 Aveyron 73 Savoie 55 Meuse 46 Lot 39 Jura 81 Tarn 25 Doubs 15 Cantal 51 Marne 42 Loire Exercice E : Soit le chier squentiel suivant (on ne donne pour chaque article du chier que la cl sur laquelle on construit larbre) : 1 15 3 12 6 4 11 7 2 5 14 8 9 17 10 13 16. Lindex en arbre B dordre 2 aprs linsertion des cls 1 15 3 12 6 4 11 7 2 5 14 8 est montr dans la gure suivante : Vertigo/CNAM, Paris NFP 107 et 107J - Exercices dirigs 17

CHAPITRE 6. ORGANISATION PHYSIQUE

12

11

14

15

1. Donnez larbre rsultant aprs linsertion de tous les articles du chier squentiel. 2. Combien de nuds diffrents (racine et feuilles compris) doit-on parcourir dans lindex pour rpondre la requte qui cherche les articles dont la cl appartient lintervalle [5,10]. Exercice F : Soit les chiers squentiels suivants (on ne donne pour chaque article du chier que la cl sur laquelle on construit larbre) : 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 2 15 30 28 12 4 18 19 24 29 13 27 9 20 3 32 21 23 1. Construire un index en arbre B dordre 2 pour chacun des chier. 2. Construire un index en arbre B+ dordre 2 pour chacun des chier.

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

18

Chapitre 7

Algorithmes de Jointure
Soit les relations suivantes : Directeur(nom_directeur, nom_lm) Acteur(nom_lm, nom_acteur) Soit la requte suivante :
SELECT nom_directeur, nom_acteur FROM Directeur Join Acteur WHERE Directeur.nom_film = Acteur.nom_film

Pour valuer cette requte, il faut calculer la jointure Directeur I Acteur. Pour lxecution des jointures, dcrivez et valuez la complxit de lalgorithme avec boucles imbriques et avec tri-fusion. Dans les deux cas on tiendra compte des mouvements entre mmoire centrale et disque et on vluera le nombre dentres-sorties. Exercice A : Algorithme avec boucles imbriques ; Exercice B : Algorithme avec tri-fusion ;

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

19

Chapitre 8

Optimisation de Requtes
Exercice A : Soit la base STATION DE SKI contenant les relations suivantes : hotel (noms,nomh,categorie,adresse,tel,nb_chambres) (1000 pages, chaque page contient 10 tuples, 5 catgories diffrentes). station (noms,gare) (300 pages, chaque page contient 10 tuples). activite (type_activite,noms) (100 pages, chaque page contient 10 tuples). On suppose de plus lexistence des index suivants (arbres B+) : Index sur le couple (noms,nomh) de la relation hotel (26 pages). Index sur lattribut categorie de hotel (33 pages). Hypothses : Chaque catgorie comprend un nombre gal dhtels. Chaque station comprend un nombre gal dhtels. Le nombre dE/S lors du parcours de larborescence des index est ngligeable. Requte 1 : adresse, numro de tlphone et nombre de chambres des htels de catgorie 3 dans la station de nom pesey.
SELECT adresse, tel, nb_chambres FROM hotel WHERE noms=pesey AND categorie=3;

1. Calculer le nombre dE/S effectues lors de lvaluation de cette requte de slection par un parcours squentiel de la relation hotel. 2. Calculer le nombre dE/S effectues lors de lvaluation de cette requte en utilisant lindex sur categorie. 3. Calculer le nombre dE/S effectues lors de lvaluation de cette requte en utilisant lindex sur noms,nomh. 4. Conclure Requte 2 : Soit le schma suivant : CREATE TABLE FILM ( CREATE TABLE VU ( TITRE VARCHAR2(32), SPECTATEUR REALISATEUR VARCHAR2(32), TITRE ACTEUR VARCHAR2(32) ); ); Soit la requte SQL : SELECT ACTEUR, REALISATEUR FROM FILM, VU WHERE FILM.TITRE=VU.TITRE Vertigo/CNAM, Paris NFP 107 et 107J - Exercices dirigs

VARCHAR2(32), VARCHAR2(32)

20

CHAPITRE 8. OPTIMISATION DE REQUTES

Dans chacun des cas suivants, donner lalgorithme de jointure de ORACLE (par EXPLAIN, un arbre dexcution comment, une explication textuelle ou tout autre moyen de votre choix) : 1. Il nexiste pas dindex sur TITRE ni dans FILM ni dans VU, 2. Il existe un index sur TITRE dans FILM seulement. 3. Il existe un index sur TITRE dans les deux relations. Requte 3 : Soit la requte : SELECT e.enom, d.dnom FROM emp e, dept d WHERE e.dno = d.dno AND e.sal = 10000 sur la relation EMP de schma (EMPNO, SAL, MGR, DNO). Cette requte afche le nom des employs dont le salaire (SAL) est gal 10000, et celui de leur dpartement. Indiquez le plan dexcution dans chacune des hypothses suivantes. 1. Index sur DEP T (Dno) et sur EM P (Sal) 2. Index sur EM P (Sal) seulement. 3. Index sur EM P (Dno) et sur EM P (Sal) 4. Voici une autre requte, lgrement diffrente. Plan dexcution sil ny a pas dindex. SELECT e.enom FROM emp e, dept d WHERE e.dno = d.dno AND d.ville = Paris 5. Que pensez-vous de la requte suivante par rapport la prcdente ? SELECT e.enom FROM emp e WHERE e.dno IN (SELECT d.dno FROM Dept d WHERE d.Ville = Paris) Voici le plan dexcution donn par ORACLE : 0 SELECT STATEMENT 1 MERGE JOIN 2 SORT JOIN 3 TABLE ACCESS FULL EMP 4 SORT JOIN 5 VIEW 6 SORT UNIQUE 7 TABLE ACCESS FULL DEPT Quen dites vous ? Requte 4 : Sur le mme schma, voici maintenant la requte suivante. SELECT * FROM EMP X WHERE X.SAL IN (SELECT SAL FROM EMP WHERE EMP.EMPNO=X.MGR) Vertigo/CNAM, Paris NFP 107 et 107J - Exercices dirigs 21

CHAPITRE 8. OPTIMISATION DE REQUTES

Cette requte cherche les employs dont le salaire (SAL) est gal celui de leur patron (M GR). On donne le plan dexcution avec Oracle (outil EXPLAIN) pour cette requte dans deux cas : (i) pas dindex, (ii) un index sur le salaire et un index sur le numro demploy. Expliquez dans les deux cas ce plan dexcution (ventuellement en vous aidant dune reprsentation arborescente de ce plan dexcution). 1. Pas dindex. Plan dexcution -----------------------------------------------------------------------0 FILTER 1 TABLE ACCESS FULL EMP 2 TABLE ACCESS FULL EMP 2. Index empno et index sal. Plan dexcution -----------------------------------------------------------------------0 FILTER 1 TABLE ACCESS FULL EMP 2 AND-EQUAL 3 INDEX RANGE SCAN I-EMPNO 4 INDEX RANGE SCAN I-SAL 3. Dans le cas o il y a les deux index (salaire et numro demploy) et o la requte est : SELECT * FROM EMP X WHERE X.SAL = (SELECT SAL FROM EMP WHERE EMP.EMPNO=X.MGR) on a le plan dexcution suivant : Plan dexcution -----------------------------------------------------------------------0 FILTER 1 TABLE ACCESS FULL EMP 2 TABLE ACCESS ROWID EMP 3 INDEX RANGE SCAN I-EMPNO Expliquez-le. Requte 5 : On reprend le schma CINEMA donn dans le cours, mais on ne sais plus quels index existent. Questions : 1. Donner lordre SQL pour la requte : Quels sont les lms dHitchcock visibles aprs 20h00 ? 2. Donner lexpression algbrique correspondante et proposez un arbre de requte qui vous parat optimal. 3. Sous ORACLE, loutil EXPLAIN donne le plan dexcution suivant : 0 SELECT STATEMENT 1 MERGE JOIN 2 SORT JOIN 3 NESTED LOOPS 4 TABLE ACCESS FULL ARTISTE

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

22

CHAPITRE 8. OPTIMISATION DE REQUTES

5 TABLE ACCESS BY ROWID FILM 6 INDEX RANGE SCAN IDX-ARTISTE-ID 7 SORT JOIN 8 TABLE ACCESS FULL SEANCE Commentez le plan donn par EXPLAIN. Pourrait-on amliorer les performances de cette requte ? Requte 6 : Soit le schma suivant : CREATE TABLE Artiste ( ID-artiste NUMBER(4), Nom VARCHAR2(32), Adresse VARCHAR2(32) ); CREATE TABLE Film ( ID-film Titre Anne ID-ralisateur );

NUMBER(4), VARCHAR2(32), NUMBER(4), NUMBER(4)

CREATE TABLE Joue ( ID-artiste ID-film ); Questions :

NUMBER(4), NUMBER(4)

1. Donner lordre SQL pour la requte : Afcher le nom des acteurs et le titre des lms o ils ont jou. 2. Donner lexpression algbrique correspondante. 3. Quel est votre avis le plan dexcution dans sil nexiste que deux index, un sur FILM(ID-ralisateur), et un sur ARTISTE(ID-artiste) ? 4. Idem, avec un index sur F ILM (ID F ilm), et un sur JOU E(ID Artiste). 5. Idem, avec un index sur F ILM (ID F ilm), et un sur JOU E(ID F ilm).

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

23

Chapitre 9

Concurrence
9.1 Srialisabilit et recouvrabilit
9.1.1 Graphe de srialisation et quivalence des excutions
Construisez les graphes de srialisation pour les trois excutions (histoires) suivantes. Indiquez les excutions srialisables et vriez si parmi les trois excutions il y a des excutions quivalentes. 1. H1 : w2 [x] w3 [z] w2 [y] c2 r1 [x] w1 [z] c1 r3 [y] c3 2. H2 : r1 [x] w2 [y] r3 [y] w3 [z] c3 w1 [z] c1 w2 [x] c2 3. H3 : w3 [z] w1 [z] w2 [y] w2 [x] c2 r3 [y] c3 r1 [x] c1

9.1.2 Recouvrabilit
Parmi les excutions (histoires) suivantes, lesquelles sont recouvrables, lesquelles vitent les annulations en cascade et lesquelles sont strictes ? Indiquez sil y a des excutions srialisables. 1. H1 : r1 [x] w2 [y] r1 [y] w1 [x] c1 r2 [x] w2 [x] c2 2. H2 : r1 [x] w1 [y] r2 [y] c1 w2 [x] c2 3. H3 : r1 [y] w2 [x] r2 [y] w1 [x] c2 r1 [x] c1

9.2 Contrle de concurrence


9.2.1 Verrouillage 2 phases
Un ordonnanceur avec verrouillage 2 phases reoit la squence doprations ci-dessous. H : r1 [x] r2 [y] w3 [x] w1 [y] w1 [x] w2 [y] c2 r3 [y] r1 [y] c1 w3 [y] c3

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

24

Contrle de concurrence

Indiquez lordre dexcution tabli par lordonnanceur, en considrant que les oprations bloques en attente dun verrou seront excutes en priorit ds que le verrou devient disponible, dans lordre de leur blocage. On suppose que les verrous dune transaction sont relchs au moment du Commit.

9.2.2 Verrouillage, interblocage


On considre lexcution concurrente suivante : H : r1 [x] r2 [y] r3 [x] w3 [x] w1 [y] r2 [x] c1 c2 c3 1. Trouvez les conits dans H et montrez que H nest pas srialisable. 2. Trouvez lexcution obtenue partir de H par verrouillage deux phases. On considre que les verrous dune transaction sont relchs au Commit et qu ce moment les oprations bloques en attente de verrou sont excutes en priorit. 3. Le raisonnement suivant mne une conclusion paradoxale. Considrons une histoire quelconque H non-srialisable, traite par verrouillage deux phases. H contient donc un cycle dans son graphe de srialisation. Chaque arc Ti Tj de ce cycle provient dune paire doprations conictuelles de type ai [x] avant bj [x]. Quand ai [x] sexcute, elle prend le verrou sur x, ce qui bloquera bj [x]. Donc Ti bloque Tj , mais comme les arcs forment un cycle, il y aura un blocage circulaire, donc un interblocage. Conclusion : toute histoire non-srialisable traite par verrouillage deux phases produit un interblocage ! Cependant, lexemple prcedent montre que cette conclusion est fausse, car H nest pas srialisable et elle ne produit pas dinterblocage. Expliquez pourquoi il ny a pas dinterblocage et pourquoi le raisonnement ci-dessus est faux. 4. Montrez que H nvite pas les annulations en cascade. Montrez quen avanant des Commit, H peut viter les annulations en cascade.

9.2.3 Verrouillage hirarchique


Considrons une relation Compte(Numro, Titulaire, Solde) et trois oprations qui sexcutent sur cette relation deux niveaux de granularit : relation et enregistrement. Supposons que dans cette relation il y a deux comptes pour le titulaire Dupont. Les trois oprations sont les suivantes : un programme qui lit tous les comptes ; un programme qui ralise un transfert entre les deux comptes de Dupont ; un programme qui lit tous les comptes, an de trouver les comptes de Dupont et de crditer leur solde avec les intrts de lanne. 1. Montrer que lexcution suivante est une excution concurrente des trois oprations ci-dessus. Identier les donnes qui correspondent chaque variable. H : r1 [z] r2 [z] w1 [x] r3 [x] w3 [x] c2 w1 [y] r3 [y] c1 w3 [y] c3 2. Trouver lexcution obtenue par verrouillage hirarchique partir de H. On considre que le verrouillage hirarchique utilise des verrous de type SIX (lecture et intention dcriture), dans le cas prsent pour le rajout des intrts sur les comptes de Dupont. Les verrous sont relchs au Commit et les oprations bloques en attente de verrou sont traites en priorit, dans lordre de leur blocage. 3. Que se passe-t-il dans le verrouillage hirarchique de H si on nutilise pas de verrou SIX au niveau de la relation (mais seulement du S et du IX sparemment) ?

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

25

Concurrence : Gestion Bancaire

9.3 Reprise aprs panne


9.3.1 Journalisation
Soit le journal physique ci-dessous, dans lequel on a marqu les oprations Commit et Abort ralises : [T1 , x, 3], [T2 , y, 1], [T1 , z, 2], c1 , [T2 , z, 4], [T3, x, 2], a2 , [T4 , y, 3], c3 , [T5 , x, 5] 1. Indiquez le contenu de liste_commit, liste_abort, liste_active. 2. En supposant quune nouvelle criture vient de sajouter au journal, lesquelles des critures suivantes sont compatibles avec une excution stricte : [T5 , y, 4], [T4 , z, 3] ou [T6 , x, 1] ? 3. Quelles sont les entres rcuprables par lalgorithme de ramasse-miettes ? 4. Si les valeurs initiales des enregistrements taient x = 1, y = 2,z = 3, et si une panne survenait ce moment, quelles seraient les valeurs restaures pour x, y et z aprs la reprise ? 5. En pratique, on stocke souvent dans chaque entre aussi limage avant de lcriture (la valeur de lenregistrement avant lcriture). Aussi, les positions des Commit et Abort ne sont pas connues, mais seulement les listes de transactions liste_commit, liste_abort et liste_active au moment courant (la n du journal). Quel est dans ce cas le contenu du journal ? Les valeurs initiales sont celles prcises ci-dessus (x = 1, y = 2,z = 3), ainsi que les listes courantes de transactions. 6. Expliquez le fonctionnement de lalgorithme de reprise avec annulation et avec rptition sur ce dernier journal.

9.4 Concurrence : Gestion Bancaire


Les trois programmes suivants peuvent sexcuter dans un systme de gestion bancaire. Dbit diminue le solde dun compte c avec un montant donn m. Pour simplier, tout dbit est permis (on accepte des dcouverts). Crdit augmente le solde dun compte c avec un montant donn m. Transfert transfre un montant m partir dun compte source s vers un compte destination d. Lexcution de chaque programme dmarre par un Start et se termine par un Commit (non montrs ci-dessous).
Dbit (c:Compte; m:Montant) begin t := Read(c); Write(c,t-m); end | | | | | | Crdit (c:Compte; m:Montant) begin t = Read(c); Write(c,t+m); end | | | | | | Transfert (s,d:Compte; m:Montant) begin Dbit(s,m); Crdit(d,m); end

Le systme excute en mme temps les trois oprations suivantes : (1) un transfert de montant 100 du compte A vers le compte B (2) un crdit de 200 pour le compte A (3) un dbit de 50 pour le compte B 1. crire les transactions T1 , T2 et T3 qui correspondent ces oprations. Montrer que lhistoire H : r1 [A] r3 [B] w1 [A] r2 [A] w3 [B] r1 [B] c3 w2 [A] c2 w1 [B] c1 est une excution concurrente de T1 , T2 et T3 . 2. Mettre en vidence les conits dans H et construire le graphe de srialisation de cette histoire. H est-elle srialisable ? H est-elle recouvrable ?

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

26

Concurrence : Agence environnementale

3. Quelle est lexcution H obtenue partir de H par verrouillage deux phases ? On suppose que les verrous dune transaction sont relchs aprs le Commit de celle-ci. Une opration bloque en attente dun verrou bloque le reste de sa transaction. Au moment du relchement des verrous, les oprations en attente sont excutes en priorit, dans lordre de leur blocage. Si au dbut le compte A avait un solde de 100 et B de 50, quel sera le solde des deux comptes aprs la reprise si une panne intervient aprs lexcution de w1 [B] ?

9.5 Concurrence : Agence environnementale


Une agence environnementale utilise une base de donnes relationnelle pour grer des informations sur les vhicules. Le schma est le suivant (les cls sont soulignes) : propritaire(nom, ge) vhicule(immatriculation, kilomtrage, nom, idmodle) (nom = nom propritaire) modle(idmodle, crashtest, consommation) carburant(dsignation, cours, pollution) utilise(idmodle, dsignation) Lexcution suivante est reue par le systme de lagence environnementale : H : r1 [x]r2 [y]r3 [x]w2 [y]w1 [x]r3 [y]r1 [z]w2 [z]w1 [y]c1 c2 w3 [z]c3 1. Parmi les programmes qui s excutent dans le systme, il y a KilomtrAge(i, k, a), qui xe pour le vhicule dimmatriculation i le kilomtrage k et lage du propritaire a. Montrez quelle transaction de H pourrait provenir de KilomtrAge. On considre que les enregistrements (variables) de H sont des nuplets des relations de la base de donnes. On suppose que tout nuplet est accessible directement si lon connat sa cl. 2. Identiez tous les conits dans H et vriez si lexcution est srialisable en construisant le graphe de srialisation. 3. A quel niveau de recouvrabilit se situe H (recouvrable, vitant les annulations en cascade, stricte) ? 4. Quelle est lexcution obtenue par verrouillage deux phases partir de H ? Le relchement des verrous dune transaction se fait au Commit et ce moment on excute en priorit les oprations bloques en attente de verrou, dans lordre de leur blocage.

Vertigo/CNAM, Paris

NFP 107 et 107J - Exercices dirigs

27

You might also like