Vertigo/CNAM, Paris 1
Slide1
INFORMA TIQ UE - CNAM, ParisBASESDE DONNÉESRelationnelles
Équipe VERTIGO
Cours SGBD 1/2valeur B7, 19786
M. Scholl,B. Amann,P. Rigauxet D. Vodislav
(scholl�amann
�rigaux
�vodislav)@cnam.fr
2000/2001
Vertigo/CNAM, Paris 2
Slide2
Table deMatièr es
5 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
20 Définition duschémadedonnées. . . . . . . . . . . . . . . . . . . . . . 20
27 Opérationssurlesdonnées . . . . . . . . . . . . . . . . . . . . . . . . . 27
34 LE MODèLE RELATIONNEL . . . . . . . . . . . . . . . . . . . . . . . 34
34 PrésentationGénérale. . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
39 Définitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
46 Opérationset Langages. . . . . . . . . . . . . . . . . . . . . . . . . . . 46
50 ALGÈBRE RELATIONNELLE . . . . . . . . . . . . . . . . . . . . . . 50
97 SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
101 ExpressionsdeBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
121 JointuresdansSQL2(*) . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Slide3
129 ExpressionsEnsemblistes. . . . . . . . . . . . . . . . . . . . . . . . . . 129
136 ImbricationdesRequêtesenSQL . . . . . . . . . . . . . . . . . . . . . 136
152 FonctionsdeCalcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
157 Opérationsd’Agrégation . . . . . . . . . . . . . . . . . . . . . . . . . . 157
165 RécursiondansSQL3(*) . . . . . . . . . . . . . . . . . . . . . . . . . . 165
168 Misesà jour avecSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
177 CALCUL RELATIONNEL . . . . . . . . . . . . . . . . . . . . . . . . . 177
180 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
186 Sémantique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
190 Un PeudeThéorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
193 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
202 DÉPENDANCESFONCTIONNELLES . . . . . . . . . . . . . . . . . . 202
225 ANOMALIES DE MISE À JOUR . . . . . . . . . . . . . . . . . . . . . 225
Vertigo/CNAM, Paris 3
Slide4
231 FORMESNORMALESET DÉCOMPOSITION . . . . . . . . . . . . . 231
260 ORGANISATION PHYSIQUE DESDONNEES . . . . . . . . . . . . . 260
304 OPTIMISATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
313 Décompositionderequêtes. . . . . . . . . . . . . . . . . . . . . . . . . 313
349 Evaluationderequêtes . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
354 Techniquesd’accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
360 Algorithmesdebase . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
375 REPRESENTATION PHYSIQUE DANS ORACLE . . . . . . . . . . . . 375
388 OPTIMISATION DANS ORACLE . . . . . . . . . . . . . . . . . . . . . 388
390 Optimisation- principesgénérauxet outilsd’analyse . . . . . . . . . . . 390
402 OptimisationdansORACLE - exemples . . . . . . . . . . . . . . . . . . 402
Vertigo/CNAM, Paris 4
Slide5INTRODUCTION
Slide6
A QUI S’ADRESSELE COURS?
Aux étudiantsdu cycleB duCNAM
OBJECTIF : ComprendreetMaitriserla technologierelationnelle
Vertigo/CNAM, Paris 5
Slide7
BIBLIOGRAPHIE
Ouvragesen français
1. CarrezC., DesStructuresauxBasesdeDonnées, Masson
2. DateC.J,IntroductionauxBasesdeDonnées, Vuibert,970Pages,Janvier 2001
Ouvragesen anglais
1. R. Ramakrishnanet J.Gehrke,DATABASEMANAGEMENTSYSTEMS, MacGrawHill
2. R. Elmasri,S.B.Navathe,Fundamentalsof databasesystems, 3eédition,1007
pages,2000,AddisonWesley
3. Ullman J.D.andWidom J.A First Coursein DatabaseSystems, PrenticeHall, 1997
4. Garcia-MolinaH., Ullman J.andWidom J.,Implementationof DatabaseSystems,PrenticeHall, 1999
Slide8
5. Ullman J.D.,Principlesof DatabaseandKnowledge-BaseSystems, 2 volumes,
ComputerSciencePress
6. AbiteboulS.,Hull R.,VianuV., Foundationsof Databases, Addison-Wesley
Le standard SQL
1. DateC.J.,A Guideto theSQLStandard, Addison-Wesley
TroisSystèmes
1. DateC.J.,A Guideto DB2, Addison-Wesley
2. DateC.J.,A Guideto Ingres, Addison-Wesley
3. ORACLEversion7 ServerConceptsManual1992Oracle
Vertigo/CNAM, Paris 6
Slide9
PLAN
1. Introduction
2. ModèleetAlgèbreRelationnels
3. CalculRelationnel
4. SQL
5. Conceptiond’un BonSchémaRelationnel
6. OrganisationPhysique,Index
7. AlgorithmesdeJointure
8. Optimisationdesrequêtes;l’exempled’ORACLE.
9. Concurrenced’accèset reprisesurpannes.
Slide10
Exemplesd’A pplications
1. CLASSIQUES� Gestion(salaires,stocks,. . . )� Transactionnel(comptes,centralesd’achat,. . . )� Réservations(avions,trains,. . . )
2. MULTIMÉDIA� Librairie électronique(bibliothèques,journaux,web,. . . )� Documentationtechnique(nomenclature,plans,dessins,.. . )� Bureautique(formulaires,textes,images,son,. . . )� Géographique(cartesroutières,thématiques,. . . )� GénieLogiciel (programmes,manuels,. . . )
Vertigo/CNAM, Paris 7
Slide11
Comment Stocker et Manipuler lesDonnées?
DONNÉES � BASE DE DONNÉES(B.D.)� UneB.D. estun GROSENSEMBLEd’informationsSTRUCTURÉESmémorisées
surun supportPERMANENT.
LOGICIEL � SGBD� Un SystèmedeGestiondeBasesdeDonnées(SGBD)estun logiciel deHAUT
NIVEAU qui permetdemanipulercesinformations.
Slide12
Diversité -> Complexité
Diversitédesutilisateurs, desinterfaceset desAr chitectures:
1. diversitédesutilisateurs:administrateurs,programmeurs,noninformaticiens,. . .
2. diversitédesinterfaces:langagesBD, menus,saisies,rapports,. . .
3. diversitédesarchitectures: centralisé,distribué,accèsà plusieursbaseshétérogènes
accessiblesparréseau
Vertigo/CNAM, Paris 8
Slide13
ARCHITECTURE d’un SGBD : ANSI-SPARC (1975)
vue 1 vue 2
NIVEAU EXTERNE
vue 3
NIVEAU LOGIQUE
NIVEAU PHYSIQUE
Slide14
FONCTIONN ALITÉS d’un SGBD
Chaqueniveaudu SGBDréaliseun certainnombredefonctions:
NIVEA U PHYSIQUE� Accèsauxdonnées,gestionsurmémoiresecondaire(fichiers)desdonnées,des
index� Partagededonnéesetgestiondela concurrenced’accès� Reprisesurpannes(fiabilité)� Distribution desdonnéeset interopérabilité(accèsauxréseaux)
Vertigo/CNAM, Paris 9
Slide15
NIVEA U LOGIQ UE� Définition dela structurededonnées: LangagedeDescriptiondeDonnées(LDD)� ConsultationetMise àJourdesdonnées: LangagesdeRequêtes(LR) et Langagede
ManipulationdeDonnées(LMD)
Slide16
NiveauExterne : VuesUtilisateurs
1. Vue de la planification dessalles: pourchaquecours� Nom deProf� Horaireset salles
2. Vue de la paye : unensembledeProf
(nom,prénom,adresse,indice,nombred’heures.. . )
3. Vue du service descolarité (suivi desélèves): . . .
Vertigo/CNAM, Paris 10
Slide17
Intégration decesVues
1. On laissechaqueusageravecsavisiondu monde
2. PASSAGE DU NIVEAU EXTERNEAU NIVEAU LOGIQUE:
On“intègre” l’ensembledecesvuesenunedescriptionunique:
le SCHÉMALOGIQUE
Slide18
Fonctionnalitésdu SGBD au NIVEA U EXTERNE� GestiondesVues� Environnementdeprogrammation(intégrationavecun langagedeprogrammation)� Interfacesconvivialeset Langagesde4eGénération(L4G)� Outils d’aides(e.g.conceptiondeschémas)� Outils desaisie,d’impressiond’états� Débogueurs� Passerelles(réseaux,autresSGBD,etc.. . )
Vertigo/CNAM, Paris 11
Slide19
En Résumé,on Veut Gérer
un GROSVOLUME D’INFORMA TIONS� Persistantes(années)et fiables(protectionsurpannes)� Partageables(utilisateurs,programmes)� Manipuléesindépendammentdeleur organisationphysique
Slide20Définition du schémade données
Vertigo/CNAM, Paris 12
Slide21
Modèlesde données
Un modèlede donnéesestcaractérisépar :� Unestructurationdesobjets� Desopérationssurcesobjets
Slide22
Dansun SGBD, il existeplusieurs modèlesplus ou moins abstraits desmêmesobjets,e.g. :� le modèleconceptuel: la descriptiondusystèmed’information� le modèlelogique: interfaceavecle SGBD� le modèlephysique: fichiers� cesdifférentsmodèlescorrespondentauxniveauxdansl’architectured’un SGBD.
Vertigo/CNAM, Paris 13
Slide23
ModèleConceptuel: ExempleEntité-Relation
� Modèletrèsabstrait,pratiquepour:
– l’analysedu monderéel
– la conceptiondu systèmed’information
– la communicationentredifférentsacteursdel’entreprise� Mais n’est pasassociéà un langage.
DONC UNE STRUCTURE
MAIS PAS
D’OPÉRATIONS
Slide24
Modèle logique
1. Langagede définition dedonnées(LDD) pourdécrirela structure.
2. Langagede manipulation de données(LMD) pourappliquerdesopérationsaux
données.
Ceslangagessontabstraits :
1. Le LDD estindépendantdela représentationphysiquedesdonnées.
2. Le LMD estindépendantdel’implantationdesopérations.
Vertigo/CNAM, Paris 14
Slide25
Lesavantagesde l’abstraction
1. Simplicité d’accèsLesstructureset leslangagessontplussimples,doncplusfaciles
pourl’usagernonexpert.
2. INDÉPENDANCE PHYSIQUE. Onpeutmodifierl’implantationphysiquesans
modifierlesprogrammesd’application
3. INDÉPENDANCE LOGIQ UE. Onpeutmodifierlesprogrammesd’application
sanstoucherà l’implantation.
Slide26
HISTORIQUE DES SGBD
À chaquegénérationcorrespondun modèlelogique
Lespremiersétaient peuabstraits (navigationnels)� 60 S.G.F. (e.g.COBOL)
mi-60 HIÉRARCHIQUE IMS (IBM) navigationnel
RÉSEAU (CODASYL) navigationnel
73-80 RELATIONNEL déclaratif
mi-80 RELATIONNEL explosionsurmicro
Fin 80 RELATIONNEL ETENDU nouvellesapplications
DATALOG (SGBDdéductifs) pasencoredemarché
ORIENTÉ-OBJET navig. + déclaratif
Vertigo/CNAM, Paris 15
Slide27Opérationssur lesdonnées
Slide28
Exemplesdequestions(requêtes)pos’eesà la base
Insérer un employénomméJean
AugmenterJeande10%
DétruireJean
Chercher lesemployéscadres
Chercher lesemployésdu départementcomptabilité
Salairemoyendesemployéscomptables,avecdeuxenfants,nésavant1960et travaillant
à Paris
Vertigo/CNAM, Paris 16
Slide29
Quelstypesd’opérations?
4 typesd’opérationsclassiques(ou requêtes) :
1. La création (ou insertion).
2. La modification (ou mise-à-jour).
3. La destruction.
4. La recherche.
Cesopérationscorrespondentàdescommandesdu LMD. La pluscomplexeestla
rechercheenraisondela variétédescritères.
Slide30
Le Traitement d’une Requête
� ANALYSE SYNTAXIQ UE� OPTIMISA TIONGénération(parle SGBD)d’un programmeoptimiséàpartir dela connaissancede
la structuredesdonnées,del’existenced’index, destatistiquessurlesdonnées.� EXÉCUTION POUR OBTENIR LE RÉSULTAT.
NB : on doit tenir comptedu fait qued’autresutilisateurssontpeut-êtreentrainde
modifierlesdonnéesqu’on interroge!
Vertigo/CNAM, Paris 17
Slide31
Concurrenced’accès
Plusieursutilisateursdoiventpouvoir accéderenmêmetempsauxmêmesdonnées.Le
SGBDdoit savoir :� Gérerlesconflitssi lesdeuxfont desmises-à-joursurlesmêmesdonnées.� Offrir un mécanismederetourenarrièresi on décided’annulerdesmodificationsen
cours.� Donneruneimagecohérentedesdonnéessi l’un fait desrequêteset l’autredes
mises-à-jour.
Le but : éviterlesblocages,toutenempêchantdesmodificationsanarchiques.
Slide32
Le Facteur Humain
� L’éditeur (le constructeur) du SGBD� L’administrateur de la base
Rôledel’administrateur
– discuteaveclesdifférentsutilisateurs
– conceptiond’un schémalogique(etdesdifférentesvues)
– conceptiondu schémaphysique
– installationdela baseet réglagesfins (tuning)
– gèrel’évolutiondela base(nouveauxbesoins,utilisateurs)
Outilsà sadispositionfournisparl’éditeurdu SGBD
Vertigo/CNAM, Paris 18
Slide33
Le Facteur Humain
� Utilisateur expert: informaticienconnaissantlangagesprogrammationet langages
BD� Concepteuret programmeur d’applicationà partir : besoinsdesdifférentsutilisateurs,écrit l’applicationpourdesutilisateurs
“naïfs”� Utilisateur naïf: du nonspécialistedesSGBDaunoninformaticien.
Slide34
LE MODèLE RELATIONNEL
PrésentationGénérale
Vertigo/CNAM, Paris 19
Slide35
Exemplede Relation
Loic
Nadia
Loic
Julien
Marie
Espace
Espace
R5
R25
ZX
1988
1989
1978
1989
1993
VEHICULE Proprietaire Type Annee
n-uplet
Nom de la Relation Nom d’Attribut
Slide36
Le ModèleRelationnel sur un Exemple
PRIX
FOURNITFOURNISSEURS PRODUITS
QUANTITE BALANCE
CLIENTSCOMMANDE
C_ADRESSE
FADRESSE
FNOM PNOM
NUM_COMDE NOM
Vertigo/CNAM, Paris 20
Slide37
FOURNISSEUR FNOM FADRESSE
Abounayan 92190Meudon
Cima 75010Paris
Preblocs 92230Gennevilliers
Sarnaco 75116Paris
FOURNITURE FNOM PNOM PRIX
Abounayan sable 300
Abounayan briques 1500
Preblocs parpaing 1200
Sarnaco parpaing 1150
Sarnaco ciment 125
Slide38
COMMANDES NUM_COMDE NOM PNOM QUANTITE
1 Jean briques 5
2 Jean ciment 10
3 Paul briques 3
4 Paul parpaing 9
5 Vincent parpaing 7
CLIENTS NOM CADRESSE BALANCE
Jean 75006Paris -12000
Paul 75003Paris 0
Vincent 94200Ivry 3000
Pierre 92400Courbevoie 7000
Vertigo/CNAM, Paris 21
Slide39Définitions
Slide40
Définitions
� Un Domaineestun ensembledevaleurs.Exemples: ����� � , � , l’ensembledes
chaînesdecaractères,l’ensembledeschaînesdecaractèresdelongueur10.� Un ATTRIBUT prendsesvaleursdansun domaine.Plusieursattributspeuventavoir
le mêmedomaine.� Un NUPLETestunelistede � valeurs����������������� �� où chaquevaleur � � estla valeur
d’un attribut � � dedomaine� � : � ��� � �� Le PRODUIT CARTÉSIEN � �"!#�����$!%�&� entredesdomaines�'�����������(�&� est
l’ensembledetous lesnuplets�)� � ����������� � � où � �*� � � .
Vertigo/CNAM, Paris 22
Slide41
� RELATION : soit � � ���������+� � lesdomainesrespectifsdesattributs � � ���������(� � .Unerelation , définiesurlesattributs �-� �������.�(�/� estun sous-ensemblefini du
produitcartésien� � !#�����0!1� � : , estun ensembledenuplets.� Unerelation , estreprésentéesousformed’unetable. L’ordredescolonnesoudes
lignesn’a pasd’importance.Lescolonnessontdistinguéesparlesnomsd’attributs
et chaqueligne représenteun élémentdel’ensemble, (un nuplet).� Un attribut peutapparaîtredansplusieursrelations.� UneBASE DE DONNÉESestun ensemblederelations.
Slide42
� L’UNIVERS D’ATTRIBUTSD’UNE BASE DE DONNÉESestl’ensembledetous
lesattributsdesrelationsdela base.� Le SCHÉMA D’UNE RELATION , estdéfiniparle nomdela relationet la liste
desattributsavecpourchaqueattribut sondomaine.Notation:,&���2�-34� ���������.�+�"�53��6��ou plussimplement: ,&��� � ���������+� � �Exemple:
VEHICULE(NOM:CHAR(20),TYPE:CHAR(10),
ANNEE:ENTIER)
Vertigo/CNAM, Paris 23
Slide43
� Si la relationa � attributs( � colonnes),� estappeléARITÉ dela relation.La
relation 798;:=<?>;@2AB8 estd’arité C .� Le SCHÉMA D’UNE BASE DE DONNÉESestl’ensembledesschémasdeses
relations.
Slide44
ExempledeBasede Données
SCHÉMA:� FOURNISSEURS(FNOM:CHAR(20),FADRESSE:CHAR(30))� FOURNITURE(FNOM:CHAR(20),PNOM:CHAR(10),PRIX:ENTIER))� COMMANDES(NUM_COMDE:ENTIER,NOM:CHAR(20),
PNOM:CHAR(10),QUANTITE;ENTIER))� CLIENTS(NOM: CHAR(20),CADRESSE:CHAR(30),BALANCE:RELATIF)
Vertigo/CNAM, Paris 24
Slide45
ExempledeBasede Données
UNIVERSD’ATTRIBUTS:� U={FNOM, PNOM,NOM, FADRESSE,CADRESSE,
PRIX, NUM_CODE,QUANTITE, BALANCE}
RELATION UNIVERSELLE :� FPCC(FNOM,PNOM,NOM, FADRESSE,CADRESSE,
PRIX, NUM_CODE,QUANTITE, BALANCE)
Slide46Opérationset Langages
Vertigo/CNAM, Paris 25
Slide47
Opérationssur uneBasede DonnéesRelationnelle
� LANGAGEDE DÉFINITION DESDONNÉES(définitionetMAJ du schéma):
– Créationet destructiond’unerelationoud’unebase
– Ajout, suppressiond’un attribut
Slide48
� LANGAGEDE MANIPULATION DESDONNÉES
– Saisiedesnupletsd’unerelation
– Affichaged’unerelation
– Modificationd’unerelation: insertion,suppressionet majdesnuplets
– Requêtes: consultationd’unerelationou calculd’unenouvellerelation� GESTIONDESTRANSACTIONS� GESTIONDESVUES
Vertigo/CNAM, Paris 26
Slide49
LangagesdeRequêtesRelationnels
POUVOIR D’EXPRESSION: Qu’est-cequ’onpeutcalculer? Quellesopérations
peut-onfaire?
Leslangagesderequêterelationnelsutilisentdeuxapproches:� calculrelationnel� algèbrerelationnelle
Lesdeuxapprochesont mêmepouvoir d’expression.
Slide50 ALGÈBRE RELATIONNELLE
Vertigo/CNAM, Paris 27
Slide51
Algèbre Relationnelle
� uneopérationprendenentréeuneou deuxrelations� le résultatesttoujoursunerelation
Slide52
Opérationsde l’Algèbr eRelationnelle
5 Opérationsdebasepourexprimertouteslesrequêtes:� Opérationsunaires: sélection,projection� Opérationsbinaires: union,différence,produitcartésien� Autresopérationsqui s’exprimentenfonctiondes5 opérationsdebase: jointure
(naturelle,D -jointure),intersection,division
Vertigo/CNAM, Paris 28
Slide53
Projection
LA PROJECTION“ÉLIMINE” UNE OU PLUSIEURSCOLONNESD’UNE
RELATION.
Notation: EGF H5IJF K#IMLMLNLIJF OQP2R S
Slide54
Projection: Exemples
a)Onéliminela colonne> dansla relation , :
R A B CT a b c
d a b
c b dT a b e
e e a
UV �;� WYX�Z\[ A B
a b
d a
c b
e e
Le nuplet �^]N�`_.� n’apparaîtqu’une fois dansla relation aNbdc e"��,9� , bienqu’il existedeuxnuplets��]f�`_��+g�� et �^]N�`_��+h�� dans, .
Vertigo/CNAM, Paris 29
Slide55
Projection: Exemples
b) Onéliminela colonneW dansla relation , (on garde� et > ) :
R A B C
a b c
d a b
c b d
a b e
e e a
�V �;�i> X�Z\[ A C
a c
d b
c d
a e
e a
Slide56
Sélection
Sélectionsurla condition j :
Ongardelesnupletsqui satisfontj .
NOTATION : kml P2R S
Vertigo/CNAM, Paris 30
Slide57
Sélection:Exemples
a)Onsélectionnelesnupletsdansla relation , telsquel’attribut W vaut“b” :
R A B C
a b 1
d a 2
c b 3
a b 4
e e 5
U n W&o-p pq_rp p�X�Z\[ A B C
a b 1
c b 3
a b 4
Slide58
Sélection:Exemples
b) OnsélectionnelesnupletstelsqueX�sutwvxv/yzvqvz{}| t~vxv/y0vxv+[5�}� ��� :
R A B C
a b 1
d a 2
c b 3
a b 4
e e 5
� ��� b���� �q�.� �q�?e���� ���r� �q���?�*�f� �^,2� A B C
a b 1
d a 2
Vertigo/CNAM, Paris 31
Slide59
Sélection:Exemples
c) Onsélectionnelesnupletstelsquela 1reet la 2ecolonnesontidentiques:
R A B C
a b 1
d a 2
c b 3
a b 4
e e 5
� n �-o-W�X Z\[ A B C
e e 5
Slide60
Condition deSélection
La condition j d’unesélectionpeutêtreuneformule logiquequelconqueavecdeset ( � )etdesou ( � ) entretermesdela forme � � D4�z� et � � D4] où� �/� et � � sontdesattributs,� ] estun élément(unevaleur)du domainede � � ,� D estl’un de o�� � ���9���9���9�4�o .
Vertigo/CNAM, Paris 32
Slide61
Expressionsde l’Algèbr eRelationnelle
� le résultatd’uneopérationestunerelation� surcetterelation,on peutfaireuneautreopération del’algèbre�Lesopérationspeuventêtre composéespour formerdesexpressionsdel’algèbre
relationnelle.
Slide62
Expressionsde l’Algèbr eRelationnelle
EXEMPLE: >9�9�\���"�=� 8¡ $���¢�9�£�(¤9�¢�9�£�+�¥@;�£�(¦2§/8��, p p o¨aN©�ªz«d¬�� �® ¯r° ±� ªz«d¬ � � �³²4´ �r� � ���^>9�9�\���"�=� 8¡ µ�+�
La relation , p ���¢�9�£�(¤9�¢�9�£�+�#@9�£�(¦2§"8¡� contientlesnupletsdontl’attribut�¢�9� a la valeur p p�¶ h�]·� p p . La relation , p p ��¤9�¢�9�\� contienttouslesproduits
commandésparJean.
Vertigo/CNAM, Paris 33
Slide63
Produit Cartésien
� NOTATION : ,¸!1 � ARGUMENTS: 2 relationsquelconques:,6�^�-� �+�"¹ ���������+�/��1 0�^W2���+W-¹ ���������+W2º �� SCHÉMA DE §»o~,¼!½ : §¡���2���+�"¹4�������.�+�"���+W9���(W"¹4�������.�+W2º �� VALEUR DE §»o~,¼!½ : ensembledetouslesnupletsayant� ¾À¿ composants
(attributs)
– dontles � premierscomposantsformentun nupletde ,– et les ¿ dernierscomposantsformentun nupletde
Slide64
Exemplede Produit Cartésien
R A B
1 1Á , Á 1 2
3 4
S C D E
a b aÁ Á a b c
b a a
�
Vertigo/CNAM, Paris 34
Slide65
R ! S A B C D E
1 1 a b a
1 1 a b c
1 1 b a a
1 2 a b aÁ , Á ! Á Á 1 2 a b c
1 2 b a a
3 4 a b a
3 4 a b c
3 4 b a a
Slide66
Jointure Naturelle
� NOTATION : ,�ÂÀ � ARGUMENTS: 2 relationsquelconques:,&�^� � ���������+�"á�+Ä � ����������Ä º �1 0��W � ���������+W � ��Ä � �������.��Ä º �où Ä �����������+Ä º sontlesattributsencommun.� SCHÉMA DE §»o~,£ÂÅ : §¡���2�����������+� à �+W9���������.�+W-����ÄÆ�J����������Ä º �� VALEUR DE §»o~,wÂÀ : ensembledetouslesnupletsayantÇȾY�'¾Å¿ attributs
dontles Ç premierset ¿ dernierscomposantsformentun nupletde , et les � ¾Å¿dernierscomposantsformentunnupletde .
Vertigo/CNAM, Paris 35
Slide67
JointureNaturelle: Exemple
R A B C
a b c
d b c
b b f
c a d
S B C D
b c d
b c e
a d b
UR É S A B C D
a b c d
a b c e
d b c d
d b c e
c a d b
Slide68
Jointure Naturelle
Soit @�o����-���������.�+� à �(W2���������.�(W"�Ê�+Ä �����������+Ä º�� l’ensembledesattributsdes2
relationset 7¼o\��Ä � ����������Ä º � l’ensembledesattributsencommun.
,�ÂÀ Ëo¨aÊÌz� �ÎÍ bdÏ·ÐdÑ dÒ b��ÔÓ Ò b �^,¼!½ *���NOTATION : ,�� � veutdire “l’attrib ut � dela relation , ”.
Vertigo/CNAM, Paris 36
Slide69
JointureNaturelle: Exemple
R A B
1 a
1 b
4 a
S A B D
1 a b
2 c b
4 a a
U
R Õ S R.A R.B S.A S.B D
1 a 1 a bT 1 a 2 c bT 1 a 4 a aT 1 b 1 a bT 1 b 2 c bT 1 b 4 a aT 4 a 1 a bT 4 a 2 c b
4 a 4 a aÖ
Slide70R É S A B D
1 a b
4 a a × ØµÙ�Ú ÛµÜ Ù*Ú ÝÞÜ ß'àâá*Ù*Ú Ûdã�äÚ ÛæåMÙ*Ú Ý*ã�äÎÚ Ý;à+çéè¼ê¡ë�ë
Vertigo/CNAM, Paris 37
Slide71
JointureNaturelle: Algorithme
Pourchaquenuplet ] dans, et pourchaquenuplet _ dans :
1. on concatène] et _ et on obtientun nupletqui a pourattributs�® ¯r° ±� � ���������(�/Ã���Ä � ����������Ä º � ì® ¯r° ±W � ���������+W � ��Ä � �������.��Ä º2. on nele gardequesi chaqueattribut Ä'� de ] estégalà l’attribut Ä'� de _ :í �q��� ÒiÒ º ]N� Ä � o»_�� Ä � .3. on éliminelesvaleurs(colonnes)dupliquées: onobtientun nupletqui apour
attributs �® ¯r° ±�-� �������.�+� à � ì® ¯.° ±W2�����������(W à � � ´ïî ì® ¯r° ±ÄÆ�����������+Ä'º
Slide72
ð-Jointure
� ARGUMENTS: 2 relationsquelconques:,&�^� � �������.�+�"Ã-� 0�^W � ���������(W � �� NOTATION : ,£ÂÞb�ñ�ò(eÊó0 , D � ��o�� �o�� � ���9���9���2�� SCHÉMA DE §»o~,£ÂÞb�ô`ò+eÔõ¡ : §¡�^�-���������.�+� à �(W2� �������.�(W"��� VALEUR DE §»o~,w b ô ò(e õ¡ : §»o � b ñ ò(e ó ��,ö!1 µ���� ÉQUIJOINTURE: D estl’ égalité.
Vertigo/CNAM, Paris 38
Slide73
ð-Jointure: Exemple
R A B
1 a
1 b
3 a
S C D E
1 b a
2 b c
4 a a
Slide74
T := R Õ S A B C D E
1 a 1 b a
1 a 2 b c
1 a 4 a a
1 b 1 b a
1 b 2 b c
1 b 4 a a÷Åø#ù T 3 a 1 b a÷Åø#ù T 3 a 2 b c
3 a 4 a a
UúÎûÊüý (T) A B C D E
= R É ûÊüý S 1 a 1 b a
1 a 2 b c
1 a 4 a a
1 b 1 b a
1 b 2 b c
1 b 4 a a
3 a 4 a a
Vertigo/CNAM, Paris 39
Slide75
Équijointur e: Exemple
R A B
1 a
1 b
3 a
S C D E
1 b a
2 b c
4 a a
Slide76
T := R Õ S A B C D Eþ¸ÿ��� T 1 a 1 b aþ¸ÿ��� T 1 a 2 b c
1 a 4 a a
1 b 1 b a
1 b 2 b cþ¸ÿ��� T 1 b 4 a aþ¸ÿ��� T 3 a 1 b aþ¸ÿ��� T 3 a 2 b c
3 a 4 a a
Uú������ (T) A B C D E
=R É ����� S 1 a 4 a a
1 b 1 b a
1 b 2 b c
3 a 4 a a
Vertigo/CNAM, Paris 40
Slide77
Équijointur e vs. JointureNaturelle
<?�\��8�@2W�Aµ8 �^�/� <N�+�=W�89§/��98¡ æ�+�Æ�$§/8¡>-�(¤9,9�2¤;��"¤9¤9<·�È�^�/� <N�+�¢�/¤z�(�9>9>;@9¤z�+89§/��98¡�1. Nom du propriétairedel’immeubleoù estsituél’appartementoccupéparDurand:
a © «�© �²� �q� î ���(´âª � î ���`´����q´® ¯.° ±<?�\��8�@2W�Aµ8\ � « �Ô� ÌÊ© � � ���BÌ b ª��*� � �^�/¤9¤9<?�\���
2. Appartementsoccupéspardespropriétairesd’immeuble:
a b ��� c ª b © c ���fb�����´ � � � �! �q� î ���(´® ¯.° ±�^�/¤9¤9<?� ÂÞ« �Ô� Ì�© � © «�©#<?�\��8�@2W�Aµ8¡���
Slide78
Autre ExempledeREQUÊTE : Nomet adressedesclientsqui ont commandédes
parpaings:� SchémaRelationnel:>9�9�\���"�=� 8¡ $��¤9�¢�9�£�`>2�¢�9�£�+�¥@;� _>9��� 8'�`¦2§/8¡�>2Aµ<·8;�½§" 0� >2�¢�9�£�(>2�"� ,28¡ * �8 �+W¡�"Aµ�"�¢>28¡�� RequêteRelationnelle:
" ý$#&%(') ýMû ��*$+�,-,.+�/ ù�0�1-2436587 É ú�9 #&%:' � � � 9 û * 9 û�;<#&= � � / ù�>4?@?Y÷83 � 27BACA
Vertigo/CNAM, Paris 41
Slide79
Union
� ARGUMENTS: 2 relationsdemêmeschéma:,&���2�����������+� à � 0�^�-�����������(� à �� NOTATION : ,@D% � SCHÉMA DE §»o~,@D1 : §���� � ���������(�/Ã2�� VALEUR DE § : Union ensemblistesur � � !¥�����0!1�&à :§»o���E Á E � ,Å�FE � z�
Slide80
Union: Exemple
R A B
a b
a c
d e
S A B
a b
a e
d e
f g
�R D S A B� a b
a c� d e
a e
f g
Vertigo/CNAM, Paris 42
Slide81
Différ ence
� ARGUMENTS: 2 relationsdemêmeschéma:,&���2�����������+� à � 0�^�-�����������(� à �� NOTATION : ,HGË � SCHÉMA DE §»o~,HGË : §¡�^� � �������.�+�"Ã-�� VALEUR DE § : Dif férenceensemblistesur � �"!¥�����$!1� à :§»o���E Á E � ,Å�FE"�� z�
Slide82
Différ ence:Exemple
R A B� a b
a c� d e
S A B� a b
a e� d e
f g
R - S A B
a c
S - R A B
a e
f g
Vertigo/CNAM, Paris 43
Slide83
Intersection
� ARGUMENTS: 2 relationsdemêmeschéma:,&���2�����������+� à � 0�^�-�����������(� à �� NOTATION : ,JI% � SCHÉMA DE §»o~,@I1 : §¡��� � ���������+�/Ã2�� VALEUR DE § : Intersectionensemblistesur � � !¥�����0!1�&à :§»o���E Á E � ,Å�FE � z�
Slide84
Intersection: Exemple
R A B� a b
a c� d e
S A B� a b
a e� d e
f g
R - S A B
a c
R I S = R - (R - S) A B
a b
d e
Vertigo/CNAM, Paris 44
Slide85
Semijointure
� ARGUMENTS: 2 relationsquelconques:,6�^�-�����������(� à ��ÄÆ������������Ä º �� $��W9�����������+W-�Ê��ÄÆ������������Ä º��où Ä � ���������+Ä º sontlesattributsencommun.� NOTATION : ,LK � � SCHÉMA DE §»o»,LK � : §¡���2�J���������(� à ��ÄÆ������������Ä º��� VALEUR DE §»o~,HK � : Projectionsurlesattributsde , dela jointurenaturelle
entre , et .
Slide86
Semijointure
La semijointurecorrespondàunesélectionoù la conditiondesélectionestdéfinieparle
biaisd’uneautrerelation.
Soit @�o���� � �������.�+�"á� l’ensembledesattributsde , .,HK � �o»a Ì ��,£ÂÅ *�
Vertigo/CNAM, Paris 45
Slide87
Semijointure: Exemple
R A B C
a b c
d b c
b b f
c a d
S B C D
b c d
b c e
a d b
� a bdc eµc � ��,�ÂÀ *� �R K � S A B C
a b c
d b c
c a d
Slide88
Division: Exemple
REQUÊTE : Clientsqui commandenttouslesproduits:
COMM NUM NOM PNOM QTE
1 Jean briques 100
2 Jean ciment 2
3 Jean parpaing 2
4 Paul briques 200
5 Paul parpaing 3
6 Vincent parpaing 3
Vertigo/CNAM, Paris 46
Slide89
,wo»a ªz«�¬ c ©�ªz«�¬ �^>9�9�\�\� :
R NOM PNOM
Jean briques
Jean ciment
Jean parpaing
Paul briques
Paul parpaing
Vincent parpaing
PROD PNOM
briques
ciment
parpaing
M,JNÀ¤9,9�2� NOM
Jean
Slide90
Division: Exemple
b
e
a
c
x
y
z
m
n
o
A B C DR
a
a
a
b
b
c
c
c
d
d
b
b
b
c
d
e
e
e
a
a
x
y
z
x
x
x
y
z
z
y
m
n
o
o
m
m
n
o
p
m
A BR \ SS C D
Vertigo/CNAM, Paris 47
Slide91Division: Exemple
Slide92
R A B C D E
1 a 1 b a
1 a 2 b a
1 a 4 a a
1 b 1 b a
1 b 2 b c
1 b 4 a a
2 a 1 b c
2 a 4 a c
3 c 1 b b
3 c 2 b b
3 c 4 a b
3 c 3 c b
S C D
1 b
2 b
4 a
U R O S A B E
1 a a
3 c b
Vertigo/CNAM, Paris 48
Slide93
Division
� ARGUMENTS: 2 relations:,&��� � ���������+�"á�+Ä � �������.�+Ä º � 0�)Ä � ���������+Ä º �où tous lesattributsde sontdesattributsde , .� NOTATION : ,PNÀ � SCHÉMA DE §»o~,JNÅ : §���� � ���������(�/Ã2�� VALEUR DE §»o~,JNÅ :
Q O 7 �SR /UT�V!WYXZXZXZWCT.[ A�\Z] /U^:V!WZXZXZXZW ^`_ A&ab7dc /UT�V!WZXZXZXZW T.[4WC^:VZWZX!XYXZWC^�_ Aea Q4f
Slide94
Division
La divisions’exprimeenfonctiondu produitcartésien,dela projectionetdela
différence: ,JNÅ Ëo¨, � G#, ¹ où, � o»a b�g(c ÒiÒiÒ c b�h ��,9��h�EÔ, ¹ o»a b�g`c ÒiÒiÒ c b�h �+��, � !½ *�iG�,2�
Vertigo/CNAM, Paris 49
Slide95
Renommage
� NOTATION : j� ARGUMENTS: 1 relation: ,&��� � �������.�(� � �� SCHÉMA DE §»oHj b ñlk e ñâ, : §���� � ���������(� �lm�� �+W � �(� �on�� �������.�+� � �� VALEUR DE §»oHj·b�ñ k e�ñï, : §»o¨, . La valeurdeR estinchangée.Seulle nom
del’attribut � � aétéremplacépar W �
Slide96
Et si lesattrib uts sont connuspar leur rang?
Onpeutdanslesopérationsdel’algèbreindiquerunattribut parsonrangaulieu deson
nom.
Danscecasl’ordre desattributsdansunerelationadel’importance.
L’exempledela sélection:
� p �â��� © b © b �`ª �Ô� >9�9�\���/�=� 8� aulieu de� ©ÔªÞ«d¬ ��� © b © b �`ª ���^>9�9�\���"�=� 8¡ Le premierattribut q& corresponda l’attribut ¤9�¢�9�
Vertigo/CNAM, Paris 50
Slide97SQL
Slide98
Principe
� SQL (StructuredQueryLanguage)estle LangagedeRequêtesstandardpourles
SGBDrelationnels� Expressiond’unerequêteparunbloc SELECTFROM WHERE
SELECT � listedesattributsaprojeter�FROM � listedesrelationsarguments�WHERE � conditionssurun ouplusieursattributs�� Danslesrequêtessimples,la correspondanceavecl’algèbrerelationnelleestfacileà
mettreenévidence.
Vertigo/CNAM, Paris 51
Slide99
Historique*
SQL86 - SQL89ou SQL1 La référencedebase:� Requêtescompiléespuisexécutéesdepuisunprogrammed’application.� Typesdedonnéessimples(entiers,réels,chaînesdecaractèresdetaille fixe)� Opérationsensemblistesrestreintes(UNION).
SQL91ou SQL2 Standardactuel:� Requêtesdynamiques:exécutiondifféréeou immédiate� Typesdedonnéesplusriches(intervalles,dates,chaînesdecaractèresdetaillevariable)� Différentstypesdejointures:jointurenaturelle,jointureexterne� Opérationsensemblistes:différence(EXCEPT),intersection(INTERSECT)� Renommagedesattributsdansla clauseSELECT
Slide100
SQL3 (en cours) : SQL devientun langagedeprogrammation:� Extensionsorientées-objet� Opérateurdefermeturetransitive (recursion)� ...
Vertigo/CNAM, Paris 52
Slide101ExpressionsdeBase
Slide102
Projection
Soit le schémaderelationCOMMANDES (NUM,CNOM,PNOM,QUANTITE)
REQUÊTE: Informationsur touteslescommandes
SQL:
SELECT NUM,CNOM,PNOM,QUANTITE
FROM COMMANDES
ou
SELECT *
FROM COMMANDES
Vertigo/CNAM, Paris 53
Slide103
Projection : Distinct
Soit le schémaderelationCOMMANDES (NUM,CNOM,PNOM,QUANTITE)
REQUÊTE:Produitscommandés
SELECT PNOM
FROM COMMANDES
NOTE: Contrairementà l’algèbrerelationnelle,SQL n’éliminepaslesdupliqués.Pour
lesélimineron utilise DISTINCT :
SELECT DISTINCT PNOM
FROM COMMANDES
Le DISTINCT peutêtreremplacéparla clauseUNIQUE danscertainssystèmes
Slide104
Sélection
Soit le schémaderelationCOMMANDES (NUM,CNOM,PNOM,QUANTITE)
REQUÊTE:Produitscommandéspar Jean
ALGÈBRE: af©�ªz«�¬�� � � ªz«�¬ ��r ² ��b ª r � >9�9�\���/�=� 8� *���SQL:
SELECT PNOM
FROM COMMANDES
WHERE CNOM= ’JEAN’
Vertigo/CNAM, Paris 54
Slide105
REQUÊTE:Produitscommandéspar Jeanenquantitésupérieureà 100
SQL:
SELECT PNOM
FROM COMMANDES
WHERE CNOM= ’JEAN’
AND QUANTITE > 100
Slide106
Conditions desélectionen SQL : Conditions simples
Lesconditionsdebasesontexpriméesdedeuxfaçons:
1. attribut comparateurvaleur
2. attribut comparateurattribut
où gts�Ç6uf]wv�]wEâh�x:v est o�� � ���9� � �9�������`�Soit le schémaderelationFOURNITURE (PNOM,FNOM,PRIX)
REQUÊTE:Produitsdeprix supérieurà 200F
Vertigo/CNAM, Paris 55
Slide107
SQL:
SELECT PNOM
FROM FOURNITURE
WHERE PRIX > 2000
Slide108
Soit le schémaderelationFOURNITURE (PNOM,FNOM,PRIX)
REQUÊTE:Produitsdontle nomestcelui du fournisseur
SQL:
SELECT PNOM
FROM FOURNITURE
WHERE PNOM= FNOM
Vertigo/CNAM, Paris 56
Slide109
Conditions desélectionen SQL : Suite
Le gts�Ç6uf]wv�]wEâh�x:v estBETWEEN,LIKE, IS NULL, IN
Soit le schémaderelationFOURNITURE (PNOM,FNOM,PRIX)
REQUÊTE:Produitsavecun coûtentre 1000Fet 2000F
SQL:
SELECT PNOM
FROM FOURNITURE
WHERE PRIX BETWEEN1000 AND 2000
NOTE: La condition y BETWEEN z AND { estéquivalenteà y � oJ{ AND
z � o@y .
Slide110
Soit le schémaderelationCOMMANDES (NUM,CNOM,PNOM,QUANTITE)
REQUÊTE:Clientsdontle nomcommencepar "C"
SQL:
SELECT CNOM
FROM COMMANDES
WHERE CNOMLIKE ’C%’
NOTE: Le littéral qui suit LIKE doit êtreunechaînedecaractèreséventuellementavec
descaractèresjokers(_, %). Pasexprimableavecl’algèbrerelationnelle.
Vertigo/CNAM, Paris 57
Slide111
La valeur NULL (*)
La valeurNULL estunevaleur“spéciale”qui représenteunevaleur(information)
inconnue.
1. � D;W estinconnu (ni vrai, ni faux)si la valeurde � ou/et W estNULL ( D estl’un
de o�� � ���9���9���9�4�o ).
2. �|sZuÆW estNULL si la valeurde � ou/et W estNULL ( sZu estl’un de ¾��}G9�Y~?�Z� ).
Slide112
Soit le schémaderelationFOURNISSEUR(FNOM,STATUT,VILLE)
REQUÊTE:LesFournisseursdeParis.
SQL:
SELECT FNOM
FROM FOURNISSEUR
WHERE VILLE = ’Paris’
OnnetrouvepaslesfournisseursavecVILLE = NULL !
Vertigo/CNAM, Paris 58
Slide113
Soit le schémaderelationFOURNISSEUR(FNOM,STATUT,VILLE)
REQUÊTE:Fournisseursdontl’adresseestinconnu.
SQL:
SELECT FNOM
FROM FOURNISSEUR
WHERE VILLE IS NULL
NOTE: Le prédicatIS NULL (ou IS NOT NULL) n’estpasexprimableenalgèbre
relationnelle.
Slide114
Soit le schémaderelationFOURNITURE (PNOM,FNOM,PRIX)
REQUÊTE:Produitsavecun coûtde100F, de200Fou de300F
SQL:
SELECT PNOM
FROM FOURNITURE
WHERE PRIX IN {100,200,300}
NOTE: La condition � IN ���:�!���}�}���t����� estéquivalenteà ���|� OR �F��� OR ���}� OR
�F�L� .
Vertigo/CNAM, Paris 59
Slide115
Jointure
Soit le schémaderelations
COMMANDES (NUM,CNOM,PNOM,QUANTITE)
FOURNITURE (PNOM,FNOM,PRIX)
REQUÊTE:Nom,Coût,FournisseurdesProduitscommandéspar Jean
ALGÈBRE:
�����8�&��� �B���Z�8� �B���������$���8�&�� �¡Z¢.£�¤��8¡���¥§¦§¨©¨«ª¬¯®b°²± ��³ �l´µ¦µ¶§·¸¬¯¹.º¸¶§·¸° �<�
Slide116
SQL:
SELECT COMMANDES.PNOM,PRIX, FNOM
FROM COMMANDES,FOURNITURE
WHERE CNOM= ’JEAN’ AND
COMMANDES.PNOM= FOURNITURE.PNOM
NOTE: Cetterequêteestéquivalenteà unejointurenaturelle.Noterqu’il fauttoujours
expliciter lesattributsdejointure.
NOTE: SELECTCOMMANDES.PNOM,PRIX, FNOM FROM COMMANDES,
FOURNITUREéquivautàunproduitcartésiendesdeuxrelations,suivi d’uneprojection.
Vertigo/CNAM, Paris 60
Slide117
Soit le schémaderelationFOURNISSEUR(FNOM,STATUT,VILLE)
REQUÊTE:Fournisseursqui habitentdeuxà deuxdansla mêmeville
SQL:
SELECT PREM.FNOM, SECOND.FNOM
FROM FOURNISSEURPREM, FOURNISSEURSECOND
WHERE PREM.VILLE = SECOND.VILLE AND
PREM.FNOM< SECOND.FNOM
La deuxièmeconditionpermet
1. l’élimination despaires(x,x)
2. d’éviterd’obteniraurésultatà la fois (x,y) et (y,x)
NOTE: PREMreprésenteuneinstancedeFOURNISSEUR,SECONDuneautre
instancedeFOURNISSEUR.
Slide118
Soit le schémaderelationEMPLOYE(EMPNO,ENOM,DEPNO,SAL)
REQUÊTE:Nomet SalairedesEmployésgagnantplusquel’employédenuméro 12546
ALGÈBRE:
R1 := �(»�¤�¼e���$£&�6���8�� �½<¾�¿�À!Á���°²¨«Â§ÃĦÆŵ° �<�R2:= � £�������� £&�6��¼���Ç&£ Ò »w¤�¼ �<��°²¨«Â§ÃĦÆÅ6° �ȳ £����B¼$��Ç&£ Ò »w¤�¼(É(��½ Ò »w¤�¼ ��·�Ê �<�
SQL:
SELECT E1.ENOM, E1.SAL
FROM EMPLOYEE1, EMPLOYEE2
WHERE E2.EMPNO = 12546 AND
E1.SAL > E2.SAL
Vertigo/CNAM, Paris 61
Slide119
TroisValeursde Vérité (*)
Troisvaleursdevérité: vrai, faux et inconnu
1. vrai AND inconnu = inconnu
2. faux AND inconnu = faux
3. inconnu AND inconnu = inconnu
4. vrai OR inconnu = vrai
5. faux OR inconnu = inconnu
6. inconnu OR inconnu = inconnu
7. NOT inconnu = inconnu
Slide120
Exemple(*)
Soit le schémaderelationEMPLOYE(EMPNO,ENOM,DEPNO,SAL)
SQL:
SELECT E1.ENOM
FROMEMPLOYEE1, EMPLOYEE2
WHEREE1.SAL > 20000 OR
E1.SAL <= 20000
Est-cequ’on trouvelesnomsdetouslesemployéss’il y a desemployésavecun salaire
inconnu?
Vertigo/CNAM, Paris 62
Slide121JointuresdansSQL2 (*)
Slide122
OpérationsdeJointure (*)
SQL2 opération Algèbre
R1 CROSSJOIN R2 produitcartesien ·�ʧË�·ÆÌR1 JOIN R2ON R1.A < R2.B théta-jointure ·�Ê ³ ��½ Ò ¤&Í:��¾ Ò Î ·ÆÌ
R1 NATURAL JOINR2 jointurenaturelle ·�Ê ³ ·§Ì
Vertigo/CNAM, Paris 63
Slide123
Jointure Naturelle: Exemple(*)
SCHEMA:EMPLOYE(EMPNO,ENOM,DEPNO,SAL),DEPT(DEPNO,DNOM)
REQUÊTE:Nomsdesdépartementsaveclesnomsdeleursemployés.
SQL:
SELECT DNOM, ENOM
FROM DEPT NATURALJOIN EMP
Note : Commedansla définitionalgébrique,l’expression
DEPT NATURALJOIN EMPfait la jointurenaturelle(surl’attribut DEPNO) et
l’attribut DEPNOn’apparaîtqu’uneseulefois dansle schémadu résultat.
Slide124
Theta-Jointure: Exemple(*)
Soit le schémaderelationEMPLOYE(EMPNO,ENOM,DEPNO,SAL)
REQUÊTE:Nomet salairedesemployésgagnantplusquel’employé12546
SQL:
SELECT E1.ENOM, E1.SAL
FROM EMPLOYEE1 JOIN EMPLOYEE2 ON E1.SAL > E2.SAL
WHERE E2.EMPNO = 12546
Vertigo/CNAM, Paris 64
Slide125
JointureExterne (*)
EMP EMPNO DEPNO SAL
Tom 1 10000
Jim 2 20000
Karin 3 15000
DEPT DEPNO DNOM
1 Comm.
2 Adm.
4 Tech.
Jointur e : lesn-upletsqui nepeuventpasêtrejointssontéliminés:
EMP NATURAL JOIN DEPT
Tom 1 10000 Comm.
Jim 2 20000 Adm.
Slide126
JointureExterne (*)
Jointur eexterne: lesn-upletsqui nepeuventpasêtrejoints nesontpaséliminés.
Ï Ongardetouslesn-upletsdesdeuxrélations:
EMP NATURAL FULL OUTER JOIN DEPT
Tom 1 10000 Comm.
Jim 2 20000 Adm.
Karin 3 15000 NULL
NULL 4 NULL Tech.
Vertigo/CNAM, Paris 65
Slide127
Ï Ongardetouslesn-upletsdela premièrerélation(gauche):
EMP NATURAL LEFT OUTER JOIN DEPT
Tom 1 10000 Comm.
Jim 2 20000 Adm.
Karin 3 15000 NULL
Ï Ongardetouslesn-upletsdela deuxièmerélation(droite):
EMP NATURAL RIGHT OUTER JOIN DEPT
Tom 1 10000 Comm.
Jim 2 20000 Adm.
NULL 4 NULL Tech.
Slide128
JointuresExternesdansSQL2 (*)
Ï R1 NATURAL FULL OUTERJOINR2 : RemplirR1.* etR2.*
Ï R1 NATURAL LEFT OUTERJOINR2 : RemplirR2.*
Ï R1 NATURAL RIGHT OUTERJOINR2 : RemplirR1.*
avecNULL quandnécessaire.
D’unemanièresimilaireon peutdéfinirdesthéta-jointuresexternes:
Ï R1 (FULL|LEFT|RIGHT)OUTERJOIN R2ON prédicat
Vertigo/CNAM, Paris 66
Slide129ExpressionsEnsemblistes
Slide130
Union
COMMANDES (NUM,CNOM,PNOM,QUANTITE)
FOURNITURE (PNOM,FNOM,PRIX)
REQUÊTE:Produitsqui coûtentplusque1000Fou ceuxqui sontcommandéspar Jean
ALGÈBRE:
Р§¬¯¦§¨ÒÑ�Ӳ§·Æ¹.ÔÖÕ§Ê�×.×�×BÑ�ØÚÙÜÛ«Ý©Þàß�áâÛ«Ý©ãÜä�äå
Р§¬¯¦§¨ Ñ�Ó ¥Æ¬¯¦§¨ �¸ælçBè���éBæ Ñ�êÚÙÚëìëîí©Þðïñãdò�ä�ä
Vertigo/CNAM, Paris 67
Slide131
SQL:
SELECT PNOM
FROM FOURNITURE
WHERE PRIX >= 1000
UNION
SELECT PNOM
FROM COMMANDES
WHERE CNOM= ’Jean’
NOTE: L’union éliminelesdupliqués.Pourgarderlesdupliquéson utilise l’opération
UNION ALL : le résultatcontientchaquen-uplet �¸ó@� fois, où � et � estle nombre
d’occurrencesdu n-upletdansla premièreet la deuxièmerequête.
Slide132
Différ ence
La différencenefait paspartiedu standard.
EMPLOYE(EMPNO,ENOM,DEPTNO,SAL)DEPARTEMENT (DEPTNO,DNOM,LOC)
REQUÊTE:Départementssansemployés
ALGÈBRE: �:ô £��Bõ:��� ��®b°µÂ§ª·¸º°6¨«°µ¬öº ��÷ ��ô £��Bõ���� �l°²¨«Â§Ã8¦Æŵ° �SQL:
SELECT DEPTNO
FROM DEPARTEMENT
EXCEPT
SELECT DEPTNO
FROM EMPLOYE
NOTE: La différenceéliminelesdupliqués.Pourgarderlesdupliquéson utilise
Vertigo/CNAM, Paris 68
Slide133l’opérationEXCEPT ALL : le résultatcontientchaquen-uplet �²÷�� fois, où � et � estle
nombred’occurrencesdu n-upletdansla premièreet la deuxièmerequête.
Slide134
Intersection
L’intersectionnefait paspartiedustandard.
EMPLOYE(EMPNO,ENOM,DEPTNO,SAL)
DEPARTEMENT (DEPTNO,DNOM,LOC)
REQUÊTE:Départementsayantdesemployésqui gagnentplusque20000Fet qui se
trouventà Paris
ALGÈBRE:
Ð ®b°²Âƺ¬¯¦ Ñ�Ó Ã8¦§¥ �¸ø  �wù�ú û�ø Ñ�ïñãÜüýíâÝLáýãÜëìãÜÞÒáýä�äþ
Ð ®b°µÂƺ¬ÿ¦ Ñ�Ó ±eªÃ4ÕÌ-×�×.×�× Ñ�ãÜëìü���Ù�� ãdä$ä
Vertigo/CNAM, Paris 69
Slide135
SQL:
SELECT DEPTNO
FROM DEPARTEMENT
WHERE LOC = ’Paris’
INTERSECT
SELECT DEPTNO
FROM EMPLOYE
WHERE SAL > 20000
NOTE: L’intersectionéliminelesdupliqués.Pourgarderlesdupliquésonutilise
l’opérationINTERSECT ALL : le résultatcontientchaquen-uplet �Fú�é � �:�Z�t� fois, où �et � estle nombred’occurrencesdu n-upletdansla premièreet la deuxièmerequête.
Slide136Imbrication desRequêtesen SQL
Vertigo/CNAM, Paris 70
Slide137
Requêtesimbriquéessimples
La Jointures’exprimepardeuxblocsSFWimbriqués
Soit le schémaderelations
COMMANDES (NUM,CNOM,PNOM,QUANTITE)
FOURNITURE (PNOM,FNOM,PRIX)
REQUÊTE:Nom,prix et fournisseursdesProduitscommandéspar Jean
ALGÈBRE:
� ���8�&��� �B���Z�8� �B����� ��� ���8�&�� �¡Z¢.£�¤��8¡ ��¥§¦§¨©¨«ª¬¯®b°²± ��³ �l´µ¦µ¶§·¸¬¯¹.º¸¶§·¸° �<�
Slide138
SQL:
SELECT PNOM,PRIX,FNOM
FROM FOURNITURE
WHERE PNOMIN (SELECT PNOM
FROM COMMANDES
WHERE CNOM= ’JEAN’)
ou
SELECT FOURNITURE.PNOM,PRIX,FNOM
FROM FOURNITURE,COMMANDES
WHERE FOURNITURE.PNOM= COMMANDES.PNOM
AND CNOM= ‘‘JEAN’’
Vertigo/CNAM, Paris 71
Slide139
La Différences’exprimeaussipardeuxblocsSFWimbriqués
Soit le schémaderelations
EMPLOYE(EMPNO,ENOM,DEPNO,SAL)
DEPARTEMENT (DEPTNO,DNOM,LOC)
REQUÊTE:Départementssansemployés
ALGÈBRE:
� ô £��Bõ:����l® °µÂ§ª·¸º°²¨«°²¬öº ��÷ � ô £��Bõ:�����°²¨«Â§ÃĦÆÅ6° �
Slide140
SQL:
SELECT DEPTNO
FROM DEPARTEMENT
WHERE DETPNONOT IN (SELECT DISTINCT DEPTNO
FROM EMPLOYE)
ou
SELECT DEPTNO
FROMDEPARTEMENT
EXCEPT
SELECT DISTINCT DEPTNO
FROMEMPLOYE
Vertigo/CNAM, Paris 72
Slide141
Requêtesimbriquéesplus complexes: ANY - ALL
Soit le schémaderelationFOURNITURE (PNOM,FNOM,PRIX)
REQUÊTE:FournisseursdesBriquesà un coûtinférieur au coûtmaximumdesArdoises
SQL : SELECT FNOM
FROM FOURNITURE
WHERE PNOM= ’Brique’
AND PRIX < ANY (SELECT PRIX
FROM FOURNITURE
WHERE PNOM= ’Ardoise’)
NOTE: La condition ��� ANY (SELECTF FROM .. . ) estvraiessila comparaison���estvraieaumoinspourunevaleur du résultatdu bloc (SELECTF FROM .. . ).
Slide142
Soit le schémaderelations
COMMANDE (NUM,CNOM,PNOM,QUANTITE)
FOURNITURE (PNOM,FNOM,PRIX)
REQUÊTE:Nom,Coûtet FournisseurdesProduitscommandéspar Jean
SQL:
SELECT PNOM, PRIX, FNOM
FROM FOURNITURE
WHERE PNOM= ANY (SELECT PNOM
FROM COMMANDE
WHERE CNOM= ’JEAN’)
NOTE: LesprédicatsIN et= ANY sontutilisésdefaçonéquivalente.
Vertigo/CNAM, Paris 73
Slide143
Soit le schémaderelationCOMMANDE (NUM,CNOM,PNOM,QUANTITE)
REQUÊTE:Client ayantcommandéla pluspetitequantitédeBriques
SQL:
SELECT CNOM
FROM COMMANDE
WHERE PNOM= ’Brique’ AND
QUANTITE <= ALL (SELECT QUANTITE
FROM COMMANDE
WHERE PNOM= ’Brique’)
NOTE: La condition ��� ALL (SELECTF FROM .. . ) estvraiessila comparaison����estvraiepourtouteslesvaleurs du résultatdu bloc (SELECTF FROM .. . ).
Slide144
Soit le schémaderelations
EMPLOYE(EMPNO,ENOM,DEPNO,SAL)
DEPARTEMENT (DEPTNO,DNOM,LOC)
REQUÊTE:Départementssansemployés
SQL:
SELECT DEPTNO
FROM DEPARTEMENT
WHERE DETPNONOT = ALL (SELECT DISTINCT DEPTNO
FROM EMPLOYE)
NOTE: LesprédicatsNOT IN etNOT = ALL sontutilisésdefaçonéquivalente.
Vertigo/CNAM, Paris 74
Slide145
Requêtesimbriquéesplus complexes: EXISTS
Soit le schémaderelations
FOURNISSEUR(FNOM,STATUS,VILLE)
FOURNITURE (PNOM,FNOM,PRIX)
REQUÊTE:Fournisseursqui fournissentau moinsun produit
SQL : SELECT FNOM
FROM FOURNISSEUR
WHERE EXISTS (SELECT *
FROM FOURNITURE
WHERE FNOM= FOURNISSEUR.FNOM)
NOTE: La conditionEXISTS(SELECT* FROM .. . ) estvraiessi le résultatdu bloc
(SELECTF FROM .. . ) n’estpasvide.
Slide146
Soit le schémaderelations
FOURNISSEUR(FNOM,STATUS,VILLE)
FOURNITURE (PNOM,FNOM,PRIX)
REQUÊTE:Fournisseursqui nefournissentaucunproduit
SQL:
SELECT FNOM
FROM FOURNISSEUR
WHERE NOT EXISTS (SELECT *
FROM FOURNITURE
WHERE FNOM= FOURNISSEUR.FNOM)
NOTE: La conditionNOT EXISTS(SELECT* FROM .. . ) estvraiessile résultatdu
bloc (SELECTF FROM .. . ) estvide.
Vertigo/CNAM, Paris 75
Slide147
FormesÉquivalentesdeQuantification
Si � estun desopérateursdecomparaison�§�Y�6� Õ �}���}�Ï La conditionx � ANY (SELECTRi.y FROM R1, ���}� RnWHEREp) estéquivalente
à
EXISTS(SELECT* FROM R1, ���}� Rn WHEREp AND x � Ri.y)
Ï La conditionx � ALL (SELECTRi.y FROM R1, �}��� Rn WHEREp) estéquivalente
à
NOT EXISTS(SELECT* FROM R1, ���}� Rn WHERE(p) AND NOT (x � Ri.y))
Slide148
Soit le schémaderelations
COMMANDE (NUM,CNOM,PNOM,QUANTITE)
FOURNITURE (PNOM,FNOM,PRIX)
REQUÊTE:Nom,prix et fournisseurdesproduitscommandéspar Jean
SELECT PNOM, PRIX, FNOM FROM FOURNITURE
WHERE EXISTS (SELECT * FROM COMMANDE
WHERECNOM= ’JEAN’
AND PNOM= FOURNITURE.PNOM)
SELECT PNOM, PRIX, FNOMFROM FOURNITURE
WHERE PNOM= ANY (SELECT PNOM FROM COMMANDE
WHERE CNOM= ’JEAN’)
Vertigo/CNAM, Paris 76
Slide149
Soit le schémaderelationFOURNITURE (PNOM,FNOM,PRIX)
REQUÊTE:Fournisseursqui fournissentau moinsun produitavecun coûtsupérieurau
coûtdesproduitsfournispar Jean
SQL:
SELECT DISTINCT P1.FNOM
FROM FOURNITUREP1
WHERE NOT EXISTS (SELECT * FROM FOURNITUREP2
WHERE P2.FNOM = ’JEAN’
AND P1.PRIX <= P2.PRIX)
SELECT DISTINCT FNOMFROM FOURNITURE
WHERE PRIX > ALL (SELECT PRIX FROM FOURNITURE
WHEREFNOM= ’JEAN’)
Slide150
Division
Soit le schémaderelations
FOURNITURE (FNUM,PNUM,QUANTITE)
PRODUIT (PNUM,PNOM,PRIX)
FOURNISSEUR(FNUM,FNOM,STATUS,VILLE)
REQUÊTE:Fournisseursqui fournissenttouslesproduits
Vertigo/CNAM, Paris 77
Slide151
ALGÈBRE:
R1 := ���B�� �� � �B�� ����l´µ¦µ¶Æ·Æ¬ ¹�º¸¶Æ·Æ° ��� ���B�� �� ��§·Æ¦Æ® ¶Æ¹.º �R2:= � �B����� �l´µ¦µ¶§·¸¬¯¹w±È±È°6¶Æ· ³ ·�Ê �
SQL:
SELECT FNOM
FROM FOURNISSEUR
WHERE NOT EXISTS
(SELECT *
FROM PRODUIT
WHERENOT EXISTS
(SELECT *
FROM FOURNITURE
WHEREFOURNITURE.FNUM= FOURNISSEUR.FNUM
AND FOURNITURE.PNUM= PRODUIT.PNUM))
Slide152Fonctionsde Calcul
Vertigo/CNAM, Paris 78
Slide153
COUNT, SUM, AVG, MIN, MAX
REQUÊTE:NombredeFournisseursdeParis
SELECT COUNT(*) FROM FOURNISSEUR
WHERE VILLE = ’Paris’
REQUÊTE:NombredeFournisseursqui fournissentactuellementdesproduits
SELECT COUNT(DISTINCT FNOM) FROM FOURNITURE
NOTE: La fonctionCOUNT(*) comptele nombredesé -upletsdurésultatd’unerequête
sanséliminationdesdupliquésni vérificationdesvaleursnulles.Dansle cascontraireon
utilise la clauseCOUNT(UNIQUE . . . ).
Slide154
REQUÊTE:QuantitétotaledeBriquescommandées
SELECT SUM (QUANTITE)
FROM COMMANDES
WHERE PNOM= ’Brique’
REQUÊTE:CoûtmoyendeBriquesfournies
SELECT AVG (PRIX) SELECT SUM (PRIX)/COUNT(PRIX)
FROM FOURNITURE ou FROMFOURNITURE
WHERE PNOM= ’Brique’ WHEREPNOM= ’Brique’
Vertigo/CNAM, Paris 79
Slide155
REQUÊTE:Le prix desbriquesqui sontle pluschères.
SELECT MAX (PRIX)
FROM FOURNITURE
WHERE PNOM= ’Briques’;
Slide156
REQUÊTE:FournisseursdesBriquesaucoûtmoyendesBriques
SELECT FNOM
FROM FOURNITURE
WHERE PNOM= ’Brique’ AND
PRIX < (SELECT AVG(PRIX)
FROM FOURNITURE
WHEREPNOM= ’Brique’)
Vertigo/CNAM, Paris 80
Slide157Opérationsd’Agrégation
Slide158
GROUP BY
REQUÊTE:Nombredefournisseurspar ville
SELECT VILLE, COUNT(FNOM)
FROM FOURNISSEUR
GROUPBY VILLE
Vertigo/CNAM, Paris 81
Slide159
LA BASE ET LE RESULTAT :
VILLE FNOM
PARIS TOTO
PARIS DUPOND
LYON DURAND
LYON LUCIEN
LYON REMI
VILLE COUNT(FNOM)
PARIS 2
LYON 3
NOTE: La clauseGROUPBY permetdepréciserlesattributsdepartitionnementdes
relationsdeclaréesdansla clauseFROM. Parexempleon regroupelesfournisseurspar
ville.
Slide160
REQUÊTE:Donnerpour chaqueproduit fourni soncoûtmoyen
SELECT PNOM, AVG (PRIX)
FROM FOURNITURE
GROUPBY PNOM
RÉSULTAT:
PNOM AVG (PRIX)
BRIQUE 10.5
ARDOISE 9.8
NOTE: Lesfonctionsdecalculappliquéesaurésultatderégroupementsontdirectement
indiquéesdansla clauseSELECT. Par exemplele calculdela moyennesefait par
produitobtenuaurésultataprèsle regroupement.
Vertigo/CNAM, Paris 82
Slide161
HAVING
REQUÊTE:Produitsfournispar deuxouplusieurs fournisseursavecun coûtsupérieur
de100
SELECT PNOM
FROM FOURNITURE
WHERE PRIX > 100
GROUPBY PNOM
HAVING COUNT(*) >= 2
Slide162
AVANT LA CLAUSEHAVING
PNOM FNOM PRIX
BRIQUE TOTO 105
ARDOISE LUCIEN 110
ARDOISE DURAND 120
APRÈSLA CLAUSEHAVING
PNOM FNOM PRIX
ARDOISE LUCIEN 110
ARDOISE DURAND 120
NOTE: La clauseHAVING permetd’éliminerdespartitionnements,commela clause
WHEREéliminedesé -upletsdu résultatd’unerequête.Parexempleongardeles
produitsdontle nombredesfournisseursest Õ � 2. Decettefaçondesconditionsde
sélectionpeuventêtreappliquéesavantle calculd’agrégat(clauseWHERE)maisaussi
après(clauseHAVING).
Vertigo/CNAM, Paris 83
Slide163
REQUÊTE:Produitsfourniset leur coûtmoyenpour lesfournisseursdontle siège està
Paris seulementsi le coûtminimumdu produitestsupérieurà 1000F
SELECT PNOM, AVG(PRIX)
FROM FOURNITURE, FOURNISSEUR
WHERE VILLE = ’Paris’ AND
FOURNITURE.FNOM= FOURNISSEUR.FNOM
GROUPBY PNOM
HAVING MIN(PRIX) > 1000
Slide164
ORDER BY
Engénéral,le résultatd’unerequêteSQLn’estpastrié. Pourtrier le résultatpar
rapportauxvaleursd’un ou deplusieursattributs,onutilise la clauseORDERBY :
SELECT VILLE, FNOM, PNOM
FROMFOURNITURE, FOURNISSEUR
WHEREFOURNITURE.FNOM= FOURNISSEUR.FNOM
ORDERBY VILLE, FNOMDESC
Le résultatesttrié parlesvilles (ASC) et le nomsdesfournisseurdansl’ordre inverse
(DESC).
Vertigo/CNAM, Paris 84
Slide165RécursiondansSQL3 (*)
Slide166
Enfants (*)
Soit le schémaderelationENFANT (NOMPAR,NOMENF)
REQUÊTE:LesenfantsdeCharlemagne
SQL:
SELECT NOMENF
FROMENFANT
WHERENOMPAR=’Charlemagne’;
Vertigo/CNAM, Paris 85
Slide167
Descendants(*)
Soit le schémaderelationENFANT (NOMPAR,NOMENF).
REQUÊTE:LesdescendantsdeCharlemagne
SQL:
WITH RECURSIVE DESCENDANT(NOMANC,NOMDESC)AS
(SELECT NOMPAR,NOMENFFROMENFANT)
UNION
(SELECT R1.NOMANC, R2.NOMDESC
FROMDESCENDANTR1, DESCENDANTR2
WHERER1.NOMDESC=R2.NOMANC)
SELECT NOMDESCFROMDESCENDANT
WHERENOMANC=’Charlemagne’;
Slide168Misesà jour avecSQL
Vertigo/CNAM, Paris 86
Slide169
Création de Tables
Oncréeunetableavecla commandeCREATE TABLE :
CREATETABLE Produit(pnom VARCHAR(20),
prix INTEGER,
PRIMARY KEY (pnom));
CREATETABLE Fournisseur(fnom VARCHAR(20) PRIMARY KEY,
ville VARCHAR(16));
CREATETABLE Fourniture (pnom VARCHAR(20) NOT NULL,
fnom VARCHAR(20) NOT NULL,
FOREIGN KEY (pnom) REFERENCESProduit,
FOREIGN KEY (fnom) REFERENCESFournisseur);
Slide170
Destruction deTables
On détruitunetableavecla commandeDROP TABLE :
DROPTABLE Fourniture;
DROPTABLE Produit;
DROPTABLE Fournisseur;
Vertigo/CNAM, Paris 87
Slide171
Insertion den-uplets
On insèredansunetableavecla commandeINSERT dontvoici la syntaxe.
INSERT INT O · �lª¸½ � ª¾ ���}�}�}� ª�� � VALUES � ½ �� ¾ ���}�}�� � �Doncon donnedeuxlistes: cellesdesattributs(les ª�� ) dela tableetcelledesvaleurs
respectivesdechaqueattribut (les � ).1. Bien entendu,chaqueª � doit êtreun attribut de ·2. Lesattributsnon-indiquésrestentà NULL ou à leur valeurpardéfaut.
3. Ondoit toujoursindiquerunevaleurpourun attribut déclaréNOT NULL
Slide172
Insertion : exemples
Insertiond’uneligne dansProduit:
INSERT INT O Produit (pnom,prix)
VALUES (’Ojax’, 15)
Insertiondedeuxfournisseurs:
INSERT INT O Fournisseur(fnom,ville)
VALUES (’BHV’, ’Paris’), (’Casto’, ’Paris’)
Il estpossibled’insérerplusieurslignesenutilisantSELECT
INSERT INT O NomsProd (pnom)
SELECT DISTINCT pnomFROM Produit
Vertigo/CNAM, Paris 88
Slide173
Modification
Onmodifieunetableavecla commandeUPDATE dontvoici la syntaxe.
UPDATE · SET ª¸½ �� ½ � ª¾ �� ¾ ���}�}��� ª�� �� �WHERE condition
Contrairementà INSERT, UPDATE s’appliqueàun ensembledelignes.
1. Onénumèrelesattributsquel’on veutmodifier.
2. On indiqueà chaquefois la nouvellevaleur.
3. La clauseWHERE conditionpermetdespécifierleslignesauxquelless’appliquela
miseà jour. Elle estidentiqueauWHERE du SELECT
Bienentendu,onnepeutpasvioler lescontraintessurla table.
Slide174
Modification : exemples
Mise à jour duprix d’Ojax:
UPDATE Produit SET prix=17
WHERE pnom= ’Ojax’
Augmenterlesprix detouslesproduitsfournisparBHV par20%:
UPDATE Produit SET prix = prix*1.2
WHERE pnomin (SELECT pnom
FROM Fourniture
WHERE fnom= ’BHV’ )
Vertigo/CNAM, Paris 89
Slide175
Destruction
Ondétruituneou plusieurslignesdansunetableavecla commandeDELETE
DELETE FROM ·WHERE condition
C’estla plussimpledescommandesdemise-à-jourpuisqueelle s’appliqueà deslignes
etpasàdesattributs.Commeprécédemment,la clauseWHERE conditionest
indentiqueauWHERE du SELECT
Slide176
Destruction: exemples
Destructiondesproduitsfournit parle BHV :
DELETE FROM Produit
WHERE pnomin (SELECT pnom
FROM Fourniture
WHERE fnom= ’BHV)
Destructiondu BHV :
DELETE FROM Fournisseur
WHERE fnom= ’BHV’
Vertigo/CNAM, Paris 90
Slide177CALCUL RELATIONNEL
Slide178
Exemple: la basede donnéesCINÉMA
Films Titre MetteurenScene Acteur
Juleset Jim F. Truffaut J.Moreau
Juleset Jim F. Truffaut O. Werner
LesQuatreCentCoups F. Truffaut J.P. Leaud
Metropolis F. Lang B. Helm
Chimesat Midnight O. Welles J.Moreau
Vertigo/CNAM, Paris 91
Slide179
Lieu Cinema Adresse No-Telephone
Rex Bd Poissonniere 42 36 83 93
Champo R. desEcoles 43 54 51 60
Cinoche R. deConde 46 33 10 82
Pariscope Cinema Titre Heure
Rex JulesetJim 18
Rex JulesetJim 20
Cinoche JulesetJim 20
Champo Metropolis 18
Slide180Syntaxe
Vertigo/CNAM, Paris 92
Slide181
Symboles(c.a.d.l’alphabet du langage)
Ï Constantes:’F. Truffaut’, ’Juleset Jim’, 18,43 5451 60,.. .
Ï Variables:x, y, z, ...
Ï Prédicats:Movies,Location, . . .
Ï Comparateursarithmétiques:=, � , Õ , �� , ...
Ï Connecteurslogiques: �8���8���Ï Quantificateurs: �(���Ï Parenthèses: “(“, “)”
Slide182
Formulesatomiques(atomes)
Ï p(x1,.. . ,xn) estun atomeoùp estunsymboledeprédicat,et xi, i � [1,n] estsoitune
variable,soit uneconstante.
Exemples:
– Films (’Juleset Jim’, ’F.Truffaut’, ’J. Moreau’)
– Films (x, ’Truffaut’, y)
Ï x � y estun atomeoùx ety sontsoit desvariablessoit desconstanteset � estl’un des
6 comparateursarithmétiques.
Exemples: 1 < 3, x < y, x < 8
Ï Touteslesoccurrencesdevariablesapparaissantdansuneformuleatomiquesont
diteslibr es
Vertigo/CNAM, Paris 93
Slide183
Formulesbien formées
Ï si F estuneformuleavec � parmisesvariableslibres,alors( � x)F et ( � x)F sontdesformules.Touteslesoccurrencesdex dansF sontalorsditesliées.
Exemples:
– � �`�:� � � �"!��– � �(�:� � �#�"!��– � �`�:� � � �%$��Ï si F1 etF2 sontdesformules,alorsF1 � F2,F1 � F2 et � F1sontdesformules(les
occurrencesdevariablesdecesnouvellesformulessontlibresou liéessi ellesle sontdansF1,F2). Exemples:
– � � ���!��&� � � Õ"' �– � �`�:� � � �"!��F� Õ"' �Ï si F estuneformule,alors(F) estuneformule;
Slide184
FormesAbrégés
Ï Formesabrégéesdequantificateurs:
1. ��� Ê �<� Ì ���}�}���<��é estuneabréviationde ��� Ê ��� Ì �}��������é ,
2. �:� Ê ��� Ì ���}���t�<��é estuneabréviationde �(� Ê �(� Ì ���}�(�(�$é .
Ï Ordredeprécédence(priorité)entrelesconnecteurset quantificateurs(du plusau
moinsprioritaire):
1. �8�)�i��� ,2. � ,
3. � .
Parexemple, Ñ�*,+ ä.-,/öÑ0+21.3Æä5476ÆÑ03Æä28:9§Ñ<;4ä estcompriscomme
Ñ�Ñ�*5+ ä�Ñ-,/öÑ0+=1>3§ä�ä�ä?4 Ñ06ÆÑ@3§äA8B9§Ñ<;4ä�ä�C
Vertigo/CNAM, Paris 94
Slide185
Requêtes
Requête: ��� Ê ��� Ì ���}���t�<��éED ´�F où F estuneformuleavecvariableslibres,x1,x2,.. . ,xn.
Exemplesde Requêtes:
Ï ��� D�� �G! FÏ ��� D ´ ú)HI� � æ ç�JKHlè�û�è<L�ç�úM� æ � æ º ùNJ����(�OJ�L æ ���:� FÏ ��� D � �P$�� ´ ú)HQ� � $(� æ º ùNJ����(�RJSL æ ���:� F
Slide186Sémantique
Vertigo/CNAM, Paris 95
Slide187
Inter prétation
Ï L’atomep(x1,.. . ,xn) où p estun symboledeprédicatet où lesxi i T [1,n] sontdes
constantes,estvrai si [x1,. . . ,xn] estun é -upletdela relationp.
Exemple: ´ úMHI� � æ ç�JKHlè�û è<LÈç�úM� æ � æ º ùNJ����(�OJ�L æ � æ ¨VU ù�è��RJ æ � estvrai ssiW æ ç�J�H�è�û è<L�ç�úM� æ � æ º ùNJ����(�OJ�L æ � æ ¨VU ù�è��RJ æYX estun n-upletdansla table ´ ú)HQ� .
Ï L’interprétationdex � y estnaturelle.Parexemplex � y estvrai ssix estinférieurà y.
Slide188
Inter prétation
Ï ( � x)F estvraies’il existeuneinstanciationdex (on remplacex paruneconstante)
telle quesi onsubstituetouteslesoccurrencesdex dansF parcetteinstanciation,
alorsF estvraie.
Parexemple � ���(� ´ ú)HQ�öû � ��� æ º ùNJK���(�RJ�L æ � æ ¨VU ù�è��OJ æ � estvraies’il existeun film
dirigé parTruffautdanslequeljoueJ.Moreau.
Ï L’interprétationdeF1� F2. � F,.. .estl’interprétationhabituelle: F1� F2 estvraiesi
F1 estvraieou F2estvraie.
Note: La disjonctionet la quantificationuniversellepeuventêtreexpriméesenutilisantla
negation:
1. F1 � F2 Z"� � � F1 �[� F2),
2. ( � x) F Z ( �[� x) � F.
Vertigo/CNAM, Paris 96
Slide189
Inter prétation d’une Requête
Requête: ��� Ê ��� Ì ���}���t�<��éED ´�F où F estuneformule. Interprétation:
C’estl’ensembledesé -upletsW � Ê ��� Ì ���}�}�Y�!�wé X telsqueF(a1,a2,.. . ,an)estvraie.
Ï ��� D ´ ú)HI� � æ ç�JKHlè�û�è<L�ç�úM� æ � æ º ùNJ����(�OJ�L æ ���:� F retournetouslesacteursdu film ’Jules
et Jim’ deTruffaut.
Ï ��� D � �P$�� ´ ú)HQ� � $(� æ º ùNJ����(�RJSL æ ���:� F retournetouslesacteursqui ont tournéavec
Truffaut.
Slide190Un Peu deThéorie
Vertigo/CNAM, Paris 97
Slide191
Algèbre relationnellevs Calcul relationnel sain
L’algèbrerelationnelleet le calculrelationnelsainont le mêmepouvoir d’expression.
Théorême1 : Touterequêteexprimabledansl’algèbrerelationnelleestexprimabledans
le calculrelationnel.
Formule saine: Formuledontle résultatestfini (le nb de é -upletsqui satisfontla
formuleestfini).
Exempledeformulenonsaine: ������$\D ��] � ����$�� F . Le resultatcontienttouslesnupletsqui
nesontpasdansla relation] .Théorême2 : Touterequêtedu calculrelationnelsainestexprimableenalgèbre
relationnelle.
Slide192
Calcul relationneldomaine/̂ -uplet
Le calculrelationnelprécédentestappelécalcul relationneldomaine.
Pourobtenirle calcul relationnel é -uplet, on remplace:
Ï x1,x2,.. . ,xn (oùxi estunevariabledomaine)parla variableé -uplett.
Ï L’attribut A derangi (xi dansle calculdomaine)estnotét.A (voir exemples
ci-dessous).
Theorême3 : Le calculrelationnelé -upletsaina le mêmepouvoir d’expressionque
l’algèbrerelationnelle.
Vertigo/CNAM, Paris 98
Slide193Exemples
Slide194
QuelquesRequêtes
1. Qui dirige Metropolis?
2. Adresseet numérodetéléphonedu Studio?
3. Sallesoù on peutvoir un film deTruffaut?
4. Adressesdescinémasmontrantun film deTruffaut?
5. Quelsfilms deTruffautnepassentpasencemoment?
Vertigo/CNAM, Paris 99
Slide195
Requête1: Qui a dirigé le film Metropolis ?
SQL
select Metteur-en-Scene
from Films
where Titre = ’Metropolis’;
Calcul relationnel é -uplet
_ +2CCëa`&b�bc`&d?9 _̀fe _ò g\`&eA`ih8ØVj�kmlon4Ñ0+ ä.8 +=C á�jNbR9p`rqrsÆëa`&bO9pt�/utvkmjRn\s�w
Calcul relationneldomaine
_yx hÆÑz�+ ä�Ø{j�k@l|n4Ñ s ëa`&bO9vt�/utvk@jRn s 1 x 1S+ ä�w
Slide196
Requête2: Adr esseet numéro de téléphonedu Studio ?
Calcul relationnel é -uplet
_ +=Clí x 9p`yn[n}`~1S+2CCÞ7dul�`&9pt _ár`�k h�� j�`&d¯Ñ0+ ä28+2CCêVj�eA`fl7��q s ò�bRd x jt s w
Calcul relationneldomaine
_ � x 1�/,��h�� j�`fd Ñ s ò�bRd x jt s 1.� x 1N/5�²äSw
Vertigo/CNAM, Paris 100
Slide197
Requête3: Sallesoù on peut voir un film deTruffaut ?
Calcul relationnel é -uplet
�c�����#� ^~�P���{�����}���O��� �\� ���c���� �\� � �~�{ ��¡ � � �¢�}�<����¤£A��¥ �S�§¦7� �Y£A�¢¥ ���>�� �©¨ � ¥�¥ �Pªv� _�P^ _« � �P^~�=¦§¬ £ �.ª®®®��ª ¥ ¬©�¯
Calcul relationneldomaine
�S� �����[° � �.±N� ��¥ ± ¥m�¢¥ ���>�O��� �\� ���c���� �\� � ± ¥m��¥ �S�K±° � �K�0� ��¡ � � � ¥m��¥ �S�K±Y¬ £ �.ª®®®��ª ¥ ¬²±�� ��¥ �<�¯
Slide198
Requête4: Adr essesdescinémasmontrant un Truffaut ?
SQL
select L.Adresse
from Films F, Lieu L, Pariscope P
where F.Metteur-en-Scene = ’Truffaut’
and P.Titre = F.Titre
and L.Cinema = P.Cinema;
Calcul relationnel é -uplet
�.³}�Y´§µ ��� �>� � �¶��� � ±N���O�� ��¡ � � � � ���·� ��� ���c�O��� �\�¢�}�~�{¸ � �Pª¹� ³ �<����º¨ � ¥�¥ �Pªy� _�P^ _« � �P^~�=¦=¬ £ �.ªp~®��ª ¥ ¬©����¤£A��¥ �S��¦B� �¤£2�¢¥ ���?�r� ��� � ^~�P���»¦ ³f�º�#� ^®�P���f��¯
Vertigo/CNAM, Paris 101
Slide199
Requête4: Adr essesdescinémasmontrant un Truffaut ?
Calcul relationneldomaine
� �r�¶��� ¥ ± �� ^®�K± � ± ¥ � ¡ � � °~±�� �¥ �O�� ��¡ � � � ¥ ±\¼ £ �.ªp~®��ª ¥ ” ±�� �¥ �0��½��� ���c�O��� �\� ��� ^~�K± ¥ ± � ���{¸ � �Pª¹� ��� ^~�K±��[± ¥ � ¡ � � °y�0�¯
Slide200
Requête5: Quelsfilms de Truffaut ne passentpas?
SQL
select Titre
from Films F
where F.Metteur en Scene = ’Truffaut’
and not exists ( select *
from Pariscope P
where P.Titre = F.Titre )
Calcul relationnel é -uplet
�c���¤£A��¥ �S� ���� ��¡ � � � � ��� ���º¨ � ¥�¥ �Pªy� _�P^ _« � �P^®��¦=¬ £ �.ªp~®��ª ¥ ¬¾�0���¿À�}�}�R�¢�½��� ���c�O��� �\�����~��� �¤£A��¥ �S�=¦ ���Y£A��¥ �S�>�¯
Vertigo/CNAM, Paris 102
Slide201
Requête5: Quelsfilms de Truffaut ne passentpas?
Calcul relationneldomaine
�c� �}���}���@ ��¡ � � � � ±\¼ £ �Sªp~p�\ª ¥ ” ±N�}�~�Á��¿u� ³ ±NÂ��@�½��� ���c�O��� �\� ³ ± � ±N§�¯ou �c� �}���}���@ ��¡ � � � � ±\¼ £ �Sªp~p�\ª ¥ ” ±N�}�~�Á�(à ³ ±NÂ��0¿Ä�½��� ���c�O��� �\� ³ ± � ±N§�¯
Slide202 DÉPENDANCES FONCTIONNELLES
Vertigo/CNAM, Paris 103
Slide203
Exemples: Relation PERSONNE
PERSONNE NOSS NOM VILLE
123 toto Paris
324 mimi Paris
574 toto Marseilles
Qu’est-cequ’on peutdire surla tablePERSONNE?
Ï “Connaissantle numérodesécuritésocialeNOSS, je connaisle NOM”
Ï L’attribut NOSSdéterminel’attribut NOM
Ï L’attribut NOMdépendfonctionnellementdel’attribut NOSS
Ï Attention: Connaissantle NOMon neconnaîtpasle NOSS: NOMÅÆ NOSS
NOTATION : NOSSÆ NOM
Slide204
Relation COURS
COURS NOM-COURS PROF ETUDIANT
BDPI MATHELOT DUPONT
BDPI MATHELOT DURAND
BDPI MATHELOT LENORMAND
IPA HARDIN DUPONT
Ï “Un Coursa un seulProfesseur”
Ï NOM-COURSÆ PROF
Ï 2 nupletsqui ont mêmevaleurpourNOM-COURSontmêmevaleurpourPROF
Vertigo/CNAM, Paris 104
Slide205 COURS
ETUDIANT
PROF
enseigne
suit
0,n
0,n
0,n
1,1
Nom-Cours
Nom-Etudiant
Nom-Prof
Slide206
Exemplede Clé
PERSONNE(NOSS, NOM, PRENOM,ADRESSE)
NOSSÆ NOM, NOSSÆ PRENOM, NOSSÆ ADRESSE
Ï Connaissantle numérodesécuritésocialeNOSS, on connaîttouslesattributs
Ï 2 nupletsayantle mêmeNOSSsontidentiques
Ï Le NOSSidentifiele nuplet
Ï Le NOSSestuneclé
NOSS NOMÆ PRENOM
NOSS NOMestunesuperclé (NOMestredondant)
Vertigo/CNAM, Paris 105
Slide207
Relation FOURNITURE
FOURNITURE(FNOM, PNOM, QUANT, PRIX)
FNOMPNOM Æ QUANT
FNOMPNOM Æ PRIX
FNOMPNOMestuneclé.
FOURNISSEUR
PRODUIT
Fnom
Pnom
fourniture PrixQuant
0,n
0,n
Slide208
Relation ADRESSE
ADRESSE(RUE, NUMERO,VILLE, CODE-P)
Hypothèsessimplificatrices
Ï Plusieurscodespouruneville : Paris= 75001,75143,. . .
Ï Uneseuleville pourun code: 75xxx= Paris
Ï Uneadresse(rue+ numéro+ ville) n’appartientqu’àun seulcode: 292,rueSt
Martin, Paris= 75143
RUE NUMEROVILLE Æ CODE-P
CODE-P Æ VILLE
Clésdela relationADRESSE: (RUE NUMEROCODE-P) et (RUE NUMERO
VILLE)
Vertigo/CNAM, Paris 106
Slide209
Définitions
a) Dépendancefonctionnelle
Soit R(U) un schémaderelation,r unerelationdeschémaR, X Ç U, Y Ç Udeux
sous-ensemblesd’attributsdeR. La dépendancefonctionnelle
X Æ Y
estvrai dansr , ssi(si et seulementsi) touslesnupletsder qui ontmêmevaleur
pour(tous)lesattributsdeX, ont mêmevaleurpour(tous)lesattributsdeY.
Exemple:
ADRESSE(RUE, NUMERO,VILLE, CODE-P)
X = CODE-P
Y = VILLE
Slide210
b) Superclé
Soit R(U) un schémaet X Ç Uun sousensembled’attributs.
X estunesupercléder deschémaR, si X Æ U.
Exemple:
NOSS NOMÆ NOSS NOMPRENOMADRESSE
NOSS NOMestunesuperclé
c) Clé
X estuneclé,si :
1. X estunesuperclé: X Æ U
2. il n’existepasY Ç X, tel queY Æ U
Exemple:
RUE NUMEROVILLE Æ RUE NUMEROVILLE CODE-P
RUE NUMEROVILLE estuneclé (pourquoi?)
Vertigo/CNAM, Paris 107
Slide211
Calcul d’une Clé: Exemple
COURS(Nomc,Heure,Salle,Prof)È � N Æ HS, HS Æ P
Nouspouvonsprouverà partir deÈ
quesi on connaîtle nomdecours,onconnaît
aussile nomdu professeur(Nomcestuneclé) :
1. N Æ HS: deuxnupletsqui partagentle nomdecourspartagentégalement
l’horaire et la salle
2. HS Æ P : deuxnupletsqui partagentl’horaire et la sallepartagentégalementle
nomdu professeur
3. DF 1 et 2 impliquent,quedeuxnupletsqui partagentle nomdecourspartagent
égalementle nomdu prof : N Æ P
Onpeutdéfinir despropriétés(règles)surlesDF qui permettentdedéduired’autres
DF.
Slide212
PropriétésdesDépendancesFonctionnelles
(Axiomesd’Armstrong)
1) Réflexivité
si X É Y alorsY Æ X (pourtouslesensemblesd’attributsX et Y)
Exemple:
NOMVILLE Æ NOM
Trivial : “Deux personnesqui ont le mêmenomethabitentla mêmeville, ont le
mêmenom.”
Vertigo/CNAM, Paris 108
Slide213
2) Transitivité
si X Æ Y et Y Æ Z, alorsX Æ Z
Exemple :
R(NOSS, CODE-P, VILLE)
� NOSS Æ CODE-P, CODE-P Æ VILLE F{Ê NOSS Æ VILLE
“Si on connaîtle codepostaleà partir dunumérodesécuritésocialeet la ville à
partir du codepostale,on connaîtla ville à partir du numérodesécuritésociale.”
3) Augmentation
X Æ Y Ê XZ Æ YZ
Exemple:
NOSS Æ CODE-P Ê NOSS VILLE Æ CODE-P VILLE
Slide214
4) Union et décomposition
� X Æ A, X Æ B F®Ë X Æ AB
5) Pseudotransitivité
� X Æ Y, WY Æ Z F�Ê WX Æ Z
REMARQ UE : Union,décompositionet pseudotransitivité peuventêtredéduitesdes
autresaxiomes
Vertigo/CNAM, Paris 109
Slide215
Clôtur e d’un ensemblede dépendancesfonctionnelles
De l’ensembledesdépendancesfonctionnellesdonnéesparl’analysedu monderéel,en
utilisantlespropriétésci-dessus,appeléesAxiomesd’Armstrong, on peutendéduire
d’autres:
Exemples:
1) R(A,B,C,D)È= � A Æ B, B Æ C F
Par transitivité, on déduitA Æ C
Notation:È D � A Æ C
Slide216
2) R(Cours, Prof, Heure,Salle,Eleve,Note)È= � C Æ P, HS Æ C, HP Æ S, CE Æ N, HE Æ S FÈ D � HS Æ P, HE Æ C,P,N
DoncHEestuneclé. Pourquoi?
L’union deÈ
et detouteslesdépendancesainsidéduitesestappeléeclôture, ou
couvertur edeÈ
et notéeÈ,Ì
.
Vertigo/CNAM, Paris 110
Slide217
Couverture minimale
La couvertureminimale Í d’un ensembleÈ
dedépendancesfonctionnelles(DF) estun
ensembledeDF tel que:
1. on peutdéduirede Í lesmêmesDF quedeÈ
: Í Ì =È,Ì
2. Il n’y a qu’unattribut à droitedanstouteslesDF de Í (décomposition)
3. Touteslesdépendancessontutiles: si on enlèveunequelconque,on nepeutobtenirÈ�Ì.
4. Touteslesdépendancessontélémentaires: l’ensemble� A Æ C; ACÆ B F est
redondant: on remplaceACÆ B, qui n’estpasélémentaire,parAÆ B.
Slide218
Exemple
Dépendances Clôtur eminimale
fonctionnelles
AB Æ C AB Æ C
C Æ A C Æ A
BC Æ D BC Æ D
ACDÆ B CD Æ B
D Æ EG D Æ E
BE Æ C D Æ G
CE Æ AG BE Æ C
CE Æ G
ACDÆ B n’estpasélémentaire,pourquoi?CE Æ A a disparu,pourquoi?
Vertigo/CNAM, Paris 111
Slide219
Réponseà la question:
ACDÆ B n’estpasélémentaire,pourquoi?
C Æ C (réflexivité); C Æ Cet C Æ C D � C Æ CC(union)
C Æ A D � CCDÆ ACDparaugmentation
CCDÆ ACD D � CDÆ ACDparpseudotransitivité avecC Æ CC
CD Æ ACDet ACDÆ B D � CD Æ B partransitivité
Autr edémonstration
Parpseudotransitivité, � C Æ A, ACD Æ B F D � CCD Æ B ; CCD Æ B et
C Æ CC D � CD Æ B (voir plushaut).
Slide220
Clôtur e minimale
Concrètement,la clôtureminimale
Ï soit estdonnéedirectementparl’analysedu monderéel
Ï soit esttrivialeàobtenircarengénéral
– toutesle DF sontutileset élémentaires
– il suffit dedécomposerlesmembresdroits
Vertigo/CNAM, Paris 112
Slide221
Nouvelledéfinition d’une Superclé
SoitR(U) un schémaderelation,È
un ensemblededépendancesfonctionnelleset X ÉUun ensembled’attributs.X estunesuperclédeRsi pourtoutA T UÈ D � X Æ A
ou encoresi:
X Æ A T È ÌCalculer
È,Ìàpartir de
Èpeutêtretrèslong.
ParcontremontrerqueÈ D � X Æ A estfacileet rapide.
Slide222
Calcul de la cléd’une relation
SoitR(U) un schémaderelationet X É Uunensembled’attributs.
Ï Ondéfinit Ô Ì commeensembledesattributsA telsqueÈ D � X Æ A
Ï Si A appartientà Ô Ì , alorspardéfinitionÈ D � X Æ A
Ï Ô Ì estl’ensembledesattributsfonctionnellementdépendantsdeX.
Pourcalculeruneclé on utilise l’algorithmesuivant:
1. Onchercheun X tel que Ô Ì = U Ê X estunesuperclé
2. X estuneclé,s’il n’existepasY Ç X tel que Å Ì = U
Vertigo/CNAM, Paris 113
Slide223
Calcul de Î�Ï
Étape1: OnpartdeX
PourtouteY Æ A, telle queY É X, Y Æ A T È , on rajouteA à X.
Onobtient Ô ½.
Étape i: Onpartde Ô �IÐ ½PourtouteY Æ A, telle queY É Ô �IÐ ½ , Y Æ A T È , on rajouteA à Ô �QÐ ½ .Onobtient Ô � .
Ons’arrêtequandon netrouveplusdenouvelleDF :
Ô Ì = Ô � Ì ½ = Ô �
Slide224
Exemples
1. MontrerqueHEestuneclépourR(CHENSP)avecl’ensembleÈ
deDF donné
ci-dessus
2. Pourla relationADRESSE(VILLE, RUE, NUMERO,CODE_P)ci-dessus,
montrerqueVILLE RUE NUMEROestuneclé. Quelleestl’autre?
Vertigo/CNAM, Paris 114
Slide225 ANOMALIES DE MISE À JOUR
Slide226
Exemple
Soit le schémaS1:
FOURNISSEUR(FNOM,FADRESSE)
FOURNITURE(FNOM,PNOM, PRIX)
et l’ensembledeDF :È �©� FNOM Æ FADRESSE, (FNOM PNOM) Æ PRIX F
Supposonsqu’on remplaceS1parle schémaS2:
R(FNOM, FADRESSE, PNOM, PRIX)
Vertigo/CNAM, Paris 115
Slide227
Anomalies
R (FNOM, FADRESSE, PNOM, PRIX)È �«� FNOM Æ FADRESSE, (NOM PNOM) Æ PRIX FQuelleestla clé deR?
TOTO LYON BRIQUES 1000
DUPONT ROUEN BRIQUES 900
TOTO LYON BETON 400
1) REDONDANCE : l’adressed’unepersonneapparaîtplusieursfois.
2) MAJ : si on modifiel’adressedansun nuplet,il fautle fairedanslesautres.
Slide228
3) SUPPRESSION: si DUPONTnefournit plusdeBRIQUES, onsupprimele 2e
nuplet,on perdtouteinfo surDUPONT
4) INSERTION : on nepeutinsérerun nouveaufournisseuret sonadresse,si on ne
connaîtpasaumoinsunproduitqu’il fournit
TOTO PARIS BRIQUES 1000
TOTO LYON BETON 400
DURAND NICE
� Ê LE SCHÉMA INITIAL S1EST“MEILLEUR”
Vertigo/CNAM, Paris 116
Slide229
Contraintes d’intégrité
La listedesattributsestinsuffisantepourdécrirela sémantiquedu monderéel.
Il existeplusieurstypesdecontraintessurlesnuplets:
1. dépendances(fonctionnelles,multivaluées,dejointure,etc.)
2. contraintesqui dépendentdu domained’un attribut : Taille � 2m10,année� 2000
3. etc.
Cesontlesdépendancesqui permettentla conceptiond’un bonschéma, c.a.d. la
décompositionen“bonnes”relations.
Slide230
Qualitésd’un bon schéma
1. Éviter lesanomalies� Ê décomposition
2. La décompositiondoit conserver la mêmeinformation
La jointured’unerelation
f1 deschémaFOURNISSEUR(FNOM,FADRESSE)
et d’unerelation
f2 deschémaFOURNITURE(FNOM,PNOM, PRIX)
obtenuespardécompositiond’unerelation
r deschémaR(FNOM, FADRESSE, PNOM, PRIX)
doit redonnerr .
3. La décompositiondoit conserver lesmêmescontraintes(DF). La décompositionde
RenR1(FNOM, FADRESSE, PRIX) et R2(PNOM, PRIX) nepréservepasles
DF. Pourquoi?
Vertigo/CNAM, Paris 117
Slide231 FORMES NORMALES ET DÉCOMPOSITION
Slide232
Relation enpremière forme normale (1FN)
Ï Touslesattributssontatomiques(élémentaires)
Ï Relationstellequ’on lesconnaît.
Ï Relation non normalisée,non en 1eFN :
Certainsattributssontdesensemblesdevaleurs,desrelationsellesmême
Vertigo/CNAM, Paris 118
Slide233
Relation 1FN
NOTES ( COURS ETUDIANT NOTE )
BDB Toto 15
BDB Lulu 17
BDB Lili 0
ARCHI Lili 20
ARCHI Toto 0
Relation N1FN
NOTES ( COURS PERF (ETUDIANT NOTE) )
BDB Toto 15
Lulu 17
Lili 0
ARCHI Lili 20
Toto 0
Slide234
Relation en 3eforme normale
Ï 2eforme normale :
Purementhistorique
Ï 3eforme normale : 3FN
– évitela plupartdesanomalies
le but du jeu : décomposerunerelation(1FN) enun ensemblederelations3FN
Vertigo/CNAM, Paris 119
Slide235
3FN : Première Définition
Soitun schéma(R, F) .
OnsupposequeÈ
estunecouvertureminimale.
Définition : Resten3FN,si quellequesoit la DF X Æ A deÈ
,Ï soit X estunecléÏ soit A appartientà l’une desclés
Slide236
Exemples:3eForme Normale
1) Poste(Ville, Rue,Code)È= � VR Æ C, C Æ V F
Clés: VR, RC
Resten3FN.
2) FOURNITURE(NOMF , ADR, NOMP, PRIX)È= � NOMF Æ ADR, NOMF,NOMPÆ PRIX F
Clé : (NOMF NOMP)
FOURNITUREn’estpasen3FN.
Vertigo/CNAM, Paris 120
Slide237
3) PLANNING(Cours, Heure,Salle)È= � SH Æ C, C Æ S F
Clés: SH, CH
PLANNINGesten3FN.
4) R(A, B, C, D)È= � AB Æ C, B Æ D, BC Æ A F
Clés: AB, BC
Rn’estpasen3FN.
Slide238
3FN : DeuxièmeDéfinition
Remarque: Il n’estpasnécessairequeÈ
soit unecouvertureminimale.
Il suffit quepourtouteDF X Æ A deÈ,Ì
,Ï A soit unseulattribut,Ï A nesoit pasl’un desattributsdeX
La définitiond’un schéma3FN devient :
Définition : UnerelationResten3FN,si quellequesoit la DF X Æ A deÈ�Ì
qui
satisfait lesconditionsprécédentes,Ï soit X estunesupercléÏ soit A appartientà l’une desclés
En fait, il n’estpasnécessairedevérifier touteslesDF deÈ�Ì
.
Il suffit devérifier cellesdeÈ
!
Vertigo/CNAM, Paris 121
Slide239
Remarque(Suite) :
Pourquoisuperclédansla condition1 ?
Aveclesconditions1 et2 plusfaiblesquecellesd’unecouvertureminimale,
il peuty avoir desconditionsnonélémentaires:
si X Æ A estuneconditionnonélémentaire
et si XÌ
= U, alorsX estunesuperclé.
Slide240
Remarque(fin) :
R(A,B,C,D)È= � AB Æ C, B Æ D, D Æ B, B Æ A FÈn’estpasunecouvertureminimale,pourquoi?
(R,È
) esten3FN,pourquoi?
Vertigo/CNAM, Paris 122
Slide241
Décompositionsansperte d’inf ormation (SPI)
Exemple
R ( A B C )
a b c
a b a
c b d
etÈ
= � A Æ B FDécomposonsen:
R1 ( A B ) R2 ( B C )
a b b c
c b b a
b d
Slide242
R1 = ��¤&� Î (R)
R2 = � Î � � (R)
R’ = R1 ³ R2 Å� R :
R’ ( A B C )
a b c
a b a
a b d
c b c
c b a
c b d
La décompositiondeRenR1 et R2 estavecperted’informations.
La jointurecréedesnupletsqui n’existaientpasdansR.
Vertigo/CNAM, Paris 123
Slide243
DécomposonsR’ maintenanten:
R1’( A B ) R2’ ( A C )
a b a c
c b a a
c d
R” = R1’ ³ R2’ = R’ :
R’’ ( A B C )
a b c
a b a
c b d
Cettedécompositionestsansperted’information(SPI)
Il fautqu’aprèsla jointure,on retrouvela mêmeinformationqu’avantla décomposition.
Slide244
Définition
UnedécompositiondeRenR1, R2, ..., Rk parrapportàun ensembledeDFÈ
estSPI(sansperted’information),ssiquellequesoit r deschémaRsatisfaisantÈ
, ona :
r = ����½ (r ) ³ ����¾ (r ). . . ³ ���\Ñ (r )
Théorème:
Si (R1, R2) estunedécompositiondeRetÈ
un ensembledeDF, alors(R1, R2)
estSPIparrapportàÈ
, ssi:
R1 Ò R2 Æ R1 - R2
ou
R1 Ò R2 Æ R2 - R1
estunedépendancedeÈ,Ì
.
Vertigo/CNAM, Paris 124
Slide245
Exemples
R (A, B, C)È= � A Æ B F
1) R1(A, B), R2(B, C)
AB Ò BC= B
AB - BC= A
BC- AB= C
Il n’y a ni la DF B Æ A, ni la DF B Æ CdansÈ Ì
Ê Décompositionavecperte d’inf ormation
Slide246
2) R1(A, B), R3(A, C)
AB Ò AC= A
AB - AC= B
A Æ B estdansÈ
(È,Ì
).Ê Décompositionsansperte d’inf ormation
Vertigo/CNAM, Paris 125
Slide247
Décompositionqui préserve lesdépendancesfonctionnelles
Définitions
1. Projectiond’un ensemblededépendancessurZ Ç U��Ó (È
) = � Ô Æ Å T È,Ì D ԯŠÉ�Ô FExemple: R(A,B,C,D) ,
È= � AB Æ C, C Æ A, A Æ D F� ¤ Î � (
È) = � AB Æ C, C Æ A F
2. Décompositionqui préserve lesDF deÈ
Soit Õ = (R1,...,Rk) unedécomposition,etÈ
unensembledeDF.Õ préserve lesDF deÈ
, si onpeutretrouver touteslesDF deÈ Ì
àpartir de
l’union Í detouteslesDF projetéesdeÈ
dans����½ ( È ) , . . . , ���\Ñ ( È ) :Í Ì =È�Ì
Slide248
Exemples
R(A,B,C,D)È= � AB Æ C, C Æ A, A Æ D F
Õ = (ABC, BD) nepréservepaslesDF deÈ
Õ = (ABC, AD) préserve lesDF deÈ
R(A,B,C)È= � A Æ B, B Æ A, A Æ C F
Õ = (AB, BC) préservelesDF deÈ
Vertigo/CNAM, Paris 126
Slide249
R(A, B, C, D)È= � A Æ B, B Æ C, AB Æ D F
La décomposition
R1(AC)
R2(AB)
R3(CD)
nepréservepaslesDF deÈ
. Pourquoi?
Slide250
Décompositiond’une relation en relations3FN
Étantdonnéun schéma(R, F) nonen3FN, i.e. avecdesanomalies,on veutune
décompositiondeR :
1. enrelations3FN
2. qui soit SPI
3. qui préserve lesDF deÈ
Vertigo/CNAM, Paris 127
Slide251
Remarque:
Ï unedécompositionSPInepréservepasforcémentlesDF et inversement
Ï le résultatnedonnepasforcémentdesrelations3FN
Théorème: Touterelationen1FNpossèdeunedécompositionenrelations3FNqui soit
SPIet préserve lesdépendancesfonctionnelles.
Slide252
Algorithme dedécomposition
OnsupposequeÈ
estunecouvertureminimale
1. PourchaqueX Æ A T È , créerunerelationdeschéma(XA) .
2. Si aucunedesclésn’estcontenuedansl’un desschémascréésdansl’étape1,
rajouterunerelationdeschéma(Y) , où Y estuneclé.
3. Si aprèsl’étape1, il existeunerelationR1 dontle schéma(X1A1) estcontenudans
le schéma(X2A2) d’uneautrerelationR2, supprimerla relationR1.
4. Remplacerlesrelations(XA1),..., (XAk) (correspondantàdesdépendances
ayantmêmemembregauche)parunerelationunique: (XA1...Ak) .
Vertigo/CNAM, Paris 128
Slide253
Exemples
1) R(A,B,C,D)È= � AB Æ C, B Æ D, C Æ A F
Clés: AB, BCÏ Étape1 : R1(ABC) R2(BD) R3(CA)Ï Étape2 : Pasla peinederajouterunerelationdeschémala clé AB :
ABestcontenuedansR1Ï Étape3 : SupprimerR3 : CA Ç ABC
Bonnedécomposition: R1(ABC) R2(BD)
Onpeutvérifier queR1 et R2sonten3eFN.
Slide254
2) R(A,B,C,D,E)È= � AB Æ C, C Æ D, C Æ A F Clés: ABE, BCEÏ Étape1 : R1(ABC) R2(CD) R3(CA)Ï Étape2 : Onrajouteunerelationdeschémapourla clé ABE: R4(ABE)Ï Étape3 : SupprimerR3 : CA Ç ABC
Bonnedécomposition: R1(ABC) R2(CD) R4(ABE)
R3 n’a pasdedépendance.Quellessontlesdépendancesdesautres?
Autr esolution :Ï Étape4 : OnremplaceR2 et R3del’étape1 parunerelationdeschéma(CAD)
Autr ebonnedécomposition: R1(ABC) R2’(CAD) R4(ABE)
Quesepasse-t-ilsi on avait choisila clé CBE?
Vertigo/CNAM, Paris 129
Slide255
3) R(A,B,C,D)È= � AB Æ C, C Æ D, C Æ A, AB Æ D F
Clés: BA, BC
La relationn’estpasen3eFormeNormale.Pourquoi?Ï Étape1 : R1(ABC) R2(CD) R3(CA) R4(ABD)Ï Étape2 : on nerajoutepasderelation: clé AB É R1(ABC)Ï Étape3 : SupprimerR3 : CA É ABCÏ Étape4 : OnremplaceR1 et R4 parR5(ABCD) Ê on peutsupprimerR2.
Décomposition: R5(ABCD)
Cettedécompositionn’estpasen3eFormeNormale.Oùestle problème?
Slide256
Forme Normale Boyce-Codd(BCNF)
Desanomaliessubsistenten3FN.
Exemple: Poste(Ville,Rue,Code) ,È
= � VR Æ C, C Æ V FClés: VR, RC
Poste ( Ville Rue Code )
Paris St Michel 75005
Paris Champollion 75005
Ê Redondanceentrele codeet la ville.
Vertigo/CNAM, Paris 130
Slide257
Définition : UnerelationestenformenormaledeBoyce-Codd(BCNF),si quelleque
soit la dépendancedeÈ
, le membredegaucheestuneclé.
Intérêt : Onaéliminétouteslesanomalies
Remarque : TouterelationBCNF esten3FN
Malheureusement, il n’existepastoujoursunedécompositionenrelationsBCNF
Ï qui soit SPI
Ï qui préserve lesDF
Slide258
L’exemplede la poste
Poste(Ville,Rue,Code) ,È
= � VR Æ C, C Æ V FClés: VR, RC
Rest3FN maisn’estpasBCNF(dansC Æ V, Cn’estpasuneclé)
Poste ( Ville Rue Code )
Sevres de Gaulle 92310
Chaville de Gaulle 92370
Vertigo/CNAM, Paris 131
Slide259
La décompositionR1(Ville,Code), R2(Rue,Code) évitela redondance
Ville,Code , elle estSPI,maiselle nepréservepasla dépendanceVR Æ C
R1 ( Ville Code ) R2 ( Rue Code )
Sevres 92310 de Gaulle 92310
Chaville 92370 de Gaulle 92370
L’insertionSevres de Gaulle 92190 , c.a.d.Sevres 92190 et de Gaulle
92190 respecteC Æ V maisnerespecteplusVR Æ C
R1 ( Ville Code ) R2 ( Rue Code )
Sevres 92310 de Gaulle 92310
Chaville 92370 de Gaulle 92370
Sevres 92190 de Gaulle 92190
Slide260ORGANISATION PHYSIQUE DESDONNEES
Vertigo/CNAM, Paris 132
Slide261
Organisationdesdonnéesenmémoiresecondaire
1. Le disqueestdiviséenblocsphysiques(oupages) detailleségales.
2. Accèsàun bloc parsonadresse(parexemplele numérodecylindre+ le numérode
secteur+ le numérodeface).
3. Le bloc estl’unité d’échangeentrela mémoiresecondaireet la mémoireprincipale
Slide262
Les fichiers
Lesdonnéessontstockéesdansdesfichiers :
Ï Un fichier occupeun ou plusieursblocssurun disque.
Ï L’accèsauxfichiersestgéréparun logiciel spécifique: le SystèmedeGestionde
Fichiers(SGF).
Ï Un fichier estcaractériséparsonnom.
Ï Enfin un fichierestun ensembled’articles.
Vertigo/CNAM, Paris 133
Slide263
Les articles
Un articleestuneséquencedechamps.
1. Articles en format fixe.
(a) La taille dechaquechampestfixée
(b) Taille et nomdeschampsdansle descripteur defichier.
2. Articles en format variable.
(a) La taille dechaquechampestvariable.
(b) L’en têtedu champdonnela taille réelle
Slide264
Articles et pages
L’adressed’un articleestconstituéede
1. L’adressedela pagedanslaquelleil setrouve.
2. Un entier: indiced’unetableplacéeendébut depagequi contientl’adresseréellede
l’article dansla page.
Vertigo/CNAM, Paris 134
Slide265
Structure interne d’une page
vers une
autre page
Article 3
Article 1
Article 2
...
PLACE LIBRE
Slide266
Opérationssur lesfichiers
1. Insérer un article.
2. Modifier un article
3. Détruir eun article
4. Rechercher un ou plusieurs article(s)Ï Par adresseÏ Par valeurd’un ouplusieurschamps.
Hypothèse: Le coût d’uneopérationestsurtoutfonctiondunombred’E/S (nbdepages)
Vertigo/CNAM, Paris 135
Slide267
Organisationdefichiers
L’or ganisationd’un fichier estcaractériséepar le modede répartition desarticles danslespages
Il existetrois organisationsprincipales:
1. Fichiersséquentiels
2. Fichiersindexés(séquentielsindexéset arbres-B)
3. Hachage
Slide268
Exemplede référence
Organisationd’un fichier contenantlesarticlessuivants:
Annie Hall 1977
Brazil 1984
Underground 1995
Easy Rider 1969
Metropolis 1926
Impitoyable 1992
Smoke 1995
Vertigo 1958
Shining 1980
Psychose 1960
Twin Peaks 1990
Casablanca 1942Greystoke 1984
Reservoir Dogs 1992
Manhattan 1979
Jurassic Park 1992
Vertigo/CNAM, Paris 136
Slide269
Organisationséquentielle
Ï Insertion : lesarticlessontstockésséquentiellementdanslespagesaufur et à
mesuredeleur création.
Ï Recherche: le fichier estparcouruséquentiellement.
Ï Destruction : recherche,puisdestruction(parmarquaged’un bit parexemple).
Ï Modification : recherche,puisréécriture.
Slide270
Coût desopérations
Nombremoyendelectures/écrituressurdisque,
Fichierde é pages.
Ï Recherche:� ¾ . Onparcourtenmoyennela moitié du fichier.
Ï Insertion : ébó Ê . Onvérifie quel’article n’existepasavantd’ écrire.
Ï Destruction et mises-à-jour:� ¾ ó Ê .
Ê organisationutiliséepourlesfichiersdepetitetaille.
Vertigo/CNAM, Paris 137
Slide271
Fichiers séquentielstriés
Unepremièreaméliorationconsisteà trier le fichier sursacléd’accès.Onpeutalors
effectuerunerecherchepardichotomie:
1. On lit la pagequi est“au milieu” du fichier.
2. Selonla valeurdela clédu premierenregistrementdecettepage,on saitsi l’article
cherchéest“avant” ou “après”.
3. On recommenceavecle demi-fichieroù setrouve l’article recherché.
Coûtdel’opération: Ö�×OØ ¾ � é�� .
Slide272
Ajout d’un index
L’opérationderecherchepeutencoreêtreamélioréeenutilisantun index surun fichier
trié . Le(s)champ(s)surle(s)quel(s)le fichier esttrié estappeléclé.
Un index estun secondfichier possédantlescaractéristiquessuivantes:
1. Lesarticlessontdescouples(Valeurdeclé,Adressedepage)
2. Uneoccurence� :�!�}� dansun index signifiequele premierarticledansla page� du
fichier trié a pourvaleurdeclé .L’index estlui-mêmetrié surla valeurdeclé.
Vertigo/CNAM, Paris 138
Slide273
Exemple
Brazil 1984
Casablanca 1942
Annie Hall 1977
Easy Rider 1969
Jurassic Park 1992
Impitoyable 1992
Manhattan 1979
Greystoke 1984
Reservoir Dogs 1992
Metropolis 1926
Psychose 1960
Shining 1980
Smoke 1995
Twin Peaks 1990
Underground 1995
Vertigo 1958
Annie Hall Greystocke Metropolis Smoke
Slide274
Rechercheavecun index
Un index permetd’accélérerlesrecherches: chercherl’article dontla valeurdeclé est ½ .1. On recherchedansl’index (séquentiellementou - mieux- pardichotomie)la plus
grandevaleur ¾ telle que ¾ �% ½ .2. On lit la pagedésignéeparl’adresseassociéeà ¾ dansl’index.
3. Onchercheséquentiellementlesarticlesdeclé ½ danscettepage.
Vertigo/CNAM, Paris 139
Slide275
Coût d’une rechercheavecou sansindex
Soitun fichier ´ contenant1000pages.On supposequ’unepaged’index contient100
entrées,et quel’index occupedonc10 pages.
Ï ´ nontrié etnonindexé. Rechercheséquentielle: 500pages.
Ï ´ trié et nonindexé. Recherchedichotomique: Ö�×OØ ¾ � Ê�×.×.× � =10pages
Ï ´ trié et indexé. Recherchedichotomiquesurl’index, puislectured’unepage:Ö�×OØ ¾ � Ê�× �Bó Ê = 5 pages
Slide276
Autresopérations: insertion
Etantdonnéun article ª declé ½ , on effectued’abordunerecherchepoursavoir dans
quellepage] il doit êtreplacé.Deuxcasdefigure:
1. Il y uneplacelibre dans] . Danscecason réorganisele contenude ] pourplacer ªà la bonneplace.
2. Il n’y a plusdeplacedans] . Plusieurssolutions,notamment: créerunepagededébordement.
NB : il fautéventuellementréorganiserl’index.
Vertigo/CNAM, Paris 140
Slide277
Autresopérations: destructionset mises-à-jour
Relativementfacileengénéral:
1. On recherchel’article.
2. Onappliquel’opération.
Ê on peutavoir à réorganiserle fichieret/oul’index, cequi peutêtrecouteux.
Slide278
Séquentielindexé: définition
Un index estun fichier: on peutlui-mêmel’indexer:
1. On trie le fichier surla clé.
2. On répartitlesarticlestriésdansé pages,enlaissantdela placelibre danschaque
page.
3. Onconstitueun index àplusieursniveauxsurla clé.
Ê on obtientunarbr edontlesfeuillesconstituentle fichier et lesnoeudsinternes
l’index.
Vertigo/CNAM, Paris 141
Slide279
Reservoir Dogs 1992
Metropolis 1926
Psychose 1960
Shining 1980
Smoke 1995
Twin Peaks 1990
Underground 1995
Vertigo 1958
Brazil 1984
Casablanca 1942
Annie Hall 1977
Easy Rider 1969
Jurassic Park 1992
Impitoyable 1992
Manhattan 1979
Greystoke 1984
SmokeGreystockeAnnie Hall Metropolis
Annie Hall Metropolis
Index niveau 1
Index niveau 2
Slide280
Index denseet index non dense
L’index ci-dessusestnon dense: uneseulevaleur de clédansl’index pourl’ensemble
desarticlesdufichier indexé Ù situésdansunemêmepage.
Un index estdensessiil existeunevaleurdeclé dansl’index pourchaquearticledansle
fichier Ù .
Remarques:
1. Onnepeutcréerun index non-densequesurun fichier trié (et un seulindex
non-denseparfichier).
2. Un index non-denseestbeaucoupmoinsvolumineuxqu’un index dense.
Vertigo/CNAM, Paris 142
Slide281
Exempled’index dense
Reservoir Dogs 1992
Metropolis 1926
Psychose 1960
Shining 1980
Smoke 1995
Twin Peaks 1990
Underground 1995
Vertigo 1958
Brazil 1984
Casablanca 1942
Annie Hall 1977
Easy Rider 1969
Jurassic Park 1992
Impitoyable 1992
Manhattan 1979
Greystoke 1984
19771926 1942 1958 1960 1969 199519921990198419801979
1926 1979
Slide282
Inconvénientsdu séquentielindexé
Organisationbienadaptéeauxfichiersqui évoluentpeu.Encasdegrossissement:
1. Unepageesttroppleine Ú oncréeunepagededébordement.
2. Onpeutaboutirà deschaînesdedébordementimportantespourcertainespages.
3. Le tempsderéponsepeutsedégraderet dépenddel’article recherchéÛ on a besoind’unestructurepermettantuneréorganisationdynamiquesans
dégradationdeperformances.
Vertigo/CNAM, Paris 143
Slide283
Arbr es-B
Un arbre-B(pour ÜmÝRÞ²ÝRß\àmáNâ�ã)ä�áNá ou arbr eéquilibré) estunestructurearborescentedans
laquelletouslescheminsdela racineauxfeuillesont mêmelongueur.
Si le fichier grossit: la hiérarchiegrossitpar le haut.
L’arbre-Bestutilisédanstous lesSGBDrelationnels(avecdesvariantes).
Slide284
Arbr e-B: définition
Un arbre-Bd’ordr ek estun arbreéquilibrétel que:
1. Chaquenoeudestunepagecontenantaumoins å et auplus æ�å articles,å2ç=è .
2. Lesarticlesdansun noeudsonttriéssurla clé.
3. Chaque“père” estun index pourl’ensembledesesfils.
4. Chaquenoeudcontenantß articlesa ßAé�ê fils.
5. La racinea 0 ou aumoinsdeuxfils.
Vertigo/CNAM, Paris 144
Slide285
Structure d’un noeuddansun arbre-B d’ordr e ë
C1 R1 ...C2 R2 Cn Rn
P1 P2 Pn Pn+1
Les ì®í sontlesclésdesarticles,les î¹í représententle restedesattributsd’un articlede
clé ì í . Les ï í sontlespointeursverslesnoeudsfils dansl’index. NB : å2ðGßñð%æOå .
Slide286
Exempled’un arbre-B
Annie HallReservoir Dogs
Easy Rider
Jurassic Park
Casablanca Smoke
Metropolis Manhattan Impitoyable Greystoke
Underground Vertigo
Psychose
Brazil Twin PeaksShining
Vertigo/CNAM, Paris 145
Slide287
Recherchedansun arbre-B
Rechercherlesarticlesdeclé ì . A partir dela racine,appliquerrécursivement
l’algorithmesuivant:
Soit ì�ò�ó0ô@ô@ô�ìpõ lesvaleursdeclésdela pagecourante.
1. Chercherì dansla pagecourante.Si ì y est,accéderauxvaleursdesautres
champs,Fin.
2. Sinon,Si ì÷ö%ì�ò (ou ì�ø�ì®õ ), on continuela rechercheavecle noeudréférencé
par ï ò (ou ï õ�ùfò ).3. Sinon,il existe úyç»û�ê�ó�å\û tel que ì í ö�ì�ö�ì í�ùfò , on continueavecla page
référencéeparle pointeurï}í�ùfò .
Slide288
Insertion dansun arbre-B d’ordr e ëOnrecherchela feuille del’arbreoù l’article doit prendreplaceet on l’y insère.Si la
pageü déborde(ellecontient æ�åÄé�ê éléments):
1. OnalloueunenouvellepageüSý .2. Onplaceles å premiersarticles(ordonnésselonla clé)dansü et les å derniersdansüSý .3. On insèrele åÄé�ê<þ articledansle pèrede ü . Sonpointeurgaucheréférenceü , et son
pointeurdroit référenceüSý .4. Si le pèredébordeàsontour, on continuecommeen1.
Vertigo/CNAM, Paris 146
Slide289
Destruction dansun arbre-B d’ordr e ëChercherla pageü contenantl’article. Si c’estunefeuille :
1. Ondétruit l’article.
2. S’il resteaumoins å articlesdansü , c’estfini. Sinon:
(a) Si unefeuille “soeur” contientplusde å articles,oneffectueunepermutation
pourrééquilibrerlesfeuilles.Ex: destructionde ÿ����åcá .(b) Sinonon “descend”unarticledupèredansü , et on réorganisele père.
Ex: destructionde î á��<á<ä����NúMä � ���
Slide290
Supposonsmaintenantqu’ondétruiseun articledansun noeudinterne.Il faut
réorganiser:
1. Ondétruit l’article
2. On le remplaceparl’article qui a la plusgrandevaleurdeclé dansle sous-arbre
gauche.Ex: destructionde ï��� Pà������<á , remplaçépar �Vá<ã)ä���ü���ÞIú��3. Onvient deretirerun articledansunefeuille : si elle contientmoinsde å éléments,
on procèdecommeindiquéprécédemment.Û toutedestructiona doncun effet seulementlocal.
Vertigo/CNAM, Paris 147
Slide291
Quelquesmesurespour l’arbr e-B
Hauteur� d’un arbre-Bd’ordre å contenantß articles:��������� ùfò�� ß é�ê� ®ð!��ð �"���#� ùfò�� õùfò� Exemplepour å%$�ê�&�& :
1. si �'$·æ , ßñð)(+*ñê�&�,2. si �'$.- , ßñðrêOó0/+*ñê�&�1
Lesopérationsd’accèscoûtentaumaximum � E/S.
Slide292
Variante de l’arbr e-B
1. l’arbreB contientà la fois l’index et le fichier indexé.
2. Si la taille d’un articleestgrande,chaquenoeudencontientpeu,cequi augmentela
hauteurdel’arbre
3. on peutalorsséparerl’index (ArbreB) dufichier: stocker lesarticlesdansun fichierÙ , remplacerl’article î í danslespagesdel’arbreparun pointeurversl’article dansÙ .
Vertigo/CNAM, Paris 148
Slide293
L’arbr e B+
Inconvénientdel’arbreB (etdesesvariantes:
Lesrecherchessurdesintervallesdevaleurssontcomplexes.
D’où l’arbr e-B+: seuleslesfeuilles de l’arbr epointent sur lesarticles du fichier. De
pluscesfeuillessontchaînéesentreelles.
Variante: lesfeuilles contiennentlesarticles.
Slide294
Exempled’un arbre-B+
Underground
Vertigo
Twin Peaks
Shining
Psychose
Jurassic Park Manhattan
Metropolis
GreystokeImpitoyable
Casablanca
Easy Rider
Annie Hall
Brazil
Brazil : Article
Brazil : cle
Brazil
Easy Rider
Jurassic Park
Psychose
Metropolis Shining Twin PeaksImpitoyable
Reservoir Dogs Smoke
Smoke
Vertigo/CNAM, Paris 149
Slide295
Hachage
Accèsdirectà la pagecontenantl’article recherché:
1. Onestimele nombreè depagesqu’il fautalloueraufichier.
2. fonction dehachage2 : àtoutevaleurdelaclédedomaine3 associeunnombreentre0et è)4uê .
265�3�Ú87�&>ó0ê�ó@ô0ô@ô�ó�è94%ê�:3. Onrangedansla pagedenuméroú touslesarticlesdontla clé à esttelle que
2 � à� ;$�ú .
Slide296
Exemple: hachagesur le fichier <>=�?�@.A
Onsupposequ’unepagecontient4 articles:
1. Onalloue5 pagesaufichier.
2. Onutilise unefonctiondehachage2 définiecommesuit:
(a) clé: nomd’un film, on nes’intéressequ’à l’initiale decenom.
(b) On numéroteleslettresdel’alphabetde1 à26: è>� � ýºÝPýB ;$�êOó�è>� � ýC�§ýB ;$�ê- ,etc.
(c) Si Þ estunelettredel’alphabet,2 � ÞD ;$E�GF �IHKJ F � è>� � ÞL �ó�M� .
Vertigo/CNAM, Paris 150
Slide297
1
0
2
3
4
Annie Hall 1977Jurassic Park 1992
Impitoyable 1992
Reservoir Dogs 1992
Underground 1995
Psychose 1960
Brazil 1984
Vertigo 1958
Greystoke 1984
Manhattan 1979
Twin Peaks 1990
Easy Rider 1969
Smoke 1995
Shining 1980
Metropolis 1926
Casablanca 1942
Repertoire
Slide298
Remarques
1. Le nombre2 � àN ;$�ú n’estpasuneadressedepage,maisl’indice d’1 tableou
“répertoire” î . î � úO contientl’adressedela pageassociéeà ú2. si cerépertoirenetient pasenmémoirecentrale,la recherchecoûtepluscher.
3. Unepropriétéessentiellede 2 estquela distributiondesvaleursobtenuessoit
uniformedans7�&>ó0ô@ô@ô�è94%ê�:4. Quandon alloueunnombreè depages,il estpréférabledeprévoir un remplissage
partiel(nonuniformité,grossissementdufichier). Onachoisi5 pagesalorsque4 (16
articles/ 4) auraientsuffi.
Vertigo/CNAM, Paris 151
Slide299
Hachage: recherche
Etantdonnéunevaleurdeclé � :
1. OncalculeúP$Q2 � �# .2. Onconsultedansla caseú du répertoirel’adressedela pageü .3. On lit la pageü et on y recherchel’article.Û donc une recherchene coûtequ’une seulelecture.
Slide300
Hachage: insertion
Recherchepar 2 � àN la pageü où placer R et l’y insèrer.
Si la pageü estpleine,il faut:
1. Allouer unenouvellepageü�ý (dedébordement).
2. ChaînerüSý à ü .3. InsérerR dansü�ý .Û lors d’unerecherche,il fautdoncenfait parcourirla listedespageschaînées
correspondantàunevaleurde 2 � �# .Moins la répartitionestuniforme,plusil y auradedébordements
Vertigo/CNAM, Paris 152
Slide301
1
0
2
3
4
Annie Hall 1977Jurassic Park 1992
Impitoyable 1992
Reservoir Dogs 1992
Underground 1995
Psychose 1960
Brazil 1984
Vertigo 1958
Greystoke 1984
Manhattan 1979
Twin Peaks 1990
Easy Rider 1969
Smoke 1995
Shining 1980
Metropolis 1926
Casablanca 1942
Repertoire
Citizen Kane 1941
Slide302
Hachage: avantageset inconvénients
Intérêtdu hachage:
1. Très rapide. UneseuleE/Sdansle meilleurdescaspourunerecherche.
2. Le hachage,contrairementàun index, n’occupeaucuneplacedisque.
En revanche:
1. Il fautpenserà réorganiserlesfichiersqui évoluentbeaucoup.
2. Les recherchespar intervalle sont impossibles.
Vertigo/CNAM, Paris 153
Slide303
Comparatif
Organisation Coût Avantages Inconvénients
Sequentiel õ � Simple Trèscoûteux!
Indexé�"����� � ßS Efficace Peuévolutive
Intervalles
Arbre-B����� � � ßS Efficace Traversée
Intervalles
Hachage 1+ Le plusefficace Intervallesimpossibles
Slide304OPTIMISA TION
Vertigo/CNAM, Paris 154
Slide305
Pourquoi l’optimisation ?
LeslangagesderequêtesdehautniveaucommeSQL sontdéclaratifs. L’utilisateur:
1. indiquecequ’il veutobtenir.
2. n’indiquepascomment l’obtenir.
Doncle systèmedoit fairele reste:
1. Déterminerle (ou les)chemin(s)d’accèsauxdonnées,
lesstratégiesd’évaluationdela requête
2. Choisir la meilleure. Ouunedesmeilleures. . .
Slide306
L’optimisation sur un exemple
Considéronsle schéma:
ìKTRè>UV�WR � ì¹úMßYXáN�§Ý�ó0R�âOä�á���<áRó0Z)Xá<ä�ÝRß�ã[ ÿPR J\J U � ì¹úMßYXá]�§Ý�ó�è>�ÿ[ÝPÞ²ÞIáRó�ì Ý<üSÝPà�úMã^XáN avecleshypothèses:
1. Il y a 300n-upletsdansCINEMA, occupant30 pages.
2. Il y a 1200n-upletsdansSALLE, occupant120pages.
Vertigo/CNAM, Paris 155
Slide307
Expressiond’une requête
Onconsidèrela requête:
R�âOäNá����<á�âRá���à�úMß_Xá��=Ý#��Ý� cÝRß�ã}âRá��`�<ÝPÞIÞIá���âRáyü�Þbac�~âOáuêM�&pü�ÞIÝPàmá��EnSQL,cetterequêtes’exprimedela manièresuivante:
SELECTAdresse
FROM CINEMA, SALLE
WHERE capacitéø 150
AND CINEMA.cinéma= Salle.cinéma
Slide308
En algèbre relationnelle
Traduitenalgèbre,on aplusieurspossibilités.Envoici deux:
1. d�e í�õ�fþ[gih �kj e h0l�h]m í�nfþpo òOq0r � ìKTOè>UY�WR.s ÿPR J\J UV [ 2. d e í�õ�fþ[gih � ìKTRè>UV�WREs j e h0l�h]m íCn�fþpo ò[q[r � ÿPR J\J UV [
Soitunejointuresuivie d’unesélection,ou l’in verse.
Vertigo/CNAM, Paris 156
Slide309
Evaluation descoûts
Onsupposequ’il n’y a que5% desallesdeplusde150places.
1. Jointure: on lit 3600pages(120x30);commeon projète
surtouslesattributsdeCinéma,onobtient5% de120pages,soit 6 pages.
Nombred’E/S: 3600+ 120x2+ 6 = 3846.
2. Sélection: on lit 120pageseton obtient6 pages.Jointure:
on lit 180pages(6x30)et on obtient6 pages.
Nombred’E/S: 120+ 6 + 180+ 6 = 312.Û la deuxièmestratégieestdeloin la meilleure!
Slide310
Optimisation de requêtes: premièresconclusions
1. Il fauttraduir eunerequêteexpriméeavecun langagedéclaratifenunesuite
d’opérations(typiquementlesopérateursdel’algèbrerelationnelle).
2. En fonction(i) descoûtsdechaqueopération(ii) descaractéristiquesdela base,(iii)
desalgorithmesutilisés,on chercheàestimerla meilleurestratégie.
3. Onobtientle plan d’exécutiondela requête.Il n’y aplusqu’à le traiterauniveau
physique.
Vertigo/CNAM, Paris 157
Slide311
Lesparamètresde l’optimisation
Commeon l’a vu surl’exemple,l’optimisations’appuiesur:
1. Desrèglesde réécritur edesexpressionsdel’algèbre.
2. Desconnaissancessur l’or ganisationphysiquedela base(index, hachage,.. . )
3. Desstatistiquessurlescaractéristiquesdela base(taille desrelationsparexemple).
Un modèlede coût permetdeclasserlesdifférentesstratégiesenvisagées
Slide312
Ar chitecture d’un SGBD et Optimisation
LES ETAPESDU TRAITEMENT D’UNE REQUÊTE
Requête SQL
TRAITEMENT
Accès aux fichiers
Evaluation des coûts
Choix des algorithmes
OPTIMISATION
DECOMPOSITION
Expression de l’Algèbre Rel.
Plan d’Exécution
COUCHE LOGIQUE
COUCHE PHYSIQUE
Analyse/Simplification
Traduction algébrique
Vertigo/CNAM, Paris 158
Slide313Décompositionde requêtes
Slide314
Analysesyntaxique
Onvérifie la validité (syntaxique)dela requête.
1. Contrôledela correctiongrammaticale.
2. Vérificationdel’existencedesrelationset desnomsd’attributs.Û on utilise le “dictionnaire”dela base.
Vertigo/CNAM, Paris 159
Slide315
Simplification
D’autrestypesdetransformationsavantoptimisation.Citons:
1. L’analysesémantiquedétectelesincohérencesou lescontradictions(exemple:
“ è>�ÿyÝRÞ²ÞIát$�ê�êiR�è � èu�ÿ[ÝPÞIÞIát$�ê<æ ”).2. Simplification declausesinutilementcomplexes.Exemple:
� R.F î·èuFwvyxY �R�è � x estéquivalentà RQR�è � x .
3. Enfin la requêteestnormaliséepourfaciliter la traductionalgébrique.
Slide316
Traduction algébrique
Déterminerl’expressionalgébriqueéquivalenteà la requête:
1. argumentsdu SELECT: projections.
2. argumentsdu WHERE: è>����R�ã)ã)äPêz$rè>����R�ã)ã)äæ correspondengénéralà une
jointure, è>����R�ã)ã)ä�$�à]�NßS�0ã�ÝRß�ã�á àunesélection.
Onobtientuneexpressionalgébriquequi peutêtrereprésentéeparun arbr ede requête.
Vertigo/CNAM, Paris 160
Slide317
Traduction algébrique: exemple
Considéronsl’exemplesuivant:{ a�áNÞL�i|�úMÞk���[üSÝ#���0á<ß�ã}Ý�a îKU~}��Ý?æ�&~�.áa�äNá����SELECTfilm
FROM Cinéma,Salle,Séance
WHERE Cinéma.nom-cinéma= ’Le Rex’
AND Séance.heure-début = 20
AND Cinéma.nom-cinéma= Salle.nom-cinéma
AND Salle.salle= Séance.salle
Slide318
Expressionalgébriqueet arbre de requête
d^� íC� g �Dj��i� g��S���.þ��c�S���B�#�<þO���þ��c� fþO�L� n � � r �[� ìKTOè>UY�WREs ÿ;R J\J UV Ps ÿ;U�R�è ìKUY [ πfilm
σheure-début=20 nom=’Le REX’
CINEMA SALLE SEANCE
Vertigo/CNAM, Paris 161
Slide319
Restructuration
Il y a plusieursexpressionséquivalentespourunemêmerequête.
ROLE DE L’OPTIMISEUR
1. Trouver lesexpressionséquivalentesàunerequête.
2. Lesévalueretchoisir la meilleure.
Onconvertit uneexpressionenuneexpressionéquivalenteenemployantdesrèglesderéécritur e.
Slide320
Règlesde réécriture
Il enexistebeaucoup: envoici 8 parmilesplusimportantes.
1. Commutativité desjointur es:î�sGÿ���ÿ�s î2. Associativité desjointur es:
� îWs ÿ; ;s�vQ��îWs � ÿ�s�vz 3. Regroupementdessélections:
j�� ���Bhp�"��� ���B�L� � î~ \� j�� ���Bhp� �kj �����B�L� � î~ 0 4. Commutativité de la sélectionet de la projectiond �S¡p¢ �c£p¢ ÒiÒiÒ �^¤ �kj �c¥ � � h � î~ [ \� j �c¥ � � h � d �S¡p¢ �c£p¢ ÒiÒiÒ �^¤ � î~ [ mó¢ú®çu7Rê�ó@ô0ô@ômó²ü�:5. Commutativité de la sélectionet de la jointur e.
j�� ���Bhp� � î � ô0ô@ô0R ô@ô@ô \sGÿ; ;� j�� ����h]� � î~ ;sGÿ
Vertigo/CNAM, Paris 162
Slide321
6. Distrib utivité de la sélectionsur l’union .
j � � � h � � î)¦§ÿ; ;� j � � � h � � î~ �¦ j � � � h � � ÿ; NB : valableaussipourla différence.
7. Commutativité de la projection et de la jointur ed �S¡ ÒiÒiÒ �^¤ � ¡ ÒiÒiÒ ��§ � î�s �c¥ �S�©¨ ÿ; ;�d � ¡ ÒiÒiÒ � ¤ � î~ ;s � ¥ ��� ¨ d � ¡ ÒiÒiÒ � § � ÿ\ [ �úyçª7Rê�ó@ô0ô@ô�ó²ü�:Oó¬«,çª7OêOó@ô@ô0ômó0�:8. Distrib utivité de la projection sur l’uniond � ¡ � £ ÒiÒiÒ � ¤ � î!¦2ÿ\ ;�yd � ¡ � £ ÒiÒiÒ � ¤ � îK S¦'d � ¡ � £ ÒiÒiÒ � ¤ � ÿ;
Slide322
Exempled’un algorithme de restructuration
Voici un algorithmebasésurlespropriétésprécédentes.
1. Séparerlessélectionsavecplusieursprédicatsenplusieurssélectionsà un prédicat
(règle3).
2. Descendrelessélectionsle plusbaspossibledansl’arbre (règles4, 5, 6).
3. Regrouperlessélectionssurunemêmerelation(règle3).
4. Descendrelesprojectionsle plusbaspossible(règles7 et 8).
5. Regrouperlesprojectionssurunemêmerelation.
Vertigo/CNAM, Paris 163
Slide323
Arbr e de requêteaprèsrestructuration
σ (CINEMA)nom=’Le REX’
πnom
πfilm
σheure-début=20
(SEANCE)SALLE
π
π
πnom,salle
salle
salle,film
Slide324
Quelquesremarquessur l’algorithme précédent
L’idée debaseestderéduirele plusrapidementpossiblela taille desrelations
manipulées.Donc:
1. Oneffectuelessélectionsd’abordcaronconsidèrequec’estl’opérateurle plus
“réducteur”.
2. Onéliminedèsquepossiblelesattributsinutilesparprojection.
3. Enfin on effectuelesjointures.
Le planobtenuest-il toujoursoptimal? NON !!!
Vertigo/CNAM, Paris 164
Slide325
Un contre-exemple
Quelssont lesfilms visiblesentre14het 22h?
Voici deuxexpressionsdel’algèbre,dontl’une “optimisée”:
1. d � í�� g �kj ���c� fþ[�L� n o òO® �#���©� fþ[�D� n¬¯ �0� � Ù~T J �°s ÿPUVR�è ìKUV 0 2. d^� í�� g � Ù~T J �±s j ���c� fþO�L� n o òO® �#���©� fþ[�D� n¬¯ �0� � ÿPUVR�è ìKUV 0
La relationFILM occupe8 pages,la relationSEANCE50.
Slide326
Evaluation descoûts
Hypothèses: (i) 90% desséancesont lieu entre14 et 22heures,(ii) seulement20% des
films sontà l’affiche.
1. Jointure: on lit 400pageset on aboutità 10pages(20%de50 pages).Sélection: on
seramèneà 9 pages.
Nombred’E/S: 400+ 10x2= 420.
2. Sélection: on lit 50pageset on aboutità 45pages.Jointure: on lit 360pageset on
aboutità9 pages.
Nombred’E/S: 50 + 45x2+ 360= 500.Û la premièrestratégieestla meilleure! Ici la jointureestplusréductricequela
sélection(casrare).
Vertigo/CNAM, Paris 165
Slide327
Traduction algébrique: conclusion
La réécriturealgébriqueestnécessairemaispassuffisante.L’optimiseurtient également
compte:
1. Descheminsd’accèsauxdonnées.
2. Desdifférentsalgorithmesimplantantunemêmeoperationalgébrique.
3. De propriétésstatistiquessurla base.
Slide328
Les cheminsd’accès
Ils dépendentdesorganisationsdefichiersexistantes:
1. Balayageséquentiel
2. Parcoursd’index
3. Accèsparhachage
Attention! Danscertainscasunbalayagepeutêtrepréférableà un parcoursd’index.
Vertigo/CNAM, Paris 166
Slide329
Algorithmes pour lesopérationsalgébriques
Il existesouventplusieursalgorithmespourimplanteruneopération.Exemple : la
jointure.
1. Bouclesimbriquéessimple
2. Bouclesimbriquéesavecaccèsàunedesrelationsparindex ouparhachage.
3. Tri-fusion
4. Jointureparhachage
5. etc.
Le choixdépendessentiellement- maispastotalement- duchemind’accèsdisponible.
Slide330
Algorithmes de jointur e
En l’absenced’index, lesprincipauxalgorithmessont:
1. Bouclesimbriquées.
2. Tri-fusion.
3. Jointureparhachage.
Vertigo/CNAM, Paris 167
Slide331
Jointure par bouclesimbriquées
A utiliser quandlestaillesdesrelationssontpetites.
Soit lesdeuxrelationsî et ÿ :
ALGORITHME boucles-imbriquéesbegin²
:= ³for each ä in î
for each � in ÿif r et ssontjoignablesthen
²:=
²+ { ä~s)� }
end
Slide332
Exemplede jointur e par bouclesimbriquées
Spielberg Jurassic ParkHitchcock Psychose
Lang Metropolis Allen Manhattan
Hitchcock VertigoAllen Annie HallKubrik Shining
Spielberg Jurassic ParkHitchcock Psychose
Lang Metropolis Allen Manhattan
Hitchcock VertigoAllen Annie HallKubrik Shining
Comparaison
Association
Vertigo 1958
Annie Hall 1977
Brazil 1984 .......
Vertigo/CNAM, Paris 168
Slide333
Analyse
La boucles’effectueenfait àdeuxniveaux:
1. Au niveaudespagespourleschargerenmémoire.
2. Au niveaudesarticles despageschargéesenmémoire.
Du pointdevueE/S,c’estla premièrephasequi compte.Si v � et v�´ représententle
nombredepagesde î et ÿ respectivement,le coûtdela jointureest:
v � *µv�´Onnetientpascomptedansl’évaluationdu coûtdesalgorithmesdejointure,du coût
d’écrituredu résultatsurdisque,lequeldépenddela taille du résultat.
Slide334
Jointure par tri-fusion
Soit l’expressiond � Ò � l ¢ ´ Ò ��¶ � î�s � ¥ ��� ¨ ÿ; .Projeter î sur{ R l ó�R í }Trier î sur R�íProjeter ÿ sur{ x ¶ ó�xi· }Trier ÿ sur x`·Fusionner lesdeuxlistestriées.
On lesparcourtenparallèleenjoignantlesn-upletsayantmêmevaleurpour R�í et x`· .
Vertigo/CNAM, Paris 169
Slide335
Annie Hall 1977Brazil 1984Easy Rider 1969Greystoke 1984Jurassic Park 1992
Metropolis 1926Manhattan 1979
Psychose 1960....
Allen Annie HallSpielberg Jurassic Park
Allen ManhattanLang MetropolisHitchcock PsychoseKubrik ShiningHitchcock Vertigo
Fichiers Artistes
TRI
FUSION
TRI
Fichier films
....Spielberg Jurassic Park 1992
Allen Annie Hall 1977
Slide336
Tri-fusion : performance
Le coûtestdominéparla phasedetri :
F � àmÝRä�â � îK `* �"��� � àmÝRä�â � î~ [ }é àmÝRä�â � ÿ; `* �"��� � àmÝRä�â � ÿ; [ 0 .Dansla secondephase,un simpleparcoursenparallèlesuffit.
Cetalgorithmeestparticulièrementintéressantquandlesdonnéessontdéjàtriéesen
entrée.
Vertigo/CNAM, Paris 170
Slide337
Pourdesgrandesrelationset enl’absenced’index, la jointurepartri-fusion présenteles
avantagessuivants:
1. Efficacité : bienmeilleurequelesbouclesimbriquées.
2. Manipulation de donnéestriées: facilite l’élimination dedupliquésou l’affichage
ordonné.
3. Très général: permetdetraitertouslestypesde ¸ -jointure
Slide338
Jointurepar hachage
Commele tri-fusion, la jointureparhachagepermetdelimiter le nombrede
comparaisonsentren-uplets.
1. Unedesrelations,î�ê , esthachéesurl’attribut dejointureavecunefonction 2 .
2. La deuxièmerelationestparcourueséquentiellement.Pourchaquen-uplet,on
consultela pageindiquéeparapplicationdela fonction 2 eton regardesi elle
contientdesn-upletsde î�ê . Si oui on fait la jointurelimitéeà cesn-uplets.
Vertigo/CNAM, Paris 171
Slide339
Jointure par hachage: algorithme
Pourunejointure îWs � ��� ÿ .
Pour chaquen-uplet ä de î fair eplacerä dansla pageindiqu eepar 2 � ä�ô Rw
Pour chaque n-uplet � de ÿ fair ecalculer 2 � �Oô xY
lire la pageü indiqu eepar 2 � ��ô xY effectuerla jointureentre 7���: et lesn-upletsde ü
Slide340
Jointurepar hachage: discussion
Coût(enE/S),ensupposantå articlesparpageet un tamponde2 pagesenmemoire
centrale(dansle pire descas):
1. Phase1: Coûtdu hachagede î�ê : v � òvé æ_*�åI*Iv � ò .2. Phase2: Lecturede îÄæ . Pourchaquepage,on lit å pagesdela relationhachéeî�ê .
Coût= �[� êpé æOå� �*µv � òN &é �[� ê~é å� �*µv � � Si î�ê tientenmémoirecentrale,le coûtseréduità v � ò[é�v � � .NB : contrairementautri-fusion, la jointureparhachagen’estpasadaptéeauxjointures
avecinégalités.
Vertigo/CNAM, Paris 172
Slide341
Jointureavecune table indexée
1. Onparcourtséquentiellementla relationsansindex.
2. Pourchaquen-uplet,on rechercheparl’index lesn-upletsdela seconderelationqui
satisfontla conditiondejointure(traverséedel’index et accèsauxnupletsdela
seconderelationparadresse)
Slide342
Bouclesimbriquéesavecune table indexée
ALGORITHME boucles-imbriquées-indexbegin²
:= ³for each ä in î
for each � in TOß\âOá¹^´�º � ä�ô Rw ²:=
²+ { ä�s»� }
end
La fonction TOß\âOṩ´�º � ä�ô Rw donnelesnupletsde ÿ dontl’attribut B apourvaleur ä�ô R en
traversantl’index de ÿ sur x
Coût: F � àmÝRä�â � î~ i*§Þk� � àmÝRä�â � ÿ; 0 [ .
Vertigo/CNAM, Paris 173
Slide343
Jointure avecdeux tablesindexées
Si lesdeuxtablessontindexées,on peututiliserunevariantedel’algorithmede
tri-fusion:
1. On fusionnelesdeuxindex (déjàtriés)pourconstitueruneliste � î�ú)âSó�ÿ�ú)â� de
couplesd’adressespourlesarticlessatisfaisantla conditiondejointure.
2. Onparcourtla liste enaccédantauxtablespourconstituerle résultat.
Inconvénient: on risquedelire plusieursfois la mêmepage.Enpratique,on préfère
utiliseuneboucleimbriquéeenprenantla pluspetitetablecommetabledirectrice.
Slide344
Statistiques
Permettentd’ajusterle choixdel’algorithme.Par exemple:
1. Bouclesimbriquéessimplessi lesrelationssontpetites.
2. Balayageséquentielaulieu deparcoursd’index si la sélectivité estfaible.
Suppose
1. Soit l’existenced’un modulerécoltantpériodiquementdesstatistiquessurla base
2. Soit l’estimationentempsréeldesstatistiquesparéchantillonnage.
Vertigo/CNAM, Paris 174
Slide345
Plansd’exécution
Le résultatdel’optimisationestun plan d’exécution: c’estun ensembled’opérationsde
niveauintermédiaire,dit algèbre“ph ysique” constituée:
1. De cheminsd’accèsauxdonnées
2. D’opérationsmanipulantlesdonnées,(correspondantauxnoeudsinternesdel’arbre
derequête).
Plansd’exécutionsurla requête:{ a�áNÞL�i|�úMÞk���[üSÝ#���0á<ß�ã}Ý�a îKU~}��Ý?æ�&~�.áa�äNá����
Slide346
Algèbrephysique
Selection
Tri
Filtre
Jointure
ProjectionFusion
Filtre d’un ensemble en fonction d’un autre
Selection selon un critere
Tri sur un attribut Jointure selon un critere
Fusion de deux ensembles tries Projection sur des attributs
Attribut(s)
Critere Critere
Critere
Critere Attribut(s)
OPERATIONS PHYSIQUES
Parcours sequentiel
Acces par adresse
Parcours d’index
CHEMINS D’ACCES
TABLE
INDEX
Attribut(s)
Sequentiel
TABLE
Adresse
Vertigo/CNAM, Paris 175
Slide347
Sansindex ni hachage
Projection
Fusion
Tri
Cinema
Sequentiel
Salle
Sequentiel Sequentiel
Seance
Selection
Horaire=20
Selection
’Le Rex’
Tri Tri Tri
ID_cinema ID_cinema ID_seance
Fusion
ID_seance
Slide348
Avecun index sur touteslesclés
cinema
Sequentiel Id_cinema
Index Salle(ID_cinema)
Salle
Adresse
Index Seance(ID_salle)
Id_salle
Adresse
Seance
Jointure
Selection
’Le Rex’
Selection
20 H
Jointure
Projection
Vertigo/CNAM, Paris 176
Slide349Evaluation de requêtes
Slide350
En quoi consistel’évaluation d’une requête
Le résultatdel’optimisationestun pland’exécution,i.e. uneséquenced’opérationsà
exécuter. Ondoit maintenant:
1. Appliquerlestechniquesd’accèsappropriéespourchaqueopérateur.
2. Gérerlesflots dedonnéesentrechaqueopération
Lesalgorithmes,techniquesd’accèset heuristiquesmiseenoeuvrerelèventde
l’évaluation de requêtes.
Vertigo/CNAM, Paris 177
Slide351
Objectifs de l’évaluation de requêtes
Dansl’hypothèsed’unebasecentralisée,on chercheessentiellementà limiter le nombre
d’entrées/sorties.La stratégieemployéedépendcependantfortementdu pointdevue
adopté:
1. Soit on chercheà obtenirle premierenregistrementle plusvite possible(exemple
d’uneapplicationinteractive).
2. Soit on chercheà minimiserle tempsglobald’exécution(exempled’uneapplication
batch).
Selonle cas,le choixdesalgorithmespeutvarier.
Slide352
Plan de la présentation
Onvaétudiersuccessivementlespointssuivants:
1. Techniquesd’accès: parcoursséquentiels,parcoursd’index, gestiondela mémoire
centrale.
2. Algorithmes de base: tri, hachage,fusion.
3. Implantation desopérateursalgébriques: sélection,jointure,agrégation.
4. Flots de donnéesentreopérateurs.
Vertigo/CNAM, Paris 178
Slide353
Exemplede référence
Les films Les metteurs en scène
Spielberg Jurassic ParkHitchcock Psychose
Allen ManhattanLang MetropolisHitchcock VertigoAllen Annie HallKubrik Shining
Underground 1995
Brazil 1984Annie Hall 1977
Jurassic Park 1992
Vertigo 1958
Twin Peaks 1990
Metropolis 1926Psychose 1960Greystoke 1984Shining 1980
Easy Rider 1969Manhattan 1979
Slide354Techniquesd’accès
Vertigo/CNAM, Paris 179
Slide355
Techniquesd’accès: parcours séquentiel
SystématiquementoptimisédanslesSGBDenutilisantlestechniquessuivantes:
1. Regroupementdespagesdisquessurdesespacescontigus(nomméssegmentsou
extensions).
2. Lectureà l’avance: quandon lit unepage,onprendégalementles ¼ (typiquement
¼¾½�¿ ou ¼>½WÀ�Á ) suivantesdansle segment.
 l’unité d’E/S dansun SGBDestdoncsouventunmultiple decelledugestionnairede
fichier sous-jacent.
Slide356
Techniquesd’accès: parcours d’index
La plupartdesSGBDutilisentunedesvariantesde
l’arbreB. Outrelesrecherchesparclésetparintervalle, ils permettent:
1. D’éviter l’accèsauxdonnéesquandla valeurrecherchéeestdansl’index.
2. De fairedirectementdescomptagesoudestestsd’existence.
3. Enfin on peutoptimiserdesopérationsdesélectionou dejointureenmanipulantles
adressesstockéesdansl’index.
Onvaprendreun exempledecederniertyped’optimisation.
Vertigo/CNAM, Paris 180
Slide357
Soit la requêtesuivante,ensupposantun index surAnnée:
selecttitre fr om FILM
whereannéeIN (1956,1934,1992,1997)
Implantation simple: on recherchedansl’index lesadressespourchaquevaleurdu INeton lit l’enregistrement.
Implantation optimisée:
1. On recherchedansl’index toutes lesadressespourtoutes lesvaleursdu IN .
2. On regroupel’ensembled’adressesparnumérodepage.
3. On lit lespageset on extrait lesenregistrements
Slide358
L’optimisationprécédenteapermisdenepaslire deuxfois la mêmepage.Mais elle
imposed’attendrequ’onait lu touteslesadressesavantd’afficherle résultat.
Onpeutappliquerunetechniqueintermédiaireutilisantunezonetamponà :
1. On lit lesadresseseton lesplace(triées)dansà .
2. Dèsqu’il fautfournir unedonnée,ou que à estplein,on lit la pagela plus
référencée.
Cettetechniquepeutêtreutiliséepourdesjointures.
Vertigo/CNAM, Paris 181
Slide359
Techniquesd’accès: gestionde la mémoire
Problèmetrèscomplexe: essayerdeconserverenmémoireunepagesusceptibled’être
réutiliséeprochainement.
Le programmeexécutantla requêtenedemandepaslui-mêmela lecture,maiss’adresse
au Ä�ÅcÆcÆ©Ç�ÈSɵÊ�¼�Ê�Ë�ÇÈ duSGBD.Lesconceptsessentielssont:
1. Pagestatique: la pageresteenmémoirejusqu’àcequ’on demandeau
Ä�ÅcÆcÆ©Ç�È ÉµÊ�¼�Ê�Ë#Ç�È dela libérer.
2. Pagevolatile : la pageestà la dispositiondu Ä�Å©ÆcÆ©ÇÈ ÉµÊ�¼�Ê�Ë�ÇÈ .
Slide360Algorithmes de base
Vertigo/CNAM, Paris 182
Slide361
Le tri
Le tri estl’opérationla plusfréquente.On l’utilise parexemple:
1. Pourafficherdesdonnéesordonnées(clauseORDERBY).
2. Pouréliminerdesdoublonsou fairedesagrégats.
3. Pourcertainsalgorithmesdejointure.
L’algorithmeutilisé danslesSGBDestle tri par fusion ( ÌWÍ�ÎKÏ~Í�Ð;ÑKÎwà ).
Slide362
Rappelssur l’algorithme de tri par fusion
Onappliquela stratégiedite “diviserpourrégner”.Elle consisteà:
1. Diviser récursivementdeproblèmejusqu’àobtenirdessous-problèmestrivialement
résolubles.
2. Fusionner récursivementlessolutionsdessous-problèmes.
NB : quandon peutfairele tri enmémoirecentrale,on utilise plutôt le tri rapide( ÒKÅ�Ó�ÔNÕ�Ö�×�È�Ø ).
Vertigo/CNAM, Paris 183
Slide363
Fusion dedeux listestriées
SoitdeuxlistestriéesÙ et Ú . On lesfusionneeneffectuantun parcoursparallèle.
Algorithme Fusionner(A,B)
begina := premierélémentde Ù ; b := premierélémentde Úwhile il resteun élémentdansÙ ou dansÚ
if a estavantb thenEcrirea;a := élémentsuivantde Ù
elseEcrireb; b := élémentsuivantde Ú
end
Slide364
Exemplede tri-fusion sur le fichier desfilms
Annie HallVertigo
Brazil Twin Peaks
Annie HallBrazil
Twin Peaks Vertigo
Jurassic Park Underground
ShiningGreystoke Metropolis
Psychose
Greystoke Metropolis
PsychoseShining Easy Rider
Manhattan
Annie HallBrazil Jurassic Park
Twin Peaks UndergroundVertigo Manhattan
Greystoke Easy Rider Metropolis
PsychoseShining
Brazil Easy RiderGreystoke
Jurassic Park ManhattanMetropolis Psychose
Annie Hall ShiningTwin Peaks UndergroundVertigo
fusion
fusion fusion
fusion fusion
Vertigo/CNAM, Paris 184
Slide365
Tri-fusion dansun contexteSGBD
Dansun contexteSGBD,onfixe lesparamètresdu tri-fusion dela manièresuivante:
1. Ons’arrètedediviserquandon peuttrier enmémoirecentrale.Doncla taille Ì de
la mémoiredisponibledéterminela taille dessous-problèmetriviaux.
2. Dansla phasedefusion,le facteurdedivision est ÛW½ÝÜDÌQÞ�ÚYß�àáÀ où Ú estla taille
d’un buffer. Ona Û buffersenlectureet À enécriture.
Slide366
Algorithme de tri-fusion dansun SGBD
Soit Ì la mémoiredisponibleenunitésE/S, Ú la taille d’un buffer et Í la taille de
l’entrée.
1. Diviserrécursivementl’entréeenfichiersdetaille Ã�âáÌ .
NB : on obtient ãä½9åbÍYÞNÌEæ fichiers.
2. Trier chaquefichier enmémoirecentraleavec ÒKÅ^Ó�ÔNÕ�Ö×�È�Ø .3. Fusionner. A chaqueétape,on fusionneÛG½èç[ÜDÌQÞ�ÚYß�àáÀ]é fichierssimultanément.
NB : il y a êk×Ë�ë�Ükãìß étapesdefusion.
Vertigo/CNAM, Paris 185
Slide367
Exemple
Supposonsqu’un articlede ÛKÓ�êkÉ�Ö occupeí�îìÚ . Le fichier de12 films occupe
Íݽyï�ð�îuÚ . Ondisposede Àð�îuÚ enmémoireet l’unité d’E/S estde ñ�îuÚ . Doncil y a
4 unitésd’E/S:
1. Ondoit diviserle fichier ensous-fichiersdetaille Ã�âEÀð�îuÚ . Onobtient ðsous-fichiersdetaille Ã.½WÀð�îuÚ .
2. On trie avec ÒKÅ�Ó�ÔNÕ�Ö�×�È�Ø chacundeces ð fichiers.
3. Ondisposede ò�½óÜOÀð�Þ�ñ�ß^à�À buffers.Donconpeutfaireunefusionendeuxétapes.
Slide368
Coût d’une opération de tri
L’analysedonne:
1. ãä½ôåkÍYÞ]ÌEæ unitésd’E/S.
2. Chaqueunitéestsujetteà õ»½QêD×Ëcöø÷"ù'úcû[üký�þSÿ�Ükãìß étapesdefusion.
3. Chaqueétapeconsisteenunelectureet uneécriture.
D’où un coûtglobalde ����êk×Ëcöø÷"ù'ú�ûOüký�þ ÿ���ã .
NB : cetypedeformuleestutilisédansun modèledecoût.
Vertigo/CNAM, Paris 186
Slide369
Hachage
Onseplacedansle casoù le fichier àhachernetient pasenmémoirecentrale.On
disposededeuxtechniquesextrêmes:
1. Hachageen mémoiresecondaire: on déterminedèsle départle nombrede
partitionsnécessaires,et on écrit chaquepartitionsurdisque.
2. Hachageen mémoirecentrale: on partitionnele fichier enmémoirecentrale.Si un
débordementsurvient,on écrit lespartitionssurdisque.
Enpratique,on utilise un techniqueintermédiaire,le hachagehybride.
Slide370
Principesdu hachagehybride
Onprocèdedela manièresuivante:
1. Oncommenceparhacherenmémoirecentrale.
2. Quandun débordementsurvient:
(a) On divisela partiedéjàhachéeen Û�½9çkÌQÞ�ÚWà)ÀNé partitions,où Ì estla taille
mémoire,et Ú la taille d’un buffer d’E/S.
(b) On écrit unedespartitionssurdisque,et oncontinuele hachage.
Doncon optimise,àchaqueinstant,l’occupationdela mémoire.
Vertigo/CNAM, Paris 187
Slide371
Repertoire
de hachage
Partitions en memoire centrale
Partitions sur disque
Slide372
Quelquesdétails
Le hachagehybriden’estvalablequepourdesentréesdontla taille Í esttelle que
Ì��!Í��áÛ��¾Ì . Onsaitalorsqu’onpeutécrireunepartieseulementdu fichier sur
disque.
Pourdéterminerunepartition,on suit lesprincipessuivants;
1. Onplaceplusieursentréesdela tabledehachagedansunemêmepartition.
2. A la fin du hachage,la taille d’unepartitiondevrait êtreinférieureàcelledela
mémoiredisponible.
Il existeplusieurstechniques(sophistiquées)pourdéciderquellesentréessontplacées
dansunepartition.
Vertigo/CNAM, Paris 188
Slide373
Analysedu hachagehybride
Soit î le nombredepartitionsécritessurdisque( ���áî�áÛ ).
1. Il faut1 buffer pourla lecture,et î pourécriresurdisque.
2. Il resteÌ à!Ükî�QÀß���Ú buffersenmémoirecentrale.
3. Pourun fichierdetaille Í , î estle pluspetit nombretel que
î��Ì .ÜDÌ àáÜDî�yÀ�ß��µÚ_ß��áÍ . Soit î ½èå[ÜkÍWà�Ì�»ÚYß�Þ#ÜDÌ à�ÚY߬æ .Onobtientle nombre(minimal) d’E/S: ���ªÜDÍWàáÜLÌ à!Ükî�yÀ�ß��µÚ_ß[ß0Þ�Ú .
Slide374
Exemple
Soit lesvaleurssuivantes:Íó½yï�ð�îuÚ���Ì ½Qñ�í�îuÚ��0Úݽ!ñ�îuÚ .
1. Nombredepartitionssurdisque: î ½èåOÜDï�ðKàªñ�í��ñ�ß�Þ#Übñ�íwàìñ�ß;½�� . Chaque
partitionpeutcontenirñ�í�îìÚ .
2. Onutilise í pagesenmémoirespourécrire,4 pourlire.
3. Le restedela mémoire,detaille ï�ðKàªíKàªñV½Qí�ñ , contientla tabledehachage.
Remarque:pour Ì ½ÝÀ�ð�îìÚ , le nombredebuffersest ÛG½GÀð�Þ�ñKàáÀt½Qò . Ona
Íݽyï�ð��)Û���Ì°½Qò�í . Doncle hachagehybriden’estpasutile.
Vertigo/CNAM, Paris 189
Slide375REPRESENTATION PHYSIQUE DANS ORACLE
Slide376
ReprésentationphysiquedansORACLE V7
LesprincipalesstructuresphysiquesutiliséesdansORACLE sont:
1. Le bloc estl’unité physiqued’E/S.La taille d’un bloc ORACLE estun multiple de
la taille desblocsdu systèmesous-jacent.
2. L’extensionestunensembledeblocscontiguscontenantunmêmetype
d’information.
3. Le segmentestun ensembled’extensionsstockantun objetlogique(unetable,un
index ...).
Vertigo/CNAM, Paris 190
Slide377
Tables,segments,extensionset blocs
Niveau
physique
Niveau
logique
Segment
Table
Extension
Blocs
Slide378
Le segmentORACLE
Le segmentestla zonephysiquecontenantun objetlogique.Il existequatretypesde
segments:
1. Le segmentdedonnées(pourunetableou un ÔNêbÅcÖNØOÇÈ ).2. Le segmentd’index.
3. Le È�×�êDêDÄpÊ�ÔNÕ�ÖÇ�Ë�ɵǼcØ utilisépourlestransactions.
4. Le segmenttemporaire(utilisépourlestris parexemple).
Vertigo/CNAM, Paris 191
Slide379
BaseORACLE, fichiers et �������! �"$#%�'&(
1. Physiquement, unebaseORACLE estunensembledefichiers.
2. Logiquement, unebaseestdiviséeparl’administrateuren ØOÊ#ÄpêkÇ�Ö*)�Ê�Ô]Ç . Chaque
ØOÊ#ÄpêkÇ�Ö*)�Ê�Ô]Ç consisteenun (aumoins)ou plusieursfichiers.
La notionde ØOÊ#ÄpêkÇ�Ö*)�Ê�Ô]Ç permet:
1. De contrôlerl’emplacementphysiquedesdonnées.(parex. : le dictionnairesurun
disque,lesdonnéesutilisateursurun autre).
2. defaciliter la gestion(sauvegarde,protection,etc).
Slide380
Tablespace 1 Tablespace 2
Fichiers
Dictionnaire
Table CTable A
Table B
Index
Vertigo/CNAM, Paris 192
Slide381
Stockagedesdonnées
Il existedeuxmanièresdestockerunetable:
1. Indépendamment. Un segmentestalorsautomatiquementallouéà la table.Il est
possibledespécifierdesparamètrespourcesegment:
(a) Sataille initiale
(b) Le pourcentaged’espacelibre danschaquebloc.
(c) La taille desextensions.
2. Dansun Ô]êbÅcÖ�ØOÇ�È .
Slide382
Stockagedesn-uplets
Enrèglegénéraleun n-upleteststockédansun seulbloc. L’adressephysiqued’un
n-upletestle Î~Ñ$+-,/. qui sedécomposeentroisparties:
1. Le numérodu n-upletdansla page.
2. Le numérodela page,relatif aufichier danslequelsetrouve le n-uplet.
3. Le numérodu fichier.
Exemple: 00000DD5.000.001estl’adressedu premiern-upletdu bloc DD5 dansle
premierfichier.
Vertigo/CNAM, Paris 193
Slide383
Structuresdedonnéespour l’optimisation
ORACLE 7 proposetroisstructurespourl’optimisationderequêtes:
1. Lesindex
2. Les“regroupements”detables( 0KêbÅcÖNØOÇÈ ).3. Le hachage.
Slide384
Les index ORACLE
Onpeutcréerdesindex surtoutattribut (ou toutensembled’attributs)d’unetable.
ORACLE utilise l’arbreB+.
1. Lesnoeudscontiennentlesvaleursdel’attribut (ou desattributs)clé(s).
2. Lesfeuillescontiennentchaquevaleurindexéeet le Î~Ñ$+-,/. correspondant.
Un index eststockédansunsegmentqui lui estpropre.Onpeutle placerparexemplesur
unautredisquequecelui contenantla table.
Vertigo/CNAM, Paris 194
Slide385
Les 1/2436587:9<;
Le Ô]êbÅcÖ�ØOÇ�È (regroupement)estun structurepermettantd’optimiserlesjointures.Par
exemple,pourlestables0=,�ã>ÍVÌWÙ et ÐPÙtõ õ\Í qui sontfréquemmentjointessur
l’attribut ,/. à>0wÓ¬¼�ÇÉµÊ :
1. Ongroupelesn-upletsde 0=,�ã>ÍYÌWÙ etde ÐPÙzõ\õ Í ayantmêmevaleurpour
l’attribut ,/. à�ÔpÓ¬¼�ÇÉµÊ .2. Onstockecesgroupesden-upletsdanslespagesd’un segmentspécialdetype
Ô]êbÅcÖ�ØOÇÈ .3. Oncréeun index sur ,8. àªÔpÓ¬¼�ÇÉ�Ê .
Slide386
1209 Le Rex 2 Bd Italiens
Kino 243 Bd Raspail
1098 Grande Salle 450
200Salle 2298
198 Salle 3 120
1210
340Salle 1980... ... ...
Clé de regroupement(ID-cinéma) Nom-cinéma Adresse
ID-salle Nom-salle Capacité
Nom-cinéma Adresse
ID-salle Nom-salle Capacité
Vertigo/CNAM, Paris 195
Slide387
Le hachage
Ondéfinit un ?�Ê#Ö@?YÔ]êbÅcÖ�ØOÇ�È décrivantlescaractéristiquesphysiquesdela table:
CREATECLUSTERhash-cinéma (ID-cinéma NUMBER(10))
HASH IS ID-cinéma HASHKEYS1 000 SIZE 2KA ÙwÐ A ,�Ð (optionnel)spécifiela clé àhacher.A ÙwÐ A îuÍCB�Ð estle nombredevaleursdela clé dehachage.
ÐD,FE`Í estla taille d’un n-uplet.ORACLE déterminele nombredepagesallouées,ainsi
quela fonctiondehachage.On fait référenceau ?�Ê#Ö@?VÔNêbÅcÖNØOÇÈ encréantunetable.
Slide388OPTIMISA TION DANS ORACLE
Vertigo/CNAM, Paris 196
Slide389
Optimisation : l’exemplede ORACLE Version7
Plandela présentation:
1. Optimisation: principesetoutils d’analyse.
2. Présentationsurdesexemples.
Slide390Optimisation - principes générauxet outils d’analyse
Vertigo/CNAM, Paris 197
Slide391
L’optimiseur
L’optimiseurORACLE suit uneapprocheclassique:
1. Générationdeplusieursplansd’exécution.
2. Estimationducoûtdechaqueplangénéré.
3. Choix du meilleuret exécution.
Slide392
Estimation du coût d’un plan d’exécution
Beaucoupdeparamètresentrentdansl’estimationdu coût:
1. Lescheminsd’accèsdisponibles.
2. Lesopérationsphysiquesdetraitementdesrésultatsintermédiaires.
3. Desstatistiquessurlestablesconcernées(taille, sélectivité). Lesstatistiquessont
calculéesparappelexplicite à l’outil ANALYSE.
4. Lesressourcesdisponibles.
Vertigo/CNAM, Paris 198
Slide393
Les cheminsd’accès
1. Parcoursséquentiel( ÛCGKõ\õ>ÃtÙtÚYõ\Í.ÐH0KÙzã ).
2. Par adresse( Ù�0$0KÍVÐ;ÐuÚCBEÎKÑ$+-,8. ).
3. Parcoursde regroupement( 0Kõ�G~Ð�ÃzÍ�Î)ÐH0KÙzã ). On récupèrealorsdansune
mêmelecturelesn-upletsdes2 tablesdu Ô]êbÅcÖ�ØOÇ�È .4. Recherchepar hachage(
A ÙwÐ A ÐH0KÙzã ).
5. Parcoursd’index ( ,�ã%. Í!IôÐH0KÙtã ).
Slide394
Opérationsphysiques
Voici lesprincipales:
1. ,�ã>ÃtÍ�Î~ÐPÍC0wÃ�,�ÑKã : intersectiondedeuxensemblesden-uplets.
2. 0~ÑKã(0KÙ`ÃzÍ�ã>Ù`Ã�,�ÑKã : uniondedeuxensembles.
3. Û$,�õ\ÃtÍ�Î : éliminationden-uplets(sélection).
4. J~Î~ÑLKcÍL0wÃ�,�ÑKã : opérationdel’algèbrerelationnelle.
D’autresopérationssontliéesauxalgorithmesdejointures.
Vertigo/CNAM, Paris 199
Slide395
Algorithmes de jointur e sousORACLE
ORACLE utilise troisalgorithmesdejointure:
1. bouclesimbriquéesquandil y a aumoinsun index.
OpérationãuÍVÐ�ÃtÍ!.Gõ�Ñ~Ñ=J .
2. Tri/fusion quandil n’y a pasd’index.
OpérationÐ\ÑKÎzà et ÌWÍ�ÎKÏ~Í .
3. Enfin,enprésenced’un M�×�ÓL¼ ÔNêbÅcÖNØOÇÈ , on fait unerechercheavecl’index du Ô]êbÅcÖ�ØOÇ�È ,puisun accèsau ÔNêbÅcÖNØOÇÈ lui-même.
Slide396
L’outil EXPLAIN
L’outil EXPLAIN donnele pland’exécutiond’unerequête.La descriptioncomprend:
1. Le chemind’accèsutilisé.
2. Lesopérationsphysiques(tri, fusion,intersection,...).
3. L’ordre desopérations.Il estreprésentableparun arbre.
Vertigo/CNAM, Paris 200
Slide397
EXPLAIN par l’exemple: schémade la base
CINEMA SALLE FILM
(ID-cinéma*, (ID-salle*, (ID-film,
Nom, Nom, Titre,
Adresse); Capacité, Année,
ID-cinéma+); ID-réalisateur+)
SEANCE(ID-séance*, ARTISTE (ID-artiste*,
Heure-début, Heure-fin, Nom,
ID-salle+,ID-film Date-naissance)
Attributsavecune* : index unique.
Attributsavecune+ : index nonunique.
Slide398
Inter prétation d’une requêtepar EXPLAIN
Reprenonsl’exemple: Quelsfilms passentauxRex à 20heures?
EXPLAIN PLAN SETstatement-id= ’cin’
FOR SELECTID-film
FROM Cinéma,Salle,Séance
WHERE Cinéma.ID-cinéma= Salle.ID-cinéma
AND Salle.ID-salle= Séance.ID-salle
AND Cinéma.nom= ’Le Rex’
AND Séance.heure-début = ’20H’
Vertigo/CNAM, Paris 201
Slide399
Plan d’exécutiondonnépar EXPLAIN
0 SELECT STATEMENT
1 NESTED LOOP
2 NESTEDLOOPS
3 TABLE ACCESSFULL CINEMA
4 TABLE ACCESSBY ROWID SALLE
5 INDEX RANGESCAN IDX-CINEMA-ID
6 TABLE ACCESSBY ROWID SEANCE
7 INDEX RANGESCAN IDX-SALLE-ID
Slide400
Représentationarborescentedu plan d’exécution
FULL SCAN
BY ROWID
NESTED LOOP
INDEX SCAN
IDX-Salle-ID
BY ROWIDNESTED LOOP
Salle
Cinéma IDX-cinéma-ID
Séance
INDEX SCAN
Opération physique
Chemin d’accès
1
2
3
4
5
7
6
Vertigo/CNAM, Paris 202
Slide401
Quelquesremarquessur EXPLAIN
EXPLAIN utiliseun ensembledeprimitivesquenousavonsappelé"algèbrephysique:
desopérationscommele tri n’existentpasauniveaurelationnel.D’autresopérationsde
l’algèbrerelationnellesontregroupéesenuneseuleopérationphysique.
N Parexemple,la sélectionsurl’horaire desséancesesteffectuéeenmêmetempsque
la rechercheparROWID (étape6).
Slide402Optimisation dansORACLE - exemples
Vertigo/CNAM, Paris 203
Slide403
Sélectionsansindex
SELECT * FROMcinéma WHERE nom = ’Le Rex’
Pland’exécution:
0 SELECT STATEMENT
1 TABLE ACCESSFULL CINEMA
Slide404
Sélectionavecindex
SELECT * FROMcinéma WHERE ID-cinéma = 1908
Pland’exécution:
0 SELECT STATEMENT
1 TABLE ACCESSBY ROWID CINEMA
2 INDEX UNIQUE SCAN IDX-CINEMA-ID
Vertigo/CNAM, Paris 204
Slide405
Sélectionconjonctive avecun index
SELECT capacité FROMSalle
WHERE ID-cinéma =187 AND nom = ’Salle 1’
Pland’exécution:
0 SELECT STATEMENT
1 TABLE ACCESSBY ROWID SALLE
2 INDEX RANGESCAN IDX-SALLE-CINEMA-ID
Slide406
Sélectionconjonctive avecdeux index
SELECT nom FROM Salle
WHEREID-cinéma = 1098 AND capacité = 150
Pland’exécution:
0 SELECT STATEMENT
1 TABLE ACCESSBY ROWID SALLE
2 AND-EQUAL
3 INDEX RANGESCAN IDX-SALLE-CINEMA-ID
4 INDEX RANGESCAN IDX-CAPACITE
Vertigo/CNAM, Paris 205
Slide407
Sélectiondisjonctiveavecindex
SELECTnomFROM Salle
WHERE ID-cinéma= 1098ORcapacité� 150
Pland’exécution:
0 SELECT STATEMENT
1 CONCATENATION
2 TABLE ACCESSBY ROWID SALLE
3 INDEX RANGESCAN IDX-CAPACITE
4 TABLE ACCESSBY ROWID SALLE
5 INDEX RANGESCAN IDX-SALLE-CINEMA-ID
Slide408
Sélectiondisjonctiveavecet sansindex
SELECT nom FROM Salle
WHERE ID-cinema = 1098 OR nom = ’Salle 1’
Pland’exécution:
0 SELECT STATEMENT
1 TABLE ACCESSFULL SALLE
Vertigo/CNAM, Paris 206
Slide409
Jointureavecindex
SELECT Cinéma.nom,capacité FROMcinéma, salle
WHERE Cinéma.ID-cinéma = salle.ID-cinéma
Pland’exécution:
0 SELECT STATEMENT
1 NESTED LOOPS
2 TABLE ACCESSFULL SALLE
3 TABLE ACCESSBY ROWID CINEMA
4 INDEX UNIQUE SCAN IDX-CINEMA-ID
Slide410
Jointure et sélectionavecindex
SELECTCinéma.nom,capacitéFROM Cinéma,Salle
WHERECinema.ID-cinéma= salle.ID-cinéma
AND capacité� 150
Pland’exécution:
0 SELECT STATEMENT
1 NESTED LOOPS
2 TABLE ACCESSBY ROWID SALLE
3 INDEX RANGESCAN IDX-CAPACITE
4 TABLE ACCESSBY ROWID CINEMA
5 INDEX UNIQUE SCAN IDX-CINEMA-ID
Vertigo/CNAM, Paris 207
Slide411
Jointuresansindex
SELECT titre
FROMFilm, Séance
WHERE Film.ID-film = Séance.ID-film
AND heure-début = ’14H00’
Pland’exécution:
0 SELECT STATEMENT
1 MERGEJOIN
2 SORT JOIN
3 TABLE ACCESSFULL SEANCE
4 SORT JOIN
5 TABLE ACCESSFULL FILM
Slide412
Différ ence
Dansquelcinémanepeut-onvoir defilm après23H?
SELECTCinéma.nom
FROM Cinéma,Salle
WHERE Cinéma.ID-cinéma= Salle.ID-cinéma
AND NOT EXISTS(SELECT* FROM séance
WHERESalle.ID-salle= Séance.ID-salle
AND heure-fin� ’23H00’)
Vertigo/CNAM, Paris 208
Slide413
Plan d’exécutiondonnépar EXPLAIN
0 SELECT STATEMENT
1 FILTER
2 NESTEDLOOPS
3 TABLE ACCESSFULL SALLE
4 TABLE ACCESSBY ROWID CINEMA
5 INDEX UNIQUE SCAN IDX-CINEMA-ID
6 TABLE ACCESSBY ROWID SEANCE
7 INDEX RANGESCAN IDX-SEANCE-SALLE-ID
Top Related