notion de sgbd bases de données relationnelles -...

of 22/22
Bases de Données Relationnelles Théorie + Système + Conception Pagora Valérie Bellynck, Mazen Marhous Organisation, Objectifs et Plan Partie « Théorique » de l’enseignement Cours et TD sur 3h ! Mais + que sensibilisation Notion de SGBD : ? Bases de Données (Data Base) : ensemble de données organisées pour faciliter leur manipulation + Utilisation simultanée par différents usagers Exemples de données : Stocks (d’une imprimerie) Comptes d’un parc de photocopieuses Données variables à insérer dans des documents à imprimer Planches de bandes dessinées d’un éditeur Articles de journaux / photos et informations sur leurs auteurs Informations sur les documents à imprimer et leur état Dossiers de fabrication … propositions de dossiers de fabrication Exemple

Post on 10-Sep-2018

227 views

Category:

Documents

2 download

Embed Size (px)

TRANSCRIPT

  • Bases de Donnes Relationnelles

    Thorie + Systme + Conception

    PagoraValrie Bellynck, Mazen Marhous

    Organisation, Objectifs et Plan

    Partie Thorique de lenseignement Cours et TD sur 3h ! Mais + que sensibilisation

    Notion de SGBD:

    ? Bases de Donnes (Data Base) : ensemble de donnes organises pour faciliter leur manipulation

    + Utilisation simultane par diffrents usagers Exemples de donnes :

    Stocks (dune imprimerie) Comptes dun parc de photocopieuses Donnes variables insrer dans des documents imprimer Planches de bandes dessines dun diteur Articles de journaux / photos et informations sur leurs auteurs Informations sur les documents imprimer et leur tat Dossiers de fabrication propositions de dossiers de fabrication

    Exemple

  • Organisation des donnes ?

    Si les donnes taient dans une feuille dun fichier Excel ?

    risque de donnes errones prsence de doublons risque dincohrences plus grand nombre de donnes que ncessaire limitation du nombre de lignes impossibilit du partage partiel de donnes du fichier

    entre plusieurs utilisateurs (un seul utilisateur du fichier la fois) intolrence aux pannes

    Sparation des donnes et des programmes

    FICHIER Les donnes des fichiers sont dcrites dans les programmes

    BASE DE DONNEES Les donnes de la BD sont dcrites hors des programmes dans la base elle-mme

    Description

    fichier !

    Description fichier

    !

    Description unique

    !

    Si les donnes sont gres directement dans les fichiers par les programmes?

    Les programmes sappuient sur la description de lorganisation des donnes et ne soccupent pas de leur implmentation

    Notion de SGBD:

    ? Bases de Donnes (Data Base) : ensemble de donnes organises pour faciliter leur manipulation

    + Utilisation simultane par diffrents usagers Fiabiliser la gestion des donnes

    Systme de Gestion de Bases de Donnes (Data Base Management System) : cran entre les usagers (et les programmes) et les donnes mmorises

    Une BD nest pas seulement un ensemble organis de donnes, mais doit ntre gre que par un SGBD

    Fonctions des SGBD:

    Rangement : mmorisation des donnes Recherche : accs par le nom dune donne ou de ses relations

    dautres donnes dans une grande masse de donnes

    Assemblage : regroupement dynamique des donnes pour les prsenter ensemble quand lusager sy attend

    Conversion de donnes : passage dans lencodage utile lusager

    Protection des donnes : incidents et accidents (ex : pannes en cours de modification)

    Performances acceptables : rponses presque en temps rel (attente imperceptible ou supportable pour lusager)

  • Plan du cours

    ? Bases de Donnes (Data Base) : ensemble de donnes organises gres par un SGBD pour faciliter leur manipulation et fiabiliser leur gestion

    accessibles seulement via un systme : SGBD sappuie sur une thorie : (ici :) modle relationnel = tables algbre relationnelle conception cadre par une technique de modlisation :

    modle entits-associations

    Systmes de gestion de bases de donnes

    Que doit permettre un SGBD ? (1) Dcrire les donnesindpendamment des applications (de manire intrinsque : en intention, pas en extension)

    langage de dfinition des donnes DATA DEFINITION LANGUAGE (DDL)

    http://www.i3s.unice.fr/~nlt/cours/licence/sgbd1/sgbd1_cours.pdf!

    Manipuler les donnesinterroger et mettre jour les donnes sans prciser comment (dire QUOI sans dire COMMENT) langage de requtes dclaratif

    langage de manipulation des donnes DATA MANIPULATION LANGUAGE (DML)

    Contrler les donnes assurer lintgrite (vrification de contraintes d'intgrite )assurer la confidentialite contrler les droits d'accs, autorisation

    langage de contrle des donnes DATA CONTROL LANGUAGE (DCL)

    Que doit permettre un SGBD ? (2)Partagedune BD entre plusieurs utilisateurs en mme temps contrle des accs concurrentsTransaction : son excution permet de prserver la cohrence de la BD

    notion de transaction

    http://www.i3s.unice.fr/~nlt/cours/licence/sgbd1/sgbd1_cours.pdf!

    Scurit reprise aprs pannes, journalisation

    Performance daccsTables de hashage, arbre de recherche balancs indexage

  • Que doit permettre un SGBD ? (3)

    Indpendance physiquePermettre la modification des structures de stockage ou dindex sans rpercussion sur les applications Enfouissement des mthodes daccs aux disques, des modes de placement, du codage effectif des donnes

    systmes en couches couche physique/couche logique

    Indpendance logiquePermettre diffrentes vues logiques de lorganisation des donnes les programmes exploitent des schmas logiques dclarables partir de lorganisation relle des donnes

    systmes en couches couche logique/couche externe

    http://www.i3s.unice.fr/~nlt/cours/licence/sgbd1/sgbd1_cours.pdf!

    Caractristiques Systme en 3 couches sparant les aspects

    prsentation des rsultats gestion des donnes systme de gestion de fichiers

    + Description des donnes (= dfinition des proprits densembles dobjets modliss dans la base de donnes) spare de leur utilisation

    ce cours

    intention extension

    Diffrents types de BD Bases hirarchiques

    schma de la base -> arborescenttechnique -> bases navigationnelles (gestion de pointeurs entre les

    enregistrements). Bases rseaux : + rapides, annes 70

    technique -> bases navigationnelles schma de la base -> graphe (arbres, treillis, ).

    Bases relationnelles : + utilisesschma de la base -> relations entre tablestechnique -> algbre relationnelle + langage dclaratif (SQL)

    Bases dductives.schma de la base-> tables et prdicatstechnique -> calcul des prdicats et logique du premier ordre + langage

    dinterrogation Bases objets

    schma de la base -> instances de classes hirarchises, champ = objettechnique -> mthodes dinterrogation et daffectation = partie des

    objets, la notion dhritage permet de factoriser la connaissance

    ce cours

    Notions fondamentales caractrisant un type de BD

    Modle de description des donnes (data model) : ensemble de concepts et de rgles de composition de ces concepts permettant de dcrire des donnes. Par exemple : rseau atome / agrgat / article / ensemble / BD rseau / placement hirarchique champ / segment / arbre de segments / forts / BD hir. relationnel domaine/ relation/ attribut/ uplet / BD relationnelle

    Langage de description des donnes (data description language) : langage supportant un modle et permettant de dcrire des donnes dune base de donnes dune manire assimilable par une machine. Par exemple : relationnel SQL

    Schma (schema) : description dun ensemble de donnes particulier au moyen dun langage formel dtermin.

  • Le modle relationnelExemple (de ce quon va voir)Schma relationnel (sous forme fonctionnelle)

    Table relationnelle

    Cration de la table en SQL par le Langage de

    Dfinition de donnes - LDD (data definition language - DDL)

    Auteur

    nA Nom Prenom DateNaissance 1 Hugo Victor 26fvrier1802 2 Perec Georges 7mars1936

    Auteur&(noA:integer,&Nom:string[30],&Prenom:string[30],&DateNaissance:date)!

    CREATE TABLE Client ( noA NUMBER NOT NULL, Nom VARCHAR (30) NOT NULL, PrenomVARCHAR (30) NOT NULL, DateNaissance TIMESTAMP NOT NULL, PRIMARY KEY (noA) );

    Relation

    Attributs Domaine

    tuples Cl primaire

    Historique Annes 60 : dveloppement des systmes de fichiers

    (mmoires secondaires partages directement adressables et de capacit infinie)

    Milieu des annes 60 : premire gnration des SGBD (sparation de la description des donnes des programmes dapplication, langages daccs navigationnels reposant sur la gestion de pointeurs entre les enregistrements et visant optimiser le placement des donnes dans leur supports physiques pour rduire les temps daccs)

    Entre 60 et 70 : deuxime gnration des SGBD (modle relationnel, langages assertionnels bass sur la logique pour spcifier les donnes acqurir plutt que comment y accder)

    Dbut des annes 80 : premires commercialisations Depuis 80 : troisime gnration des SGBD

    (langages daccs plus puissants et plus rationnels supportant des types de donnes plus varies, possibilits de dduction et de rpartition)

    Annes 90 : Internet et XML (intgration de XML : oracle 8i et +)

    Annes 2010 : Cloud computing(informatique dmatrialise oppose linformatique locale depuis 2008: exploitation des technologies de linformation et volution des usages consistant proposer systmatiquement les services informatiques sous la forme de services la demande accessibles nimporte o, nimporte quand et par nimporte qui)

    Modle et algbre relationnelle

    Introduction au relationnel Objectif : dfinir un langage de requte unifiant toutes les

    manipulations des donnes Moyen : dcrire un systme dinformation

    dans un modle de description des donnes tel que toute manipulation ralise une opration

    Systme dinformation!

  • Exemple

    Pagora! !!

    Imp. des 4 ponts!

    Tournon!

    Jean-Luc!461 rue de la Papeterie!

    CS 10065- 38402!

    Saint-Martin d'Hres!

    Eybens!14 bd Gambetta!

    38320!

    297!210! Carr!

    Rectangle!Ovale!

    Rond!

    Spcial!

    Velin!

    Couch!

    Kromekot!

    Fluo!PP blanc!

    PP transparent!

    PE blanc!

    Bobine!

    Planche!

    Paravent!

    Unitaire!

    150!

    46!

    98!

    laize!

    forme!

    matire!

    contact!

    quantit!conditionnement!

    Cadre mathmatique : thorie des ensembles et algbre relationnelle

    Tout type de donnes est reprsentable dans un ensemble de tables et de relations

    Les systmes de gestion de bases de donnes relationnelles

    organisent les donnes en tables ( la manire dun tableur). Il est simple, facile comprendre et fidle un cadre mathmatique

    (lalgbre relationnelle).

    Le concept mathmatique sous-jacent est celui de relation de la

    thorie des ensembles, qui se dfinit comme un sous-ensembles du produit cartsien de plusieurs domaines : toute table sera un ensemble de relations

    Exemple

    Pagora! !!

    Imp. des 4 ponts!

    Tournon!

    Jean-Luc!461 rue de la Papeterie!

    CS 10065- 38402!

    Saint-Martin d'Hres!

    Eybens!14 bd Gambetta!

    38320!

    contact!

    contact! entreprise! adresse! code postal! ville!Pagora! 461 rue de la Papeterie! CS38402! St-Martin dHres!

    38320! Eybens!

    Domaine des villes #= toutes les valeurs possibles pour ville!

    Domaine des codes postaux#= tous les codes postaux possibles!

    Domaine !

    U-uplet #avec n = 4!

    Et alors Peut-on reprsenter toutes les donnes dans des relations ? Peut-on faire sur lensemble des relations toutes les

    oprations ralisant les manipulations dont on a besoin ? Algbre relationnelle

    + langage de requte (SQL) Comment rpartir les donnes dans des tables relationnelles

    de manire optimale (et caractriser cette notion doptimalit) ?

    Modle Entit-association + Analyse des dpendances fonctionnelles et application

    dalgorithmes de normalisation

  • Le modle relationnel Requte (request) : relation calcule par le systme partir des

    schmas de tables et des associations.

    Relation en Algbre relationnelle

    Slection en SQL par le Langage de Manipulation des donnes LMD (data manage language - DML)

    Titre ( Nom=Hugo (Auteur.NA=Livre.NA (Auteur x Livre)))!

    SELECT Nom, Prenom FROM Auteur, Livre WHERE Auteur.noA = Livre.noA AND Nom='Hugo'!

    Livre

    nL Titre Thme nA 1003 1 2118 1 1389 2

    Auteur

    nA Nom Prenom DateNaissance 1 Hugo Victor 26fvrier1802 2 Perec Georges 7mars1936

    Auteur.NA=Livre.NA (Auteur x Livre) nA Nom Prenom DateNaissance nL Titre Thme nA

    1 Hugo Victor 1003 1 1 Hugo Victor 2118 1 2 Perec Georges 1389 2

    Quels sont les titres des livres crits par Victor Hugo ?!

    Produit cartsien et sous-ensemble

    A!B!C!!Z!

    1!2!3!!10!

    volume maximal = # 26*10 = 260!

    A!B!C!!Z!

    1!2!3!!10!

    volume maximal = # seuls les couples concerns!

    Produit cartsien! Sous-ensemble #du produit cartsien!

    D1 x D2!D1! D2!

    Domaines et tables relationnelles

    Bellynck!Marechal!Dufresne!Reverdy!Marhous!

    Table relationnelle!Sous-ensemble de #D1 x D2!

    D1 = #Prof.Nom! D2 =#Prof.Prnom!

    Valrie!Alain!Nadge!Mazen!Lionel!

    Bellynck!Marechal!Dufresne!Reverdy!Marhous!

    Valrie!Alain!Alain!Nadge!Mazen!Lionel!

    Prof! Nom! Prnom!

    Exemple - dfinitions!Table relationnelle de D1 X D2 #

    = sous-ensemble de D1 X D2!!!!!Tuple (t-uplet ou n-uplet) = #

    !ligne dune relation correspondant un enregistrement!Afin de rendre lordre des colonnes sans importance #

    tout en permettant plusieurs colonnes de mme domaine, # !on associe un nom chaque colonne. !

    -> Les diffrentes colonnes dune table constituent ce que lon appelle # !les attributs de la table relationnelle.!

    Les valeurs dun attribut sont prises dans un domaine, mais par forcment toutes!Le nom doit tre porteur de sens (D1 -> Nom ; D2 -> Prnom)!

    PERSONNE D1 D2

    Bellynck Valrie

    Chagas Lionel

    Martin Cline

  • Dfinitions!Variation dune relation (ajout/suppression/modification de tuples)! invariance de sa description (domaines, relations)!Un schma dune table relationnelle (=schma dune relation)!! !est constitue de lensemble des attributs de la table, #

    ! ! !et la dfinition de ses domaines.!

    ! !Notation : PERSONNE(Nom:D1, Prnom:D2)!Intention = rsultat de la description des donnes => schma!Extension = tat des donnes un instant donn => relation!Une base de donnes relationnelle est une base de donnes dont le schma est

    un ensemble de schmas de tables relationnelles et dont les occurrences sont les tuples de ses tables.!

    Par extension, le schma dune base de donnes relationnelle est !!constitue de lensemble de toutes les tables.!

    Exemple de schma de BD!dans le domaine de ldition, limpression, : Schma de BD relationnelle pour grer un stock de matriaux!Produits (pNo, cat, typ, qual, ref, q, u) ! o - pNo, le numro du produit est un entier dont chaque valeur napparat quune seule fois dans la relation #

    - cat, la catgorie est une valeur parmi PAPIER, ENCRE, ...#- typ, le type est une valeur porte par une chane (papier velin, encre UV, ) #- qual, la qualit est une valeur porte par une chane (spcifiant par exemple le grammage pour du papier) #- ref, la rfrence est la rfrence du produit chez un fabriquant (spcifique du produit et indpendante du fournisseur) #- q, la quantit en stock effectivement est un nombre dcimal reprsentant la quantit dans une certaine unit#- u, lunit est celle dans laquelle est exprime la quantit!

    Fournisseurs (fNo, nom, adresse, ville, contact, tel) ! o - fNo, le numro du fournisseur est un entier dont chaque valeur napparat quune seule fois dans la relation #

    - nom, adresse, ville, contact et tel sont des textes !

    Commandes (cNo, pNo, fNo, date, q, etat) ! o - cNo, le numro de la commande est un entier dont chaque valeur napparat quune seule fois #

    - pNo et fNo sont des valeurs prises parmi celles de lattribut de mme nom dans les relations prcdentes # et o chaque valeur peut apparatre plusieurs fois, mais ne peut tre nulle. # - date est la date de la commande# - q est la quantit du produit command, dans lunit correspondante pour ce produit# - etat est une valeur parmi ENPREPARATION, FAITE, RECUE, RELANCEE## !

    Exemple de schma de BD!

    dans le domaine de ldition, limpression, : Schma de BD relationnelle pour grer un stock de matriaux!

    !Produits (pNo:integer, cat:enumCat, typ:enumTyp, qual:enumQual,

    ref:varchar[20], q:float, u:enumU) !Fournisseurs (fNo:integer, nom:varchar[30], adresse:varchar[60],

    ville:varchar[20], contact:varchar[30], tel:varchar[20]) !Commandes (cNo:integer, pNo:integer, fNo:integer, date:integer,

    q:float, etat:enumE) ! !

    Les oprations de base!

    Deux familles doprateurs : ! les oprateurs ensemblistes!

    ! !(lunion, la diffrence et le produit cartsien)!

    et les oprateurs unaires (un-aires)!(limination de lignes ou de colonnes : #

    ! ! !la projection et la restriction)!!Dans la suite, on utilisera les 2 relations :!

    R A B C S A B C a d c

    b a b

    c f d

    b d

    g a

    a f

  • Oprations unaires (1) :#la projection!

    T = X1,,Xn (R)!T

    R

    AC (R) A C a d c

    c f d

    R

    A B C a b c d a f c b d

    Oprations unaires (1) :#la projection!

    Lister les numros et noms des fournisseurs!

    T = fNo,nom (Fournisseurs)!

    Fournisseurs fNo nom adresse ville contact tel 10 LabelPap Lille Dupont 02 89 76 43 88 11 VelinLux Amien Martin 02 22 78 98 21 12 Tollens Lyon Jacquet 04 54 28 91 01 13 MaxCoul Lyon Durand 04 54 76 33 21 14 PapiVert Nice Martin 04 21 56 56 02 15 Ink Lille Durand 02 66 54 32 12 16 MatPro Paris Dupont 01 78 78 33 24 17 PetI Lille Lefebvre 02 66 33 87 65 19 Nuances Paris Maurice 01 54 56 33 82

    T fNo nom 10 LabelPap 11 VelinLux 12 Tollens 13 MaxCoul 14 PapiVert 15 Ink 16 MatPro 17 PetI 19 Nuances

    (1) : la projection

    Projection ou Vue!

    Oprations unaires (2) :#la slection (restriction)!

    T = Q (R)!!

    T

    R

    Q

    B=b (R) A B C a c

    b b

    c d

    R

    A B C a b c d a f c b d

  • Oprations unaires (2) :#la slection (restriction)!

    Lister les donnes sur les produits dont la quantit est suprieur 5

    T = q>5 (Produits)!!

    Lister les donnes sur les produits de type velin!T = typ>velin (Produits)!!

    Produits pNo cat typ qual ref q u 101 PAPIER velin 100gr/2 A100jap 18 103feuilles 102 PAPIER velin 120gr/2 A120jap 3 103feuilles 103 ENCRE UV 30 T30#854 1.3 102l 104 ENCRE UV 40 WN40p 2.4 102l 105 PAPIER velin 80gr/2 A80jap 8 103feuilles 106 ENCRE UV 12 WN12s 2.6 102l 107 ENCRE UV 20 T20#854 0.2 102l 108 PAPIER cason 180gr/2 A180cas 1.6 103feuilles

    T pNo cat typ qual ref q u 101 PAPIER velin 100gr/2 A100jap 18 103feuilles 105 PAPIER velin 80gr/2 A80jap 8 103feuilles

    T pNo cat typ qual ref q u 101 PAPIER velin 100gr/2 A100jap 18 103feuilles 102 PAPIER velin 120gr/2 A120jap 3 103feuilles 105 PAPIER velin 80gr/2 A80jap 8 103feuilles

    (2) : la slection (restriction)

    Oprations ensemblistes (1) :#lUnion!

    T = (R U S)!T

    R S

    U

    R U S

    A B C a b c d a f c b d b g a

    R

    A B C a b c d a f c b d

    S

    A B C b g a d a f

    Oprations ensemblistes (1) :#lUnion!

    Lister les numros, noms et villes des fournisseurs habitant Lille ou Lyon!!!

    T = fNo,nom,ville ( ville=Lille (Fournisseurs) U ville=Lyon (Fournisseurs) )!T = fNo,nom,ville ( ville=Lille ou ville=Lyon (Fournisseurs) )!T = fNo,nom,ville ( ville {Lille,Lyon} (Fournisseurs))!!

    Fournisseurs fNo nom adresse ville contact tel 10 LabelPap Lille Dupont 02 89 76 43 88 11 VelinLux Amien Martin 02 22 78 98 21 12 Tollens Lyon Jacquet 04 54 28 91 01 13 MaxCoul Lyon Durand 04 54 76 33 21 14 PapiVert Nice Martin 04 21 56 56 02 15 Ink Lille Durand 02 66 54 32 12 16 MatPro Paris Dupont 01 78 78 33 24 17 PetI Lille Lefebvre 02 66 33 87 65 19 Nuances Paris Maurice 01 54 56 33 82

    T fNo nom ville 10 LabelPap Lille 12 Tollens Lyon 13 MaxCoul Lyon 15 Ink Lille 17 PetI Lille

    Fournisseurs fNo nom adresse ville contact tel

    10 LabelPap Lille Dupont 02 89 76 43 88 15 Ink Lille Durand 02 66 54 32 12 17 PetI Lille Lefebvre 02 66 33 87 65

    Fournisseurs fNo nom adresse ville contact tel

    12 Tollens Lyon Jacquet 04 54 28 91 01 13 MaxCoul Lyon Durand 04 54 76 33 21

  • Oprations ensemblistes (2) :#la Diffrence!

    T = (R S)!T

    R S

    R

    A B C a b c d a f c b d

    S

    A B C b g a d a f R S

    A B C

    a b c c b d

    Oprations ensemblistes (2) :#la Diffrence!

    Lister les produits de catgorie PAPIER mais qui ne sont pas de qualit 120gr/2 !

    T = pNo (cat=PAPIER(Produits) qual=120gr/2 (Produits) )!

    Produits pNo cat typ qual ref q u 101 PAPIER velin 100gr/2 A100jap 18 103feuilles 102 PAPIER velin 120gr/2 A120jap 3 103feuilles 103 ENCRE UV 30 T30#854 1.3 102l 104 ENCRE UV 40 WN40p 2.4 102l 105 PAPIER velin 80gr/2 A80jap 8 103feuilles 106 ENCRE UV 12 WN12s 2.6 102l 107 ENCRE UV 20 T20#854 0.2 102l 108 PAPIER cason 180gr/2 A180cas 1.6 103feuilles

    T pNo cat typ qual ref q u 101 PAPIER velin 100gr/2 A100jap 18 103feuilles 105 PAPIER velin 80gr/2 A80jap 8 103feuilles 108 PAPIER cason 180gr/2 A180cas 1.6 103feuilles

    Oprations ensemblistes (3) :#le Produit cartsien!

    T = (R X S)!!!

    T

    R S

    XR

    A B C

    a b c d a f c b d

    S

    A B C b g a d a f

    R X S

    R.A

    R.B

    R.C

    S.A

    S.B

    S.C

    a b c b g a a b c d a f d a f b g a d a f d a f c b d b g a c b d d a f

    (3) : le Produit cartsien

  • Oprations ensemblistes (3) :#le Produit cartsien!

    Lister les noms des fournisseurs avec les numros de produits commands #ainsi que la quantit command (avec lunit correspondante).!

    T = (Fournisseurs X Commandes)!!

    Oprations drivs (1) :#lIntersection!

    Lister les produits dont la quantit en stock est comprise entre 2 et 10 !

    T = pNo (q>2(Produits) q

  • Oprateurs drivs (4) :#des jointures particulires!

    Lquijointure est une jointure #!avec pour qualification lgalit entre deux colonnes.!

    Lautojointure est une jointure dune table avec elle-mme. #Dans un tel cas, tout se passe comme si on avait deux copies diffrentes de la mme table. Les noms des colonnes sont alors prfixs par le numro de la copie afin dviter les ambiguts entre les noms.!

    La jointure naturelle est une quijointure de R et S sur les attributs de mme nom, suivie de la projection qui permet de supprimer les attributs rpts.!

    La jointure naturelle est la jointure la plus utilise dans la pratique. !Elle scrit simplement R S et peut se dfinir avec les oprations de base. !

    Rapport avec les BD ?Une BD relationnelle est constitue de relations primaires, constituant les

    tables reprsentant les lments quelle gre.!Pratiquement chaque relation primaire contient des attributs privilgis :

    sa cl primaire qui peut-tre 1 seul de ses attributs ou plusieurs. Cette cl permet didentifier les lments de la relation : !

    chaque valeur de la cl ne correspond quune seule relation unique, que cette valeur permet didentifier.!

    !La jointure naturelle est utilise pour reconstruire des relations plus large

    reliant les informations de plusieurs tables.!La relation universelle #

    = la relation qui associe en 1 table toutes les informations de la BD !! cest le jointure naturelle de toutes les tables de la BD!

    Mais elle a tous les dfauts dune BD mal organise # (elle nest pas organise doublons etc)!

    !

    Les oprations de calcul!

    ! !-> ne font pas partie de lalgbre relationnelle!! !-> produisent des nouvelles tables #

    ! ! partir de calculs sur dautres tables!Exemples : Compte, Somme, groupements!! !-> il ne peut y avoir 2 uplets identiques dans une relation : relation = ensemble#!-> il ny a pas dordre dans les uplets dune relation

    (mais dans leur implmentation dans les SGBD, si) #!

    !

    Vers SQL et mySQL

    SQL est la norme qui dfinit le langage et ce qui doit tre ralis par le SGBD lorsquil reoit de requtes.

    mySQL est une implmentation de SQL Idem PostGre-SQL, SQL-plus

  • Exemple avec valeursCombinaison des oprations lmentaires!->!construction des expressions de lalgbre relationnelle !->!rponses des questions complexes sur la base.!

    Exemple : 3 tables reprsentant les commandes des fournisseurs!

    commandes cNo fNo pNo qut1001100310051007101110131017101910231029

    17151715191319141017

    103103102108107107105103102108

    10211125310815

    fournisseurs fNo nom adresse ville101112131415161719

    DupontMartinJacquetDurandMartinDurandDupontLefebvreMaurice

    LilleAmienLyonLyonNiceLilleParisLilleParis

    produits pNo design prix poids couleur101102103104105106107108

    fauteuilfauteuilbureaubureauarmoirecaissoncaissonclasseur

    45 40 50 60 45 15 15 40

    79304035121220

    grisrougevertgrisrougegrisjaunebleu

    Schma sous forme fonctionnelle:!produits&(pNo,&design,&prix,&poids,&couleur)&fournisseurs&(fNo,&nom,&adresse,&ville)&commandes&(cNo,&fNo,&pNo,&qut)!

    Exemples de requtes

    1) Dterminer !! ! !les numros de fournisseur des diffrents Dupont!!!

    !2)! Dterminer !! !les numros de fournisseur qui ont au moins trois commandes!!!

    !Reprsenter les expressions de lalgbre relationnelle sous forme darbres. #

    Les feuilles sont tiquetes par les tables exploiter, #tandis que chaque nud est constitu dun oprateur relationnel.!

    !

    Exemples de requtes

    Dterminer les numros de fournisseur des diffrents Dupont revient effectuer lopration suivante:!!proj fNo (select nom=Dupont (fournisseurs))!

    !Dterminer les numros de fournisseur qui ont au moins trois commandes

    revient effectuer lopration suivante:!!proj fNo (select compte>=3 (compte fNo(commandes)))!

    !Reprsentation des expressions de lalgbre relationnelle sous forme darbres. #

    Les feuilles sont tiquetes par les tables exploiter, #tandis que chaque nud est constitu dun oprateur relationnel.!

    !

    Oprations de calcul extension aux oprateurs de base ne peuvent pas tre exprims laide de ceux-ci Exemple :Compte = nombre de lignes dune relation qui ont une mme valeur dattribut en commun. T = CompteX1,...,Xn (R) ou T = CountX1,...,Xn (R) X1,...,Xn tant les attributs de regroupement

    Somme = somme cumule des valeurs dun attribut Y pour chacune des diffrentes valeurs des attributs de groupement X1,...,Xn S = SommeX1,,..,Xn (R, Y) ou S = Sum X1,,..,Xn (R, Y)

    CompteX1,...,Xn !

    T !

    R!

    R

    A B C a n 17 b o 14 c n 9 d p 13 e m 20 f m 10

    CompteB (R) B Compte n 2 m 2 o 1 p 1 && &&

    Compte (R) Compte 6

  • Agrgats ou Groupements

    non !!!

    Modlisation de lorganisation des donnes

    Votre sujetVous tes employ dans la socit de production "Imprimerie de 4 ponts". Votre responsable vous confie la tche de concevoir une base de donnes qui gre des clients, des commandes, des articles commands et des fournisseurs. Cette base de donnes devra permettre de faire des recherches rapidement. Elle devra galement permettre d'ajouter, de visualiser et d'imprimer des fiches lorsque que l'on a un nouveau client, commande, article ou fournisseur.Le service informatique de votre entreprise vous fait part des habitudes de programmation existantes en ce qui concerne les bases de donnes. Pour tre viables, les bases de donnes doivent contenir au moins 4 tables relies avec des relations un plusieurs. Chaque table doit avoir sa cl primaire. Les champs dans chaque table doivent tre choisis avec les types adquats. L'exploitation de la base de donnes doit se faire au moyen des requtes. Les champs qui ncessitent un calcul ne sont pas autoriss dans les tables et doivent tre calculs dans les requtes. Le remplissage et l'affichage des tables doivent tre effectus travers des formulaires et non pas directement dans les tables. Les impressions devront tre gres avec des tats.Votre responsable souhaite avoir un rapport technique de 5 10 pages maximum prsentant le travail effectu, rendre avant la runion finale de novembre pendant laquelle vous prsentez ce travail pendant 15 minutes.

  • Modle de donnes

    Modle hirarchique Modle rseau

    Modle relationnel

    Modle de description des donnes (data model) : ensemble de concepts et de rgles de composition de ces concepts permettant de dcrire des donnes.

    quelques modles de donnes :

    quelques modles de conception : Merise

    Entits-Associations UML

    Les niveaux de descriptionLe niveau conceptuelcorrespond la structure canonique des donnes

    (= structure smantique inhrente, sans souci dimplmentation en machine, reprsentant la vue intgre de tous les groupes de travail)

    modles de donnes : MCD (modle conceptuel de donnes) et MLD (modle logique de donnes)

    Le niveau interne :correspond la structure de stockage des donnes

    types de fichiers utiliss, caractristiques des enregistrements (longueur, composants), chemin daccs aux donnes (type dindex, chanages, etc.)

    Le niveau externe :correspond lensemble des vues externes

    quont les groupes dutilisateurs.

    Les modles MCD, MLD

    Modle conceptuel des donnes MCDmodle abstrait pour transcrire une description

    textuelle (en langage naturel) de lorganisation du systme modliser (c--d des relations entre des ensembles de donnes)

    Modle logique des donnes MLDmodle utilis pour la mise en uvre

    informatique

    Modle entit-association Principe :

    Analyser les dpendances smantiques des relations entre les donnes par observation systmatique du cahier des charges (analyse systmique) et les crire sous la forme de dpendances fonctionnelles

    Remplacer la relation universelle (=une relation englobant toutes les relations possibles) en collections de relations permettant de retrouver la relation universelle par jointure naturelle

    Rsultat :Entits et associations canoniques du monde rel schma conceptuel

    Mthode formelle :Ajustement/validation par traduction en

    dpendances fonctionnelles des dpendances smantiques puis application algorithmes de normalisation

  • Exemple : description textuelle dun systme dinformation dune petite socit de services

    Cette socit ralise des projets commands pas des clients. Les projets sont composs de plusieurs tches qui seront ralises pas les

    salaris de lentreprise. Chaque tche a un cot qui lui est propre. Plusieurs salaris peuvent

    participer une mme tche et, bien sr, une tche est en gnral ralise par plusieurs salaris. En gnral, les salaris sont affects une tche pour une dure dtermine par une date de dbut et de fin. On considre quun salari ne peut participer quune seule fois une tche donne.

    Pour effectuer ce travail, il utilise diffrents matriels rfrencs par lentreprise. Un matriel peut tre compos de plusieurs autres matriels de lentreprise.

    Un projet est toujours coordonn par un chef de projet, salari de lentreprise. Un chef de projet encadre donc dautres salaris.

    Le personnel est obligatoirement rattach une seule des divisions de lentreprise mais peut, en revanche, tre regroup dans diffrentes quipes de lentreprise.

    Modle entit-association : comment sy prendre ?

    (-> afficher lexemple de description textuelle - quelques diapos plus loin)1. Modliser des concepts

    dfinir des entits avec les concepts en jeu dans le systme2. Trouver les attributs

    un attribut est une proprit d'une entit, une qualit de cet objet

    3. Trouver les associationsune association est la possibilit de relier plusieurs entits

    4. Dterminer les cardinalits des associationsune cardinalit est le nombre de fois maximal et minimal

    quune entit peut tre associ dautres dans une association

    Exemple : description textuelle dun systme de gestion simplifie

    des emprunts de livres dune bibliothque scolaire

    Une bibliothque scolaire propose ses lecteurs demprunter les livres de son catalogue.

    Les lves sont inscrits la bibliothque avec leur Nom, leur Prnom, et leur Classe, cette classe tant mise jour chaque anne. Les livres du catalogue sont classs par Auteur et Titre, lEditeur, lAnne de parution et et la Date dacquisition du livre et son N ISBN sont mmoriss, mais il ny a quun seul exemplaire de chaque Titre dun Auteur.

    La Date demprunt et la Date de retour sont notes pour suivre les prts de livres de la bibliothque. . LEtat dusure du livre est vrifi chaque emprunt et mis jour chaque retour.

    Comment sy prendre ? (1.)

    1. Modliser des concepts concept = lment fondamental du systme modliser.

    Mtaphore :

    reprsentation en fiches (cf. botes/tiroirs collectant des fiches support, toutes identiques pour chaque boite)

    Livre

    Lecteur

  • Comment sy prendre ? (2.)2. Trouver les attributsattribut = proprit d'un concept, ou

    qualit de cet objet. Exemples : une chane de caractre ou une valeur numrique sont gnralement des attributs , (le plus souvent) toute proprit qui ne peut accomplir aucune action

    Livre!AuteurTitreEditeurAnne de parutionDate dacquisitionN ISBN

    LecteurNomPrnomClasse

    Comment sy prendre ? (3.)3. Trouver les associations

    association = relation entre plusieurs entits.

    Exemple (service de la bibliothque) :- les livres sont associs aux un ou plusieurs lecteurs.

    Nom dassociation + Valeurs portes

    LecteurNomPrnomClasse

    Livre!AuteurTitreEditeurAnne de parutionDate dacquisitionN ISBN

    Date dempruntDate de retour

    est emprunt par

    Comment sy prendre ? (4.)4. Trouver les cardinalits

    cardinalit dune association = nombre d'instances permises pour chaque concept, = nombre de fois minimal et maximal que chacun des concepts

    peut/doit tre en relation avec un exemple de lautre concept. Exemple (service de la bibliothque) :- chaque livre est associ un ou plusieurs lecteur. - chaque lecteur est associ zro ou plusieurs livre.

    Lecteur

    NomPrnomClasse

    Livre!AuteurTitreEditeurAnne de parutionDate dacquisitionN ISBN

    Date dempruntDate de retour

    est emprunt par

    En lisant l'association, on obtient une phrase complte qui fait sens.

    1*! 0*!

    Notations amricaines dans ACCESS

    3 types de relations: (1-n), (n-m), et (1,1)

    association un plusieurs (1-n)- 1 enregistrement dune table A peut-tre en relation avec

    plusieurs (n) enregistrements dune table B - et 1 enregistrement de la table B ne peut pas tre en relation

    avec plusieurs enregistrements de la table A.association plusieurs plusieurs (n-m) - 1 enregistrement dune table A peut tre en relation avec

    plusieurs (n) enregistrements dune table B - et 1 enregistrement de la table B peut-tre en relation avec

    plusieurs enregistrements (n) de la table A.

    association un un (1-1) - 1 enregistrement dune table A peut tre en relation avec 1 seul

    enregistrement dune table B - et 1 enregistrement de la table B peut-tre en relation avec 1

    seul enregistrement de la table A.

  • Exemple : chercher lerreurDivision

    Numro de la divisionNom de la divisionCA de la division

    Adresse de la division

    quipe

    Numro de lquipeSpcialisation

    Client

    Numro du client.Nom du clientRaison sociale

    Adresse du clientActivit du client

    Contact chez le clientTlphone du client

    Fax du client

    Salari

    Numro du salari.Nom du salari

    Prnom du salariFonction du salari

    Rmunration du salariCommission du salari

    Projet

    Numro du projet.Thme du projet.Libell du projet

    .Date dbut du projet.Date chance

    .Date fin du projet

    Matriel

    Numro de matriel.Nom du matriel.Type de matriel

    Tche

    Nom de la tcheCot de la tche

    regroupe

    1,n

    1,n

    1,n

    0,n

    1,1

    0,n 0,n

    0,n

    1,n

    1,1

    1,1

    0,n

    0,1

    0,n

    0,n

    1,1

    0,n

    0,n

    travaille

    commande

    encadreutilise

    ParticipeDate dbut

    Date fin

    coordonne

    constituecompose

    composcomposant

    a pour chef

    est chef de

    Exemple notes Cahier des charges :

    Raliser une base de donnes concrte lie la formation, avec les vraies donnes, dans laquelle

    les enseignants puissent entrer les notes les tudiants puissent consulter leur notes et imprimer leurs bulletins de notes et moyennes

    Exemple notes : MCD

    Etudiant#nom#prnom#adel#cursus #profil#n Etu!

    Cours #n cours #sigle!intitul!nb heures!

    Prof#nom#prnom#adel#n prof!organisme de form.!

    Industrie#id Ent. #nom#domaine#type!

    Projet turor#-transversal#sujet#responsable#n pt!

    1,n!

    0,n!0,1!

    0,n!

    0,n!

    1,n!

    0,n!

    1,n!

    note!pourcentage!

    Transformation du MCD en MLD (1)

    Traitement des entits chaque entit devient une table; chaque proprit d une entit devient une

    colonne de cette table; l identifiant d une entit devient la cl primaire

    de la table correspondante (cration d un index).

  • Association n-n : exemple doccurence

    Etudiant#nom#prnom#adel#cursus #profil#n Etu!

    Cours #n cours #sigle!intitul!nb heures!

    Prof#nom#prnom#adel#n prof!organisme de form.!

    Industrie#id Ent. #nom#domaine#type!

    Projet turor#-transversal#sujet#responsable#n pt!

    1,n!

    0,n!0,1!

    0,n!

    0,n!

    1,n!

    0,3!

    1,n!

    note! pourcentage!

    #Bellynck#Valrie#[email protected]#33!7 , 11!

    #7#EFPG->Pagora#imprimerie!formation!

    Association 1-n : migration de cl trangre

    Etudiant#nom#prnom#adel#cursus #profil#n Etu!

    Cours #n cours #sigle!intitul!nb heures!nprof#pourcentage!

    Prof#nom#prnom#adel#n prof!organisme de form.!

    Industrie#id Ent. #nom#domaine#type!

    Projet turor#-transversal#sujet#responsable#n pt!

    1,n!

    0,n!0,1!

    0,n!

    0,n!

    1,n!

    0,3!

    1,n!

    note! pourcentage!

    #Bellynck#Valrie#[email protected]#33!7!#

    18#M1B2#b. don#15h#33#12%!

    Attribut dassociation : table de correspondance

    Etudiant#nom#prnom#adel#cursus #profil#n Etu!

    Cours #n cours #sigle!intitul!nb heures!nprof#pourcentage!

    Prof#nom#prnom#adel#n prof!organisme de form.!

    Industrie#id Ind. #nom#domaine#type!

    Projet turor#-transversal#sujet#responsable#n pt!

    1,n!

    0,n!

    0,1!

    0,n!

    0,n!

    1,n!

    0,3!

    1,n!

    note!

    pourcentage!Note!nEtu#n cours!note!

    Mthode de transfertMCD -> MLDEntit :

    1 tableAssociation 1-n :

    migration de la cl primaire de la table du ct n de lassociation vers la table du ct 1 + de ses attributs. nouvel attribut := cl trangre

    Association n-n :cration dune table dassociation pour mmoriss les relations associes + les attributs correspondants 2(+) cls trangres dans la table dassociation

    Association 1-1 :fusion des 2 tables ou migration croise des cls

  • Transformation du MCD en MLD (2-a)

    Traitement des associations Une association (0,n)(0,1) (lien hirarchique)

    Entit 1

    AB

    Entit 2

    CDRelation

    E0,1 0,n

    Table 1

    A B C E

    Table 2

    C D

    1

    devient :

    Transformation du MCD en MLD (2-b)

    Traitement des associations Une association (0,n)(0,n) (lien maill)

    devient :!o index #soit = sous-relation des cls de toutes les entits associes!soit = nouvel index!

    Entit 1

    AB

    Entit 2

    CDRelation

    E0,n 0,n

    Table 1

    A B

    Table 2

    C D

    Table 3

    A C E

    1 1

    Table 1

    A B

    Table 2

    C D

    Table 3

    E A C E

    1 1

    Transformation du MCD en MLD (2-c)

    Traitement des associations Une association n-aires conduit la cration d une

    nouvelle table,

    devient :o index soit = sous-relation des cls de toutes les entits associessoit = nouvel index

    Entit 1

    Id1 B C

    Entit 2

    Id2 E F G

    est associ

    H 1,n

    1,n

    Entit 3

    Id3 K L

    1,n

    Table 1

    Id1 B C

    Table 2

    Id2 E F G

    Table 4

    Id1 Id2 Id3 H Table 3

    Id3 K L

    1 1

    1

    Transformation du MCD en MLD (2-c)

    Traitement des associations Une association associe une autre association conduit

    la cration de deux

    nouvelles tables,

    Entit 1

    Id1 B C

    Entit 2

    1,n 1,n

    Id3 K L

    1,n

    1,n

    est associ

    H

    Association 12-3

    I

    Entit 3

    Id2 E F G

    Table 1

    Id1 B C

    Table 2

    Id2 E F G

    Table 4

    Id1 Id2 H

    1 1

    1 Table 5

    Id1 Id2 Id3 I

    1 Table 3

    Id3 K L

    devient :!

  • Modle Entits-Associations enrichi

    Pour dcrire plus prcisment le monde rel, affinage du modle

    sous-entits sous-associations extension du transfert MCD -> MLD

    Fin du cours thorique

    Rfrences: G. Gardarin,

    Bases de donnes Les systmes et leurs langages , Eyrolles, 1982 ; r-dition 1994

    Objet et Relationnel , Eyrolles, 1999

    Fabien Celaia, La gnralogie des SGBD ,

    http://fadace.developpez.com/sgbdcmp/story/

    quipe pdagogique SGBD de lEnsimag Supports de cours PSGBD

    Ensimag, 2011 http://www.i3s.unice.fr/~nlt/cours/licence/sgbd1/sgbd1_cours.pdf

    Ecole Internationale!du Papier, de la Communication Imprime et des Biomatriaux !