Conservaoire Naional des Ars e Méiers 292 Rue S Marin 75141 Paris Cedex 03 INFORMATIQUE - CNAM, Paris BASES DE DONNEES Relaionnelles SGBD 1/2 valeur B7, 19786 Exercices Dirigés M Scholl, B Amann, P Rigaux e D Vodislav 20 sepembre 2001
Table des maières 1 Concepion 2 11 Inerpréaion de schémas enié/associaion 2 111 Cenre médical 2 112 Tournoi de ennis 2 113 Un journal 3 12 Modèle réseau 4 13 Modèle relaionnel 4 14 Réro-concepion 4 2 Algèbre Relaionelle 5 21 Sélecion e Projecion 5 22 Joinure relaionnelle 6 23 Auo-Joinure e Renommage 6 3 Algèbre : Compagnie d Assurance 7 31 Schéma 7 32 Requêes 7 4 Algèbre - SQL: Employés - Déparemens 9 41 Schéma 9 411 Relaion des Employés (EMP) 9 412 Relaion des Déparemens (DEPT) 9 42 Opéraions Algébriques 9 43 Requêes 10 431 Inerrogaion d une seule Relaion 10 432 Joinures 10 433 Valeurs Nulles, Tris, Groupes, Agrégas e Expressions 11 5 Algèbre - SQL : Apparemens - Écoles 12 51 Schéma 12 52 Requêes 13 53 Mise à jour 14 54 Conraines 14 6 SQL : Fournisseurs - Produis - Cliens 15 61 Schéma 15 62 Requêes 16 7 Calcul - SQL - Algèbre : Cinémas - Films 17 71 Schéma 17 72 Requêes 17 721 Inerrogaion d une seule Relaion 17 722 Joinures 17
723 Difference 18 724 Division 18 8 Décomposiion 19 81 Calcul des Clés 19 82 Troisième Forme Normale 19 83 Décomposiion sans Pere d Informaion 20 84 Préservaion des Dépendances Foncionnelles 21 85 Forme Normale de Boyce-Codd 22 9 Organisaion Physique 23 10 Algorihmes de Joinure 25 11 Opimisaion de Requêes 26 12 Concurrence 30 121 Sérialisabilié e recouvrabilié 30 1211 Graphe de sérialisabilié e équivalence des exécuions 30 1212 Recouvrabilié 30 122 Conrôle de concurrence 31 1221 Verrouillage à 2 phases 31 1222 Esampillage e la règle de Thomas 31 1223 Comparaison des méhodes de conrôle de concurrence 31 123 Reprise après panne 31 1231 Journalisaion 31 124 Concurrence: Gesion Bancaire 32 Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 2
Inerpréaion de schémas enié/associaion Chapire 1 Concepion 11 Inerpréaion de schémas enié/associaion 111 Cenre médical On vous donne un schémas E/A (figure 11) représenan des visies dans un cenre médical Répondez aux quesions suivanes en foncion des caracérisiques de ce schéma (ie: indiquez si la siuaion décrie es représenable, indépendammen de sa vraissemblance) Medicamen Code Libelle 0,n Medecin Maricule Nom 0,n Donne Paien No SS Nom 1,n Prescri Nb prises 1,1 Assise 0,n Consulaion No Dae 1,1 FIG 11 Cenre médical Exercice A : Un paien peu-il effecuer plusieurs visies? Exercice B : Un médecin peu-il recevoir plusieurs paiens dans la même consulaion? Exercice C : Peu-on prescrire plusieurs médicamens dans une même consulaion? Exercice D : Deux médecins différens peuven-ils prescrire le même médicamen? 112 Tournoi de ennis Le second schéma (figure 12) représene des renconres dans un ournoi de ennis Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 3
Inerpréaion de schémas enié/associaion Joueur No care Nom 0,n Gagne Score 0,n 1,1 Paricipe Mach No 1,1 Se joue sur 2,2 Horaire 0,n Terrain No Surface FIG 12 Tournoi de ennis Exercice A : Peu-on jouer des machs de double? Exercice B : Un joueur peu-il gagner un mach sans y a voir paricipé? Exercice C : Peu-il y avoir deux machs sur le même errain à la même heure? 113 Un journal Pour vous enraîner : voici le schéma E/A (figure 13 du sysème d informaion (rès simplifié) d un quoidien JOURNALISTE PERSONNALITE ID Nom Dae naiss 1,n 1,n Inerview 1,n ID Nom Prenom Naion 1,n Redige A ravaille pour 1,n JOURNAL 1,1 ARTICLE ID 0,n Parai dans ID Tire Adresse Conenu 1,1 Relaif a 0,n SUJET ID Libelle 1,n NUMERO ID Dae FIG 13 Journal Exercice A : Un aricle peu-il êre rédigé par plusieurs journalises? Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 4
Réro-concepion Exercice B : Un aricle peu-il êre publié plusieurs fois dans le même numéro? Exercice C : Peu-il y avoir plusieurs aricles sur le même suje dans le même numéro? Exercice D : 12 Modèle réseau Exercice A : Pour chacun des schémas E/A donnés précédemmen, consruire le schéma réseau correspondan (ypes d enregisremens e ypes de ses) Exercice B : Exprimez les requêes suivanes : 1 La lise des consulaions du Dr Duchemin 2 Les paiens qui on consulé le 15 mai 1997 3 A quelles daes a--on prescri de l aspirine? 4 Les joueurs qui on gagné au moins un mach 5 Les joeurs qui se son renconrés dans un mach 13 Modèle relaionnel Exercice A : Pour chacun des schémas E/A donnés précédemmen, consruire le schéma relaionnel correspondan Indiquez précisémen : La clé primaire Les clés érangères Les conraines évenuelles Exercice B : Donnez la commande Creae Table pour les ables e Exercice C : Répondez aux mêmes requêes que celles données pour le modèle réseau (en algèbre e en SQL) 14 Réro-concepion On rouve dans un SGBD relaionnel les relaions ci-dessous Les clés primaires son soulignées, mais pas les clés érangères IMMEUBLE (Adresse, Nb-éages, Dae-consrucion, Nom-Géran) APPART (Adresse, Numéro, Type, Superficie, Eage) PERSONNE (Nom, Age, Code-Profession) OCCUPANT (Adresse, Numéro-Appar, Nom-Occupan, Dae-arrivée, Dae-dépar) PROPRIÉTÉ (Adresse, Nom-Propriéaire, Quoe-par) TYPE-APPART (Code, Libellé) PROFESSION (Code, Libellé) Exercice A : Idenifier les clés érangères dans chaque relaion Exercice B : Reconsruire le schéma E/A Exercice C : Exise--il des conraines d inégrié? Lesquelles? Exercice D : Ceraines données du schéma relaionnel résulen-elles d opimisaion? Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 5
Sélecion e Projecion Chapire 2 Algèbre Relaionelle 21 Sélecion e Projecion Soi la relaion PERSONNE Nom Age Ville Marc 29 Paris Caherine 32 Lyon Sophie 54 Paris Claude 13 Monpellier Serge 40 Lyon Exercice A : Donnez les résulas des requêes suivanes : Requêe 1 :! #"$&%(' )+*,-,-%( (sélecion) Requêe 2 : /01"$&%2'&)3*,-,4%( (projecion) Requêe 3 : /01"57698:<;>=?@9;9"A$&%2'&)3*,-,-%B! (projecion, sélecion) Exercice B : Exprimez les requêes suivanes en algèbre relaionnelle: Requêe 1 : les personnes (nom, âge, ville) qui habien Paris Requêe 2 : les personnes (nom, âge, ville) qui on moins de 30 ans Requêe 3 : les villes dans la relaion PERSONNE Requêe 4 : les noms des personnes habian à Paris Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 6
Auo-Joinure e Renommage 22 Joinure relaionnelle Exercice A : Soien R e S les relaions R A B a b a f c b d e S B C b c e a b d g b où les aribus A, B, C son définis sur les domaines des leres de l alphabe Donnez le résula des requêes suivanes : Requêe 1 : 'DCE) (joinure naurelle) Requêe 2 : F GH"JI?KMLNK ; "A' 7OP)3 (équi-joinure) Requêe 3 : 'RQ ST)TUV/W7"'XCY)3 (semijoin) Exercice B : Es-ce que les équaions suivanes son vraies? /MZ K "A'DCE)3[U ' (21) / K Z GH"A'DCE)3[U ) (22) 23 Auo-Joinure e Renommage 0\^]`_ ] \ a_ Soi T(A,B) une relaion où A e B prennen leurs valeurs dans le même domaine Supposons qu on veuille sélecionner les seuls n-uples S els que S es égalemen un n-uple de T Exprimez cee opéraion par une expression de l algèbre relaionnelle Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 7
Requêes Chapire 3 Algèbre : Compagnie d Assurance 31 Schéma STATUT #EMP NOM SALAIRE COURTIER 1,1 EST-UN 0,1 EMPLOYE 0,n 0,1 0,n VEND DIRIGE 1,1 POLICES P# BENEFICIAIRE QUANTITE FIG 31 Compagnie d assurances Exercice A : décrire ce schéma Enié-Relaion (en français) Exercice B : représener le diagramme Enié-Relaion précéden dans le modèle relaionnel 32 Requêes Exercice A : exprimer les requêes suivanes en algèbre relaionelle: Requêe 1 : les numéros des polices vendues à plus de 20 exemplaires Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 8
Requêes Requêe 2 : les noms des employés qui gagnen moins que 6000 francs Requêe 3 : les noms de ous les couriers _ Requêe 4 : les bénéficiaires d au moins 21 polices avec le même numéro ( 20) Requêe 5 : les noms de couriers dirigés par l employé 113 Requêe 6 : les salaires des couriers sagiaires (STATUT= Sagiaire ) Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 9
Opéraions Algébriques Chapire 4 Algèbre - SQL: Employés - Déparemens 41 Schéma Les exemples suivans son irés des sources de la sociéé Oracle 411 Relaion des Employés (EMP) EMP(ENO, ENOM, PROF, DATEEMB, SAL, COMM, DNO) ENO : numéro d employé, clé ENOM : nom de l employé PROF : profession (direceur n es pas une profession) DATEEMB : dae d embauche SAL : salaire COMM : commission (un employé peu ne pas avoir de commission) DNO : numéro de déparemen auquel apparien l employé 412 Relaion des Déparemens (DEPT) DEPT(DNO, DNOM, DIR, VILLE) DNO : numéro de déparemen, clé DNOM : nom du déparemen DIR : direceur du déparemen VILLE : lieu du déparemen (ville) 42 Opéraions Algébriques Soi l exemple suivan : Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 10
Requêes EMP ENO ENOM PROF DATEEMB SAL COMM DNO 10 Joe Ingénieur 11093 4000 3000 3 20 Jack Technicien 1588 3000 2000 2 30 Jim Vendeur 1380 5000 5000 1 40 Lucy Ingénieur 1380 5000 5000 3 DEPT DNO DNOM DIR VILLE 1 Commercial 30 New York 2 Producion 20 Houson 3 Développemen 40 Boson Exercice A : Calculer 0b!cedgfhN9 "%BX$2 Exercice B : Calculer EMPbis = I?i 5:j LNi 5:j ; "J/ i 5:jkZ Gljlmnmo"%(X$29 Exercice C : Calculer / i 5:jkZ =Fp "%(X$23C =Fpq G jlmnm "%(X$ ]e Exercice D : Exprimer par une phrase ce qu on obien en évaluan les requêes précédenes Exercice E : Quelle es l expression de l algèbre relaionnelle qui permerai d obenir le nom e la profession de l employé de numéro 10 Exercice F : Idem pour la lise des noms des employés qui ravaillen à New York Exercice G : Idem pour avoir le nom du direceur du déparemen Commercial 43 Requêes Exprimer les requêes Q1 à Q18 à l aide de l algèbre relaionnelle Exprimer en SQL les requêes Q1 à Q24 431 Inerrogaion d une seule Relaion Requêe 1 : Donner ous les n-uples de DEPT Requêe 2 : Donner ous les n-uples de EMP Requêe 3 : Donner les noms e les salaires des employés Requêe 4 : Donner les professions des employés (après éliminaion des duplicas) Requêe 5 : Donner les daes d embauche des echniciens 432 Joinures Requêe 6 : Faire le produi carésien enre EMP e DEPT Requêe 7 : Donner les noms des employés e les noms de leur déparemen Requêe 8 : Donner les numéros des employés ravaillan à BOSTON Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 11
Requêes Requêe 9 : Donner les noms des direceurs des déparemens 1 e 3 Aenion : direceur n es pas une profession! Requêe 10 : Donner les noms des employés ravaillan dans un déparemen avec au moins un ingénieur Requêe 11 : Donner le salaire e le nom des employés gagnan plus qu un (au moins un) ingénieur Requêe 12 : Donner le salaire e le nom des employés gagnan plus que ous les ingénieurs Requêe 13 : Donner les noms des employés e les noms de leurs direceurs Requêe 14 : Trouver les noms des employés ayan le même direceur que JIM Aenion : un employé peu êre direceur de plusieurs déparemens Requêe 15 : Donner le nom e la dae d embauche des employés embauchés avan leur direceur; donner égalemen le nom e la dae d embauche de leur direceur Requêe 16 : Donner les déparemens qui n on pas d employés Requêe 17 : Donner les noms des employés du déparemen COMMERCIAL embauchés le même jour qu un employé du déparemen PRODUCTION Requêe 18 : Donner les noms des employés embauchés avan ous les employés du déparemen 1 Requêe 19 : Donner les noms des employés ayan le même emploi e le même direceur que JOE 433 Valeurs Nulles, Tris, Groupes, Agrégas e Expressions Requêe 20 : Donner la lise des employés ayan une commission Requêe 21 : Donner les noms, emplois e salaires des employés par emploi croissan e, pour chaque emploi, par salaire décroissan Requêe 22 : Donner le salaire moyen des employés Requêe 23 : Donner le nombre d employés du déparemen PRODUCTION Requêe 24 : Les numéros de déparemen e leur salaire maximum? Requêe 25 : Donner les noms des employés ayan le salaire maximum de chaque déparemen Requêe 26 : Les professions e leur salaire moyen? Requêe 27 : Le salaire moyen le plus bas (par profession)? Requêe 28 : Donner les emplois ayan le salaire moyen le plus bas; donnez aussi leur salaire moyen Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 12
Schéma Chapire 5 Algèbre - SQL : Apparemens - Écoles 51 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) avec la significaion suivane : 1 Relaion IMMEUBLE ADI : adresse d immeuble, clé; on fai l hypohèse pour simplifier, que l adresse idenifie de manière unique un immeuble NBETAGES : nombre d éages d un immeuble DATEC : dae de consrucion PROP : nom du propriéaire de l immeuble qui es une personne 2 Relaion APPIM (Apparemen) ADI : adresse d immeuble NAPR : numéro d apparemen OCCUP : occupan de l apparemen (nom de la personne) TYPE : ype de l apparemen (Sudio, F2, ) SUPER : superficie de l apparemen ETAGE : éage où se siue l apparemen 3 Relaion PERSONNE NOM : nom de personne, clé; on fai l hypohèse pour simplifier, que ce nom es unique sur l ensemble des personnes que l on considère dans la base AGE : âge de la personne Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 13
Requêes PROF : profession de la personne ADR : adresse de la résidence d une personne, il s agi d un immeuble NAPR : numéro d apparemen 4 Relaion ÉCOLE NOMEC : nom d une école, clé ADEC : adresse d une école NBCLASSES : nombre de classes DIR : nom du direceur 5 Relaion CLASSE NOMEC : nom d une école NCL : nom de la classe, eg, CP1, CE2, CE3, ec MAITRE : nom de l insiueur NBEL : nombre d élèves dans la classe 6 Relaion ENFANT NOMP : nom de la personne responsable de l enfan, clé eg, père, mère ec PRENOM : prénom de l enfan AN : année de naissance NOMEC : nom d une école NCL : nom de la classe La relaion IMMEUBLE décri un ensemble d immeubles Chaque immeuble a un propriéaire La relaion APPIM décri pour chaque immeuble l ensemble des apparemens qui le compose Chaque apparemen peu héberger plusieurs personnes mais il y en a une qui es responsable (par exemple le locaaire) e qui es désignée par le consiuan OCCUP Si l apparemen es inoccupé, ce consiuan prend la valeur NULL La relaion PERSONNE décri un ensemble de personnes ADR e NAPR représenen l adresse où réside une personne Une personne peu avoir plusieurs enfans décris par la relaion ENFANT Pour simplifier, on ne considère que les enfans allan à l école primaire Les écoles e les classes son décries dans les relaions ÉCOLE e CLASSE 52 Requêes Exprimer les requêes suivanes à l aide de l algèbre relaionnelle, puis les raduire en SQL Requêe 1 : Donner l adresse des immeubles ayan plus de 10 éages e consruis avan 1970 Requêe 2 : Donner les noms des personnes qui habien dans un immeuble don ils son propriéaires (occupans e habians) Requêe 3 : Donner les noms des personnes qui ne son pas propriéaires Requêe 4 : Donner les adresses des immeubles possédés par des informaiciens don l âge es inférieur à 40 ans Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 14
Conraines Requêe 5 : Donner la lise des occupans (nom, âge, profession) des immeubles possédés par DUPONT Requêe 6 : Donner le nom e la profession des propriéaires d immeubles où il y a des apparemens vides Requêe 7 : Donner les noms des maîres qui habien dans le même immeuble (à la même adresse) qu au moins un de leurs élèves (on suppose que les enfans viven sous le même oi que leur responsable) Requêe 8 : Donner l adresse de l immeuble, la dae de consrucion, le ype d apparemen e l éage où habien chacun des maîres des enfans de DUPONT Requêe 9 : Donner le nom e l âge des maîres qui habien dans un immeuble don le propriéaire es responsable d un de leurs élèves Requêe 10 : Donner le nom e l âge des personnes qui son propriéaires mais qui ne son ni maîre ni direceur d école 53 Mise à jour Requêe 11 : Ajouer un enfan de nom np, de prénom e, né en a e l inscrire à la classe c de l école ec 54 Conraines Indiquer de la façon la plus formelle possible ceraines conraines que les données de la base doiven respecer pour êre conformes à la réalié modélisée ici Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 15
Schéma Chapire 6 SQL : Fournisseurs - Produis - Cliens 61 Schéma Les exemples suivans son irés du livre A Guide o DB, Third Ediion de CJ Dae CREATE TABLE FOURNISSEUR ( F# CHAR(5) NOT NULL, FNOM CHAR(20) NOT NULL WITH DEFAULT, STATUS SMALLINT NOT NULL WITH DEFAULT, VILLE CHAR(15) NOT NULL WITH DEFAULT, PRIMARY KEY ( F# ) ); CREATE TABLE PRODUIT ( P# CHAR(6) NOT NULL, PNOM CHAR(20) NOT NULL WITH DEFAULT, COULEUR CHAR(6) NOT NULL WITH DEFAULT, POIDS SMALLINT NOT NULL WITH DEFAULT, PRIMARY KEY ( P# ) ); CREATE TABLE CLIENT ( C# CHAR(6) NOT NULL, CNOM CHAR(20) NOT NULL WITH DEFAULT, VILLE CHAR(15) NOT NULL WITH DEFAULT, PRIMARY KEY ( C# ) ); CREATE TABLE COMMANDE ( F# CHAR(5) NOT NULL, P# CHAR(6) NOT NULL, C# CHAR(6) NOT NULL, QTE SMALLINT, PRIMARY KEY ( F#, P#, C# ) ); CREATE UNIQUE INDEX FX ON FOURNISSEUR ( F# ); Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 16
Requêes 62 Requêes Exprimer les requêes suivanes en SQL Requêe 1 : Toues les informaions sur les cliens Requêe 2 : Toues les informaions sur les cliens à Paris Requêe 3 : La lise riée des numéros des fournisseurs du clien avec le numéro C1 Requêe 4 : Les commandes avec une quanié enre 300 e 750 Requêe 5 : Les commandes avec une quanié différene de NULL Requêe 6 : Les numéros des cliens qui son siués dans une ville qui commence par P Requêe 7 : Les numéros des fournisseurs e des cliens qui son siués dans la même ville Requêe 8 : Les numéros des fournisseurs e des cliens qui ne son pas siués dans la même ville Requêe 9 : Les numéros des produis fournis par des fournisseurs Parisiens Requêe 10 : Les numéros des produis fournis par des fournisseurs Parisiens à des cliens Marseillais Requêe 11 : Les couples de villes (vr, vs ) el qu il exise au moins un fournisseur dans la ville vr d un clien dans la ville vs Requêe 12 : Les numéros des produis fournis à des cliens siués dans la même ville que leurs fournisseurs Requêe 13 : Les numéros des cliens qui on au moins un fournisseur siué dans une aure ville Requêe 14 : Les couples de produis qui son fournis par le même fournisseur Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 17
Requêes Chapire 7 Calcul - SQL - Algèbre : Cinémas - Films 71 Schéma Les exemples suivans son irés du livre Foundaions of Daabases de S Abieboul, R Hull e V Vianu SALLE (Nom,Horaire,Tire) FILM (Tire, Realisaeur, Aceur) PRODUIT (Produceur,Tire) VU (Specaeur,Tire) AIME (Specaeur,Tire) Un film es réalisé par un meeur en scène mais peu êre financé par plusieurs Produceurs Un Specaeur peu aimer un film sans l avoir vu 72 Requêes Écrire les requêes suivanes en algèbre relaionnel, en calcul à variable n-uple e en calcul à variable domaine 721 Inerrogaion d une seule Relaion Requêe 1 : Dans quelle salle e à quelle heure peu on voir le film Mad Max? Requêe 2 : Quels son les films réalisés par Orson Welles? Requêe 3 : Quels son les Aceurs du film Ran? 722 Joinures Requêe 4 : Dans quelles salles peu-on voir un film avec Simone Signore? Requêe 5 : Dans quelles salles peu on voir Marlon Brando après 16h? Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 18
Requêes Requêe 6 : Quels son les Aceurs qui on produi un film? Requêe 7 : Quels son les Aceurs qui on produi un film dans lequel ils jouen? Requêe 8 : Quels son les Aceurs qui on produi e réalisé un film? Requêe 9 : Quels son les Produceurs qui regarden les films qu ils on produis? 723 Difference Requêe 10 : Quels films ne passen en ce momen dans aucune salle? Requêe 11 : Quel es le résula de la requêe suivane (ATTENTION, la requêe n es pas saine!)? vuw x y z{ 2}~& " uw ƒn w "A)k + % " w ƒ Requêe 12 : Quels Specaeurs aimen un film qu ils n on pas vu? Requêe 13 : Qui n aime aucun film qu il a vu? Requêe 14 : Qui n a produi aucun film de Doillon? Requêe 15 : Qui a produi un film qui ne passe dans aucune salle? w x y z{v ˆ U uw x y z{ Š 724 Division Requêe 15 : Quels Specaeurs on vu ous les films? (ou Specaeurs pour lesquels il n exise pas un film qu ils n on pas vu) Requêe 16 : Quels Aceurs jouen dans ous les films de Welles? (ou Aceurs pour lesquels il n exise pas un film de Welles qu ils n on pas joué) Requêe 17 : Quels son les Specaeurs qui aimen ous les films qu ils on vu? (ou Specaeurs pour lesquels il n exise pas un film qu ils on vu e qu ils n on pas aimé) Requêe 18 : Quels son les Produceurs qui voien ous les films qu ils on produi? (ou Produceurs pour lesquels il n exise pas un film qu ils on produi e qu ils n on pas vu) Requêe 19 : Quels Produceurs voien ous les films de Kurosawa? (ou Produceurs pour lesquels il n exise pas un film de Kurosawa qu ils n on pas vu) Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 19
$ ) $ Ÿ ) $ %, % Troisième Forme Normale Chapire 8 Décomposiion 81 Calcul des Clés \ Œ \^ \ Ž Exercice \ Œ Ž \ A : SoiŒ D le schéma relaionnel 4"A & Quelles son les clés? Exercice B : Soi le schéma relaionnel 4" Monrer que es la seule clé Exercice C : Soi le schéma relaionnel 4" clés \ Œa\ \ Ž \ Œa\ \ Ž avec les dépendance foncionnelles U, U e šu Œa\ Œ \ Œa\ Œœ \ Žž Œ Ž \ Ž[ Œ Trouver les Exercice D : Soi le schéma relaionnel 4" Ÿ { 1\ {v u v {v\ {vz{ \ <? A \ 1 FŠ\ D Monrer que la seule clé es «% Exercice E : Soi le schéma relaionnel 4" \ «\ «\ Œa\ \ Ž \^ \ «), ªŪ Quelles son les clés? 82 Troisième Forme Normale Exercice A : Es-ce que le schéma es en 3FN? Définiion 3FN: žµ P~ 4"A \ ±²z A \ v U '&³ \^ ³n es une superclé ou µ Exercice B : Monrer que les schémas suivans ne son pas en 3FN: Schéma 1 : 4"A \ Œ \^ \ Ž Œ \ Œ¹ Ž \ ŒBX apparien à une clé & Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 20
¾ U $ ~ U ) $ \ $ ) \,,, ) \ % $, % Décomposiion sans Pere d Informaion Schéma 2 : 4"A \ Œ \^ \ Ž Œ \ Œ¹ \ Ž \ Žº Schéma 3 : D \ «4" \ \ «\ «\ \ %,4 \^ \ «) Schéma 4 : U 4" ~:\ ~D \ ~ \ $2 $ Schéma 5 : 4" X Ž \ \ Ž-\ '& Ž '( 83 Décomposiion sans Pere d Informaion Exercice A : Soi le schéma relaionnel 4" \ Œa\ \ Ž,»U ¼Œ \^ ½Ž Œa\ Ž ¾ 1 Monrer que n es pas une décomposiion sans pere d informaion 2 Donner une décomposiion sans pere d informaion e la décomposiion Exercice B : Soi le schéma relaionnel 4"A 0{ F {v\ Àa { v \ Á U ~D Trouver une décomposiion sans pere d informaion \ ~ $ {v v \ { w Exercice C : Soi le schéma relaionnel 4"A Ã?# z k\ Àa{ A \ ÄBÅ0{ Á² FŠ\ X Ž \ Žº 1 Monrer que la seule clé es X 2 Trouver une décomposiion sans pere d informaion 'B v 9Å0 #]Š Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 21
$ ) ¾ ~ $ «Ž, ) %, % Préservaion des Dépendances Foncionnelles 84 Préservaion des Dépendances Foncionnelles Exercice A : Soi le schéma ¹U 4" ŒB Ž Œ \ Œ¹ Ž \ 1 Donner une décomposiion qui préserve les dépendances de 2 Es-ce que cee décomposiion es sans pere d informaion? Exercice B : Soi le schéma e la décomposiion 4" ŒB Ž Œa\ Œ¹ \ ŽÆ Œ U " ¾ 1 Es-ce que préserve les dépendances de? 2 Es-ce que les relaions " Ž e " Œ(Ž Ž-\ ŒBŽ 2 obenues son en 3FN? Exercice C : Trouver des décomposiions en relaions qui son en 3FN, décomposiions qui préserven les dépendances e qui son sans pere d informaion, pour les schémas suivans : Schéma 1 : Schéma 2 : Schéma 3 : Schéma 4 : Schéma 5 : Schéma 6 : Schéma 7 : Schéma 8 : D \ «4" ŒB Ž Œ \ Œ¹ \ U 4" $ \ «4" ~D )k%2,4 \^,-$2 \ ~ 4"AX '& X Ž \ Žº 4" U ŒB Ž ŒB Ž 4" ŒB Ž Œa\ \ 4" ŒB Ž Œ 4" ŒB Ž Œ \ Œ¹ Ž \ Žº $ 'B Ž \ Œ Ž \ «) Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 22
$ ) ~ $ «Ÿ Ž, ) $ %, % Forme Normale de Boyce-Codd 85 Forme Normale de Boyce-Codd Exercice A : Soi le schéma ¹U 4" ŒB Ž Œ \ Œ¹ Ž \ 1 Donner une décomposiion sans pere d informaion e qui préserve les dépendances de 2 Es-ce que cee décomposiion es en BCNF? Exercice B : Parmi les schémas obenus après la décomposiion des schémas suivanes, rouver les décomposiions en relaions qui son en BCNF Schéma 1 : Schéma 2 : Schéma 3 : Schéma 4 : Schéma 5 : Schéma 6 : Schéma 7 : Schéma 8 : D \ «4" ŒB Ž Œ \ Œ¹ \ U 4" $ \ «4" ~D )k%2,4 \^,-$2 \ ~ 4"AX '& X Ž \ Žº 4" U ŒB Ž ŒB Ž 4" ŒB Ž Œa\ \ 4" ŒB Ž Œ 4" ŒB Ž Œ \ Œ¹ 2 Ž \ Žº $ 'B Ž \ Œ Ž \ «) Exercice C : Monre que le schéma n es pas en BCNF 4"A \ ±²z A \ v U '&³ \^ ³n Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 23
CHAPITRE 9 ORGANISATION PHYSIQUE Chapire 9 Organisaion Physique Exercice A : On prend ici comme exemple la relaion Direceur (nom_direceur, nom_film) 1 Organisaion Séquenielle : Expliquer l organisaion séquenielle e représener un exemple sur la relaion Direceur Monrer le fichier après une inserion e après quelques suppressions d aricles 2 Organisaion Indexée : Monrer des exemples d index non dense (primaire) e dense (secondaire) sur la relaion Direceur Exercice B : Consruire un index sur la dae de naissance des musicien (arbre B, ordre 2) : Moneverdi 1589 Couperin 1668 Bach 1685 Rameau 1684 Debussy 1862 Ravel 1875 Mozar 1756 Faure 1856 Exercice C : Consruire un index sur les noms des musicien (arbre B, ordre 2) Exercice D : Consruire un arbre B+ d ordre 2 sur les numéros de déparemen 3 Allier 36 Indre 18 Cher 9 Ariège 11 Aude 12 Aveyron 73 Savoie 55 Meuse 46 Lo 39 Jura 81 Tarn 25 Doubs 15 Canal 51 Marne 42 Loire Exercice E : Soi le fichier séqueniel suivan (on ne donne pour chaque aricle du fichier que la clé sur laquelle on consrui l arbre): 1 15 3 12 6 4 11 7 2 5 14 8 9 17 10 13 16 L index en arbre B Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 24
CHAPITRE 9 ORGANISATION PHYSIQUE d ordre 2 après l inserion des clés 1 15 3 12 6 4 11 7 2 5 14 8 es monré dans la figure suivane : 3 6 12 1 2 4 5 7 8 11 14 15 1 Donnez l arbre résulan après l inserion de ous les aricles du fichier séqueniel 2 Combien de nœuds différens (racine e feuilles compris) doi-on parcourir dans l index pour répondre à la requêe qui cherche les aricles don la clé apparien à l inervalle [5,10] Exercice F : Soi les fichiers séqueniels suivans (on ne donne pour chaque aricle du fichier que la clé sur laquelle on consrui l 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 2 15 30 28 12 4 18 19 24 29 13 27 9 20 3 32 21 23 1 Consruire un index en arbre B d ordre 2 pour chacun des fichier 2 Consruire un index en arbre B+ d ordre 2 pour chacun des fichier Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 25
CHAPITRE 10 ALGORITHMES DE JOINTURE Chapire 10 Algorihmes de Joinure Soi les relaions suivanes: Direceur(nom_direceur, nom_film) Aceur(nom_film, nom_aceur) Soi la requêe suivane : SELECT nom_direceur, nom_aceur FROM Direceur Join Aceur WHERE Direceurnom_film = Aceurnom_film Pour évaluer cee requêe, il fau calculer la joinure Direceur C Aceur Pour l éxecuion des joinures, décrivez e évaluez la complxié de l algorihme avec boucles imbriquées e avec ri-fusion Dans les deux cas on iendra compe des mouvemens enre mémoire cenrale e disque e on évluera le nombre d enrées-sories Exercice A : Algorihme avec boucles imbriquées; Exercice B : Algorihme avec ri-fusion; Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 26
CHAPITRE 11 OPTIMISATION DE REQUÊTES Chapire 11 Opimisaion de Requêes Exercice A : Soi la base STATION DE SKI de schéma: hoel (noms,nomh,caegorie,adresse,el,nb_chambres) saion (noms,gare) acivie (ype_acivie,noms) Pour chacune des requêes suivanes, on demande: 1 l arbre synaxique de la requêe 2 le plan d exécuion obenu par la resrucuraion algébrique 3 le plan d exécuion obenu par une opimisaion globale Requêe 1 : adresse, numéro de éléphone e nombre de chambres des hôels de caégorie 3 dans la saion de nom (noms persey SELECT adresse, el, nb_chambres FROM hoel WHERE noms= pesey AND caegorie=3; Requêe 2 : nom de saion (noms) e la gare de la saion pour le ssaions ayan pour acivié le ennis SELECT noms, gare FROM saion, acivie WHERE ype_acivie = ennis AND saionnoms=acivienoms Exercice B : Soi le schéma suivan: CREATE TABLE FILM ( CREATE TABLE VU ( TITRE VARCHAR2(32), SPECTATEUR VARCHAR2(32), REALISATEUR VARCHAR2(32), TITRE VARCHAR2(32) ACTEUR VARCHAR2(32) ); ); Soi la requêe SQL: SELECT ACTEUR, REALISATEUR FROM FILM, VU WHERE FILMTITRE=VUTITRE Dans chacun des cas suivans, donner l algorihme de joinure de ORACLE (par EXPLAIN, un arbre d exécuion commené, une explicaion exuelle ou ou aure moyen de vore choix): 1 Il n exise pas d index sur TITRE ni dans FILM ni dans VU, Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 27
y " CHAPITRE 11 OPTIMISATION DE REQUÊTES 2 Il exise un index sur TITRE dans FILM seulemen 3 Il exise un index sur TITRE dans les deux relaions Exercice C : Soi la requêe : SELECT eenom, ddnom FROM emp e, dep d WHERE edno = ddno AND esal = 10000 sur la relaion EMP de schéma (EMPNO, SAL, MGR, DNO) Cee requêe affiche le nom des employés don le salaire ()k ) es égal à 10000, e celui de leur déparemen Indiquez le plan d exécuion dans chacune des hypohèses suivanes Ž 1 Index sur %($ Žˆ < e sur %BX$ˆ"A)? 2 Index sur %(X$ˆ" )? seulemen 3 Index sur %(X$ˆ" Žˆ < e sur %(X$ˆ" )? 4 Voici une aure requêe, légèremen différene Plan d exécuion s il n y a pas d index SELECT eenom FROM emp e, dep d WHERE edno = ddno AND dville = Paris 5 Que pensez-vous de la requêe suivane par rappor à la précédene? SELECT eenom FROM emp e WHERE edno IN (SELECT ddno FROM Dep d WHERE dville = Paris ) Voici le plan d exécuion 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 Qu en dies vous? Exercice D : Sur le même schéma, voici mainenan la requêe suivane SELECT * FROM EMP X WHERE XSAL IN (SELECT SAL FROM EMP WHERE EMPEMPNO=XMGR) Cee requêe cherche les employés don le salaire ()3 ) es égal à celui de leur paron (XÇ&' ) On donne le plan d exécuion avec Oracle (ouil EXPLAIN) pour cee requêe dans deux cas: (i) pas d index, (ii) un index sur le salaire e un index sur le numéro d employé Expliquez dans les deux cas ce plan d exécuion (évenuellemen en vous aidan d une représenaion arborescene de ce plan d exécuion) 1 Pas d index Plan d exécuion Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 28
CHAPITRE 11 OPTIMISATION DE REQUÊTES ------------------------------------------------------------------------ 0 FILTER 1 TABLE ACCESS FULL EMP 2 TABLE ACCESS FULL EMP 2 Index empno e index sal Plan d exécuion ------------------------------------------------------------------------ 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 e numéro d employé) e où la requêe es : SELECT * FROM EMP X WHERE XSAL = (SELECT SAL FROM EMP WHERE EMPEMPNO=XMGR) on a le plan d exécuion suivan: Plan d exécuion ------------------------------------------------------------------------ 0 FILTER 1 TABLE ACCESS FULL EMP 2 TABLE ACCESS ROWID EMP 3 INDEX RANGE SCAN I-EMPNO Expliquez-le Exercice E : On reprend le schéma CINEMA donné dans le cours, mais on ne sais plus quels index exisen Quesions: 1 Donner l ordre SQL pour la requêe: Quels son les films d Hichcock visibles après 20h00? 2 Donner l expression algébrique correspondane e proposez un arbre de requêe qui vous paraî opimal 3 Sous ORACLE, l ouil EXPLAIN donne le plan d exécuion suivan: 0 SELECT STATEMENT 1 MERGE JOIN 2 SORT JOIN 3 NESTED LOOPS 4 TABLE ACCESS FULL ARTISTE 5 TABLE ACCESS BY ROWID FILM 6 INDEX RANGE SCAN IDX-ARTISTE-ID 7 SORT JOIN 8 TABLE ACCESS FULL SEANCE Commenez le plan donné par EXPLAIN Pourrai-on améliorer les performances de cee requêe? Exercice F : Soi le schéma suivan: CREATE TABLE Arise ( CREATE TABLE Film ( ID-arise NUMBER(4), ID-film NUMBER(4), Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 29
CHAPITRE 11 OPTIMISATION DE REQUÊTES Nom VARCHAR2(32), Tire VARCHAR2(32), Adresse VARCHAR2(32) Année NUMBER(4), ); ID-réalisaeur NUMBER(4) ); CREATE TABLE Joue ( ID-arise ID-film ); Quesions: NUMBER(4), NUMBER(4) 1 Donner l ordre SQL pour la requêe: Afficher le nom des aceurs e le ire des films où ils on joué 2 Donner l expression algébrique correspondane 3 Quel es à vore avis le plan d exécuion dans s il n exise que deux index, un sur FILM(IDréalisaeur), e un sur ARTISTE(ID-arise)ÿ? ~& 4 Idem, avec un index sur " ŽªÈT~ JÁ, e un sur É *2Ê %a" Ž È { ŽªÈT~ JÁ Ž Èo~ Á 5 Idem, avec un index sur ~& ", e un sur É *2Ê %a" Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 30
««Sérialisabilié e recouvrabilié Chapire 12 Concurrence 121 Sérialisabilié e recouvrabilié 1211 Graphe de sérialisabilié e équivalence des exécuions Consruisez les graphes de sérialisabilié pour les exécuions (hisoires) suivanes Indiquez les exécuions sérialisables e vérifiez s il y a des exécuions équivalenes 1 2 3 «ˆË 1Ì:ÍÎ wqï Ì Î Ð Ï Ì7ÍÎ Ñ Ï Ík{vËvÎ wqï ÌHË1Î Ð Ï ËM{ Î Ñ Ï «Í 1{ Ë Î wï Ì Í Î Ñ Ï { Î Ñ Ï Ì Î Ð Ï Ì Ë Î Ð Ï Ë Ì Í Î wqï Í 1Ì Î Ð Ï Ì`ËÎ Ð Ï Ì7ÍÎ Ñ Ï Ì7ÍÎ wqï ÍÒ{ Î Ñ Ï { Ë1Î wqï Ë Conclusion: «Ë Ó «, «Ë e «sérialisables, Les hisoires «Ë e «ne son pas équivalenes Pour avoir équivalence, deux condiions son nécessaires: (i) avoir les mêmes ransacions e les mêmes operaions, e (ii) avoir le meme ordre des operaions conflicuelles Ici la seconde condiion «es Ë remplie, y Ë y Ë mais pas la premiere! En effe, si on exrai la ransacion de ces hisoires, on remarque que pour on a U { Ë Î wï Ì Ë Î Ð Ï Ë «, andis que pour y Ë, U Ì Ë Î Ð Ï { Ë Î wqï Ë y Í E c es pareil pour 1212 Recouvrabilié Parmi les exécuions (hisoires) suivanes, lesquelles son recouvrables, lesquelles évien les annulaions en cascade e lesquelles son srices? Indiquez s il y a des exécuions sérialisables 1 2 3 «ˆË 1{ Ë1Î wï Ì7Í1Î Ñ Ï { ËÎ Ñ Ï ÌHËÎ wï ËÒ{ ÍÎ wï Ì7Í1Î wqï Í «Í 1{ Ë Î wï Ì Ë Î Ñ Ï { Í Î Ñ Ï Ë Ì Í Î wqï Í 1{ Ë Î Ñ Ï Ì Í Î wï { Í Î Ñ Ï Ì Ë Î wï Í { Ë Î wï Ë Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 31
h Ö Ø Ô Reprise après panne 122 Conrôle de concurrence 1221 Verrouillage à 2 phases Un scheduler avec verrouillage à 2 phases reçoi la séquence d opéraions ci-dessous «ž { Ë Î wqï { Í Î Ñ Ï Ì Î wqï Ì Ë Î Ñ Ï Ì Ë Î wqï Ì Í Î Ñ Ï Í { Î Ñ Ï { Ë Î Ñ Ï Ë Ì Indiquez l ordre d exécuion éabli par le scheduler, en considéran qu une opéraion bloquée en aene d un verrou es exécuée en priorié dès que le verrou devien disponible On suppose que les verrous d une ransacion son relâchés au momen du Commi Î Ñ Ï 1222 Esampillage e la règle de Thomas Ean donée la séquence d opéraions suivane, comparez les exécuions éablies par un scheduler avec esampillage simple e un scheduler inégré pur uilisan la règle de Thomas Le scheduler avec esampillage n uilise que le es des esampilles, sans rearder ensuie l exécuion des opéraions Considérez qu une ransacion rejeée es relancée ou de suie avec une nouvelle esampille e que ses opéraions déjà exécuées son raiées avec priorié «ž { Ë Î wqï { Í Î Ñ Ï Ì Î wqï Ì Ë Î wqï Ì Î Ñ Ï Ì Í Î Ñ Ï 1223 Comparaison des méhodes de conrôle de concurrence Parmi les exécuions suivanes, lesquelles ne peuven pas êre obenues par verrouillage à 2 phases e lesquelles ne peuven pas êre obenues par esampillage simple? «Ë { Ë1Î wqï { ÍÎ Ñ Ï Ì7ÍÎ wqï ÍÒ{ Ë1Î Ñ Ï Ë «Í { Ë Î wqï Ì Í Î Ñ Ï { Í Î wqï Í Ì Ë Î Ñ Ï Ë 123 Reprise après panne 1231 Journalisaion Soi le journal physique ci-dessous, dans lequel on a marqué les opéraions Commi e Abor réalisées: Î y Ëv\ w \ Ô Ï \ÕÎ y Í1\ Ñ\ Ö Ï \ Î y Ë \ Ð\^Ø Ï \ Ë \ Î y Í\ Ð\ Ù Ï \ÕÎ y \ w \^Ø Ï \?Í1\ Î yú \ Ñ\ Ô Ï \ \ÕÎ y \ w \ Û Ï 1 Indiquez le conenu de lise_commi, lise_abor, lise_acive 2 En supposan qu une nouvelle écriure vien de s ajouer au journal, lesquelles des écriures suivanes son compaibles avec une exécuion srice: Î y h \ Ñ\ Ù Ï Î y Ú \ Ð0\ Ô Ï Î yü \ w \>Ö Ï, ou? 3 Quelles son les enrées récupérables par l algorihme de ramasse-miees? w 4 Si les valeurs iniiales des enregisremens éaien w U Ñ Ñ, Ð U Ð, U momen, quelles seraien les valeurs resaurées pour, e après la reprise?, e si une panne survenai à ce Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 32
{ Ï Concurrence: Gesion Bancaire 124 Concurrence: Gesion Bancaire Les rois programmes suivans peuven s exécuer dans un sysème de gesion bancaire Débi diminue le solde d un compe c avec un monan donné m Pour simplifier, ou débi es permis (on accepe des découvers) Crédi augmene le solde d un compe c avec un monan donné m Transfer ransfère un monan m à parir d un compe source s vers un compe desinaion d L exécuion de chaque programme démarre par un Sar e se ermine par un Commi (non monrés ci-dessous) Débi (c:compe; Crédi (c:compe; Transfer (s,d:compe; m:monan) m:monan) m:monan) begin begin begin := Read(c); = Read(c); Débi(s,m); Wrie(c,-m); Wrie(c,+m); Crédi(d,m); end end end Le sysème exécue en même emps les rois opéraions suivanes: (1) un ransfer de monan 100 du compe A vers le compe B (2) un crédi de 200 pour le compe A (3) un débi de 50 pour le compe B 1 Écrire Î Œ Ï Ì y Ë y Í y les Ë Î ransacions Ï { Í Î Ï Ì Î Œ Ï,{ Ë Î Œ e Ï Ì { Ë Î qui Í Î corresponden Ï Í Ì Ë Î Œ Ï Ë à ces opéraions Monrer que l hisoire y Ë y Í H: y es une exécuion concurrene de, e 2 Mere en évidence les conflis dans H e consruire le graphe de sérialisaion de cee hisoire H es-elle sérialisable? H es-elle recouvrable? 3 Quelle es l exécuion H obenue à parir de H par verrouillage à deux phases? On suppose que les verrous d une ransacion son relâchés après le Commi de celle-ci Une opéraion bloquée en aene d un verrou bloque le rese de sa ransacion Au momen du relâchemen des verrous, les opéraions en aene son exécuées en priorié Si au débu le compe A avai un solde de 100 e B de 50, quel sera le solde des deux compes après la reprise si une panne inervien après l exécuion de Ì Ë Î Œ Ï? Verigo/CNAM, Paris SGBD B7, UV 19786 - Exercices Dirigés 33