Modèle Relationnel 2013 - 14

  • View
    37

  • Download
    0

Embed Size (px)

DESCRIPTION

Modle Relationnel 2013 - 14. Witold Litwin. BD Relationnelle. Le Rapport de Recherche qui a lanc les SGBDs Relationnels (publi uniquement en interne IBM Almaden Research Center (CA). BD Relationnelle. Le Rapport de Recherche qui a lanc les SGBDs Relationnels (Rsum). - PowerPoint PPT Presentation

Transcript

Bases de donnes relationnelles SQL (1)

Modle Relationnel2013 - 14Witold Litwin

N2

Le Rapport de Recherche qui a lanc les SGBDs Relationnels(publi uniquement en interne IBM Almaden Research Center (CA)BD RelationnelleN3BD Relationnelle

Le Rapport de Recherche qui a lanc les SGBDs Relationnels(Rsum)N4BD RelationnelleLe Rapport de Recherche qui a lanc les SGBDs Relationnels(Table des Matires)

NBase de donnes relationnelleFichier = table ou relationDonne = ligne ou attribut atomique Oprations = transformations de tables en une tableOprationrelationnelleN6

SQL: Select S#, SNAME, STATUS FROM S WHERE CITY = ParisAlgbre relationnelle :(S WHERE CITY = 'Paris') [S#, SNAME, STATUS]

SExempleNBase de donnes relationnelleUne collection d'objets :Relations relles (tables de base)Liens rferentielsContraintes d'intgrit (surtout rfrentielle)intra-relationnellesMono-attribut et multi-attribut inter-relationnellesIntgrit rfrentielle surtout Dclencheurs (ang. triggers)notamment pour maintenir l'intgritAutres (procdures stockes) Schma conceptuel = Dfinition de la collectionNEmpl (E#, Nom, Prnom, N, Rue, CodePost, Ville, Dep#) ;E# Counter ; Nom Text ; N Date ; Dep# Int...:Syst-date - N < 65* Contrainte de validationDep# Not Null ; * Contrainte d'existenceTaches (T#, Description) ;Planning (E#, T#, Date-fin, Avancement) ;Dep (Dep#, Name) ;Trigger on EmplOn Insert Check-Ref-Int (Dep, Empl.Dep#) ;Autres Dclencheurs utiles ?Ce schma est possible sous MsAccess, bien que exprim diffremmentSchma de BD EntrepriseclNSchmas ExternesSchma (vue) externe = Collection de vues relationnels (tables virtuelles drives de relations relles)Un usager ne voit pas de diffrence entre une vue relationnelle et une table relleEn principe ! Une vue relationnelle n'est pas une vue externe au sens ANSI-SPARC Celle-ci serait une base virtuelleN

PN

P

P1Create View P1 asselect P#, PNAME, COLORfrom P;N

P

P1Create View P1 asselect P#, PNAME, COLORfrom P;

P2Create View P2 asselect P#, PNAME, COLORfrom P where CITY = 'London';N

PN

P

P1

P2NBase relationnelleTables rellesNBase relationnelleTables relles et vuesNRelationsDi ; i = 1,2..n des ensembles dits domainesUne relation R est un sous-ensemble de produit cartsien:R Di,1 x Di,2 ... x ... Di,kk = 1,2...Les Di,j sont les attributs de R ; les rles de domaines (Codd) Les lments de R sont dit tuples ou n-uplets Il ny a pas de tuples gaux dans une relation

NRelationsDans une BD relationnelle, on na que des relations finies En nombre dattributs et en nombre de tuplesToute valeur dun d Di est atomiquePas un ensemble donc mono-valeur donc indcomposable sans perte de la smantique De telles relations sont dites normales Autrement dit en 1 NF au moinsNP1P2P3P4S1S2P1P2P3P1P2P3P4P1P2P3S1S1S1S1S2S2S21 NFRelations0 NFAttribut multi-valeurAttribut atomiqueNS1S2P1P2S1S2P1P2P3P4P1P2P3S1S1S1S1S2S2S21 NFRelations0 NFAttribut multi-valeurAttribut atomiqueP3S1S2P4S1La mme 1NF !N Les noms R et Di,j constituent le schma de la relationCe schma et l'ensemble des lments possibles de R constituent une intention de R.Les lments de R y prsent un moment donne constituent une extension de R.Une mise jour modifie une extension et change l'tat de la baseSchma d'une relationN

Un tat de la base S-PSPSPIntention de SUne extensionde SNDeux relations R et R' sont gales si elles diffrent seulement par ordre :d'attributs (colonnes) de tuples (lignes)Egalit de relationsN

Une mme relation S

NUne mise jour est correcte si la nouvelle extension est dans l'intention de RC'est le rle des contraintes d'intgrit de ne permettre que les mises jour correctes Un changement de schma de R est une restructuration MAJ / RestructurationN Emp (E#, Nom, Prnom, Age, Rue, CodePost, Ville, Dep#) ;Age < 65* Contrainte de validation Dep# Not Null ; * Contrainte d'existenceUpdate Emp Set Age = 35 Where E# = '123' ;Update Emp Set Age = 75 Where E# = '456' ;Alter Emp Add Tel Integer ;SQL : MAJ / Restructuration ?NOprations relationnellesUne relation est un fichier qui supporte les oprations relationnelles Une opration relationnelle transforme des relations arguments dans une relation rsultat :une relation temporaire n'appartenant pas au schma de la base.une relation de la base (mise jour)une vueNOprations relationnellesPour une BD relationnelle, les oprations sont dfinies sur les relations normalesCelles basiques forment lalgbre relationnelle Dfinie par E. Codd En pratique, il y a aussi des oprations additionnellesArithmtiques, agrgations NOprations relationnellesSlection :ProjectionRestrictionJointure naturelle ou DivisionAgrgationOpration suppl.Mise jourCration dune vue

Voir le cours sur lalgbre relationnelleOp. ensemblistes: UNION, INTER, DIFF, TIMESN

Base S-PS

S [S#,SNAME]S [CITY]S WHERE CITY = ParisVilles de fournisseursIds et noms de fournisseurs NJointure naturelleLa jointure A JOIN B de deux tables A (X, Y) et B (Z, Y) est la table C avec les attributs :C (X, Y, Z)et avec tous les tuples (X:x, Y:y, Z:z ) tels que (x, y) est dans A et (y, z) est dans Bpas dautres tuplesX, Y, Z peuvent tre compossNJointure naturelleEst-ce que la jointure naturelle est commutative et/ou associative ? Notamment \ une slection ou une projection ? A JOIN B =? B JOIN AA JOIN B JOIN C = ? A JOIN (B JOIN C) A JOIN A JOIN A = ?N

CS

SC

CS JOIN SCS S [STATUS, CITY] S [S#, CITY]NS#SNameStatusCitys1smith20Londons2Jones10Pariss3Blake30Pariss4Clark20londons5Adams30Athenss#P#qtys1p1300s1p2200s1p3400s1p4200s1p5100s1p6100s2p1300s2p2400s3p2200s4p2200s4p4300s4p5400S JOIN SPS#SNameStatusCityP#qtys1smith20Londonp2200s1smith20Londonp3400s1smith20Londonp4200s1smith20Londonp5100s1smith20Londonp6100s1smith20Londonp1300s2Jones10Parisp1300s2Jones10Parisp2400s3Blake30Parisp2200s4Clark20londonp2200s4Clark20londonp4300s4Clark20londonp5400SSPFournisseurs avec les fournituresN-jointureTable C gale : C = ( A TIMES B ) WHERE X Yest la jointure de tables A(X,...) et B (Y,...).TIMES est un produit cartesienX et Y sont non-composites , , , , La jointure est note :C = A JOIN B ON X Y.N-jointure / Equi-jointureC = A JOIN B ON X =Y est une equi-jointure.A ne pas confondre avec la jointure naturelleO lattribut Y de jointure peut tre de plus composite Est-ce que la - jointure est commutative et/ou associative ?

NDivisionTable C ( X ) note:A DIVIDEBY Best une division de tables A (X, Y) et B (Y) ssi C contient tous les tuples ( x ) tels que( y ) B , ( x, y ) A S# P#S1 P1S1 P2S2 P1S2 P3P#P1P2S#S1Tout fournisseur de pices P1 et P2. DIVIDEBY est associatif ou commutatif ?NR1 UNION R2 R1 INTER R2R1 DIFF R2 Elles sont union-compatibles Mme nombre dattribut Types dattributs compatibles Permettant dvaluer = sur les attributs La dfinition de compatibilit dpend du SGBD Mme de sa version Op. ensemblistes UNION, INTER, DIFFNProduit cartsien R1 TIMES R2 Pas de contraintes sur les types dattributsNi sur leur nombre Opration trs chre que lon vite tout prixOp. ensemblistes TIMESNRequtes algbriques la base S-P(( S JOIN SP ) WHERE P# = 'P2' ) [ SNAME](( S JOIN SP ) WHERE P# = 'P2' ) WHERE STATUS > 100 ) [ SNAME](((P WHERE COLOR 'Red' ) [P#] JOIN SP ) [S#] JOIN S [SNAME](((P WHERE COLOR 'Red' ) [P#, PNAME] JOIN SP ) [S#, PNAME] JOIN S [SNAME](( SP [S#, P#] DIVIDEBY P [P#] ) JOIN S ) [SNAME]SP [S#, P#] DIVIDEBY (( SP WHERE S# = 'S2') [P#]))NRequtes algbriques la base S-P[SCITY] UNION [PCITY]( S JOIN SP ) WHERE P# = 'P2' INTER ( S JOIN SP ) WHERE P# = 'P3' [ SNAME](S DIFF (( S JOIN SP ) WHERE P# = 'P2' )) [ SNAME]((S TIMES SP ) WHERE P# = 'P2' ) WHERE STATUS > 100 ) [ SNAME]NUtilit de l'algbrePuissance expressive:8 oprateurs de Codd permettent d'exprimer toute expression logique de prdicat de 1-er ordrenote: seulement 5 sont primitives (lesquels ?)La puissance expressive de l'algbre dite compltude relationnelle constitue la mesure de la puissance minimale de tout LMD assertionnel digne de ce nomNUtilit de l'algbre Technique de choix pour l'implmentationIl n'y a que 8 oprateursCes oprateurs sont faciles implmenterLeur proprits permettent de transformer les expressions en +efficaces valuer, en gnralAmliorations algbriques Moins de valeurs lire ou crire Moins de mmoire ncessaire pour ces valeurs Voir mon cours sur lalgbre

NUtilit de l'algbreExemple (( S JOIN SP ) WHERE P# = 'P2' ) [SNAME] = ( S JOIN ( SP WHERE P# = 'P2' )) [SNAME] La 2me expression semble plus efficace ?Rgle Gnrale dAmlioration ?(A JOIN B WHERE A.a = C) (A WHERE a = C) JOIN BNOprations relationnelles (SQL) Voit (Im#, Pref, Mod, Couleur) Amende (A#, I#, Nom, Addr, Pay) Select * From Voit Where Couleur = 'rose'; Select Mod From Voit Select * From Voit, Amende Select Nom, Addr From Amende, Voit Where Pay Is Null and Mod = 'Ferrari' and I# = Im# ;NOprations relationnelles (SQL) Voit (Im#, Pref, Mod, Couleur) Amende (A#, I#, Nom, Addr, Pay)Update Amende Set Pay = '10-01-96' where A# = '123' ; Create View En-instance AsSelect * From Amende, Voit WherePay Is Null and Amende.I# = Voit.Im# ;NCompltude relationnelle de SQLexpression algbrique, une expression quivalente de SQL et de QBESchma de preuve: oprateur algbrique, une expression quivalente de SQL composition d'oprateurs algbriques, une composition quivalente de SQL NUne relation relle est dfinie partir des valeurs de ses attributsUne relation virtuelle (vue) est drive (hrite) par une opration relationnelle partir de relations relles ou de vuesRelations

NEn gnral, une valeur dun domaine et donc dun attribut peut tre un ensembleXML , Access 2007Pour les oprations relationnelles dans les SGBD actuels, ils ne sont nanmoins en principe que des valeurs atomiquesToute dcomposition fait perdre la smantique de la valeurDe telles relations sont dites normalesRelations

NP1P2P3P4S1S2