Professional Documents
Culture Documents
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
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
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
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).
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
0,n
Gagne Score
1,1
Participe
Match No
2,2
1,1
Se joue sur
0,n
Horaire No
Terrain Surface
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 ?
Vertigo/CNAM, Paris
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
1,n NUMERO
Relatif a
ID Date
F IG . 1.3 Journal
Vertigo/CNAM, Paris
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
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.
Vertigo/CNAM, Paris
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)
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
Vertigo/CNAM, Paris
Chapitre 3
Requtes
ENO 10 EMP 20 30 40
DNO 3 2 1 3
DNO 1 DEPT 2 3
DIR 30 20 40
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.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
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.
Vertigo/CNAM, Paris
11
Chapitre 4
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
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.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
14
Chapitre 5
5.2 Requtes
crire les requtes suivantes en algbre relationnelle .
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
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
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
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
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
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
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
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
22
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), 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
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
Vertigo/CNAM, Paris
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.
Vertigo/CNAM, Paris
25
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
26
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] ?
Vertigo/CNAM, Paris
27