Transcript
Page 1: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 2: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 3: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 4: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

Vertigo/CNAM, Paris 4

Slide5INTRODUCTION

Slide6

A QUI S’ADRESSELE COURS?

Aux étudiantsdu cycleB duCNAM

OBJECTIF : ComprendreetMaitriserla technologierelationnelle

Page 5: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 6: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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,. . . )

Page 7: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 8: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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)

Page 9: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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): . . .

Page 10: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.. . )

Page 11: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 12: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 13: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 14: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 15: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 16: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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!

Page 17: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 18: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 19: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 20: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 21: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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ù � �*� � � .

Page 22: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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)

Page 23: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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)

Page 24: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 25: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 26: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 27: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 28: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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, .

Page 29: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 30: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 31: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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 .

Page 32: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 33: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 34: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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   .

Page 35: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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 , ”.

Page 36: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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Ù*Ú Ý*ã�äÎÚ Ý;à+çéè¼ê¡ë�ë

Page 37: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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é.

Page 38: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 39: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 40: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 41: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 42: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 43: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 44: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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 Ì ��,£ÂÅ *�

Page 45: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 46: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 47: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 48: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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�

Page 49: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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�

Page 50: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 51: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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)� ...

Page 52: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 53: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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’

Page 54: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 55: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 56: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 57: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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 !

Page 58: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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� .

Page 59: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 60: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 61: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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?

Page 62: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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 ·�Ê ³ ·§Ì

Page 63: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 64: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 65: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 66: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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ò�ä�ä

Page 67: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 68: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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ä$ä

Page 69: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 70: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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’’

Page 71: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 72: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 73: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 74: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 75: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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’)

Page 76: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 77: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 78: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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’

Page 79: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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’)

Page 80: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

Vertigo/CNAM, Paris 80

Slide157Opérationsd’Agrégation

Slide158

GROUP BY

REQUÊTE:Nombredefournisseurspar ville

SELECT VILLE, COUNT(FNOM)

FROM FOURNISSEUR

GROUPBY VILLE

Page 81: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 82: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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).

Page 83: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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).

Page 84: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

Vertigo/CNAM, Paris 84

Slide165RécursiondansSQL3 (*)

Slide166

Enfants (*)

Soit le schémaderelationENFANT (NOMPAR,NOMENF)

REQUÊTE:LesenfantsdeCharlemagne

SQL:

SELECT NOMENF

FROMENFANT

WHERENOMPAR=’Charlemagne’;

Page 85: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 86: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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;

Page 87: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 88: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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’ )

Page 89: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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’

Page 90: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 91: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 92: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 93: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 94: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 95: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 96: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 97: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 98: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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?

Page 99: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 100: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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��¯

Page 101: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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�>�¯

Page 102: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 103: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 104: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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)

Page 105: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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)

Page 106: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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?)

Page 107: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.”

Page 108: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 109: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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È,Ì

.

Page 110: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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?

Page 111: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 112: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 113: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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?

Page 114: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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)

Page 115: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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”

Page 116: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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?

Page 117: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 118: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 119: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 120: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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È

!

Page 121: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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?

Page 122: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 123: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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È,Ì

.

Page 124: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 125: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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È

Page 126: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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È

Page 127: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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) .

Page 128: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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?

Page 129: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 130: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 131: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 132: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 133: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 134: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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)

Page 135: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 136: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 137: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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é.

Page 138: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 139: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 140: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 141: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 142: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 143: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 144: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 145: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 146: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 147: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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Ù .

Page 148: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 149: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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� .

Page 150: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 151: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 152: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 153: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 154: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 155: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 156: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 157: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 158: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 159: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 160: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 161: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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ÿ

Page 162: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 163: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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 !!!

Page 164: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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).

Page 165: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 166: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 167: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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 .......

Page 168: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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`· .

Page 169: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 170: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 171: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 172: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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 [ .

Page 173: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 174: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 175: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 176: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 177: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 178: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 179: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 180: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 181: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 182: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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Õ�Ö�×�È�Ø ).

Page 183: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 184: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 185: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 186: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 187: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 188: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 189: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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 ...).

Page 190: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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).

Page 191: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 192: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 193: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 194: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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é

Page 195: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 196: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 197: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 198: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 199: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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.

Page 200: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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’

Page 201: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 202: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 203: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 204: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 205: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 206: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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

Page 207: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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’)

Page 208: BASES DE DONNÉES Relationnelles - cedric.cnam.frcedric.cnam.fr/vertigo/Cours/grenier/sgbd-b7.pdf · Slide 1 INFORMATIQUE -CNAM, Paris BASES DE DONNÉES Relationnelles Équipe VERTIGO

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


Recommended