bases de données relationnelles - [cedric]cedric.cnam.fr/vertigo/cours/ensta/slides.pdf ·...

Post on 10-Sep-2018

235 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Vertigo/CNAM, Paris 1

BasesdeDonnéesRelationnellesCours SGBD- Module 6A - ENSTA

M. Scholl,B. Amann

http://cedric.cnam.fr/ ver tig o/C our s/EN STA

Septembre 2001

Vertigo/CNAM, Paris 2

INTRODUCTION

Vertigo/CNAM, Paris 3

OBJECTIF DU COURS?

OBJECTIF : Comprendreetmaitriserla technologiedessystèmesdebasesdedonnées

relationnelle:

– Modélisation desdonnées

– Interr ogation desdonnées:évaluationdesrequêtes

– Mises-à-jour desdonnées:concurrenceet transactions

– Intégration desdonnées:entrepôtsdedonnées,médiateurs

– Ar chitecturesetapplicationsnouvelles:Web,portails,...

Et toutça en21 heures?

Vertigo/CNAM, Paris 4

PLAN

1. Introduction

2. ModèleRelationnel

3. CalculetAlgèbreRelationnel

4. SQL

5. OrganisationPhysique,Index

6. AlgorithmesdeJointure

7. Optimisationdesrequêtes:l’exempled’ORACLE.

Vertigo/CNAM, Paris 5

BIBLIOGRAPHIE

Ouvragesen français

1. DateC.J,IntroductionauxBasesdeDonnées, Vuibert,970Pages,Janvier 2001

2. CarrezC., DesStructuresauxBasesdeDonnées, Masson

Ouvragesenanglais

1. R. RamakrishnanetJ.Gehrke,DATABASEMANAGEMENTSYSTEMS, MacGraw

Hill

2. R. Elmasri,S.B.Navathe,Fundamentalsof databasesystems, 3eédition,1007

pages,2000,AddisonWesley

3. Ullman J.D.andWidomJ.A First Coursein DatabaseSystems, PrenticeHall, 1997

4. Garcia-MolinaH., Ullman J.andWidomJ.,Implementationof DatabaseSystems,

PrenticeHall, 1999

Vertigo/CNAM, Paris 6

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. ORACLE version7 ServerConceptsManual1992Oracle

Vertigo/CNAM, Paris 7

Applications “SGBD”

1. CLASSIQUES:

– DonnéesdeGestion(salaires,stocks,réservationsd’avions)

– ApplicationesTransactionnelles(gestiondecomptesbancaires,centrales

d’achat)

2. MOINS CLASSIQUES:

– Documentsélectroniques

– DonnéesSpatiales

3. A LA MODE:

– DonnéesduWeb:HTML, XML

– Entrepôtsdedonnées

– Portailsd’entreprise

Vertigo/CNAM, Paris 8

CommentStocker et Manipuler lesDonnées?

DONNÉES � BASE DE DONNÉES (B.D.)

– UneB.D. estunGROSENSEMBLEd’informationsSTRUCTURÉESmémorisées

surun supportPERMANENT.

LOGICIEL � SYSTÈME deGESTION deB.D. (S.G.B.D)

– Un SystèmedeGestiondeBasesdeDonnées(SGBD)estun logiciel deHAUT

NIVEAU qui permetdemanipulercesinformations.

Vertigo/CNAM, Paris 9

Diversité � Complexité

Diversité desutilisateurs, desinterfaceset desarchitectures:

1. utilisateurs : administrateurs,programmeurs,noninformaticiens,. . .

2. interfaces: langagesdeprogrammation,saisiededonnées,générationderapports,

autresSGBD. . .

3. architectures: donnéescentralisées,distribuées,hétérogènes

Vertigo/CNAM, Paris 10

En Résumé,un SGBD...

... estunOUTIL GÉNÉRIQUE qui doit répondreàdesbesoinstrèsdiversdegestion

deun GROS VOLUME D’INFORMA TIONS

– persistantes(années)et fiables(protectionsurpannes)

– partageables(utilisateurs,programmes)

– manipuléesindépendammentdeleurorganisationphysique

Vertigo/CNAM, Paris 11

ARCHITECTURE d’un SGBD: ANSI-SPARC (1975)

vue 1 vue 2

NIVEAU EXTERNE

vue 3

NIVEAU LOGIQUE

NIVEAU PHYSIQUE

Vertigo/CNAM, Paris 12

FONCTIONN ALITÉS d’un SGBD

Chaqueniveaudu SGBDréaliseuncertainnombredefonctions:

NIVEA U PHYSIQUE

– Accèsauxdonnéessurmémoiresecondaire(disques),index, ...

– partagededonnéesetgestiondela concurrenced’accès

– reprisesurpannes(fiabilité)

– distributionet interopérabilité

Vertigo/CNAM, Paris 13

NIVEA U LOGIQ UE

– Définitiondela structurededonnées: LangagedeDescriptiondeDonnées(LDD)

– Consultationet MiseàJourdesdonnées: LangagesdeRequêtes(LR) etLangagede

ManipulationdeDonnées(LMD)

Vertigo/CNAM, Paris 14

NIVEA U EXTERNE : VuesUtilisateurs

1. Vue de la planification dessalles: pourchaquecours

– NomdeProf

– Horaireset salles

2. Vue de la paye: unensembledeProf

(nom,prénom,adresse,indice,nombred’heures.. . )

3. Vue du service descolarité (suivi desélèves): . . .

Vertigo/CNAM, Paris 15

Intégration de cesVues

1. On laissechaqueusageravecsavisiondumonde

2. PASSAGE DU NIVEAU EXTERNEAU NIVEAU LOGIQUE:

On“intègre” l’ensembledecesvuesenunedescriptionunique: SCHÉMA

LOGIQUE

Vertigo/CNAM, Paris 16

Modélisation desdonnées

Vertigo/CNAM, Paris 17

Modèlesdedonnées

Un modèlededonnéesestcaractérisépar :

– unestructuration desinformationset

– desopérationssurcesstructures

Vertigo/CNAM, Paris 18

Dansun SGBD, il existeplusieursmodèlesplus ou moinsabstraits desmêmesobjets,e.g. :

– le modèleconceptuel: la descriptiondu systèmed’information

– le modèlelogique: interfaceavecle SGBD

– le modèlephysique: fichiers

� cesdifférentsmodèlescorrespondentauxniveauxdansl’architectured’un SGBD.

Vertigo/CNAM, Paris 19

ModèleConceptuel:ExempleEntité-Relation

– Modèletrèsabstrait,pratiquepour:

– l’analysedumonderéel

– la conceptiondusystèmed’information

– la communicationentredifférentsacteursdel’entreprise

– Mais n’est pasassociéà un langage.

DONC UNE STRUCTURE

MAIS PAS

D’OPÉRATIONS

Vertigo/CNAM, Paris 20

Modèle logique

1. Langagede définition dedonnées(LDD) pourdécrirela structure.

2. Langagede manipulation de données(LMD) pourappliquerdesopérationsaux

données.

Ceslangagessontabstraits :

1. Le LDD estindépendantdela représentationphysiquedesdonnées.

2. Le LMD estindépendantdel’implantationdesopérations.

Vertigo/CNAM, Paris 21

Les avantagesde l’abstraction

1. Simplicité d’accès:lesstructureset leslangagessontplussimples,doncplusfaciles

pourl’usagernonexpert.

2. INDÉPENDANCE PHYSIQUE: onpeutmodifierl’implantationphysique(index,

stockage,...) sansmodifierlesprogrammesd’application

3. INDÉPENDANCE LOGIQ UE: on peutmodifierlesprogrammesd’application

sanstoucherà l’implantation.

Vertigo/CNAM, Paris 22

HISTORIQUE DESSGBD

À chaquegénérationcorrespondun modèlelogique

Lespremiersétaientpeuabstraits (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

Fin 90 HIÉRARCHIQUE (XML) nouvellesapplicationsWeb

Vertigo/CNAM, Paris 23

Opérationssur lesdonnées

Vertigo/CNAM, Paris 24

Exemplesd’opérations

Insérer lesinformationspour l’employéJean

Augmenterle salairedeJeande10%

SupprimerlesinformationsdeJean

Chercher lesemployéscadres

Chercher lesemployésdudépartementcomptabilité

Chercher le salairemoyendesemployéscomptables,avecdeuxenfants,nésavant1960

et travaillant à Paris

Vertigo/CNAM, Paris 25

Quelstypesd’opérations?

4 typesd’opérationsclassiquesdansun SGBD:

1. La création (ou insertion) dedonnées.

2. La modification dedonnées.

3. La destruction dedonnées.

4. La recherchededonnées.

Cesopérationscorrespondentà desmanipulationsdedonnées(LMD) et sontappelésdes

requêtes. La pluscomplexe estla rechercheenraisondela variétédescritères.

Vertigo/CNAM, Paris 26

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 : ondoit tenir comptedu fait qued’autresutilisateurssontpeut-êtreentrain de

modifierlesdonnéesqu’on interroge!

Vertigo/CNAM, Paris 27

Concurrenced’accès

ArchitectureClient-Serveur:plusieursclients(utilisateurs,applications)doiventpouvoir

accéderenmêmetempsauxmêmesdonnées.

Le SGBDdoit savoir :

– Gérerlesconflitssi lesdeuxfont desmises-à-joursurlesmêmesdonnées.

– Offrir unmécanismederetourenarrièresi ondécided’annulerdesmodificationsen

cours.

– Donneruneimagecohérentedesdonnéessi l’un fait desrequêteset l’autredes

mises-à-jour.

Le but : éviterlesblocages,toutenempêchantdesmodifications“anarchiques”.

Vertigo/CNAM, Paris 28

Concurrenced’accès:Exemple

Deuxclients(A et B) partagentuncomptebancaire(X): client A retire100eurosdu

compteX et clientB dépose20 eurossurle mêmecompte:

compteX clientA client B

1 500 U=read(X)

2 500 V=read(X)

3 500 write(X,U-100)

4 400 write(X,V+20)

5 520

Qu’est-cequi s’estpassé?

Solutions:verrouillage,estampillage

Vertigo/CNAM, Paris 29

Revenonsaux Utilisateurs d’un SGBD

– L’administrateur de la base

Rôledel’administrateur/concepteur

– discuteaveclesdifférentsutilisateurs

– conceptiond’un schémalogique(etdesdifférentesvues)

– conceptionduschémaphysique

– installationdela baseet réglagesfins (tuning)

– gèrel’évolutiondela base(nouveauxbesoins,utilisateurs)

Outilsà sadispositionfournisparl’éditeurduSGBD

Vertigo/CNAM, Paris 30

– Utilisateur expert: informaticienconnaissantlangagesprogrammationet langages

BD

– Concepteuret programmeur d’applicationécrit lesapplicationspourdesutilisateurs“naïfs”

– Utilisateur naïf: dunon-spécialistedesSGBDaunon-informaticien.

Vertigo/CNAM, Paris 31

LE MODÈLE RELATIONNEL

PrésentationGénérale

Vertigo/CNAM, Paris 32

ExempledeRelation

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

Vertigo/CNAM, Paris 33

Le ModèleRelationnel sur un Exemple

SchémaEntités-Relations(ER):

PRIX

FOURNITFOURNISSEURS PRODUITS

QUANTITE BALANCE

CLIENTSCOMMANDE

C_ADRESSE

FADRESSE

FNOM PNOM

NUM_COMDE NOM

Vertigo/CNAM, Paris 34

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

Vertigo/CNAM, Paris 35

COMMANDES NUM_COMDE NOM PNOM QUANTITE

1 Jean briques 5

1 Jean ciment 10

3 Paul briques 3

4 Paul parpaing 9

5 Vincent parpaing 7

CLIENTS NOM CADRESSE BALANCE

Jean 75006Paris -12000

Paul 75003Paris 0

Vincent 94200Ivry 3000

Pierre 92400Courbevoie 7000

Vertigo/CNAM, Paris 36

Terminologieet Définitions

Vertigo/CNAM, Paris 37

BasedeDonnées:Domaine,Nuplet, Relation

– Un DOMAINE estunensemble(fini ou infini) devaleurs.

Exemples: � ����� � ������� , ������������� ����� �!�#" �!�%$&�#" $&�('�'�')� , *+�,��-.�/� l’ensemble

deschaînesdecaractères,*+�,��-.�/�102�3�546 l’ensembledeschaînesdecaractèresde

longueur10.

– Un NUPLETestuneliste devaleurs 087:9;��'('�'<�=7?>@4 .Exemples:0BADC EF�;GH�JILK&IL�AM�NAPO3IQEF�8�RAB���R�54 , 02�!�SAUTV�3IW�XAY�NADEZ��-\[ G]� ORA8�_^!4

– Le PRODUIT CARTÉSIEN ` 9 a '�'(' a ` > entredesdomaines 9 �('�'�'<�N` > est

l’ensembledetous lesn-uplets 0U7 9 ��'('�'<�=7 > 4 où 7cbed ` b .– UneRELATION estunsous-ensemblefini d’un produitcartésien 9 a '�'(' a ` > .

– UneBASEDE DONNÉESestun ensemblederelations.

Vertigo/CNAM, Paris 38

SchémadeBasesdeDonnées

– Un ATTRIBUT estdéfini parun nometundomaine.

Exemples:f g h i�jlk,m�nporq , s t u f v wWv x i#w�o�k�y�q�y�m .

– Le SCHÉMAD’UNE RELATION z estdéfiniparunnometunelisted’attributs.

Notation:

z {Bu | i5} |(~��(���<~Nu � i5} ���ouplussimplement:

z {Bu | ~��(���<~Nu � �– Un SCHÉMA DE BASESDE DONNÉESestunensembledeschémasderelation.

Remarque:unerelationnepeutpasavoir deuxattributsdumêmenomet unattribut est

toujoursidentifiéà traversunerelation.Ainsi, deuxrelationspeuventavoir desattributs

demêmenomsavecdestypesdifférents(variableslocales).

Vertigo/CNAM, Paris 39

Instancesd’un Schéma

– INSTANCE D’UN SCHÉMADE RELATION : Uneinstance� d’un schémade

rélation � �B� � �5� �R���(���<�N� � �5� ��� estunsous-ensemblefini duproduitcartésien� � � �(����� � � : l’ensemble� estunerelation.

– INSTANCE D’UN SCHÉMADE BD: Uneinstance� d’un schémadebasesde

donnéesestunensembled’instancesdesesschémasderelation: � estunebasede

données.

Remarque:unerelation � estreprésentéesousformed’unetable. L’ordredescolonnes

(attributs)oudeslignesn’a pasd’importance(ensemble).

Vertigo/CNAM, Paris 40

Exemplede BasedeDonnées

SCHÉMA:

– FOURNISSEURS(FNOM:CHAR(20),FADRESSE:CHAR(30))

– FOURNITURE(FNOM:CHAR(20),PNOM:CHAR(10),PRIX:ENTIER))

– COMMANDES(NUM_COMDE:ENTIER,NOM:CHAR(20),

PNOM:CHAR(10),QUANTITE;ENTIER))

– CLIENTS(NOM: CHAR(20),CADRESSE:CHAR(30),BALANCE:RELATIF)

Vertigo/CNAM, Paris 41

Exemplede BasedeDonné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)

Vertigo/CNAM, Paris 42

Revenonsà l’exempledu début

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

– Traduction:Schémaconceptuel(ER) � Schémalogique(relationnel)

– Plusprécisémment:Descriptiondumonderéel � Schémaconceptuel� Schémalogique

Objectif:Descriptiondumonderéel � Schémaconceptuel� Schémalogique?

Vertigo/CNAM, Paris 43

Contraintes d’integrité

Objectif:Schémalogique+ contraintes� Descriptiondumonderéel

– FOURNISSEUR(FNOM,FADRESSE)

– FOURNITURE(FNOM,PNOM,PRIX)

– COMMANDE(NUM_CMDE, NOM, PNOM,QUANTITÉ)

Exemplesdecontraintes:

1. Chaquefournisseuràunnomdifférent.

2. Chaquefournisseuràuneseuleadresse.

3. Chaquefournisseurfournit un produità unseulprix.

4. Chaquecommandeestfaiteparunseulclient.

Vertigo/CNAM, Paris 44

– Contraintes1 et2: FNOM estuneclédansFOURNISSEUR

– Contraintes1 et3: (FNOM, PNOM) estuneclédansFOURNITURE

– Contrainte4: NUM_CMDE “détermine”NOM dansCOMMANDE :

1. deuxnupletsavecla mêmevaleurpourNUM_CMDE ont la mêmevaleurpour

NOM.

2. notation:NUM_CMDE � NOM (dépendancefonctionnelle)

Attention:NUM_CMDE n’estpasuneclé.

Remarque:lesdépendancesfonctionnellesneréprésententqu’un typedecontraintesqui

peuventexisterdansunschémalogique(dépendanced’inclusion,dépendances

multi-valuées,...).

Vertigo/CNAM, Paris 45

Opérationset Langages

Vertigo/CNAM, Paris 46

Opérationssur uneBasedeDonnéesRelationnelle

– LANGAGE DE DÉFINITION DESDONNÉES(définitionet MAJ du schéma):

– Créationetdestructiond’un schémaderelation(et desoninstance).

– Modificationduschéma:ajout,suppressiond’un attribut

– Définitiondecontraintes.

Vertigo/CNAM, Paris 47

– LANGAGE DE MANIPULATION DESDONNÉES

– Saisiedesnupletsd’unerelation

– Affichaged’unerelation

– Modificationd’unerelation: insertion,suppressionet majdesnuplets

– Requêtes: consultationd’unerelationoucalculd’unenouvelle relation

– GESTIONDESTRANSACTIONS

– GESTIONDESVUES

Vertigo/CNAM, Paris 48

LangagesdeRequêtesRelationnels

POUVOIR D’EXPRESSION: Qu’est-cequ’onpeutcalculer? Quellesopérations

peut-onfaire?

Leslangagesderequêterelationnelsutilisentdeuxapproches:

– calculrelationnel

– algèbrerelationnelle

Lesdeuxapprochesontmêmepouvoir d’expression.

Vertigo/CNAM, Paris 49

LES DÉPENDANCES FONCTIONNELLES

Vertigo/CNAM, Paris 50

COURS

ETUDIANT

PROF

enseigne

suit

0,n

0,n

0,n

1,1

Nom-Cours

Nom-Etudiant

Nom-Prof

Vertigo/CNAM, Paris 51

Exemples: Relation PERSONNE

PERSONNE NOSS NOM VILLE

123 toto Paris

324 mimi Paris

574 toto Marseilles

Qu’est-cequ’onpeutdiresurla 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

Vertigo/CNAM, Paris 52

Relation COURS

COURS NOM-COURS PROF ETUDIANT

BDPI MATHELOT 123

BDPI MATHELOT 324

BDPI MATHELOT 574

IPA HARDIN 123

– “Un Coursa unseulProfesseur”

– NOM-COURS� PROF

– 2 nupletsqui ontmêmevaleurpourNOM-COURSontmêmevaleurpourPROF

Vertigo/CNAM, Paris 53

Clés,Supercléset Clésétrangères

Relation:PERSONNE(NOSS, NOM, PRENOM,ADRESSE)

NOSS� NOM, NOSS� PRENOM, NOSS� ADRESSE

– Le NOSSestuneclé.

NOSS NOM� PRENOM

NOSS NOMestunesuperclé (NOMestredondant)

Relation:COURS(NOM-COURS, PROF, ETUDIANT)

Si � estunevaleurdel’attribut ETUDIANTdansla tableCours , alors � estuneclédans

la tablepersonne.

– ETUDIANTestunecléétrangère(dépendanced’inclusion)entrela tableCOURSet

la tablePERSONNE.

Vertigo/CNAM, Paris 54

Définitions

a) Dépendancefonctionnelle

Soit R(U) unsché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, ontmêmevaleurpour(tous)lesattributsdeY.

Exemple:

ADRESSE(RUE, NUMERO,VILLE, CODE-P)

X = CODE-P

Y = VILLE

Vertigo/CNAM, Paris 55

b) Superclé

Soit R(U) unschémaetX � Uunsousensembled’attributs.

X estunesupercléder deschémaR, si X � U.

Exemple:

NOSS NOM� NOSS NOMPRENOMADRESSE

NOSS NOMestunesuperclé

c) Clé

X estuneclé,si :

1. X estunesuperclé: X � U

2. il n’existepasY � X, tel queY � U

Exemple:

RUE NUMEROVILLE � RUE NUMEROVILLE CODE-P

RUE NUMEROVILLE estuneclé (pourquoi?)

Vertigo/CNAM, Paris 56

Calcul d’une Clé: Exemple

COURS(Nomc,Heure,Salle,Prof)� �N   HS, HS   P

Nouspouvonsprouver àpartir de�

quesi onconnaîtle nomdecours,onconnaîtaussile nomduprofesseur(Nomcestuneclé):

1. N   HS: deuxnupletsqui partagentle nomdecourspartagentégalementl’horaireet la salle

2. HS   P : deuxnupletsqui partagentl’horaireet la sallepartagentégalementlenomduprofesseur

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

Vertigo/CNAM, Paris 57

PropriétésdesDépendancesFonctionnelles

(Axiomesd’Armstrong)

1) Réflexivité

si X ¡ Y alorsY ¢ X (pourtouslesensemblesd’attributsX et Y)

Exemple:

NOMVILLE ¢ NOM

Trivial : “Deux personnesqui ont le mêmenomethabitentla mêmeville, ont le

mêmenom.”

Vertigo/CNAM, Paris 58

2) Transitivité

si X £ Y et Y £ Z, alorsX £ Z

Exemple :

R(NOSS, CODE-P, VILLE)¤NOSS £ CODE-P, CODE-P £ VILLE ¥ ¦ NOSS £ VILLE

“Si onconnaîtle codepostaleàpartir dunumérodesécuritésocialeet la ville à

partir ducodepostale,on connaîtla ville à partir dunumérodesécuritésociale.”

3) Augmentation

X £ Y ¦ XZ £ YZ

Exemple:

NOSS £ CODE-P ¦ NOSS VILLE £ CODE-P VILLE

Vertigo/CNAM, Paris 59

4) Union et décomposition§X ¨ A, X ¨ B ©«ª X ¨ AB

5) Pseudotransitivité§X ¨ Y, WY ¨ Z © ¬ WX ¨ Z

REMARQ UE : Union,décompositionet pseudotransitivité peuventêtredéduitesdes

autresaxiomes

Vertigo/CNAM, Paris 60

Clôtur e d’un ensemblededépendancesfonctionnelles

De l’ensembledesdépendancesfonctionnellesdonnéesparl’analysedumonderéel,en

utilisantlespropriétésci-dessus,appeléesAxiomesd’Armstrong, onpeutendéduire

d’autres:

Exemples:

1) R(A,B,C,D)­= ® A ¯ B, B ¯ C °

Par transitivité, on déduitA ¯ C

Notation:

­ ± ²A ¯ C

Vertigo/CNAM, Paris 61

2) R(Cours, Prof, Heure,Salle,Eleve,Note)³= ´ C µ P, HS µ C, HP µ S, CE µ N, HE µ S ¶³ · ¸

HS µ P, HE µ C,P,N

DoncHEestuneclé. Pourquoi?

L’union de³

etdetouteslesdépendancesainsidéduitesestappeléeclôture, ou

couvertur e de³

etnotée³ ¹

.

Vertigo/CNAM, Paris 62

Nouvelle définition d’une Superclé

Soit R(U) unschémaderelation, º unensemblededépendancesfonctionnellesetX »Uun ensembled’attributs.X estunesuperclédeRsi pourtoutA ¼ U

º ½ ¾ X ¿ A

ouencoresi:

X ¿ A ¼ º ÀCalculerº À àpartir de º peutêtretrèslong.

Montrerque º ½ ¾ X ¿ A estplusfacile.

Vertigo/CNAM, Paris 63

Calcul de la cléd’une relation

Soit R(U) unschémaderelationet X Á Uunensembled’attributs.

– Ondéfinit  à commeensembledesattributsA telsque Ä Å Æ X Ç A

– Si A appartientà Â Ã , alorspardéfinition Ä Å Æ X Ç A

– Â Ã estl’ensembledesattributsfonctionnellementdépendantsdeX.

Pourcalculerunecléonutilise l’algorithmesuivant:

1. OnchercheunX tel que  à = U È X estunesuperclé

2. X estuneclé,s’il n’existepasY É X tel que Ê Ã = U

Vertigo/CNAM, Paris 64

Calcul de Ë Ì

Étape 1: On partdeX

PourtouteY Í A, telle queY Î X, Y Í A Ï Ð , on rajouteA àX.

Onobtient Ñ Ò .Étape i: Onpartde Ñ ÓBÔ Ò

PourtouteY Í A, telle queY Î Ñ ÓBÔ Ò , Y Í A Ï Ð , on rajouteA à Ñ ÓBÔ Ò .Onobtient Ñ Ó .

Ons’arrêtequandonnetrouve plusdenouvelle DF (point fixe):

Ñ Õ = Ñ ÓÖÕ Ò = Ñ Ó

Vertigo/CNAM, Paris 65

Exemples

1. MontrerqueHEestuneclépourR(CHENSP)avecl’ensemble× deDF donné

ci-dessus

2. Pourla relationADRESSE(VILLE, RUE, NUMERO,CODE_P)ci-dessus,

montrerqueVILLE RUE NUMEROestuneclé.Quelleestl’autre?

Vertigo/CNAM, Paris 66

Contraintes d’intégrité

La listedesattributsestinsuffisantepourdécrirela sémantiquedumonderéel.

Il existeplusieurstypesdecontraintessurlesnuplets:

1. dépendances(fonctionnelles,d’inclusion,multivaluées,etc.)

2. contraintesqui dépendentdu domained’un attribut : Taille Ø 2m10,annéeØ 2000

3. etc.

Cesontlesdépendancesqui permettentla conceptiond’un bonschéma.

Vertigo/CNAM, Paris 67

ANOMALIES DE MISE À JOUR

Vertigo/CNAM, Paris 68

Exemple

Soit le schémaS1:

FOURNISSEUR(FNOM,FADRESSE)

FOURNITURE(FNOM,PNOM, PRIX)

et l’ensembledeDF: Ù Ú Û FNOM Ü FADRESSE, (FNOM PNOM) Ü PRIX ÝSupposonsqu’on remplaceS1parle schémaS2:

R(FNOM, FADRESSE, PNOM, PRIX)

Vertigo/CNAM, Paris 69

Anomalies

R (FNOM, FADRESSE, PNOM, PRIX)Þ ß àFNOM á FADRESSE, (NOM PNOM) á PRIX â

Quelleestla 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’adressedansunnuplet,il fautle fairedanslesautres.

Vertigo/CNAM, Paris 70

3) SUPPRESSION: si DUPONTnefournit plusdeBRIQUES, onsupprimele 2e

nuplet,onperdtouteinfo surDUPONT

4) INSERTION : onnepeutinsérerunnouveaufournisseuret sonadresse,si onne

connaîtpasaumoinsunproduitqu’il fournit

TOTO PARIS BRIQUES 1000

TOTO LYON BETON 400

DURAND NICE

ãä LE SCHÉMAINITIAL S1EST“MEILLEUR”

Vertigo/CNAM, Paris 71

Qualitésd’un bon schéma

1. Éviter lesanomaliesåæ décomposition

2. La décompositiondoit conserver la mêmeinformationLa jointured’unerelationf1 deschémaFOURNISSEUR(FNOM,FADRESSE)

etd’unerelationf2 deschémaFOURNITURE(FNOM,PNOM, PRIX)

obtenuespardécompositiond’unerelationr deschémaR(FNOM, FADRESSE, PNOM, PRIX)

doit redonnerr .

3. La décompositiondoit conserver lesmêmescontraintes(DF). La décompositiondeRenR1(FNOM, FADRESSE, PRIX) et R2(PNOM, PRIX) nepréserve paslesDF. Pourquoi?

Vertigo/CNAM, Paris 72

FORMES NORMALES ET DÉCOMPOSITION

Vertigo/CNAM, Paris 73

Relation en première forme normale (1FN)

– Touslesattributssontatomiques(élémentaires)

– Relationstellequ’on lesconnaît.

– Relation non normalisée,non en 1eFN :

Certainsattributssontdesensemblesdevaleurs,desrelationsellesmême

Vertigo/CNAM, Paris 74

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

Vertigo/CNAM, Paris 75

Relation en3eforme normale

– 2eforme normale :

Purementhistorique

– 3eforme normale: 3FN

– évitela plupartdesanomalies

le but du jeu : décomposerunerelation(1FN) enunensemblederelations3FN

Vertigo/CNAM, Paris 76

3FN: Définition

Définition : UnerelationResten3FN,si quellequesoit la DF X ç A de è é où

– A estunseulattribut et

– A n’estpasl’un desattributsdeX,

– soit X estunesuperclé (contientuneclé),

– soit A appartientà l’une desclés.

En fait, il n’estpasnécessairedevérifier touteslesDF de è é .

Il suffit devérifiercellesde è !

Vertigo/CNAM, Paris 77

Exemples:3eForme Normale

1) Poste(Ville, Rue,Code)ê= ë VR ì C, C ì V í

Clés: {V,R} et {R,C}

Resten3FN.

2) FOURNITURE(NOMF , ADR, NOMP, PRIX)ê= ë NOMF ì ADR, NOMF, NOMP ì PRIX í

Clé: {NOMF, NOMP}

FOURNITUREn’estpasen3FN.

Vertigo/CNAM, Paris 78

3) PLANNING(Cours, Heure,Salle)î= ï SH ð C, C ð S ñ

Clés: {S,H} et {C,H}

PLANNINGesten3FN.

4) R(A, B, C, D)î= ï AB ð C, B ð D, BC ð A ñ

Clés: {A, B}, {B, C}

Rn’estpasen3FN.

Vertigo/CNAM, Paris 79

Décompositionsansperte d’inf ormation (SPI)

Exemple

R ( A B C )

a b c

a b a

c b d

et ò = ó A ô B õDécomposonsen:

R1 ( A B ) R2 ( B C )

a b b c

c b b a

b d

Vertigo/CNAM, Paris 80

R1 = ör÷+øúù (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 etR2 estavecperted’informations.

La jointurecréedesnupletsqui n’existaientpasdansR.

Vertigo/CNAM, Paris 81

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 retrouve la mêmeinformationqu’avantla décomposition.

Vertigo/CNAM, Paris 82

Définition

UnedécompositiondeRenR1, R2, ..., Rk parrapportà unensembledeDF �estSPI(sansperted’information),ssiquellequesoit r deschémaRsatisfaisant� , ona:

r = ����� (r ) � ��� (r ). . . � ����� (r )

Théorème:

Si (R1, R2) estunedécompositiondeRet � un ensembledeDF, alors(R1, R2)

estSPIparrapportà � , ssi:

R1 R2 � R1 - R2

ou

R1 R2 � R2 - R1

estunedépendancede � � .

Vertigo/CNAM, Paris 83

Exemples

R (A, B, C)�= � A � B �

1) R1(A, B), R2(B, C)

AB � BC= B

AB - BC= A

BC- AB= C

Il n’y ani la DF B � A, ni la DF B � Cdans� �� Décompositionavecperte d’inf ormation

Vertigo/CNAM, Paris 84

2) R1(A, B), R3(A, C)

AB � AC= A

AB - AC= B

A � B estdans� ( � � ).� Décompositionsansperte d’inf ormation

Vertigo/CNAM, Paris 85

Décompositionqui préserve lesdépendancesfonctionnelles

Définitions

1. Projectiond’un ensemblededépendancessurZ � U��� ( � ) = "! # $ % � & '(! $ ) * +Exemple: R(A,B,C,D) , � = AB # C, C # A, A # D +�-,�.0/ ( � ) = AB # C, C # A +

2. Décompositionqui préserve lesDF de �Soit 1 = (R1,...,Rk) unedécomposition,et � unensembledeDF.1 préserve lesDF de � , si onpeutretrouver touteslesDF de � & à partir de

l’union 2 detouteslesDF projetéesde � dans�43�5 ( � ) , . . . , ��3�6 ( � ) :27& = � &

Vertigo/CNAM, Paris 86

Exemples

R(A,B,C,D)8= 9 AB : C, C : A, A : D ;<= (ABC, BD) nepréserve paslesDF de

8<

= (ABC, AD) préserve lesDF de

8R(A,B,C)8

= 9 A : B, B : A, A : C ;<= (AB, BC) préserve lesDF de

8

Vertigo/CNAM, Paris 87

R(A, B, C, D)== > A ? B, B ? C, AB ? D @

La décomposition

R1(AC)

R2(AB)

R3(CD)

nepréserve paslesDF de=

. Pourquoi?

Vertigo/CNAM, Paris 88

Décompositiond’une relation en relations3FN

Étantdonnéun schéma(R, F) nonen3FN, i.e. avecdesanomalies,onveutune

décompositiondeR:

1. enrelations3FN

2. qui soit SPI

3. qui préserve lesDF de A

Vertigo/CNAM, Paris 89

Remarque:

– unedécompositionSPInepréserve pasforcémentlesDF et inversement

– le résultatnedonnepasforcémentdesrelations3FN

Théorème: Touterelationen1FNpossèdeunedécompositionenrelations3FN qui soit

SPIetpréserve lesdépendancesfonctionnelles.

Vertigo/CNAM, Paris 90

Algorithme de décomposition

Onsupposeque B estunecouvertureminimale

1. PourchaqueX C A D B , créerunerelationdeschéma(XA) .

2. Si aucunedesclésn’estcontenuedansl’un desschémascréésdansl’étape1,

rajouterunerelationdeschéma(Y) , où Y estuneclé.

3. Si aprèsl’étape1, il existeunerelationR1 dontle schéma(X1A1) estcontenudans

le schéma(X2A2) d’uneautrerelationR2, supprimerla relationR1.

4. Remplacerlesrelations(XA1),..., (XAk) (correspondantà desdépendances

ayantmêmemembregauche)parunerelationunique: (XA1...Ak) .

Vertigo/CNAM, Paris 91

Exemples

1) R(A,B,C,D)E= F AB G C, B G D, C G A H

Clés: AB, BC

– Étape1: R1(ABC) R2(BD) R3(CA)

– Étape2: Pasla peinederajouterunerelationdeschémala cléAB:

ABestcontenuedansR1

– Étape3: SupprimerR3 : CA I ABC

Bonnedécomposition: R1(ABC) R2(BD)

OnpeutvérifierqueR1etR2sonten3eFN.

Vertigo/CNAM, Paris 92

2) R(A,B,C,D,E)J= K AB L C, C L D, C L A M Clés: ABE, BCE

– Étape1: R1(ABC) R2(CD) R3(CA)

– Étape2: Onrajouteunerelationdeschémapourla cléABE: R4(ABE)

– Étape3: SupprimerR3 : CA N ABC

Bonnedécomposition: R1(ABC) R2(CD) R4(ABE)

R3n’a pasdedépendance.Quellessontlesdépendancesdesautres?

Autr e solution:

– Étape4: OnremplaceR2et R3del’étape1 parunerelationdeschéma(CAD)

Autr e bonnedécomposition: R1(ABC) R2’(CAD) R4(ABE)

Quesepasse-t-ilsi onavait choisila cléCBE?

Vertigo/CNAM, Paris 93

3) R(A,B,C,D)O= P AB Q C, C Q D, C Q A, AB Q D R

Clés: BA, BC

La relationn’estpasen3eFormeNormale.Pourquoi?

– Étape1: R1(ABC) R2(CD) R3(CA) R4(ABD)

– Étape2: onnerajoutepasderelation: cléAB S R1(ABC)

– Étape3: SupprimerR3 : CA S ABC

– Étape4: OnremplaceR1 etR4 parR5(ABCD) T onpeutsupprimerR2.

Décomposition: R5(ABCD)

Cettedécompositionn’estpasen3eFormeNormale.Oùestle problème?

Vertigo/CNAM, Paris 94

Forme Normale Boyce-Codd(BCNF)

Desanomaliessubsistenten3FN.

Exemple: Poste(Ville,Rue,Code) , U = V VR W C, C W V XClés: VR, RC

Poste ( Ville Rue Code )

Paris St Michel 75005

Paris Champollion 75005Y Redondanceentrele codeet la ville.

Vertigo/CNAM, Paris 95

Définition : UnerelationestenformenormaledeBoyce-Codd(BCNF),si quellequesoit

la dépendancede Z , le membredegaucheestuneclé.

Intérêt : On aéliminétouteslesanomalies

Remarque: TouterelationBCNF esten3FN

Malheureusement, il n’existepastoujoursunedécompositionenrelationsBCNF

– qui soit SPI

– qui préserve lesDF

Vertigo/CNAM, Paris 96

L’exemplede la poste

Poste(Ville,Rue,Code) , [ = \ VR ] C, C ] V ^Clés: VR, RC

Rest3FNmaisn’estpasBCNF(dansC ] V, Cn’estpasuneclé)

Poste ( Ville Rue Code )

Sevres de Gaulle 92310

Chaville de Gaulle 92370

Vertigo/CNAM, Paris 97

La décompositionR1(Ville,Code), R2(Rue,Code) évitela redondance

Ville,Code , elle estSPI,maiselle nepréserve pasla 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

Vertigo/CNAM, Paris 98

ALGÈBRE RELATIONNELLE

Vertigo/CNAM, Paris 99

Algèbre Relationnelle

– uneopérationprendenentréeuneoudeuxrelations

– le résultatesttoujoursunerelation

Vertigo/CNAM, Paris 100

Opérationsde l’Algèbr e Relationnelle

5 Opérationsdebasepourexprimertouteslesrequêtes:

– Opérationsunaires: sélection,projection

– Opérationsbinaires: union,différence,produitcartésien

– Autresopérationsqui s’exprimentenfonctiondes5 opérationsdebase: jointure

(naturelle, -jointure),intersection,division

Vertigo/CNAM, Paris 101

Projection

LA PROJECTION“ÉLIMINE” UNE OU PLUSIEURSCOLONNESD’UNE

RELATION.

Notation:

a b c bedfdfdgb

Vertigo/CNAM, Paris 102

Projection: Exemples

a)Onéliminela colonneh dansla relation i :

R A B Cj a b c

d a b

c b dj a b e

e e a

kl m npo q r

A B

a b

d a

c b

e e

Le nuplet sut npvxw n’apparaîtqu’une fois dansla relation y-z�{}| s~i w, bienqu’il existedeux

nuplets sut n�v�n���w et s�t n�v(n���w dansi .

Vertigo/CNAM, Paris 103

Projection: Exemples

b) On éliminela colonne� dansla relation � (ongarde � et � ) :

R A B C

a b c

d a b

c b d

a b e

e e a

�� � �p� � � A C

a c

d b

c d

a e

e a

Vertigo/CNAM, Paris 104

Sélection

Sélectionsurla condition � :

Ongardelesnupletsqui satisfont� .

NOTATION :

Vertigo/CNAM, Paris 105

Sélection:Exemples

a)Onsélectionnelesnupletsdansla relation � telsquel’attribut � vaut“b” :

R A B C

a b 1

d a 2

c b 3

a b 4

e e 5

�� � � ����������� � A B C

a b 1

c b 3

a b 4

Vertigo/CNAM, Paris 106

Sélection:Exemples

b) On sélectionnelesnupletstelsque� � ���  ¡���£¢ � ���  £�¤�¦¥ § ¨:

R A B C

a b 1

d a 2

c b 3

a b 4

e e 5

© ª�«¤¬®­°¯±¯³²�¯´¯¤µ·¶0­�¯´¯³²�¯´¯¹¸»º½¼¿¾4ÀÁu Ã

A B C

a b 1

d a 2

Vertigo/CNAM, Paris 107

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

Ä Å Æ Ç È É Ê A B C

e e 5

Vertigo/CNAM, Paris 108

Condition deSélection

La condition Ë d’unesélectionpeutêtreuneformule logiquequelconqueavecdeset ( Ì )etdesou ( Í ) entretermesdela forme Î ÏuÐÑÎ¡Ò et Î Ï�ÐÔÓ où

– Î Ï et Î Ò sontdesattributs,

– Ó estun élément(unevaleur)dudomainede Î Ï ,– Ð estl’un de Õ ÖØ× ÖÚÙ ÖØÛ ÖÚÜ Ö�ÝÕ .

Vertigo/CNAM, Paris 109

Expressionsde l’Algèbr e Relationnelle

– le résultatd’uneopérationestunerelation

– surcetterelation,onpeutfaireuneautre opération del’algèbre

Lesopérationspeuventêtre composéespour formerdesexpressionsdel’algèbre

relationnelle.

Vertigo/CNAM, Paris 110

Expressionsde l’Algèbr e Relationnelle

EXEMPLE: Þ ß à à á â ã ä åçæuâ ß à è�é â ß à èêâ ë à è�ì í ä îï ð�ðòñ ó�ô°õ¡ö0÷ æ

øùú ûxü ýþ õ£ö�÷ ÿ ù±ù��������Ñù´ù æ�Þ ß à à á â ã ä å î îLa relation

ï ð æuâ ß à è�é â ß à èêâ ë à è�ì í ä î contientlesnupletsdontl’attribut â ß àa la valeur

ð�ð����� ®ð�ð. La relation

ï ð�ð æ~é â ß à î contienttouslesproduitscommandéspar

Jean.

Vertigo/CNAM, Paris 111

Produit Cartésien

– NOTATION : � � �– ARGUMENTS: 2 relationsquelconques:

� ��� ����� ������������� "! �#�%$ ���&$ �'�������(��$ )*!– SCHÉMADE + , � � � : + �-� ����� ������������� .�&$ ���&$ �*����������$ )�!– VALEUR DE + , � � � : ensembledetouslesnupletsayant/ 0 1 composants

(attributs)

– dontles / premierscomposantsformentunnupletde �– et les 1 dernierscomposantsformentunnupletde �

Vertigo/CNAM, Paris 112

ExempledeProduit Cartésien

R A B

1 12'3 21 2

3 4

S C D E

a b a254 2a b c

b a a

6

Vertigo/CNAM, Paris 113

R 7 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 a8'9 8 7 85: 81 2 a b c

1 2 b a a

3 4 a b a

3 4 a b c

3 4 b a a

Vertigo/CNAM, Paris 114

Jointur e Naturelle

– NOTATION : ; < =– ARGUMENTS: 2 relationsquelconques:

; >-? @�A�B�B�B�A�? C AED @�A�B�B�B�AED F�G =#>%H @�A�B�B�B�A�H IJAKD @�A�B�B�B(AED F�Goù D @ A�B�B�B�AED F sontlesattributsencommun.

– SCHÉMADE L M ; < = : L >-? @�A�B�B�B�A�? C A�H @�A�B�B�B�A&H INAKD @�A�B�B�B�AKD F�G– VALEUR DE L M ; < = : ensembledetouslesnupletsayantO P Q P R attributs

dontles O premierset R dernierscomposantsformentunnupletde ; et les Q P Rdernierscomposantsformentunnupletde = .

Vertigo/CNAM, Paris 115

Jointur e Naturelle: 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

S

R T 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

Vertigo/CNAM, Paris 116

Jointur e Naturelle

Soit U V WYX Z�[�\�\�\�[�X ] [&^ Z�[�\�\�\�[&^ _J[E` Z�[�\�\�\�[E` acb l’ensembledesattributsdes2 relations

et d V W�` Z [�\�\�\�[K` a b l’ensembledesattributsencommun.

e f g V hjilk�mon*prqtsvuxwryxpjz|{�yxp}k e ~ g����

NOTATION :e \�X veutdire “l’attrib ut X dela relation

e”.

Vertigo/CNAM, Paris 117

Jointur e Naturelle: Exemple

R A B

1 a

1 b

4 a

S A B D

1 a b

2 c b

4 a a

R � S R.A R.B S.A S.B D

1 a 1 a b� 1 a 2 c b� 1 a 4 a a� 1 b 1 a b� 1 b 2 c b� 1 b 4 a a� 4 a 1 a b� 4 a 2 c b

4 a 4 a a

Vertigo/CNAM, Paris 118

R � S A B D

1 a b

4 a a

� ������������������� ���������v�������v���������v����� ���   ¡ ¢�¢

Vertigo/CNAM, Paris 119

Jointur e Naturelle: Algorithme

Pourchaquenuplet £ dans¤ et pourchaquenuplet ¥ dans¦ :

1. onconcatène£ et ¥ eton obtientunnupletqui apourattributs

§¨ ©�ª «¬ ­�®�¯�¯�¯�®�¬ ° ®E± ­�®�¯�¯�¯�®K± ²³® ´¨ ©(ª «µ ­�®�¯�¯�¯�® µ ¶ ®E± ­�®�¯�¯�¯�®K± ²2. onnele gardequesi chaqueattribut

± ·de £ estégal à l’attribut

± ·de ¥ :¸ ·º¹»­�¼½¼�² £ ¯E± ·¿¾ ¥ ¯K± ·

.

3. onéliminelesvaleurs(colonnes)dupliquées: onobtientun nupletqui a pour

attributs §¨ ©�ª «¬ ­ ®�¯�¯�¯�®�¬ ° ® ´¨ ©�ª «µ ­ ®�¯�¯�¯�® µ ° ® §³ÀÂÁ ´¨ ©(ª «± ­ ®�¯�¯�¯�®K± ²

Vertigo/CNAM, Paris 120

Ã-Jointur e

– ARGUMENTS: 2 relationsquelconques:

Ä Å�Æ Ç�È�É�É�É�È�Æ Ê Ë Ì#Å-Í Ç�È�É�É�É�È&Í ÎÏË– NOTATION :

Ä Ð}ÑjÒ�ÓÕÔ×Ö Ì, Ø Ù Ú*Û ÈÝÜÛ ÈÏÞ Èoß ÈÏà Èoá â

– SCHÉMADE ã Û Ä Ð ÑÝä�ÓÕÔ¿å Ì: ã Å-Æ Ç È�É�É�É�È�Æ Ê È&Í Ç È�É�É�É�È�Í Î Ë

– VALEUR DE ã Û Ä Ð Ñ|ä�ÓÕÔ¿å Ì: ã Û æ Ñ Ò ÓÕÔ ÖçÅ�Ä è Ì�Ë�Ë

– ÉQUIJOINTURE: Ø estl’ égalité.

Vertigo/CNAM, Paris 121

é-Jointur e: Exemple

R A B

1 a

1 b

3 a

S C D E

1 b a

2 b c

4 a a

Vertigo/CNAM, Paris 122

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ë ì í î3 a 1 b aë ì í î3 a 2 b c

3 a 4 a a

ï

ðòñNóÏô (T) A B C D E

= R õ ñNóÏô S 1 a 1 b a

1 a 2 b c

1 a 4 a a

1 b 1 b a

1 b 2 b c

1 b 4 a a

3 a 4 a a

Vertigo/CNAM, Paris 123

É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

Vertigo/CNAM, Paris 124

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÷ øù ú û 3 a 1 b a÷ øù ú û 3 a 2 b c

3 a 4 a a

üýÿþ���� (T) A B C D E

=R� þ���� S 1 a 4 a a

1 b 1 b a

1 b 2 b c

3 a 4 a a

Vertigo/CNAM, Paris 125

Équijointur e vs.Jointur e Naturelle

��� � � � ��� � ����� � � � � ����� � � � ��� � � � �� � � ��� ��� � ����� � � �!� � � � �� � � � �

1. Nomdu propriétairedel’immeubleoù estsituél’appartementoccupéparDurand:

"�#%$'&(# �)+*-,/.1032547698;:<0=254>6@?A?B6C DFE G��� � � � H I &(JKJMLN#KOQPRPASTLN$NU 8 S PRP �V� � � ��� �W�

2. Appartementsoccupéspardespropriétairesd’immeuble:

" U'SYX[Z 8 U'#\Z^]Q_�U'`K]a6Wb-25,dce*-,/.10=2+476C D[E G��� � � ��� H &(JKJfLg#%OQ#K$'&(# ��� � � �Y �@�

Vertigo/CNAM, Paris 126

AutreExempledeREQUÊTE: Nometadressedesclientsqui ont commandédes

parpaings:

– SchémaRelationnel:

h i j j k l m n o pVq l i j r!h l i j r�l s j_h j m n rut v n w

h xzy{n l v o|p}h l i j ruh k m ~ n ozo�n ru� k x k l h n w– RequêteRelationnelle:

�����f��� �����\�Q�����1�+�������K�1� � �T� � ��� �f��� ����� � �\� � �� 9�f¡\�R� �V� ¢ £ £ ¤¥� ¦ � �Q§¨§

Vertigo/CNAM, Paris 127

Union

– ARGUMENTS: 2 relationsdemêmeschéma:

© ª�« ¬®­°¯°¯±¯[­�« ² ³ ´ ª�« ¬µ­°¯°¯±¯[­�« ² ³

– NOTATION :© ¶ ´

– SCHÉMADE · ¸ © ¶ ´ : · ª�« ¬µ­°¯°¯±¯[­�« ² ³– VALEUR DE · : Unionensemblistesur ¹ ¬ º ¯°¯±¯ º ¹ ² :

· ¸ »°¼ ½µ¼¿¾ © À ¼¿¾ ´¥Á

Vertigo/CNAM, Paris 128

Union: 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 b

a cÄ d e

a e

f g

Vertigo/CNAM, Paris 129

Différ ence

– ARGUMENTS: 2 relationsdemêmeschéma:

Å ÆVÇ ÈµÉ°Ê±Ê°Ê[É�Ç Ë Ì Í|Æ�Ç ÈÎɱʰʰÊ[É�Ç Ë Ì

– NOTATION :Å Ï Í

– SCHÉMADE Ð Ñ Å Ï Í : Ð ÆVÇ È É°Ê±Ê°Ê[É�Ç Ë Ì– VALEUR DE Ð : Différenceensemblistesur Ò È Ó Ê±Ê°Ê Ó Ò Ë :

Ð Ñ Ô°Õ ÖµÕ¿× Å Ø Õ Ù× Í¥Ú

Vertigo/CNAM, Paris 130

Différ ence:Exemple

Vertigo/CNAM, Paris 131

R A BÛ a b

a cÛ d e

S A BÛ a b

a eÛ d e

f g

R - S A B

a c

S - R A B

a e

f g

Vertigo/CNAM, Paris 132

Intersection

– ARGUMENTS: 2 relationsdemêmeschéma:

Ü Ý�Þ ß®à°á°á±á[à�Þ â ã ä Ý�Þ ßµà°á°á±á[à�Þ â ã

– NOTATION :Ü å ä

– SCHÉMADE æ ç Ü å ä : æ ÝVÞ ßµà°á±á°á[à�Þ â ã– VALEUR DE æ : Intersectionensemblistesur è ß é á±á°á é è â :

æ ç ê°ë ìµë¿í Ü î ë¿í ä¥ï

Vertigo/CNAM, Paris 133

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 ñ S = R - (R - S) A B

a b

d e

Vertigo/CNAM, Paris 134

Semijointure

– ARGUMENTS: 2 relationsquelconques:

ò ó�ô õµö°÷°÷±÷[ö�ô ø öRù õÎö°÷±÷°÷[öRù úüûþý óVÿ õÎö°÷°÷±÷Föuÿ ��öRù õ±ö°÷±÷°÷FöRù úüûoùù õÎö±÷°÷±÷[ö�ù ú

sontlesattributsencommun.

– NOTATION :ò ��� ý

– SCHÉMADE � � ò ��� ý: � óVô õµö°÷±÷°÷[ö�ô ø ö�ù õÎö±÷°÷°÷[öRù ú1û

– VALEUR DE � � ò ��� ý: Projectionsurlesattributsde

òdela jointurenaturelle

entreò

etý

.

Vertigo/CNAM, Paris 135

Semijointure

La semijointurecorrespondàunesélectionoù la conditiondesélectionestdéfinieparle

biaisd’uneautrerelation.

Soit � � � � ���������� � � l’ensembledesattributsde � .

� ��� � � ������� � �!

Vertigo/CNAM, Paris 136

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

" #%$'&)(*&,+.-0/ 1 2!3!"

R 4�5 S A B C

a b c

d b c

c a d

Vertigo/CNAM, Paris 137

Division: Exemple

REQUÊTE: Clientsqui commandenttouslesproduits:

COMM NUM NOM PNOM QTE

1 Jean briques 100

2 Jean ciment 2

3 Jean parpaing 2

4 Paul briques 200

5 Paul parpaing 3

6 Vincent parpaing 3

Vertigo/CNAM, Paris 138

6 7 8%9;:'< =,>?9�:'< @BA C D D E:

R NOM PNOM

Jean briques

Jean ciment

Jean parpaing

Paul briques

Paul parpaing

Vincent parpaing

PROD PNOM

briques

ciment

parpaing

F6 G H 6 C I

NOM

Jean

Vertigo/CNAM, Paris 139

Division: Exemple

b

e

a

c

x

y

z

m

n

o

A B C DR

a

a

a

b

b

c

c

c

d

d

b

b

b

c

d

e

e

e

a

a

x

y

z

x

x

x

y

z

z

y

m

n

o

o

m

m

n

o

p

m

A BR \ SS C D

Vertigo/CNAM, Paris 140

Division: Exemple

Vertigo/CNAM, Paris 141

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

J R K S A B E

1 a a

3 c b

Vertigo/CNAM, Paris 142

Division

– ARGUMENTS: 2 relations:

L M�N OP�Q�Q�Q�PRN S PUT OVP�Q�Q�Q�PUT WYX Z.M[T O�P�Q�Q�Q�PUT W\Xoù tous lesattributsde

Zsontdesattributsde

L.

– NOTATION :L ] Z

– SCHÉMADE ^ _ L ] Z: ^ M0N O P�Q�Q�Q�P�N S X

– VALEUR DE ^ _ L ] Z:

` a b c dfe[gihkjmlnlnlojUgfprqtsnuvexwyhzjolnlnlnj{w}|Vq�~ b ��e[gihkjolmlnlnjUgfp j{wyhkjnlmlnloj{w}|q'~ ` �

Vertigo/CNAM, Paris 143

Division

La divisions’exprimeenfonctionduproduitcartésien,dela projectionetdela

différence: � � � � � �!� � � où

� ��� ���������������{��� ��� �����'� � � �%�?�����������{��� ���0� � � �!��� � �

Vertigo/CNAM, Paris 144

Renommage

– NOTATION : �– ARGUMENTS: 1 relation: � �0  ¡ ¢�£�£�£�¢   ¤}¥– SCHÉMADE ¦ § �©¨�ª¬« ­vª

�: ¦

�0  ¡ ¢�£�£�£�¢   ® ¯ ¡ ¢�° ® ¢   ®x±�¡ ¢�£�£�£�¢   ¤²¥– VALEUR DE ¦ § �©¨ ª « ­ ª

�: ¦ §

�. La valeurdeR estinchangée.Seulle nomde

l’attribut

  ®aétéremplacépar °

®

Vertigo/CNAM, Paris 145

Et si lesattrib uts sont connuspar leur rang?

Onpeutdanslesopérationsdel’algèbreindiquerunattribut parsonrangaulieu deson

nom.

Danscecasl’ordre desattributsdansunerelationa del’importance.

L’exempledela sélection:³µ´·¶¹¸»º½¼¿¾�À�¼»¾�ÁoÂ�Ã?ºÅÄ Æ Ç Ç È É Ê Ë Ì aulieu de³ ¼¿Â;Í'Î ¸ º ¼»¾�À�¼»¾�ÁoÂ;à ºÏÄ Æ Ç Ç È É Ê Ë ÌLe premierattribut Ð Ñ corresponda l’attribut Ò É Æ Ç

Vertigo/CNAM, Paris 146

CALCUL RELATIONNEL

Vertigo/CNAM, Paris 147

Exemple: la basededonnéesCINÉMA

Films Titre MetteurenScene Acteur

Juleset Jim F. Truffaut J.Moreau

Juleset Jim F. Truffaut O. Werner

LesQuatreCentCoups F. Truffaut J.P. Leaud

Metropolis F. Lang B. Helm

Chimesat Midnight O. Welles J.Moreau

Vertigo/CNAM, Paris 148

Lieu Cinema Adresse No-Telephone

Rex Bd Poissonniere 4236 8393

Champo R. desEcoles 4354 5160

Cinoche R. deConde 4633 1082

Pariscope Cinema Titre Heure

Rex Juleset Jim 18

Rex Juleset Jim 20

Cinoche Juleset Jim 20

Champo Metropolis 18

Vertigo/CNAM, Paris 149

ExempledeRequête

Requête:Qui a dirigé le film Metr opolis?

– Oncherchela valeurde l’attrib ut Metteur_en_Scene detouslesn-upletsdans

la relation(table)Films dont l’attrib ut Titre estégal à la constante

’Metropolis’ .

– Calcul relationnel Ó -uplet

Ô}Õ Ö ×ÙØÚØ�שÛtÜ_שÝ

_Þ ß ×©Ýà× á�â ãmäæå çéèêÕìërí Õ Öïî ã�Ø�Üµ× ð ñ ×ÙØ�ܵòôóõòöäæãzç÷ñùø– Oncherchex.Metteur_en_Scene detouslesn-upletsú dansla relation(table)

Films tel quex.Titre = ’Metropolis’ .

Vertigo/CNAM, Paris 150

Syntaxe

Vertigo/CNAM, Paris 151

Symboles(c.a.d.l’alphabet du langage)

Unerequêteducalculrelationnelestcomposéededifférentssymboles:

– Constantes:’F. Truffaut’, ’Juleset Jim’, 18,43545160,.. .

– Prédicats(relations):Movies,Location, . . .

– Variables(n-uplets,attributs):x, y, z, ...

– Comparateursarithmétiques:=, û , ü , û ý , ...

– Connecteurslogiques: þ (ou), ÿ (et), � (non)

– Quantificateurs:�

(il existe), � (pourtous)

– Parenthèses: “(“, “)”

Vertigo/CNAM, Paris 152

Formules atomiques(atomes)et variables libr es

Le calculrelationnelestfondésurla logiquedu premierordreet utilisedesformules

logiques.Lesformuleslesplussimplessontappelésatomes:

– p(x1,.. . ,xn) estunatomeoùp estunsymboledeprédicat,et xi, i � [1,n] estsoit une

variable,soit uneconstante.

Exemples:

– Films (’Juleset Jim’, ’F.Truffaut’, ’J. Moreau’)

– Films (x, ’Truffaut’, y)

– x � y estunatomeoùx ety sontsoit desvariablessoit desconstanteset � estl’un des

6 comparateursarithmétiques.

Exemples: 1 <3, x <y, x <8

– Touteslesoccurrencesdevariablesapparaissantdansuneformuleatomiquesont

diteslibr es.

Vertigo/CNAM, Paris 153

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 � F1 sontdesformules(lesoccurrencesdevariablesdecesnouvellesformulessontlibresou liéessi ellesle sontdansF1,F2).Exemples:

– ��� � � ����� ��� � ���– ����� ��� � � � � � ���

– si F estuneformule,alors(F) estuneformule;

Vertigo/CNAM, Paris 154

Requêtes

Requête: "!$#&%'!)(*%,+-+-+-%'!/. 021 3 oùF estuneformuleavecvariableslibres, x1,x2,.. . ,xn.

ExemplesdeRequêtes:

– 4! 05! 6 73– 4! 081 9;:=< >@?�ACB):�D5E D FGAC9< ?H%I?KJ LMBON�NQP�BRFS?@%'!�TU3– 4! 0V>WYX�TZ1 9;:=< >@?�[ D FZL]\_^/\M:=9`E4?a%'!$%'X�Tb3

Vertigo/CNAM, Paris 155

FormesAbrégés

– Formesabrégéesdequantificateurs:

1. cdfe�g'd)h*g-i,i-ijgkd/l estuneabréviationde cd$e5cd)hmi-i-iUcYdRl ,

2. n�dfe�g'd)h*g-i,i-ijgkd/l estuneabréviationde n�d$e_n�d)hmi-i-ionQdRl .

– Ordredeprécédence(priorité) entrelesconnecteursetquantificateurs(du plusau

moinsprioritaire):

1. pqgrnsgtc ,

2. u ,

3. v .

Parexemple, w x y{z | wjx }�~ y � � w,~ y � � w�� y estcompriscomme

wVw x yOw�z | wjx }�~ y�yVy � w�� w,~ y � � w4� y�y��

Vertigo/CNAM, Paris 156

Sémantique

Vertigo/CNAM, Paris 157

Inter prétation: Exemple

Lesformuleset requêtessont“interprétées”:

– Formule: � �;��� �@��� � ���&�_�/�M�����"�H�I�������G�����*�H��� � �¢¡ �]�£�C¤¥�8��¦b§– Interpretation“naturelle”: “Est-cequeM. Brandoa jouédansunfilm Metropolis

dirigéparuncertainF. Lang?”

– Interpretationbasededonnées:“Est-cequ’il existeun n’uplet (’Metropolis’, ’F.

Lang’, ’M. Brando’)dansla table � �;�=� ?”

Vertigo/CNAM, Paris 158

– Formule: ¨©ª�«S¬ ­;®�¯ ¨@°�± ² ³�´&µ_¶/µM®�­�·"°H¸I° ¬º¹�»G¼�½Q¾Y°¿¸'ª�«bÀ– Interpretation“naturelle”: “Est-cequ’il existeunacteurqui a jouédansunfilm

Metropolisdirigéparun certainF. Lang?”ou “Est-cequeF. Langàdirigé le film

Metropolis(avecaumoinsunacteur)?”

– Interpretationbasededonnées:“Est-cequ’il existeuneconstanteÁ tel que

(’Metropolis’, ’F. Lang’, c) estunn’upletdansla table ¬ ­;®=¯ ?

Vertigo/CNAM, Paris 159

– Requête:Â4à Ä*ÅÇÆÈ�ÉZÊ Ë;Ì=Í Å@Î�Ï Ð ÑZÒ]Ó_Ô/ÓMÌ=Ë`Õ4ÎaÖ'È$Ö'Ã�Éb×– Interpretation“naturelle”: “je cherchele nomdetouslesacteursdansle(s)

film(s) avecle titre Metropolis” (je nem’intéressepaspariculièrementau(x)

metteur(s)enscène).

– Interpretation“basededonnées”:“je cherchetouteslesconstantesØ tel qu’il

existepourchacuneaumoinsuneconstanteÙ tel que(’Metropolis’, d, c) estun

n-upletdansla tableFilm.

Vertigo/CNAM, Paris 160

Inter prétation: atomesavecconstantes

Lesformulessontinterprêtesparrapportà unebasededonnéesÚ . Le résultat(la

réponse)del’interprétationd’uneformuleestvrai ou faux:

– L’atomep(x1,.. . ,xn) où p estunsymboledeprédicat(nomderelation)etoù lesxi iÛ [1,n] sontdesconstantes, estvrai dansÚ ( Ú satisfait p(x1,.. . ,xn)) si (x1,.. . ,xn) est

un Ü -upletdela relationp dansÚ .Exemple: Ý Þ;ß=à á@â�ã�äQß�å5æ å çèã�Þaà â@éIâëê ì8äOíîí�ï�äRçðâ�é�â ñ ò5ì&å4ï£ä�â�ó estvrai ssi

á¿â�ã�ä)ß�å5æ å çGã�Þaà â¿éIâôê ì8äOíîí�ï�äRçðâ�éIâõñ ò5ì�å4ï�äQâ�ó estunn-upletdansla table Ý Þ;ß=à .

– L’interprétationdex ö y estnaturelle(indépendantededela basededonnées).

Exemple: ÷ ø ù estvrai ssi3 estinférieurà5.

Vertigo/CNAM, Paris 161

Inter prétation: variables libr eset substitution

– Substitution:Si ú estunevariablelibre dansuneformule û onnote û ürú�ý�þUÿ la

formulequ’onobtientparun remplacementde ú par þ .– Exemple:

– Formule: û = Film(’Metropolis’, x, y)

– Substitutiondevariableslibres:

1. û ü ú)ý � û�� ����� � ÿ = Film(’Metropolis’, ’F. Lang’, y)

2. û ü ú)ý ��� �� ���ðþ��Rþ��Mþ�� � ÿ = Film(’Metropolis’, ’A. Hitchcock’,y)

3. û ü ú)ý � û�� ����� � ÿZü���ý ��� �� ����� � ÿ = Film(’Metropolis’, ’F. Lang’, ’B. Helm’)

4. û ü���ý ��� �� ����� � ÿZürú�ý � û�� ����� � ÿ = Film(’Metropolis’, ’F. Lang’, ’B. Helm’)

Vertigo/CNAM, Paris 162

Inter prétation: quantificateurs

– La formule( x)F estvraie dans! s’il existeunesubstition "$#&%('*) de # telleque+ "�#&%('*) estvraie dans! .Parexemple ,- .#&/ + 02143 5 ,6#87:9<; =?>A@B@DC�>FEG967:9�H IJ=LK�C�>9�/ estvraieparceque+ 02143 5 ,6#87:9<; =?>A@B@DCM>NEG9O7:9PH IQ=LK�C�>9P/R"$#&%S9OTU> 1 K 5 KVE*T 0-3 9W)&X+ 02143 5 ,Y9OTU> 1 K 5 KVE*T 0Z3 9Y7:9W; =?>A@B@DC�>FEG967:9�H IJ=LK�C�>9�/ estvraie.

– L’interprétationdeF1[ F2. \ F,.. .estl’interprétationhabituelle: F1[ F2 estvraiesi

F1 estvraieou F2 estvraie.

Note: La disjonctionet la quantificationuniversellepeuventêtreexpriméesenutilisantla

negation:

1. F1 [ F2 ] \^,_\ F1 `a\ F2),

2. (b x) F ] ( \a x) \ F.

Vertigo/CNAM, Paris 163

Inter prétation d’une Requête

Requête: cedgfihjdlkmhRnononohjdqp rts u oùF estuneformuleaveclesvariableslibres

dgfihvdkwhononRn�hvdFp .

Le résultatdel’interprétationd’unerequêteestensembledesp -uplets(unerelation!)xzy fih y kmhRnonRnVh y pl{ telsque s | x d8fJ| y fihvdk}| y kmhRnononohjdqp~| y p{ estvraie.

– c�d r?s �2�4� ���O�U�l�6�J� �V���U�-� ��h:��� �S�A�&� y �F����hjd&�*u retournetouslesacteursdufilm ’Jules

et Jim’ deTruffaut: c x � ��n�� �Q�L� y � � {-h x ��� n�� �o�Sp��o�t{�u .– c�d rw�-������s �2�4� �O�Dh � � �?�A�B� y �N� � hvdl��u retournetouslesacteursqui ont tournéavec

Truffaut.

Vertigo/CNAM, Paris 164

Algèbre relationnellevsCalcul relationnel sain

L’algèbrerelationnelleet le calculrelationnelsainont le mêmepouvoir d’expression.

Théorême1 : Touterequêteexprimabledansl’algèbrerelationnelleestexprimabledansle calculrelationnel.

Formule saine: Formuledontle résultatestfini (le nbde � -upletsqui satisfontlaformuleestfini).

Exempledeformulenonsaine:  e¡£¢v¤¥g¦6¡l§�¨ . Le resultatcontienttouslesnupletsqui nesontpasdansla relation¥ .

Deux solutions: interdirelesformulesnon-saineou interprétationparrapportaudomaineactif dela basededonnées(exemple: touteslesconstantesdans© qui nesontpasdans¥ ).

Théorême2 : Touterequêtedu calculrelationnelsainestexprimableenalgèbrerelationnelle.

Vertigo/CNAM, Paris 165

Calcul relationneldomaine/ª -uplet

Le calculrelationnelprécédentestappelécalcul relationneldomaine.

Pourobtenirle calcul relationnel « -uplet, on remplace:

– x1,x2,.. . ,xn (où xi estunevariabledomaine)parla variable« -uplett.

– L’attribut A derangi (xi dansle calculdomaine)estnotét.A (voir exemples

ci-dessous).

Theorême3 : Le calculrelationnel« -upletsaina le mêmepouvoir d’expressionque

l’algèbrerelationnelle.

Vertigo/CNAM, Paris 166

ExemplesdeRequêtes

Vertigo/CNAM, Paris 167

QuelquesRequêtes

1. Qui dirigeMetropolis?

2. AdresseetnumérodetéléphoneduStudio?

3. Sallesoù onpeutvoir un film deTruffaut?

4. Adressesdescinémasmontrantunfilm deTruffaut?

5. Quelsfilms deTruffautnepassentpasencemoment?

Vertigo/CNAM, Paris 168

Requête1: Qui a dirigé le film Metr opolis?

SQL

select Metteur-en-Scene

from Films

where Titre = ’Metropolis’;

Calcul relationnel ¬ -uplet

­¯® ° ±8²�²w±g³ ´_±gµ

_ ¶ ±8µ ± · ¸L¹�º »½¼o® ¾�¿ ® ° ¸?²�´À± Á  ±8²M´�ÃÅÄ Ã�¹Æ¸M»�ÂÈÇ

Calcul relationneldomaine

­ÊÉ · ¼(Ë ® ¾ ¸L¹�º »½¼  ±~²M´�ÃÅÄ Ã�¹�¸�» ÂÆÌ É Ì ® ¾qÇ

Vertigo/CNAM, Paris 169

Vertigo/CNAM, Paris 170

Requête2: Adr esseet numéro de téléphonedu Studio?

Calcul relationnel Í -uplet

Î¯Ï Ð ÑÓÒÀÔ¯ÕÖÕ¯ÔÀ×ØÏ Ð Ù Ú Ô8ÒÜÛ_

Ô£Ý Þ ß à�Ô8Ù áoÏ â ãÏ Ð àSä ÔgÚ å æ ç è�Ù ÑÓàiÛéçëê

Calcul relationneldomaine

Îìå Ñ ×jí î Þïß à�Ô8Ù á ç èMÙ ÑÓàðÛ ç ×6å Ñ ×jí î âqê

Vertigo/CNAM, Paris 171

Requête3: Sallesoù on peut voir un film deTruffaut ?

Calcul relationnel ñ -uplet

òôó õ÷ö øúùÓû�ü ý þ ÿ������}ÿ�� ý�Fø� ������ûAÿGó���� � ø�� ü Bÿ������ó õ�� ø����Åû ��õ�� ø����Åû!���õ û"�#�Rû%$&�

_û�ù

_' �}û.ù�û ()� �!$+*,* ý$-�#(.�0/

Calcul relationneldomaine

ò1 þ ÿ��&2-�3�!4Wý5�6�74��Vø��8�Dû9�}ÿ:� ý�Nø8 �7�0��ûUÿ�;4��Vø<���Åû=4>2?�@�;�A�� ø�� ü BÿB�Vø<���Åû=4C(>� �D$+*E*ïý$-��(F4Wý5�G�A�A�0/

Vertigo/CNAM, Paris 172

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 H -uplet

IDJLKNM O=PRQ!S3S Q T U�V�W XZY�[�U�\ ]�^F_ S=U�W�[�` a bcP!]8S d7e0fgQcUhY�[i` j ]�Q%k U�Jc[A`W K Q"l#lmQ%k&P

_Qon

_p d�Q%nqQ r sut P!k+v,v�bk-l#sw`W K�t ]�l8PRQ r YgK�t ]�l�PxQ ` YgKzy ]:nqQ%_ b r JLKzy ]:nqQ%_ b{[0|

Vertigo/CNAM, Paris 173

Requête4: Adr essesdescinémasmontrant un Truffaut ?

Calcul relationneldomaine

}D~ � ���)�7�������������;�����@�������q��~5�6������� ���F� �=���7�:�8� �!�+�,��~�-�”��~5�G�A�A�

� ~�D�8� �7���+�c�����:�q�=��� ���3�i� ¡ ���%� �����:�q�=��~¢���m�@���m�£�¢�A�0¤

Vertigo/CNAM, Paris 174

Requête5: Quelsfilms deTruffaut 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

¦3§ ¨�© ª�«8¬R­ ® ¯�° ª�±F² ³=¯h§�´�µ § ¨ ­¶«�«m­o·&¬_­%¸

_¹ º ­%¸q­ » ¼5© ¬!·+½,½�¾·-«#¼.´Aµ¯�¿ À�Á�´�¯: ¾c¬!ª8³ º7Ã0Ä ­c¯hÁ�´�µ Ág¨Å© ª�«8¬R­ » § ¨�© ª<«�¬x­!´0Æ

Vertigo/CNAM, Paris 175

Requête5: Quelsfilms deTruffaut ne passentpas?

Calcul relationneldomaine

Ç3È É�Ê�Ë�Ì�ÍÏÎ Ð�ÑFÒ Ó=ÊhÈ Ô:Õ�Ö ×!Ø+Ù,Ù�ÚØ-Û”ÔZÌ�ÍiÜ Ê�Ý ËLÞ�ÔZß Í�à Ú×DÐ�Ó á�â�ã+äÊ�ÞLÔZÈ ÔZß Í0å

ouÇ3È É�Ê�Ë�Ì�ÍÏÎ Ð�ÑFÒ Ó=ÊhÈ Ô:Õ�Ö ×!Ø+Ù,Ù�ÚØ-Û

”ÔZÌ�ÍiÜ Êçæ�ÞLÔZß ÍAÝ à Ú×DÐ8Ó á7â�ã+äcÊ�ÞLÔZÈ ÔZß Í�å

Vertigo/CNAM, Paris 176

SQL

Vertigo/CNAM, Paris 177

Principe

– SQL(StructuredQueryLanguage)estle LangagedeRequêtesstandardpourles

SGBDrelationnels

– Expressiond’unerequêteparunbloc SELECTFROM WHERE

SELECT è listedesattributsaprojeteréFROM è listedesrelationsargumentséWHERE è conditionssurunou plusieursattributsé

– Danslesrequêtessimples,la correspondanceavecl’algèbrerelationnelleestfacileà

mettreenévidence.

Vertigo/CNAM, Paris 178

Historique

SQL86 - SQL89 ou SQL1 La référencedebase:

– Requêtescompiléespuisexécutéesdepuisunprogrammed’application.

– Typesdedonnéessimples(entiers,réels,chaînesdecaractèresdetaille fixe)

– Opérationsensemblistesrestreintes(UNION).

SQL91 ou 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

Vertigo/CNAM, Paris 179

SQL3 (encours): SQLdevient un langagedeprogrammation:

– Extensionsorientées-objet

– Opérateurdefermeturetransitive (recursion)

– ...

Vertigo/CNAM, Paris 180

ExpressionsdeBase

Vertigo/CNAM, Paris 181

Projection

Soit le schémaderelationCOMMANDES (NUM,CNOM,PNOM,QUANTITE)

REQUÊTE: Informationsur touteslescommandes

SQL:

SELECT NUM,CNOM,PNOM,QUANTITE

FROM COMMANDES

ou

SELECT *

FROM COMMANDES

Vertigo/CNAM, Paris 182

Projection: Distinct

Soit le schémaderelationCOMMANDES (NUM,CNOM,PNOM,QUANTITE)

REQUÊTE: Produitscommandés

SELECT PNOM

FROM COMMANDES

NOTE: Contrairementà l’algèbrerelationnelle,SQLn’éliminepaslesdupliqués.Pour

lesélimineron utiliseDISTINCT:

SELECT DISTINCT PNOM

FROM COMMANDES

Le DISTINCT peutêtreremplacéparla clauseUNIQUE danscertainssystèmes

Vertigo/CNAM, Paris 183

Sélection

Soit le schémaderelationCOMMANDES (NUM,CNOM,PNOM,QUANTITE)

REQUÊTE: Produitscommandéspar Jean

ALGÈBRE: ê;ë5ì,í�î ïwðRñ5ì,í�î ò=ó�ô6õ5öcì÷óøïúù û ü ü ý þ ÿ � �����SQL:

SELECT PNOM

FROM COMMANDES

WHERE CNOM= ’JEAN’

Vertigo/CNAM, Paris 184

REQUÊTE: Produitscommandéspar Jeanenquantitésupérieure à 100

SQL:

SELECT PNOM

FROM COMMANDES

WHERE CNOM= ’JEAN’

AND QUANTITE > 100

Vertigo/CNAM, Paris 185

Conditions desélectionenSQL : Conditions simples

Lesconditionsdebasesontexpriméesdedeuxfaçons:

1. attribut comparateurvaleur

2. attribut comparateurattribut

où ���� ��� ��������� est � ��� ��� ��� � ���������Soit le schémaderelationFOURNITURE (PNOM,FNOM,PRIX)

REQUÊTE: Produitsdeprix supérieurà 200F

Vertigo/CNAM, Paris 186

SQL:

SELECT PNOM

FROM FOURNITURE

WHERE PRIX > 2000

Vertigo/CNAM, Paris 187

Soit le schémaderelationFOURNITURE (PNOM,FNOM,PRIX)

REQUÊTE: Produitsdontle nomestcelui du fournisseur

SQL:

SELECT PNOM

FROM FOURNITURE

WHERE PNOM= FNOM

Vertigo/CNAM, Paris 188

Conditions desélectionen SQL : Suite

Le �� ! "�#�$�#�%�&�'�$ 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 ( BETWEEN ) AND * estéquivalenteà ( + , * AND

) + , ( .

Vertigo/CNAM, Paris 189

Soit le schémaderelationCOMMANDES (NUM,CNOM,PNOM,QUANTITE)

REQUÊTE: Clientsdontle nomcommencepar "C"

SQL:

SELECT CNOM

FROM COMMANDES

WHERE CNOMLIKE ’C%’

NOTE: Le littéral qui suit LIKE doit êtreunechaînedecaractèreséventuellementavec

descaractèresjokers(_, %). Pasexprimableavecl’algèbrerelationnelle.

Vertigo/CNAM, Paris 190

La valeur NULL (*)

La valeurNULL estunevaleur“spéciale”qui représenteunevaleur(information)

inconnue.

1. - . / estinconnu (ni vrai, ni faux)si la valeurde - ou/et / estNULL ( . estl’un

de 0 1�2 143 1�5 146 1870 ).

2. - 9;: / estNULL si la valeurde - ou/et / estNULL ( 9<: estl’un de = 1�> 1@? 1BA ).

Vertigo/CNAM, Paris 191

Soit le schémaderelationFOURNISSEUR(FNOM,STATUT,VILLE)

REQUÊTE: LesFournisseurs deParis.

SQL:

SELECT FNOM

FROM FOURNISSEUR

WHERE VILLE = ’Paris’

Onnetrouve paslesfournisseursavecVILLE = NULL !

Vertigo/CNAM, Paris 192

Soit le schémaderelationFOURNISSEUR(FNOM,STATUT,VILLE)

REQUÊTE: Fournisseurs dontl’adresseestinconnu.

SQL:

SELECT FNOM

FROM FOURNISSEUR

WHERE VILLE IS NULL

NOTE: Le prédicatIS NULL (ou IS NOT NULL) n’estpasexprimableenalgèbre

relationnelle.

Vertigo/CNAM, Paris 193

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 C IN DE�FHGIF�J�J�J�FLKNM estéquivalenteà C O E OR C O G OR J�J�J OR

C O K .

Vertigo/CNAM, Paris 194

Jointur e

Soit le schémaderelations

COMMANDES (NUM,CNOM,PNOM,QUANTITE)

FOURNITURE (PNOM,FNOM,PRIX)

REQUÊTE: Nom,Coût,FournisseurdesProduitscommandéspar Jean

ALGÈBRE:

PRQTSVUXW YZQ\[8]_^VYa`bScUXW dfe�gTSVUXW hji�kmlTn8Soi�dqp r s s t u v w x�y{z d}| r ~ � u ��� ~ � w y�y

Vertigo/CNAM, Paris 195

SQL:

SELECT COMMANDES.PNOM,PRIX, FNOM

FROM COMMANDES,FOURNITURE

WHERE CNOM= ’JEAN’ AND

COMMANDES.PNOM= FOURNITURE.PNOM

NOTE: Cetterequêteestéquivalenteà unejointurenaturelle.Noterqu’il fauttoujours

expliciter lesattributsdejointure.

NOTE: SELECTCOMMANDES.PNOM,PRIX, FNOM FROM COMMANDES,

FOURNITUREéquivautàunproduitcartésiendesdeuxrelations,suivi d’uneprojection.

Vertigo/CNAM, Paris 196

Soit le schémaderelationFOURNISSEUR(FNOM,STATUT,VILLE)

REQUÊTE: Fournisseurs qui 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.

Vertigo/CNAM, Paris 197

Soit le schémaderelationEMPLOYE(EMPNO,ENOM,DEPNO,SAL)

REQUÊTE: NometSalairedesEmployésgagnantplusquel’employédenuméro 12546

ALGÈBRE:

R1:= �j�N�8�X�}����� �T�V���������������f� � � �¡  ¢ � £�£R2:= � �¤�V�X� ¥Z�¤� �\�4�T¦��¨§©�N�8� ���f� � � �¡  ¢ � £«ª �¤� �T�¬�T¦­�®§Z�N�8��¯±°X�_§©�N�8� �f² ³I£�£

SQL:

SELECT E1.ENOM, E1.SAL

FROM EMPLOYEE1, EMPLOYEE2

WHERE E2.EMPNO = 12546 AND

E1.SAL > E2.SAL

Vertigo/CNAM, Paris 198

TroisValeursde Vérité (*)

Trois valeursdevé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

Vertigo/CNAM, Paris 199

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

inconnu?

Vertigo/CNAM, Paris 200

Jointur esdansSQL2 (*)

Vertigo/CNAM, Paris 201

OpérationsdeJointur e (*)

SQL2 opération Algèbre

R1CROSSJOINR2 produitcartesien ´ µ ¶ ´ ·R1JOINR2ON R1.A <R2.B théta-jointure ´ µ ¸º¹X»�¼¾½X¿j¹8À�¼ZÁ ´ ·

R1NATURAL JOINR2 jointurenaturelle ´ µ ¸ ´ ·

Vertigo/CNAM, Paris 202

Jointur e Naturelle: Exemple(*)

SCHEMA:EMPLOYE(EMPNO,ENOM,DEPNO,SAL),DEPT(DEPNO,DNOM)

REQUÊTE: Nomsdesdépartementsaveclesnomsdeleurs employé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.

Vertigo/CNAM, Paris 203

Theta-Jointur e: Exemple(*)

Soit le schémaderelationEMPLOYE(EMPNO,ENOM,DEPNO,SAL)

REQUÊTE: Nometsalairedesemployésgagnantplusquel’employé12546

SQL:

SELECT E1.ENOM, E1.SAL

FROM EMPLOYEE1 JOIN EMPLOYEE2 ON E1.SAL > E2.SAL

WHERE E2.EMPNO = 12546

Vertigo/CNAM, Paris 204

Jointur e Externe (*)

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êtrejoints sontéliminés:

EMP NATURAL JOIN DEPT

Tom 1 10000 Comm.

Jim 2 20000 Adm.

Vertigo/CNAM, Paris 205

Jointur e Externe (*)

Jointur e externe: lesn-upletsqui nepeuventpasêtrejoints nesontpaséliminés.

– Ongardetouslesn-upletsdesdeuxrélations:

EMP NATURAL FULL OUTER JOIN DEPT

Tom 1 10000 Comm.

Jim 2 20000 Adm.

Karin 3 15000 NULL

NULL 4 NULL Tech.

Vertigo/CNAM, Paris 206

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

Vertigo/CNAM, Paris 207

Jointur esExternesdansSQL2 (*)

– R1NATURAL FULL OUTERJOINR2: RemplirR1.* etR2.*

– R1NATURAL LEFT OUTERJOINR2: RemplirR2.*

– R1NATURAL RIGHT OUTERJOINR2: RemplirR1.*

avecNULL quandnécessaire.

D’unemanièresimilaireonpeutdéfinir desthéta-jointuresexternes:

– R1 (FULL|LEFT|RIGHT)OUTERJOINR2ON prédicat

Vertigo/CNAM, Paris 208

ExpressionsEnsemblistes

Vertigo/CNAM, Paris 209

Union

COMMANDES (NUM,CNOM,PNOM,QUANTITE)

FOURNITURE (PNOM,FNOM,PRIX)

REQUÊTE: Produitsqui coûtentplusque1000Fou ceuxqui sontcommandéspar Jean

ALGÈBRE:

Â Ã Ä Å Æ ÇÉÈ Ã Ê ËNÌ Í ÎÐÏ�Ï�ÏXÇ Ñ Ò4ÒÓ

Â Ã Ä Å Æ ÇÉÈ Ô Ä Å Æ Õ ÖØ×�ÙÉÚÜÛ8Ö Ç Ò4Ò

Vertigo/CNAM, Paris 210

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’occurrencesdun-upletdansla premièreet la deuxièmerequête.

Vertigo/CNAM, Paris 211

Différ ence

La différencenefait paspartiedu standard.

EMPLOYE(EMPNO,ENOM,DEPTNO,SAL)DEPARTEMENT (DEPTNO,DNOM,LOC)

REQUÊTE: Départementssansemployés

ALGÈBRE: àâá{ã¤ä8åâæcçéè}ê ë ì í î ï ë ð ë ñ ï òTó àâá{ã¤ä8åâæVçéèfë ð ì ô¡õ ö ë òSQL:

SELECT DEPTNO

FROM DEPARTEMENT

EXCEPT

SELECT DEPTNO

FROM EMPLOYE

NOTE: La différenceéliminelesdupliqués.Pourgarderlesdupliquésonutilise

Vertigo/CNAM, Paris 212

l’opérationEXCEPT ALL : le résultatcontientchaquen-uplet ÷ ø ù fois, où ÷ et ù estle

nombred’occurrencesdun-upletdansla premièreet la deuxièmerequête.

Vertigo/CNAM, Paris 213

Intersection

L’intersectionnefait paspartiedu standard.

EMPLOYE(EMPNO,ENOM,DEPTNO,SAL)

DEPARTEMENT (DEPTNO,DNOM,LOC)

REQUÊTE: Départementsayantdesemployésqui gagnentplusque20000Fet qui se

trouventà Paris

ALGÈBRE:

ú û ü ý þ ÿ � ��� ��� � � ��ý � ������� ����

ú û ü ý þ ÿ � ��� ��� ��� ����������� �!�

Vertigo/CNAM, Paris 214

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 " #%$'&)(+*-,/. fois, où ( et

, estle nombred’occurrencesdu n-upletdansla premièreet la deuxièmerequête.

Vertigo/CNAM, Paris 215

Imbrication desRequêtesenSQL

Vertigo/CNAM, Paris 216

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:

021436587 9:1<;>=@?69BAC3D587 EGFIH436587 JLKNMPO4Q>3RKSEUT V W W X Y Z [ \^]`_ Eba V c d Y eSf c d [ ]g]

Vertigo/CNAM, Paris 217

SQL:

SELECT PNOM,PRIX,FNOM

FROM FOURNITURE

WHERE PNOMIN (SELECT PNOM

FROM COMMANDES

WHERE CNOM= ’JEAN’)

ou

SELECT FOURNITURE.PNOM,PRIX,FNOM

FROM FOURNITURE,COMMANDES

WHERE FOURNITURE.PNOM= COMMANDES.PNOM

AND CNOM= ‘‘JEAN’’

Vertigo/CNAM, Paris 218

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:

hji`kml>njo6p qbr s t u v w s x s y w z4{ h2i|k4lCnjo6p�qbs x t }R~ � s z

Vertigo/CNAM, Paris 219

SQL:

SELECT DEPTNO

FROM DEPARTEMENT

WHERE DETPNONOT IN (SELECT DISTINCT DEPTNO

FROM EMPLOYE)

ou

SELECT DEPTNO

FROMDEPARTEMENT

EXCEPT

SELECT DISTINCT DEPTNO

FROMEMPLOYE

Vertigo/CNAM, Paris 220

Requêtesimbriquéesplus complexes: ANY - ALL

Soit le schémaderelationFOURNITURE (PNOM,FNOM,PRIX)

REQUÊTE: Fournisseurs desBriquesà uncoûtinférieurau 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 . . . ).

Vertigo/CNAM, Paris 221

Soit le schémaderelations

COMMANDE (NUM,CNOM,PNOM,QUANTITE)

FOURNITURE (PNOM,FNOM,PRIX)

REQUÊTE: Nom,CoûtetFournisseurdesProduitscommandéspar Jean

SQL:

SELECT PNOM, PRIX, FNOM

FROM FOURNITURE

WHERE PNOM= ANY (SELECT PNOM

FROM COMMANDE

WHERE CNOM= ’JEAN’)

NOTE: LesprédicatsIN et= ANY sontutilisésdefaçonéquivalente.

Vertigo/CNAM, Paris 222

Soit le schémaderelationCOMMANDE (NUM,CNOM,PNOM,QUANTITE)

REQUÊTE: Clientayantcommandé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�I���estvraiepourtouteslesvaleurs� du résultatdubloc (SELECTF FROM . . . ).

Vertigo/CNAM, Paris 223

Soit le schémaderelations

EMPLOYE(EMPNO,ENOM,DEPNO,SAL)

DEPARTEMENT (DEPTNO,DNOM,LOC)

REQUÊTE: Départementssansemployés

SQL:

SELECT DEPTNO

FROM DEPARTEMENT

WHERE DETPNONOT = ALL (SELECT DISTINCT DEPTNO

FROM EMPLOYE)

NOTE: LesprédicatsNOT IN etNOT = ALL sontutilisésdefaçonéquivalente.

Vertigo/CNAM, Paris 224

Requêtesimbriquéesplus complexes: EXISTS

Soit le schémaderelations

FOURNISSEUR(FNOM,STATUS,VILLE)FOURNITURE (PNOM,FNOM,PRIX)

REQUÊTE: Fournisseurs qui fournissentaumoinsunproduit

SQL : SELECT FNOM

FROM FOURNISSEUR

WHERE EXISTS (SELECT *

FROM FOURNITURE

WHERE FNOM= FOURNISSEUR.FNOM)

NOTE: La conditionEXISTS(SELECT* FROM . . . ) estvraiessile résultatdubloc(SELECTF FROM . . . ) n’estpasvide.

Vertigo/CNAM, Paris 225

Soit le schémaderelations

FOURNISSEUR(FNOM,STATUS,VILLE)

FOURNITURE (PNOM,FNOM,PRIX)

REQUÊTE: Fournisseurs qui nefournissentaucunproduit

SQL:

SELECT FNOM

FROM FOURNISSEUR

WHERE NOT EXISTS (SELECT *

FROM FOURNITURE

WHERE FNOM= FOURNISSEUR.FNOM)

NOTE: La conditionNOT EXISTS(SELECT* FROM . . . ) estvraiessile résultatdu

bloc (SELECTF FROM . . . ) estvide.

Vertigo/CNAM, Paris 226

FormesÉquivalentesdeQuantification

Si � estundesopérateursdecomparaison� ��� ��� ���N���– La conditionx � ANY (SELECTRi.y FROM R1, �N��� RnWHEREp) estéquivalente

à

EXISTS(SELECT* FROM R1, ���N� RnWHEREp AND x � Ri.y)

– La conditionx � ALL (SELECTRi.y FROM R1, ���N� RnWHEREp) estéquivalente

à

NOT EXISTS(SELECT* FROM R1, ���N� RnWHERE(p) AND NOT (x � Ri.y))

Vertigo/CNAM, Paris 227

Soit le schémaderelations

COMMANDE (NUM,CNOM,PNOM,QUANTITE)

FOURNITURE (PNOM,FNOM,PRIX)

REQUÊTE: Nom,prix et fournisseurdesproduitscommandéspar Jean

SELECT PNOM, PRIX, FNOM FROM FOURNITURE

WHERE EXISTS (SELECT * FROM COMMANDE

WHERECNOM= ’JEAN’

AND PNOM= FOURNITURE.PNOM)

SELECT PNOM, PRIX, FNOMFROM FOURNITURE

WHERE PNOM= ANY (SELECT PNOM FROM COMMANDE

WHERE CNOM= ’JEAN’)

Vertigo/CNAM, Paris 228

Soit le schémaderelationFOURNITURE (PNOM,FNOM,PRIX)

REQUÊTE: Fournisseurs qui fournissentaumoinsunproduit avecuncoû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’)

Vertigo/CNAM, Paris 229

Division

Soit le schémaderelations

FOURNITURE (FNUM,PNUM,QUANTITE)

PRODUIT (PNUM,PNOM,PRIX)

FOURNISSEUR(FNUM,FNOM,STATUS,VILLE)

REQUÊTE: Fournisseurs qui fournissenttouslesproduits

Vertigo/CNAM, Paris 230

ALGÈBRE:

R1:= �2�C� ��� �B�<� ��� �G� � � � � �S  � � ¡ ¢�£ �j�<� ��� �G¤ � � ¥ � �S  ¢R2:= � �C�6¦8� �b� � � � � �!§`§�¡ � � ¨ � ©�¢

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

Vertigo/CNAM, Paris 231

Fonctionsde Calcul

Vertigo/CNAM, Paris 232

COUNT, SUM, AVG, MIN, MAX

REQUÊTE: NombredeFournisseurs deParis

SELECT COUNT(*) FROM FOURNISSEUR

WHERE VILLE = ’Paris’

REQUÊTE: NombredeFournisseurs qui fournissentactuellementdesproduits

SELECT COUNT(DISTINCT FNOM) FROM FOURNITURE

NOTE: La fonctionCOUNT(*) comptele nombredesª -upletsdu résultatd’unerequête

sanséliminationdesdupliquésni vérificationdesvaleursnulles.Dansle cascontraireon

utilise la clauseCOUNT(UNIQUE . . . ).

Vertigo/CNAM, Paris 233

REQUÊTE: QuantitétotaledeBriquescommandées

SELECT SUM (QUANTITE)

FROM COMMANDES

WHERE PNOM= ’Brique’

REQUÊTE: CoûtmoyendeBriquesfournies

SELECT AVG (PRIX) SELECT SUM (PRIX)/COUNT(PRIX)

FROM FOURNITURE ou FROMFOURNITURE

WHERE PNOM= ’Brique’ WHEREPNOM= ’Brique’

Vertigo/CNAM, Paris 234

REQUÊTE: Leprix desbriquesqui sontle pluschères.

SELECT MAX (PRIX)

FROM FOURNITURE

WHERE PNOM= ’Briques’;

Vertigo/CNAM, Paris 235

REQUÊTE: Fournisseurs desBriquesaucoûtmoyendesBriques

SELECT FNOM

FROM FOURNITURE

WHERE PNOM= ’Brique’ AND

PRIX < (SELECT AVG(PRIX)

FROM FOURNITURE

WHEREPNOM= ’Brique’)

Vertigo/CNAM, Paris 236

Opérationsd’Agrégation

Vertigo/CNAM, Paris 237

GROUP BY

REQUÊTE: Nombredefournisseurspar ville

SELECT VILLE, COUNT(FNOM)

FROM FOURNISSEUR

GROUPBY VILLE

Vertigo/CNAM, Paris 238

LA BASEET 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éciserlesattributsdepartitionnementdesrelationsdeclaréesdansla clauseFROM. Parexempleon regroupelesfournisseursparville.

Vertigo/CNAM, Paris 239

REQUÊTE: Donnerpourchaqueproduit 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. Parexemplele calculdela moyennesefait par

produitobtenuaurésultataprèsle regroupement.

Vertigo/CNAM, Paris 240

HAVING

REQUÊTE: Produitsfournispar deuxou plusieurs fournisseurs avecuncoûtsupérieur

de100

SELECT PNOM

FROM FOURNITURE

WHERE PRIX > 100

GROUPBY PNOM

HAVING COUNT(*) >= 2

Vertigo/CNAM, Paris 241

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’éliminer despartitionnements,commela clause

WHEREéliminedes« -upletsdu résultatd’unerequête.Parexempleongardeles

produitsdontle nombredesfournisseursest ¬ ­ 2. Decettefaçondesconditionsde

sélectionpeuventêtreappliquéesavantle calculd’agrégat (clauseWHERE)maisaussi

après(clauseHAVING).

Vertigo/CNAM, Paris 242

REQUÊTE: Produitsfourniset leur coûtmoyenpour lesfournisseurs dontle siège està

Paris seulementsi le coûtminimumduproduit estsupérieurà 1000F

SELECT PNOM, AVG(PRIX)

FROM FOURNITURE, FOURNISSEUR

WHERE VILLE = ’Paris’ AND

FOURNITURE.FNOM= FOURNISSEUR.FNOM

GROUPBY PNOM

HAVING MIN(PRIX) > 1000

Vertigo/CNAM, Paris 243

ORDER BY

Engénéral,le résultatd’unerequêteSQL n’estpastrié. Pourtrier le résultatparrapport

auxvaleursd’un ou deplusieursattributs,onutilise la clauseORDERBY:

SELECT VILLE, FNOM, PNOM

FROMFOURNITURE, FOURNISSEUR

WHEREFOURNITURE.FNOM= FOURNISSEUR.FNOM

ORDERBY VILLE, FNOMDESC

Le résultatesttrié parlesvilles (ASC) et le nomsdesfournisseurdansl’ordre inverse

(DESC).

Vertigo/CNAM, Paris 244

RécursiondansSQL3 (*)

Vertigo/CNAM, Paris 245

Enfants (*)

Soit le schémaderelationENFANT (NOMPAR,NOMENF)

REQUÊTE: LesenfantsdeCharlemagne

SQL:

SELECT NOMENF

FROMENFANT

WHERENOMPAR=’Charlemagne’ ;

Vertigo/CNAM, Paris 246

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

Vertigo/CNAM, Paris 247

Misesà jour avecSQL

Vertigo/CNAM, Paris 248

Création de Tables

On créeunetableavecla commandeCREATE TABLE :

CREATE TABLE Produit(pnom VARCHAR(20),

prix INTEGER,

PRIMARY KEY (pnom));

CREATE TABLE Fournisseur(fnom VARCHAR(20) PRIMARY KEY,

ville VARCHAR(16));

CREATE TABLE Fourniture (pnom VARCHAR(20) NOT NULL,

fnom VARCHAR(20) NOT NULL,

FOREIGN KEY (pnom) REFERENCESProduit,

FOREIGN KEY (fnom) REFERENCESFournisseur);

Vertigo/CNAM, Paris 249

Destruction deTables

On détruitunetableavecla commandeDROP TABLE :

DROPTABLE Fourniture;

DROPTABLE Produit;

DROPTABLE Fournisseur;

Vertigo/CNAM, Paris 250

Insertion de n-uplets

On insèredansunetableavecla commandeINSERT dontvoici la syntaxe.

INSERT INT O ® ¯G° ±�²³° ´�²�µ�µNµ¶²³° ·¹¸ VALUES ¯»º¼±�²½º�´�²�µNµ�µ¾º�·¹¸Doncondonnedeuxlistes: cellesdesattributs(les ° ¿ ) dela tableet celledesvaleurs

respectivesdechaqueattribut (les º�¿ ).1. Bienentendu,chaque° ¿ doit êtreunattribut de ®2. Lesattributsnon-indiquésrestentàNULL ouà leurvaleurpardéfaut.

3. Ondoit toujoursindiquerunevaleurpourunattribut déclaréNOT NULL

Vertigo/CNAM, Paris 251

Insertion : exemples

Insertiond’uneligne dansProduit:

INSERT INT O Produit (pnom,prix)

VALUES (’Ojax’, 15)

Insertiondedeuxfournisseurs:

INSERT INT O Fournisseur(fnom,ville)

VALUES (’BHV’, ’Paris’), (’Casto’, ’Paris’)

Il estpossibled’insérerplusieurslignesenutilisantSELECT

INSERT INT O NomsProd (pnom)

SELECT DISTINCT pnomFROM Produit

Vertigo/CNAM, Paris 252

Modification

Onmodifieunetableavecla commandeUPDATE dontvoici la syntaxe.

UPDATE À SET Á Â6à Ä�Â�ÅÆÁ Ç Ã Ä�Ç�Å�ÈNÈ�ȶÅÆÁ É Ã Ä�ÉWHERE condition

Contrairementà INSERT, UPDATE s’appliqueà unensembledelignes.

1. Onénumèrelesattributsquel’on veutmodifier.

2. On indiqueà chaquefois la nouvelle valeur.

3. La clauseWHERE conditionpermetdespécifierleslignesauxquelless’appliquela

miseà jour. Elle estidentiqueauWHERE du SELECT

Bienentendu,onnepeutpasvioler lescontraintessurla table.

Vertigo/CNAM, Paris 253

Modification : exemples

Miseà jour du prix d’Ojax:

UPDATE ProduitSET prix=17

WHERE pnom= ’Ojax’

Augmenterlesprix detouslesproduitsfournisparBHV par20%:

UPDATE ProduitSET prix = prix*1.2

WHERE pnomin (SELECT pnom

FROM Fourniture

WHERE fnom= ’BHV’ )

Vertigo/CNAM, Paris 254

Destruction

Ondétruituneouplusieurslignesdansunetableavecla commandeDELETE

DELETE FROM ÊWHERE condition

C’estla plussimpledescommandesdemise-à-jourpuisqueelles’appliqueàdeslignes

etpasàdesattributs.Commeprécédemment,la clauseWHERE conditionest

indentiqueauWHERE duSELECT

Vertigo/CNAM, Paris 255

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’

top related