M16-SGBD1 1ALR-2011-09-28

download M16-SGBD1 1ALR-2011-09-28

of 14

  • date post

    09-Mar-2016
  • Category

    Documents

  • view

    217
  • download

    0

description

SGBD1

Transcript of M16-SGBD1 1ALR-2011-09-28

  • 1DRIOUCH B.DRIOUCH B. 11

    M19 : SGBD 1M19 : SGBD 1Algbre RelationnelAlgbre Relationnel

    Formateur : Formateur : DriouchDriouch ([email protected])([email protected])Etablissement : OFPPT/CFMOTI Etablissement : OFPPT/CFMOTI 28/09/201128/09/2011

    http://www.istahttp://www.ista--ntic.net/ntic.net/

    DRIOUCH B.DRIOUCH B. 22

    PlanPlan Historique SGBDHistorique SGBD

    DfinitionDfinition Model hirarchiqueModel hirarchique Model RseauModel Rseau Model ObjetModel Objet Model RelationnelModel Relationnel

    Algbre RelationnelAlgbre Relationnel Oprateurs ensemblistesOprateurs ensemblistes Oprateurs unaires relationnelOprateurs unaires relationnel Oprateurs binaires relationnelOprateurs binaires relationnel Arbre algbriqueArbre algbrique

  • 2DRIOUCH B.DRIOUCH B. 33

    Quelques dfinitionsQuelques dfinitions

    Base de Donnes : Ensemble de donnes structures,sres, cohrentes et partageablessimultanment.

    SGBD : Ensemble (logiciels) des programmes quipermet la structuration, le stockage etla manipulation des donnes.

    DRIOUCH B.DRIOUCH B. 44

    Services attendus dun SGBDServices attendus dun SGBD

    Disque

    LDD

    SGF

    LMD

    SEC

    INT

    CONF BACK

    UP

    STOC

    KAGE

    SGF : Systme de gestion de fichier.

    LDD : Langage de dfinition de donne.

    LMD : Langage de Manipulation de donnes.

    LCD : Langage de Contrle de donnes (gestion utilisateur et droit daccs)

    STOCKAGE : enregistrement

    BACKUP : Sauvegarde.

    CONF : Configuration

    SEC : Scurit

    INT : Interactif

  • 3DRIOUCH B.DRIOUCH B. 55

    Modle hirarchiqueModle hirarchique

    Lignes CommandeLignes CommandeLignes Commande

    CommandesCommandesCommandes

    ClientClient

    Client

    Client

    Commandes

    Lignes Commande

    Lignes CommandeLignes CommandeLignes Commande

    CommandesCommandes

    Lignes Commande

    Lignes CommandeLignes CommandeLignes Commande

    Liaison entre les objets de type 1 n

    Modle arborescent dont le parcours se fait du pre vers le fils laide de pointeurs

    Complexit importante

    Systme DL1 / IBM Annes 60

    DRIOUCH B.DRIOUCH B. 66

    Modle rseauModle rseauLiaison entre les objets de type n n

    Modle dont le parcours se fait laide de pointeurs mais en tous sens

    Paternit multiple

    Systme IDS2 de Bull 1968 (Bachman 62)

    Lignes CommandeLignes CommandeLignes Commande

    CommandesCommandesCommandes

    ClientClient

    Client

    Client

    Commandes

    Lignes Commande

    CommandesCommandesCommandesArticles

  • 4DRIOUCH B.DRIOUCH B. 77

    Modle relationnelModle relationnelBas sur le modle Entit Relation driv de la thorie des ensembles et de la logique des prdicats

    Grande indpendance entre vue externe et stockage interne

    Simplicit - EvolutivitThorie : Codd 1972

    IBM System R 1979 et DB2 1982

    Client

    PK IdClient

    Commande

    PK IdCommande

    FK1 IdClient

    Article

    PK IdArticle

    CommandeArticle

    PK,FK1 IdCommandePK,FK2 IdArticle

    DRIOUCH B.DRIOUCH B. 88

    Modle relationnel Modle relationnel SGBDR Client / ServeurSGBDR Client / Serveur

    DB2 DB2 -- IBM IBM UDB (Universal Data Base Tous Systmes)UDB (Universal Data Base Tous Systmes)

    DB2 400 (AS 400)DB2 400 (AS 400)

    OracleOracle

    SQL Server SQL Server MicrosoftMicrosoft

    Informix (Rachat par IBM)Informix (Rachat par IBM)

    MYSQL (Open Source)MYSQL (Open Source)

    Minimiser les changes / rseauMinimiser les changes / rseau

    Programmation de la logique de MAJ Programmation de la logique de MAJ ct serveurct serveur

  • 5DRIOUCH B.DRIOUCH B. 99

    Modle relationnel Modle relationnel SGBDR FichierSGBDR Fichier

    AccessAccess

    ParadoxParadox

    FoxProFoxPro

    Les donnes sont modifies Les donnes sont modifies localement / poste clientlocalement / poste client

    Trafic important sur le rseauTrafic important sur le rseau

    Bonnes performances sur poste de Bonnes performances sur poste de travailtravail

    DRIOUCH B.DRIOUCH B. 1010

    Modle objet mort n ?Modle objet mort n ? Projet O2 dvelopp par AltairProjet O2 dvelopp par Altair

    Commercialis par O2 technologies, Commercialis par O2 technologies, Rachet par Ardent Software puis Rachet par Ardent Software puis par Informix et retir du march en par Informix et retir du march en 2000 2000

    ODMG dissout en 2001ODMG dissout en 2001 Nouvelle norme en cours de SQL 3Nouvelle norme en cours de SQL 3

  • 6DRIOUCH B.DRIOUCH B. 1111

    Algbre RelationnelAlgbre Relationnel L'algbreL'algbre relationnellerelationnelle estest unun conceptconcept mathmatiquemathmatique dede

    relationrelation dede lala thoriethorie desdes ensemblesensembles..

    L'algbreL'algbre relationnellerelationnelle aa tt inventeinvente enen 19701970 parpar EdgarEdgarFrankFrank CoddCodd,, lele directeurdirecteur dede rechercherecherche dudu centrecentre IBMIBM dede SanSanJosJos.. ElleElle estest constitueconstitue d'und'un ensembleensemble d'oprationsd'oprationsformellesformelles sursur lesles relationsrelations.. LesLes oprationsoprations relationnellesrelationnellespermettentpermettent dede crercrer uneune nouvellenouvelle relationrelation (table)(table) partirpartird'oprationsd'oprations lmentaireslmentaires sursur d'autresd'autres tablestables (par(par exempleexemplel'union,l'union, l'intersection,l'intersection, ouou encoreencore lala diffrence)diffrence)..

    LesLes principesprincipes dede l'algbrel'algbre relationnellerelationnelle sontsont mismis enen uvreuvredede nosnos joursjours parpar lesles SGBDSGBD RelationnelsRelationnels dontdont ilsils constituentconstituent

    lesles fondementsfondements thoriquesthoriques..

    DRIOUCH B.DRIOUCH B. 1212

    Oprateurs ensemblistesOprateurs ensemblistesUnionUnion

    Lunion est utilise pour relier 2 Lunion est utilise pour relier 2 relations unirelations uni--compatibles, cest dire compatibles, cest dire ayant le mme nombre dattributs et des ayant le mme nombre dattributs et des attributs respectifs dfinis sur le mme attributs respectifs dfinis sur le mme domaine. domaine.

    R1 R2 R1 R2

  • 7DRIOUCH B.DRIOUCH B. 1313

    Oprateurs ensemblistesOprateurs ensemblistes Exemple:Exemple:R1R1 : relation Vols : relation Vols

    ParisParis--NiceNice

    R2R2 : relation Vols : relation Vols BriveBrive--MarseilleMarseille

    R1 R1 R2 :R2 : liste des liste des Vols ParisVols Paris--Nice et Nice et BriveBrive--MarseilleMarseille

    DRIOUCH B.DRIOUCH B. 1414

    Oprateurs ensemblistesOprateurs ensemblistesIntersectionIntersection

    R1 R1 R2R2

    Lintersection est utilise pour relier 2 Lintersection est utilise pour relier 2 relations unirelations uni--compatibles, cest dire compatibles, cest dire ayant le mme nombre dattributs et ayant le mme nombre dattributs et des attributs respectifs dfinis sur le des attributs respectifs dfinis sur le mme domaine. mme domaine.

    R1 R2R1 R2

  • 8DRIOUCH B.DRIOUCH B. 1515

    Oprateurs ensemblistesOprateurs ensemblistes Exemple :Exemple :

    DRIOUCH B.DRIOUCH B. 1616

    Oprateurs ensemblistesOprateurs ensemblistes DiffrenceDiffrence

    R1 R1 -- R2R2

    La diffrence est utilise pour relier 2 relations uniLa diffrence est utilise pour relier 2 relations uni--compatibles, cest dire ayant le mme nombre compatibles, cest dire ayant le mme nombre dattributs et des attributs respectifs dfinis sur le dattributs et des attributs respectifs dfinis sur le mme domaine.mme domaine.

    R1 R2 R1 - R2

  • 9DRIOUCH B.DRIOUCH B. 1717

    Oprateurs ensemblistesOprateurs ensemblistes Exemple :Exemple :

    DRIOUCH B.DRIOUCH B. 1818

    Oprateurs unaires relationnels Oprateurs unaires relationnels Les oprateurs unaires sont les oprateurs qui ne font Les oprateurs unaires sont les oprateurs qui ne font

    intervenir quune seule relation. intervenir quune seule relation.

    SlectionSlectionLa slection opre un dcoupage horizontal de la table.La slection opre un dcoupage horizontal de la table.On obtient tous les attributs pour les enregistrements On obtient tous les attributs pour les enregistrements

    slectionns. slectionns. ExemplesExemples ::liste des vols pour Niceliste des vols pour NiceRR slctionslction(vols, (vols, villearrivvillearriv==nicenice))

    liste des avions qui ont plus de 200 places liste des avions qui ont plus de 200 places R R SlctionSlction(Avion, Capacit>200)(Avion, Capacit>200)

  • 10

    DRIOUCH B.DRIOUCH B. 1919

    Oprateurs unaires relationnelsOprateurs unaires relationnelsProjectionProjection

    La projection opre un dcoupage vertical La projection opre un dcoupage vertical de la table.de la table.

    On obtient tous les enregistrements pour les On obtient tous les enregistrements pour les attributs choisis.attributs choisis.

    ExemplesExemples ::liste des noms des pilotesliste des noms des pilotesR R Projection(pilote, noms)Projection(pilote, noms)liste des modles davionsliste des modles davionsR R Projection(avions, modle)Projection(avions, modle)

    DRIOUCH B.DRIOUCH B. 2020

    Oprateurs binaires relationnels Oprateurs binaires relationnels Les oprateurs binaires sont ceux qui font Les oprateurs binaires sont ceux qui font

    intervenir deux relations.intervenir deux relations.Produit cartsienProduit cartsien

    Le produit cartsien consiste rassembler Le produit cartsien consiste rassembler deux tables en une seule en reliant chaque deux tables en une seule en reliant chaque lment de lune avec tous les lments de lment de lune avec tous les lments de lautre. lautre.

  • 11

    DRIOUCH B.DRIOUCH B. 2121

    Oprateurs binaires relationnelsOprateurs binaires relationnels Division Division La division consiste trouver la liste des valeurs La division consiste trouver la liste des valeurs

    dun attribut de R1 telles quil existe un lment dun attribut de R1 telles quil existe un lment dans R1 pour chaque valeur de R2 pour lattribut dans R1 pour chaque valeur de R2 pour lattribut correspondant.correspondant.

    Exemples :liste des pilotes qui conduisent tous les avionsliste des avions qui vont dans toutes les villes

    DRIOUCH B.DRIOUCH B. 2222

    Oprateurs binaires relationnelsOprateurs binaires relationnels JointureJointure

    LaLa jointurejointure consisteconsiste rechercherrechercher entreentre deuxdeuxtablestables ayantayant unun attributattribut communcommun (mme(mme typetype etetmmemme domainedomaine dede dfinition)dfinition) toustous lesles lmentslmentsdesdes deuxdeux tablestables pourpour lesquelslesquels cesces attributsattributs ontont lalammemme valeurvaleur..

    LaLa jointurejointure entreentre lesles tablestables VOLVOL etet PILOTEPILOTEconsisteconsiste rechercherrechercher toutestoutes lesles informationsinformations duduPILOTEPILOTE dede chaquechaque VOLVOL.. ConcrtementConcrtement elleelle raliseraliselala concatnationconcatnation desdes tuplestuples (ou(ou nn--tuplestuples)) dede VOLVOLavecavec PILOTEPILOTE chaquechaque foisfois queque

    VOLVOL..PIL#PIL# == PILOTEPILOTE..PIL#PIL#..

  • 12

    DRIOUCH B.DRIOUCH B. 2323

    Fonction et Agrgats Fonction et Agrgats (Regroupement)(Regroupement)LalgbreLalgbre relationnellerelationnelle estest insuffisanteinsuffisante pourpour

    traitertraiter dede vritablesvritables applicationsapplications desdes basesbases dededonnes,donnes, tellestelles lala suiviesuivie dede production,production, lala gestiongestiondede budget,budget, ilil estest enen effeteffet ncessairencessaire deffectuerdeffectuerdesdes calculscalculs sursur lala basebase pourpour supportersupporter dede tellestellesapplications,applications, cestcest lobjetlobjet dede lintroductionlintroduction desdesfonctionsfonctions dede calculcalcul auau seinsein dede lalgbrelalgbre etet dudusupportsupport desdes agrgatsagrgats.. Calcul dans la Calcul dans la slctionslction (Somme, produit, )(Somme, produit, )

    R1 R1 Slection (R2, Slection (R2, DegreDegre**QuatiteQuatite/100 > 10)/100 > 10) Support des agrgats(Somme, Moyenne, )Support des agrgats(Somme, Moyenne, )

    R1 R1 AGREGAT(R2, Attribut1, AGREGAT(R2, Attribut1, Fonction{Attribut2})Fonction{Attribut2})

    DRIOUCH B.DRIOUCH B. 2424

    Exemple VolAvionExemple VolAvionAvion#avMarqueTypeavionCapacitelocalisation

    Vol#voAvianPiloteVilledepartVillearriveHeuredepartheurarrive

    Pilote#pilNomCodepostalVilleDatenaissanceDatedebutactiviteDatefinactivitesalairebrut

    AffectationVolPassagerVolDatevolNumplacePrix

    Passager#pasNomPrenomville

  • 13

    DRIOUCH B.DRIOUCH B. 2525

    Arbre AlgbriqueArbre Algbrique La reprsentation La reprsentation graphique et graphique et beaucoup plus beaucoup plus lisible que les lisible que les opration opration algbrique avec algbrique avec plusieurs oprateurplusieurs oprateur

    DRIOUCH B.DRIOUCH B. 2626

    ExempleExemple Soit le schma relationnel suivant:Soit le schma relationnel suivant:Auditeur(noAuditeur(no--auditeur, nomauditeur, nom--auditeur)auditeur)

    Examen(noExamen(no--examen, salle, date)examen, salle, date)

    PassePasse--Examen(noExamen(no--auditeur, noauditeur, no--examen, note)examen, note)

    Quels sont les auditeurs qui ont eu la Quels sont les auditeurs qui ont eu la moyenne leur examen?moyenne leur examen?

    R1 R1 Slection(passeSlection(passe--examen ,note >= 10)examen ,note >= 10)

    R2 R2 Jointure(Jointure(Auditeur,R1Auditeur,R1, auditeur.no, auditeur.no--auditeur=R1.noauditeur=R1.no--auditeur)auditeur)

    R3 R3 Projection(R2, nomProjection(R2, nom--auditeur)auditeur)

    Quels sont les auditeurs qui ont pass leur Quels sont les auditeurs qui ont pass leur examen la salle S10?examen la salle S10?

  • 14

    DRIOUCH B.DRIOUCH B. 2727

    Arbre algbriqueArbre algbrique

    Arbre algbrique Arbre algbrique pour les auditeurs pour les auditeurs qui ont eu la qui ont eu la moyenne leur moyenne leur examenexamen

    DRIOUCH B.DRIOUCH B. 2828

    ExerciceExercice Soit le schma relationnel suivant:Soit le schma relationnel suivant:Fournisseur(Fournisseur(NumNum--FF, nom, ville), nom, ville)Produit (Produit (CodeCode--PP, libell, origine, couleur), libell, origine, couleur)Fourniture(Fourniture(NumNum--FF, , CodeCode--PP, quantit), quantit)On sait galement que des fournisseurs sont enregistrs dans la BD, mme sils ne On sait galement que des fournisseurs sont enregistrs dans la BD, mme sils ne

    fournissent pas de produits.fournissent pas de produits.

    Questions:Questions:Construire les arbres algbriques correspondant aux requtes suivantes:Construire les arbres algbriques correspondant aux requtes suivantes:a)a) Numros des fournisseurs qui me fournissent au moins un produitNumros des fournisseurs qui me fournissent au moins un produitb)b) Numros des fournisseurs qui me fournissent au moins le produit dont le numro Numros des fournisseurs qui me fournissent au moins le produit dont le numro

    est P6est P6c)c) Numros des fournisseurs qui me fournissent quelque chose dautre que le produit Numros des fournisseurs qui me fournissent quelque chose dautre que le produit

    P6P6d)d) Numros et noms des fournisseurs qui ne me fournissent rien.Numros et noms des fournisseurs qui ne me fournissent rien.e)e) Nom des fournisseurs trouv en c)Nom des fournisseurs trouv en c)f)f) Numros des fournisseurs qui me fournissent tous les produits originaire de DIJONNumros des fournisseurs qui me fournissent tous les produits originaire de DIJONg)g) Noms et villes des fournisseurs qui me fournissent au moins un produit originaire Noms et villes des fournisseurs qui me fournissent au moins un produit originaire

    de leur ville.de leur ville.h)h) Numros des fournisseurs qui ne fournissent que des produits verts.Numros des fournisseurs qui ne fournissent que des produits verts.i)i) Numros, noms fournisseurs et nombre fourni par chaque fournisseur.Numros, noms fournisseurs et nombre fourni par chaque fournisseur.j)j) Numros, libell produits et totale Quantit par produitsNumros, libell produits et totale Quantit par produits