plaann rappels sur les bases de données relationnelles relationnelles-4p.pdf · bernard espinasse...

of 17/17
Bernard ESPINASSE – Rappels sur les Bases de données relationnelles 1 Rappels sur les bases de données relationnelles Bernard ESPINASSE Professeur à l'Université d'Aix-Marseille Septembre 2015 • Niveaux de description d’une base de données • Rappel sur le modèle Entité-Relation (E-R) • Dérivation d’un MLD-R à partir d’un MCD en Entité-Relation • Dimensionnement d’une BD Relationnelle • Sous schéma de données et valorisation de l'activité des traitements sur la BD Bernard ESPINASSE – Rappels sur les Bases de données relationnelles 2 Plan 1. Niveaux de description d’une base de données Niveau « Réel perçu » et « Niveau Interne ou Logique » Niveau « Conceptuel » et « Externe » 2. Rappel sur le modèle Entité-Relation (E-R) Historique, concepts, graphisme Cardinalités (ou multiplicités) Dépendances fonctionnelles 3. Dérivation d’un MLD-R à partir d’un MCD en Entité-Relation Problématique du MLD Formalisme graphique de Merise Dérivation d’un MLD-R à partir d’un MCD en Entité-Relation Création de tables en langage SQL (clé primaires et étrangères) 4. Dimensionnement d’une BD Relationnelle Multiplicités moyennes des liens relationnels et propagation des multiplicités moyenne Calculs cumulés des volumes des tables 5. Sous-schéma de données, valorisation de l'activité des traitements sur la BD Transformation de sous-schémas conceptuelsen sous-schémas logiques Valorisation des primitives logiques Bernard ESPINASSE – Rappels sur les Bases de données relationnelles 3 1. Niveaux de description d’une base de données Niveau « Réel perçu » et « Niveau Interne ou Logique » Niveau « Conceptuel » et « Externe » Bernard ESPINASSE – Rappels sur les Bases de données relationnelles 4 Niveaux « Réel perçu » et « Niveau Interne ou logique » (1) Niveau « Réel perçu » : Représentation du réel que l'on se construit selon les finalités, le phénomène observé Exprimé dans le langage naturel + vocabulaire du domaine étudié. Niveau « interne ou logique » : Définit dans le système informatique la réalisation de la structure de données selon le SGBD choisi (notamment relationnel) et d’objectifs d’optimisation Exprimé dans le formalisme informatique lié à l'outil informatique : Modèle Interne (ou logique) de Données (MLD) Modèle Logique de Données Relationnel (MLDR)

Post on 10-Sep-2018

217 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 1

    Rappels sur les bases de donnes relationnelles

    Bernard ESPINASSE Professeur l'Universit d'Aix-Marseille

    Septembre 2015

    Niveaux de description dune base de donnes Rappel sur le modle Entit-Relation (E-R) Drivation dun MLD-R partir dun MCD en Entit-Relation Dimensionnement dune BD Relationnelle Sous schma de donnes et valorisation de l'activit des traitements sur la BD

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 2

    PPP lll aaa nnn 1. Niveaux de description dune base de donnes Niveau Rel peru et Niveau Interne ou Logique Niveau Conceptuel et Externe 2. Rappel sur le modle Entit-Relation (E-R) Historique, concepts, graphisme Cardinalits (ou multiplicits) Dpendances fonctionnelles 3. Drivation dun MLD-R partir dun MCD en Entit-Relation Problmatique du MLD Formalisme graphique de Merise Drivation dun MLD-R partir dun MCD en Entit-Relation Cration de tables en langage SQL (cl primaires et trangres) 4. Dimensionnement dune BD Relationnelle Multiplicits moyennes des liens relationnels et propagation des multiplicits moyenne Calculs cumuls des volumes des tables 5. Sous-schma de donnes, valorisation de l'activit des traitements sur

    la BD Transformation de sous-schmas conceptuelsen sous-schmas logiques Valorisation des primitives logiques

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 3

    111... NNNiiivvveeeaaauuuxxx dddeee dddeeessscccrrr iiipppttt iiiooonnn ddduuunnneee bbbaaassseee dddeee dddooonnnnnneeesss

    Niveau Rel peru et Niveau Interne ou Logique Niveau Conceptuel et Externe

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 4

    NNN iii vvv eee aaa uuu xxx RRR eee lll ppp eee rrr uuu eee ttt NNN iii vvv eee aaa uuu III nnn ttt eee rrr nnn eee ooo uuu lll ooo ggg iii qqq uuu eee ((( 111 )))

    Niveau Rel peru : Reprsentation du rel que l'on se construit selon les finalits, le

    phnomne observ Exprim dans le langage naturel + vocabulaire du domaine tudi.

    Niveau interne ou logique : Dfinit dans le systme informatique la ralisation de la structure de

    donnes selon le SGBD choisi (notamment relationnel) et dobjectifs doptimisation

    Exprim dans le formalisme informatique li l'outil informatique : Modle Interne (ou logique) de Donnes (MLD)

    Modle Logique de Donnes Relationnel (MLDR)

  • Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 5

    NNN iii vvv eee aaa uuu xxx RRR eee lll ppp eee rrr uuu eee ttt NNN iii vvv eee aaa uuu III nnn ttt eee rrr nnn eee ooo uuu lll ooo ggg iii qqq uuu eee ((( 222 )))

    Rel

    Rel peru

    modleinterne

    base de donnes programmes

    SGBD

    difficile !

    Grande difficult dcrire le rel peru dans un modle interne informatique :

    -> mergence d'un niveau intermdiaire (rapport ANSI/Sparc 1975) : le niveau conceptuel

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 6

    NNN iii vvv eee aaa uuu xxx CCC ooo nnn ccc eee ppp ttt uuu eee lll eee ttt EEE xxx ttt eee rrr nnn eee ((( 111 ))) Emergence des niveaux Conceptuel et Externe :

    Rel

    Rel peru

    modleinterne

    base de donnes programmes

    SGBD

    modleconceptuel

    modlesexternesmodlesexternesmodlesexternesmodlesexternesmodlesexternes

    administrateur dela base de donnes

    administrateur dela base de donnes

    administrateurs defonctionsprogrammeur d'application

    Remarque : dfinition des rles dans l'organisation

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 7

    NNN iii vvv eee aaa uuu xxx CCC ooo nnn ccc eee ppp ttt uuu eee lll eee ttt EEE xxx ttt eee rrr nnn eee ((( 222 ))) Description en termes d'objets, proprits et relations du rel peru,

    permettant : ! lunicit et stabilit la structure de mmorisation des

    informations ! la rencontre gens du domaine/informaticiens

    Exprim dans un formalisme plutt naturel (pour gens du domaine) tout en tant rigoureux (pour les informaticiens):

    Modle Conceptuel de Donnes (MCD): exprim en formalisme Entit-Relation (E-R)

    Niveau externe : Description en terme d'objets, proprits et relations d'une utilisation

    particulire d'information du domaine : Modle Externe (MED) : exprim dans le mme formalisme qu'au niveau

    conceptuel On parlera souvent de Sous-Schmas conceptuels externes

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 8

    222... RRRaaappppppeee lll sssuuurrr llleee mmmoooddd llleee EEEnnnttt iii ttt ---RRReee lllaaattt iiiooonnn (((EEE---RRR)))

    Historique, concepts, graphisme Cardinalits (ou multiplicits) Dpendances fonctionnelles

  • Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 9

    HHH iii sss ttt ooo rrr iii qqq uuu eee pour l'laboration des modles de donnes (MCD): ncessit d'un formalisme graphique

    approche ENTITE-RELATION (P.Chen 75) formalisme INDIVIDUEL (D.Nanci, D.Pascot, H.Tardieu 75) norme ISO: ENTITY-RELATIONSHIP

    3 concepts de base : PROPRIETE ENTITE RELATION (association)

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 10

    GGG rrr aaa ppp hhh iii sss mmm eee 3 concepts de base :

    PROPRIETE : description ENTITE (individu): structure RELATION (association): structure

    Une reprsentation graphique :

    1,n

    PERSONNEnomprnomage

    0,n

    LOGEMENTadressetypesurface

    habiter

    entit

    proprit

    relation

    cardinalits

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 11

    PPP rrr ooo ppp rrr iii ttt Proprit = particule lmentaire d'information

    nom valeur

    TYPE OCCURENCE

    couleur ............................... rougebleuvert

    ge ...................................... 22232456

    attention !!!! : dans un modle de donnes, on ne reprsente pas les valeurs mais les TYPES des valeurs

    Proprit compose : adresse : rue, code postal, ville

    PERSONNEnomprnomadresse

    ruecode postalville

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 12

    EEE nnn ttt iii ttt Entit = reprsentation d'une famille d'objets distinguables perus comme

    stables et homognes

    PERSONNEnomprnomadresse

    ruecode postalville

    Rgles : 1) pour toute occurrence d'entit, il y a au plus une valeur pour chacune de ses

    proprits (stabilit) 2) au moins une proprit, identifiante, permet de distinguer les occurrences d'entit

    entre elles (distinguabilit) 3) toute proprit doit avoir un sens pour toute occurrence d'entit mme si elle est

    inconnue un certain moment (homognit)

  • Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 13

    EEE nnn ttt iii ttt Types/occurrences :

    12

    Guerreet Paix

    35

    Guerreet Paix

    82

    Penses

    Combien y a-t-il de livres?

    Homognit :

    personne

    nomprnomnom de j.fillege....

    matricule

    4 5 5 3DUVALAliceDUPONT2 3

    6 7 8 7BERGMANJean?3 0

    Attention, distinguer: proprits non significatives, valeur inconnue, valeur nulle,...

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 14

    RRR eee lll aaa ttt iii ooo nnn Relation = classe d'information dfinies par rapport un ensemble d'entits

    Conseil : les nommer par un verbe linfinitif (ACHETER) Rgles : 1) les relations nont pas d'existence propre :

    la relation "ACHETER" n'existe que si des occurrences d'entits "PERSONNE" et "VOITURE" existent

    2) elles peuvent avoir des proprits propres: date achat 3) elles sont identifies par les identifiants de leur collection :

    ! collection: {entits participant la relation} ! dimension: nb d'entit(s) de la collection

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 15

    RRR eee lll aaa ttt iii ooo nnn Exemple :

    Bernard ESPINASSE - Modle Entit-Relation : la base 9

    Re la t ion

    Exemple :

    1,n

    ETUDIANT

    nom

    prnom

    date naissance

    0,n

    DIPLOME

    titre

    niveau

    possder

    anne

    mention

    ! collection: {ETUDIANT, DIPLOME}

    ! dimension: 2

    ! identifiants: (nom) x (titre)

    Un graphe des occurrences possible :

    ! collection: {ETUDIANT, DIPLOME} ! dimension: 2 ! identifiants: (nom) x (titre)

    Un graphe des occurrences possible :

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 16

    VVV aaa rrr iii ttt ddd eee sss rrr eee lll aaa ttt iii ooo nnn sss Partage d'une mme collection :

    Bernard ESPINASSE - Modle Entit-Relation : la base 10

    Var i t de s re la t ions

    Partage d'une mme collection :

    0,n

    1,n

    PERSONNE

    nom

    prnom

    1,1

    1,n

    LOGEMENT

    adresse

    possder

    habiter

    Relation sur une mme entit :

    0,n mre

    0,n filiale

    SOCIETE

    N SIREN

    raison sociale

    capital

    dtenir

    % capital

    Relation de dimension quelconque :

    0,n

    JOURNEE

    date

    0,n

    ENGIN

    n engin

    dsignation

    0,n

    CHANTIER

    n chantier

    dsignation

    0,n

    ACTIVITE

    type activit

    libell

    unit d'oeuvre

    travail ralis

    quantit

    Relation sur une mme entit :

    Bernard ESPINASSE - Modle Entit-Relation : la base 10

    Var i t de s re la t ions

    Partage d'une mme collection :

    0,n

    1,n

    PERSONNE

    nom

    prnom

    1,1

    1,n

    LOGEMENT

    adresse

    possder

    habiter

    Relation sur une mme entit :

    0,n mre

    0,n filiale

    SOCIETE

    N SIREN

    raison sociale

    capital

    dtenir

    % capital

    Relation de dimension quelconque :

    0,n

    JOURNEE

    date

    0,n

    ENGIN

    n engin

    dsignation

    0,n

    CHANTIER

    n chantier

    dsignation

    0,n

    ACTIVITE

    type activit

    libell

    unit d'oeuvre

    travail ralis

    quantit

    Relation de dimension quelconque :

    Bernard ESPINASSE - Modle Entit-Relation : la base 10

    Var i t de s re la t ions

    Partage d'une mme collection :

    0,n

    1,n

    PERSONNE

    nom

    prnom

    1,1

    1,n

    LOGEMENT

    adresse

    possder

    habiter

    Relation sur une mme entit :

    0,n mre

    0,n filiale

    SOCIETE

    N SIREN

    raison sociale

    capital

    dtenir

    % capital

    Relation de dimension quelconque :

    0,n

    JOURNEE

    date

    0,n

    ENGIN

    n engin

    dsignation

    0,n

    CHANTIER

    n chantier

    dsignation

    0,n

    ACTIVITE

    type activit

    libell

    unit d'oeuvre

    travail ralis

    quantit

  • Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 17

    CCC aaa rrr ddd iii nnn aaa lll iii ttt ((( ooo uuu mmm uuu lll ttt iii ppp lll iii ccc iii ttt ))) ddd uuu nnn eee eee nnn ttt iii ttt ddd aaa nnn sss uuu nnn eee rrr eee lll aaa ttt iii ooo nnn ((( 111 )))

    Cardinalit ou multiplicit : caractrise le rle d'une entit dans une relation permet d'enrichir le modle (niveau des types) en connaissances du niveau des

    occurrences

    x1 et x2 = cardinalits minimales et y1 et y2 = cardinalits maximales

    Cardinalits frquemment utilises :

    Participation Optionnelle Obligatoire Unique 0,1 1,1 Multiple 0,n 1,n

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 18

    CCC aaa rrr ddd iii nnn aaa lll iii ttt ddd uuu nnn eee eee nnn ttt iii ttt ddd aaa nnn sss uuu nnn eee rrr eee lll aaa ttt iii ooo nnn ((( 111 )))

    ! 0, n : une occurrence de CLIENT est en relation par la relation PASSER avec une ou plusieurs occurrences de COMMANDE

    ! 1, 1 : une occurrence de COMMANDE est en relation par la relation PASSER

    avec une et une seule occurrence de CLIENT

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 19

    CCC aaa rrr ddd iii nnn aaa lll iii ttt ddd uuu nnn eee eee nnn ttt iii ttt ddd aaa nnn sss uuu nnn eee rrr eee lll aaa ttt iii ooo nnn ((( 222 )))

    ! 1, n : une occurrence de COMMANDE est en relation par la relation

    CONCERNER avec une ou plusieurs occurrences de PRODUIT ! 0, n : une occurrence de PRODUIT est en relation par la relation CONCERNER

    avec aucune ou plusieurs occurrences de COMMANDE

    un graphe des occurrences possible :

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 20

    CCC aaa rrr ddd iii nnn aaa lll iii ttt ddd uuu nnn eee eee nnn ttt iii ttt ddd aaa nnn sss uuu nnn eee rrr eee lll aaa ttt iii ooo nnn ((( 333 ))) Cardinalits sur relation n-aire

    ! 1 ) (0, n) : une occurrence de PROFESSEUR est en relation par la relation

    ENSEIGNER avec aucun ou plusieurs couples doccurrences (SALLE, PERIODE) ! 2 ) (0, n) : une occurrence de PERIODE est en relation par la relation

    ENSEIGNER avec aucun ou plusieurs couples doccurrences (PERIODE, SALLE) ! 3 ) (0, n) : une occurrence de SALLE est en relation par la relation ENSEIGNER

    avec aucun ou plusieurs couples doccurrences (PROFESSEUR, PERIODE)

  • Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 21

    MMM ooo ddd lll eee sss ggg nnn rrr iii qqq uuu eee sss ddd eee ccc aaa rrr ddd iii nnn aaa lll iii ttt sss iii nnn ddd iii vvv iii ddd uuu eee lll lll eee sss

    Bernard ESPINASSE - Modle Entit-Relation : la base 15

    Mod le s g n r ique s de card ina l i t s ind iv idue l le s

    homme femmemariage

    0,1 0,1

    mariage conventionnel

    homme femmemariage

    0,n 0,1

    polygamie

    homme femmemariage

    0,1 0,n

    polyandrie

    homme femmemariage

    0,n 0,n

    mariage de groupe

    pre enfanta

    0,n 1,1

    pre / fils

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 22

    DDD ppp eee nnn ddd aaa nnn ccc eee sss fff ooo nnn ccc ttt iii ooo nnn nnn eee lll lll eee sss Contraintes d'intgrit fonctionnelle

    Relation binaire fonctionnelle :

    Bernard ESPINASSE - Modle Entit-Relation : la base 16

    D pe ndance s fonct ionne l le s

    Contraintes d'intgrit fonctionnelle

    Relation binaire fonctionnelle :

    appartient

    1234 PX 13Jean LAFRANCE

    une voiture n'appartient qu' une personne

    soit:

    voiture --------------> personne

    appartient

    Reprsentation :

    appartenirvoiture personne

    ...,1 ...,...

    flche

    une voiture n'appartient qu' une personne

    soit: voiture --------------> personne

    appartient Reprsentation :

    Bernard ESPINASSE - Modle Entit-Relation : la base 16

    D pe ndance s fonct ionne l le s

    Contraintes d'intgrit fonctionnelle

    Relation binaire fonctionnelle :

    appartient

    1234 PX 13Jean LAFRANCE

    une voiture n'appartient qu' une personne

    soit:

    voiture --------------> personne

    appartient

    Reprsentation :

    appartenirvoiture personne

    ...,1 ...,...

    flche

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 23

    DDD ppp eee nnn ddd aaa nnn ccc eee sss fff ooo nnn ccc ttt iii ooo nnn nnn eee lll lll eee sss sss uuu rrr rrr eee lll aaa ttt iii ooo nnn sss nnn --- aaa iii rrr eee Soit la contrainte exprimer :

    pour toute priode d'emploi du temps, (le mercredi de 9 h 12 h), un professeur n'a cours que dans une seule salle

    soit: PERODE x PROFESSEUR -----ENSEIGNER------> SALLE Limitation du formalisme Entit-Relation de base => besoin dextension

    Types de dpendances fonctionnelles :

    simples ( un metteur: a --> b) composes ( n metteurs: a x b --> c) englobant pas la totalit de la collection composes ( n metteurs: a x b --> c) englobant la totalit de la collection

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 24

    333... DDDrrr iiivvvaaattt iiiooonnn ddduuunnn MMMLLLDDD---RRR pppaaarrrttt iii rrr

    ddduuunnn MMMCCCDDD eeennn EEEnnnttt iii ttt ---RRReee lllaaattt iiiooonnn Problmatique du MLD Formalisme graphique de Merise Drivation dun MLD-R partir dun MCD en Entit-Relation Cration de tables en langage SQL (cl primaires et trangres)

  • Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 25

    PPP rrr ooo bbb lll mmm aaa ttt iii qqq uuu eee ddd uuu MMM LLL DDD Modle Conceptuel de Donnes (MCD) :

    - permet de modliser la smantique des informations dune faon comprhensible par lutilisateur de la future base de donnes

    - utilise le formalisme (graphique) Entit-Relation - ne permet pas dimplmentation informatique de la base de

    donnes dans un SGBD donn Modle Logique de Donnes (MLD) :

    - permet de modliser la structure selon laquelle les donnes seront stockes dans la future base de donnes

    - est adapt une famille de SGBD : ici les SGBD relationnels (MLD Relationnels ou MLD-R)

    - utilise le formalisme graphique Merise - permet dimplmenter la base de donnes dans un SGBD donn

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 26

    DDD mmm aaa rrr ccc hhh eee ddd lll aaa bbb ooo rrr aaa ttt iii ooo nnn ddd uuu nnn MMM LLL DDD RRR eee lll aaa ttt iii ooo nnn nnn eee lll ! MCD : Modle Conceptuel de Donnes ! MLD-R : Modle Logique de Donnes Relationnel

    MCD En formalisme Entit-Relation

    MLD (Relationnel) En formalisme Merise

    Cration des tables de la base de donnes en langage SQL

    NIVEAU CONCEPTUEL

    NIVEAU LOGIQUE

    NIVEAU PHYSIQUE ! SGBD Relationnel

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 27

    FFF ooo rrr mmm aaa lll iii sss mmm eee ggg rrr aaa ppp hhh iii qqq uuu eee MMM eee rrr iii sss eee ppp ooo uuu rrr lll eee MMM LLL DDD --- RRR ((( 111 ))) Table Table EMPLOYE (reprsentation graphique) : Schma de la table EMPLOYE :

    EMPLOYE (Matricule, nom, age, adresse)

    Attributs de la table EMPLOYE : ! Matricule : cl primaire ! Nom, Age, Adresse : autres attributs

    EMPLOYE

    Matricule Nom Age Adresse

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 28

    FFF ooo rrr mmm aaa lll iii sss mmm eee ggg rrr aaa ppp hhh iii qqq uuu eee MMM eee rrr iii sss eee ppp ooo uuu rrr lll eee MMM LLL DDD RRR ((( 222 ))) Lien entre tables : contrainte dintgrit rfrentielle Table EMPLOYE (reprsentation graphique) :

    Schmas des tables :

    ! Table DEPARTEMENT (Nom_departement, Effectif) : ! Nom_departement : cl primaire

    ! Table EMPLOYE (Matricule, Nom_departement, Nom, Age, Adresse) ! Matricule: cl primaire ! Nom_departement : cl trangre vers table DEPARTEMENT

    EMPLOYE Matricule Nom_departement Nom Age Adresse

    DEPARTEMENT Nom_departement Effectif

    Appartenir

  • Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 29

    FFF ooo rrr mmm aaa lll iii sss mmm eee ggg rrr aaa ppp hhh iii qqq uuu eee MMM eee rrr iii sss eee ddd uuu MMM LLL DDD --- RRR ((( 333 ))) Lien entre tables : cl primaire compose rfrentielle

    Schmas des tables :

    ! Table PROJET (Nprojet, budget) ! Nprojet : cl primaire

    ! Table TACHE (Nordre, Nprojet, dure)

    ! Nordre, nprojet : cl primaire compose ! Nprojet : cl trangre vers table PROJET

    TACHE Nordre Nprojet dure

    PROJET Nprojet budget

    Concerner

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 30

    FFF ooo rrr mmm aaa lll iii sss mmm eee ggg rrr aaa ppp hhh iii qqq uuu eee MMM eee rrr iii sss eee ddd uuu MMM LLL DDD --- RRR ((( 444 ))) Lien entre tables : contraintes dintgrit rfrentielle rflexive

    Schmas des tables :

    ! Table TACHE (ntache, ntache_prcdente, dsignation, dure) ! Ntache : cl primaire ! Ntache_prcdente: cl trangre vers table TACHE

    TACHE

    Ntache Ntache prcdente Dsignation Dure

    Prcder

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 31

    DDD rrr iii vvv aaa ttt iii ooo nnn ddd uuu nnn MMM LLL DDD --- RRR ppp aaa rrr ttt iii rrr ddd uuu nnn MMM CCC DDD eee nnn EEE nnn ttt iii ttt --- RRR eee lll aaa ttt iii ooo nnn

    MCD En formalisme Entit-Relation

    MLD (Relationnel) En formalisme Merise

    Cration des tables de la base de donnes en langage SQL

    NIVEAU CONCEPTUEL

    NIVEAU LOGIQUE

    NIVEAU PHYSIQUE ! SGBD Relationnel

    Ensemble de rgles

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 32

    MMM CCC DDD --- >>> MMM LLL DDD ::: ddd rrr iii vvv aaa ttt iii ooo nnn ddd eee sss eee nnn ttt iii ttt sss Rgle : toute entit du MCD se drive en une table du MLD

    Entit Table

    la proprit identifiante de lentit devient la cl primaire de la table

    EMPLOYE

    Matricule Nom Age Adresse

    EMPLOYE

    Matricule Nom Age Adresse

  • Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 33

    MCD -> MLD : re la t ions ( * ,N) - (1 ,1 ) MCD: MLD : Schmas relationnels :

    ! Table DEPARTEMENT (Nom_departement, Effectif) : ! Table EMPLOYE (Matricule, Nom_departement, Nom, Age, Adresse)

    Nom_departement : cl trangre vers table DEPARTEMENT

    EMPLOYE Matricule Nom Age Adresse

    DEPARTEMENT Nom_departement Effectif

    EMPLOYE Matricule Nom_departement Nom Age Adresse

    DEPARTEMENT Nom_departement Effectif

    Appartenir

    appartenir

    1,1 1,N

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 34

    MCD -> MLD : re la t ions ( * ,N) - (0 ,1 ) MCD :

    MLD : Schmas relationnels :

    ! PERSONNE (Nom, Prenom, Adresse) ; ! VOITURE (Numro, Nom, Marque, Type, Date_acquisition) ;

    PERSONNE Nom Prenom Adresse

    VOITURE Numero Marque Type

    0,N 0,1

    PERSONNE Nom Prenom Adresse

    VOITURE Numero Nom Marque Type Date dacquisition

    Posseder

    Posseder

    Posseder Date dacquisition

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 35

    MCD -> MLD : re la t ions (0 ,1 ) - (1 ,1 ) MCD :

    MLD : Schmas relationnels :

    ! EDIFICE (Nedifice, Type) ; ! MAISON (Nmaison, Ndifice, Adresse).

    EDIFICE Nedifice Type

    MAISON Nmaison Nedifice Adresse

    EDIFICE Nedifice Type

    MAISON Nmaison Adresse

    Est-un 0,1 1,1

    Est-un

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 36

    MCD -> MLD : re la t ions (0 ,1 ) - (0 ,1 ) MCD : MLD (solution 1) : Schmas relationnels :

    ! ENTREPRISE (Nentreprise, Adresse) ; ! TIERS (Ntiers, Nentreprise, Adresse)

    La cardinalit (0,1) pose le problme daccepter des valeurs nulles sur lattribut migrant

    pouvant fixer le sens de migration (par exemple la taille des cls).

    ENTREPRISE Nentreprise

    Adresse

    TIERS Ntiers

    Nentreprise Type

    ENTREPRISE Nentreprise Adresse

    TIERS Ntiers Type

    Correspondre

    0,1 0,1

    Correspondre

  • Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 37

    MCD -> MLD : re la t ions (0 ,1 ) - (0 ,1 ) MCD : MLD (solution 2) :

    Schmas relationnels :

    ! ENTREPRISE (Nentreprise, Ntiers, Adresse) ; ! TIERS (Ntiers, Adresse) Idem : la cardinalit (0,1) pose le problme daccepter des valeurs nulles sur lattribut

    migrant pouvant fixer le sens de migration (par exemple, la taille des cls).

    ENTREPRISE Nentreprise Adresse

    TIERS Ntiers Type

    0,1 0,1

    ENTREPRISE Nentreprise

    Ntiers Adresse

    TIERS Ntiers

    Type

    Correspondre

    Correspondre

    Correspondre

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 38

    MCD -> MLD : re la t ions (0 /1 ,N) - (0 /1 ,N) MCD :

    MLD :

    Schmas relationnels :

    ! COMMANDE (Ncommande, Date, Statut) ; ! PORTER (Narticle, Ncommande, Qte_commande) ; ! ARTICLE (Narticle, Dsignation, Prix).

    COMMANDE Ncommande Date Statut

    1,N

    ARTICLE Narticle Dsignation Prix

    0,N

    COMMANDE Ncommande Date Statut

    ARTICLE Narticle Dsignation Prix

    PORTER Ncommande Narticle Qte-commande

    Porter Qte-commande

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 39

    MCD -> MLD : re la t ions te rna i re s ou p lus (1 ) MCD MLD

    MAISON Coordonnes Date_construction Surface

    TYPE_TRAVAUX Ntype_travaux Dsignation

    ENTREPRISE Nentreprise Nom Adresse

    Date Montant

    Realiser O,N O,N

    O,N

    MAISON Coordonnes Date_construction Surface

    TYPE_TRAVAUX Ntype_travaux Dsignation

    REALISER Coordonnes Nentreprise Ntype_travaux Date Montant

    ENTREPRISE Nentreprise Nom Adresse

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 40

    MCD -> MLD : re la t ions te rna i re s ou p lus (2 )

    Schmas relationnels associs :

    ! MAISON (Coordonnes, Date_construction, Surface) ; ! TYPE_TRAVAUX (Ntype_travaux, Dsignation) ; ! RALISER (Nentreprise, Coordonnes, Ntype_travaux, Date, Montant)

    ; ! ENTREPRISE (Nentreprise, Nom, Adresse).

  • Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 41

    MCD -> MLD : Re la t ions r f le x ive s (0 ,N) - (0 ,1 ) MCD :

    MLD :

    Solution 1 Solution 2

    Schmas relationnels : Solution 1 :

    ! TACHE (Ntche, Dsignation, Dure) ; ! PRCDER (Ntche, Ntche_suivante)

    Solution 2 : TACHE (Ntche, Ntche_prcdente, Dsignation, Dure)

    Correspondre

    O,1

    O,N suit

    prcde

    TACHE

    Ntache Ntache prcdente Dsignation Dure

    Prcder TACHE

    Ntache Dsignation Dure

    PRECEDER Ntache Ntache_suivante

    Prcder

    TACHE Ntache Dsignation Dure

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 42

    MMM CCC DDD --- >>> MMM LLL DDD ::: RRR eee lll aaa ttt iii ooo nnn sss rrr fff lll eee xxx iii vvv eee sss ((( *** ,,, NNN ))) --- ((( *** ,,, NNN ))) Entit-Relation :

    Relationnel driv :

    Schmas relationnels :

    ! TRAVAUX (ntravaux, dsignation, dure) ; ! DCOMPOSER (ntravaux, ntravaux_ensemble).

    Dcomposer

    O,N

    O,N

    lment

    ensemble

    TRAVAUX Ntravaux Dsignation Dure

    TRAVAUX Ntravaux Dsignation Dure

    TRAVAUX Ntravaux Dsignation Dure

    DECOMPOSER Ntravaux Ntravaux ensemble

    lment

    ensemble

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 43

    RRR ggg lll eee ddd eee ddd rrr iii vvv aaa ttt iii ooo nnn ::: III ddd eee nnn ttt iii fff iii aaa nnn ttt rrr eee lll aaa ttt iii fff MCD :

    MLD : Schmas relationnels :

    ! PROJET (Nprojet, Nom_projet) ! TRANCHE (Nordre, Nprojet, Dsignation)

    PROJET Nprojet Nom_projet

    TACHE Nordre Dsignation

    1,N 1,1

    Comporter

    (R)

    PROJET Nprojet Nom_projet

    TACHE Nordre Nprojet Dsignation

    Comporter

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 44

    EEE xxx eee mmm ppp lll eee ddd eee ppp aaa sss sss aaa ggg eee EEE --- RRR aaa uuu RRR eee lll aaa ttt iii ooo nnn nnn eee lll Entit-Relation :

    1,n

    CLIENT

    n c l i e n t

    nom

    age

    adresse

    type

    CA annuel

    taux remise

    1,11,n

    COMMANDE

    n c o m m a n d e

    date

    statut

    0,n

    0,1

    ARTICLE

    n a r t i c l e

    dsignation

    qt stock

    poids

    prix d'achat

    prix de vente0,nFOURNISSEUR

    n f o u r n i s s e u r

    nom

    adresse

    FOURNIR

    LIGNE_CMD

    qt_cmde

    qt_livre

    prix_unitaire

    PASSER

    Relationnel driv :

    PASSER

    CLIENT

    cli_numcli_nomcli_agecli_adressecli_typecli_cacli_tremise

    COMMANDE

    cmd_numcmd_clicmd_datecmd_statut

    FOURNIR

    ARTICLE

    art_numart_fourart_nomart_stockart_poidsart_paart_pv

    FOURNISSEUR

    four_numfour_nomfour_adresse

    LIGNE_CMD

    lcd_cmdlcd_artlcd_qtlcd_livlcd_pu

  • Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 45

    EEE xxx eee mmm ppp lll eee ddd eee ppp aaassssssaaagggeee EEE---RRR aaauuu rrreeelllaaatttiiiooonnnnnneeelll Modle relationnel driv :

    PASSER

    CLIENT

    cli_numcli_nomcli_agecli_adressecli_typecli_cacli_tremise

    COMMANDE

    cmd_numcmd_clicmd_datecmd_statut

    FOURNIR

    ARTICLE

    art_numart_fourart_nomart_stockart_poidsart_paart_pv

    FOURNISSEUR

    four_numfour_nomfour_adresse

    LIGNE_CMD

    lcd_cmdlcd_artlcd_qtlcd_livlcd_pu

    Schmas relationnels :

    ! CLIENT (cli_num, cli_nom, cli_age, cli_adresse, cli_type, cli_ca, cli_tremise) ! ARTICLE (art_num, art_nom, art_four, art_stock, art_poids, art_pa, art_pv) ! COMMANDE (cmd_num, cmd_cli, cmd_date, cmd_statut) ! LIGNE_CMD (lcd_cmd, lcd_art, lcd_qte, lcd_liv, lcd_pu) ! FOURNISSEUR (four_num, four_nom, four_adresse)

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 46

    III nnn ttt rrr ooo ddd uuu ccc ttt iii ooo nnn aaa uuu lll aaa nnn ggg aaa ggg eee SSS QQQ LLL Origine : SQL (Structured Query Language) est un langage de

    requtes standard pour les SGBD relationnels 3 niveaux de normes :

    SQL86 (standard ANSI en 86 puis ISO en 87) : la base puis SQL89 ou SQL1 : lintgrit:

    SQL91 ou SQL2 SQL3 (98) : SQL devient un langage de programmation et volue

    vers lobjet

    Dans ce chapitre nous ne considrerons que la cration BASIQUE de tables par la commande CREATE TABLE de SQL2,

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 47

    CCC rrr aaa ttt iii ooo nnn ddd uuu nnn eee ttt aaa bbb lll eee eee nnn lll aaa nnn ggg aaa ggg eee SSS QQQ LLL ((( 111 ))) Soit le MLD suivant :

    Schmas relationnels : Table CLIENT (cli_num, cli_nom, cli_age, cli_adresse, cli_type, cli_ca, cli_tremise)

    - cli_num = cl primaire

    Table COMMANDE (cmd_num, cmd_cli, cmd_date, cmd_statut) - cmd_num = cl primaire - cmd_cli, = cl trangre

    CLIENT cli_num cli_nom cli_age cli_adresse cli_type cli_ca cli_tremise

    COMMANDE cmd_num cmd_cli cmd_date cmd_statut

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 48

    CCC rrr aaa ttt iii ooo nnn ddd uuu nnn eee ttt aaa bbb lll eee ((( 222 ))) ::: ccc lll ppp rrr iii mmm aaa iii rrr eee Table CLIENT (cli_num, cli_nom, cli_age, cli_adresse, cli_type, cli_ca, cli_tremise)

    CREATE TABLE Client (cli_num CHAR(8) NOT NULL, cli_nom CHAR(25) NOT NULL, cli_age INTEGER NOT NULL, cli_adresse VARCHAR(80), cli_type VARCHAR(16), cli_ca INTEGER, cli_tremise INTEGER NOT NULL, PRIMARY KEY (cli_num)) ; NOT NULL : on naccepte pas que lattribut puisse avoir une valeur nulle (valeur

    inconnue) PRIMARY KEY (cli_num): lattribut cli_num est cl primaire de la table Client. Remarque : un attribut dclar cl primaire doit tre dfini avec l'option NOT NULL

  • Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 49

    CCC rrr aaa ttt iii ooo nnn ddd uuu nnn eee ttt aaa bbb lll eee ((( 333 ))) ::: ccc lll ttt rrr aaa nnn ggg rrr eee Table COMMANDE (cmd_num, cmd_cli, cmd_date, cmd_statut) Cration de la table COMMANDE :

    CREATE TABLE Commande (cmd_num CHAR(8) NOT NULL, cmd_cli CHAR(8) NOT NULL, cmd_date DATE NOT NULL, cmd_statut VARCHAR(16), PRIMARY KEY (cmd_num), FOREIGN KEY (cmd_cli) REFERENCES client); PRIMARY KEY (cmd_num): lattribut cmd_num est cl primaire de la table

    Commande. FOREIGN KEY (cmd_cli) REFERENCES client: lattribut cmd_cli est une cl

    trangre qui rfre la table Client Remarques : 1- la table client doit dj exister 2- l'attribut cmd_cli de la table commande est du mme type que celui de la cl

    primaire de la table client.

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 50

    CCC rrr aaa ttt iii ooo nnn ddd uuu nnn eee ttt aaa bbb lll eee ((( 444 ))) ::: ccc lll ttt rrr aaa nnn ggg rrr eee Table ARTICLE (art_num, art_nom, art_four, art_stock, art_poids, art_pa, art_pv) ; Cration de la table ARTICLE :

    CREATE TABLE Article (art_num CHAR(8) NOT NULL, art_nom VARCHAR(25) NOT NULL, art_four CHAR(8) NOT NULL, art_stock INTEGER NOT NULL, art_poids NUMERIC (8,1), art_pa INTEGER NOT NULL, art_pv INTEGER NOT NULL, PRIMARY KEY (art_num), FOREIGN KEY (art_four) REFERENCES Fournisseur); PRIMARY KEY (art_num): lattribut art_num est cl primaire de la table article. FOREIGN KEY (art_four) REFERENCES Fournisseur: lattribut art_cli est une cl

    trangre qui rfre la table Fournisseur.

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 51

    CCC rrr aaa ttt iii ooo nnn ddd uuu nnn eee ttt aaa bbb lll eee ((( 555 ))) ::: ccc lll ppp rrr iii mmm aaa iii rrr eee ccc ooo mmm ppp ooo sss eee Table LIGNE_CMD (lcd_cmd, lcd_art, lcd_qte, lcd_liv, lcd_pu)

    CREATE TABLE Ligne_cmd (lcd_art CHAR(8) NOT NULL, lcd_cmd INTEGER NOT NULL, lcd_qte INTEGER NOT NULL, lcd_liv INTEGER, lcd_pu INTEGER NOT NULL, FOREIGN KEY (lcd_cmd) REFERENCES Commande, FOREIGN KEY (lcd_art) REFERENCES Article, PRIMARY KEY (lcd_cmd, lcd_art)) ;

  • Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 53

    SSS uuu ppp ppp rrr eee sss sss iii ooo nnn ddd eee nnn rrr eee ggg iii sss ttt rrr eee mmm eee nnn ttt ddd aaa nnn sss uuu nnn eee ttt aaa bbb lll eee Table CLIENT (cli_num, cli_nom, cli_age, cli_adresse, cli_type, cli_ca, cli_tremise) ;

    CREATE TABLE Client (cli_num CHAR(8) NOT NULL, cli_nom CHAR(25) NOT NULL, cli_age INTEGER NOT NULL, cli_adresse VARCHAR(80), cli_type VARCHAR(16), cli_ca INTEGER, cli_tremise INTEGER NOT NULL, PRIMARY KEY (cli_num)) ;

    Suppression dun enregistrement dans la table client :

    DELETE FROM client WHERE (cli_nom = Tranvouez);

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 54

    444... DDDiiimmmeeennnsssiiiooonnnnnneeemmmeeennnttt ddduuunnneee BBBDDD RRReee lllaaattt iiiooonnnnnneee lll llleee

    Niveau Rel peru et Niveau Interne ou Logique Niveau Conceptuel et Externe

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 55

    MMM uuu lll ttt iii ppp lll iii ccc iii ttt sss mmm ooo yyy eee nnn nnn eee sss ddd eee sss lll iii eee nnn sss rrr eee lll aaa ttt iii ooo nnn nnn eee lll sss personne

    a1a2

    voiture

    b1b2

    possder

    r0,10 1,1

    supposons une distribution triangulaire:

    30mini

    10maxi

    moyenne

    mode

    selon la distribution, ici une loi triangulaire d'o moy = (mini+2(mod)+max)/4

    d'o cardinalit moyenne = (0+2(3)+10)/4 = 4 si 10000 personnes, la relation "possder" aura 40000 tuples

    personne

    a1a2

    voiture

    b1b2

    ra1

    10000

    40000

    4

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 56

    PPP rrr ooo ppp aaa ggg aaa ttt iii ooo nnn ddd eee sss mmm uuu lll ttt iii ppp lll iii ccc iii ttt sss mmm ooo yyy eee nnn nnn eee personne

    a1a2

    voiture

    b1b2

    conduire

    r0,3 0,5

    card. mode 1

    card moy = 5/4 = 1,25

    card. mode 1

    card moy = 7/4 = 1,75 d'o:

    nb person

    ne x 1,25 =

    nb voiture x 1,75 soit:

    personne

    a1a2

    voiture

    b1b2

    r

    1000conduire

    a1

    1250 = n x 1,75=> n= 1250/1,75

    n = 715b1

    r

    1,25 1,75

    1000 x 1,25 = 1250

    715

  • Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 57

    CCC aaa lll ccc uuu lll sss ccc uuu mmm uuu lll sss ddd eee sss vvv ooo lll uuu mmm eee sss ddd eee sss ttt aaa bbb lll eee sss

    Il sagit de faire sur un tableau, par exemple sous Excel, le cumul du volume estim de toutes les tables composant la base de donnes

    Ce tableau peut tre paramtr Il permet destimer lvolution du volume de la base de

    donnes selon diffrents scnarii de croissance

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 58

    555... SSSooouuusss sssccchhhmmmaaa dddeee dddooonnnnnneeesss eee ttt vvvaaalllooorrr iiisssaaattt iiiooonnn dddeee lll '''aaacccttt iiivvviii ttt dddeeesss ttt rrraaaiii ttteeemmmeeennntttsss sssuuurrr lllaaa BBBDDD

    Transformation de sous-schmas conceptuels (SSC) en sous-schmas logiques (SSL)

    Valorisation des primitives logiques

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 59

    VVVaaalllooorrriiisssaaatttiiiooonnn dddeee lll'''aaaccctttiiivvviiittt dddeeesss tttrrraaaiiittteeemmmeeennntttsss sssuuurrr lllaaa BBBDDD (((111))) 1. Transformation de sous-schmas conceptuels (SSC) en sous-schmas

    logiques (SSL) Sous-Schma

    Conceptuel (SSC) 0,n 1,11,n

    0,n0,n

    1,1

    passer

    composerqt_commande

    DEPOTNdpot

    COMMANDE

    date_commande

    CLIENTNclientnom_client

    ARTICLENarticlelibell_article

    Ncommande

    concerner

    adresse_client

    adresse_dpot

    Sous-Schma Logique

    (SSL) associ

    qt_commandeDEPOTNdpot

    COMMANDE

    CLIENTNclientnom_client

    ARTICLENarticlelibell_article

    Ncommande

    COMPOSERNcommandeNarticle

    Nclient

    adresse_client

    adresse_dpot

    Ndpotdate_commande

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 60

    VVVaaalllooorrriiisssaaatttiiiooonnn dddeee lll'''aaaccctttiiivvviiittt dddeeesss tttrrraaaiiittteeemmmeeennntttsss sssuuurrr lllaaa BBBDDD (((222))) 2. Frquence d'une tche associe un modle externe frquence du message associ au modle externe exprime par rapport la priode de

    rfrence (gnralement le mois moyen) base sur la frquence de survenance des vnements initiateurs des procdures o

    figure cette tche 3. Transformation des actions en primitives - #T : Accs un tuple d'une table relationnelle par accs sur cl primaire, connaissant

    une valeur de cette cl - ?T : Accs un tuple d'une table relationnelle par accs sur un autre attribut que la cl

    primaire, ou slection/restriction de tuples d'une table selon une qualification - T+ : Ajout d'un tuple une table relationnelle - T- : Suppression d'un tuple une table relationnelle. Cette primitive est note T- nom de

    la table. - Tm : Modification d'un tuple d'une table relationnelle, par la modification de valeurs d'un

    ou plusieurs attributs de ce tuple - TXT': Jointure entre deux tables relationnelles T et T', par la modification de valeurs d'un

    ou plusieurs attributs de ce tuple. Cette primitive est note TXT' noms des tables concernes .

  • Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 61

    VVVaaalllooorrriiisssaaatttiiiooonnn dddeee lll'''aaaccctttiiivvviiittt dddeeesss tttrrraaaiiittteeemmmeeennntttsss sssuuurrr lllaaa BBBDDD (((333))) Illustration des primitives relationnelles :

    COMMANDE

    date

    CLIENTnclientnom client

    ncommandenclient

    CLIENT COMMANDE

    nclient nom client ncommande nclient date

    0001!!!!!!!!DUPONT

    0002 MARTIN

    0003!!!! DURAND...

    100 0001 12-02101 0001 19-03102 0001 22-04

    103 0002 12-02104 0002 20-04

    105 0003 12-02....

    #CLIENT (N0003)

    CLIENT X COMMANDE

    ?COMMANDE (date=12-02)

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 62

    VVVaaalllooorrriiisssaaatttiiiooonnn dddeee lll'''aaaccctttiiivvviiittt dddeeesss tttrrraaaiiittteeemmmeeennntttsss sssuuurrr lllaaa BBBDDD (((444))) Actions associes la prise en compte d'une nouvelle occurrence de

    COMMANDE: Sous-Schma Conceptuel

    (SSC) 0,n 1,11,n

    0,n0,n

    1,1

    passer

    composerqt_commande

    DEPOTNdpot

    COMMANDE

    date_commande

    CLIENTNclientnom_client

    ARTICLENarticlelibell_article

    Ncommande

    concerner

    adresse_client

    adresse_dpot

    LEC

    LEC

    CRE

    LEC

    CRE

    CRE

    CRE

    m = 4,2

    m = cardinalit moyenne = 4,2(en moyenne, une commande porte sur de 4,2 articles)

    Sous-Schma Logique (SSL) associ

    qt_commandeDEPOTNdpot

    COMMANDE

    CLIENTNclientnom_client

    ARTICLENarticlelibell_article

    Ncommande

    COMPOSERNcommandeNarticle

    Nclient

    adresse_client

    adresse_dpot

    Ndpotdate_commande

    4,2

    #T

    #T

    #T

    T+

    T+

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 63

    VVVaaalllooorrriiisssaaatttiiiooonnn dddeee lll'''aaaccctttiiivvviiittt dddeeesss tttrrraaaiiittteeemmmeeennntttsss sssuuurrr lllaaa BBBDDD (((444))) 4. Rcapitulatif de l'activit valorise par primitive pour chaque modle externe : traduction des actions, en primitives effectuer ce calcul d'abord pour l'activit unitaire de la tche, puis de la multiplier par la

    frquence de la tche sur la priode de rfrence. cumul par primitive de l'activit supporte par le modle (total par ligne). Du fait de

    l'htrognit des primitives en termes d'quivalent-accs, seul le cumul par primitive a une signification :.

    primitives activit unitaire activit mensuelle #T CLIENT 1 10 000 #T DEPOT 1 10 000

    T+ COMMANDE 1 10 000 T# ARTICLE 1x4,2 42 000

    T+ COMPOSER 1x4,2 42 000

    reprer les primitives forte activit, et retrouver les modles externes responsables en pratique: en l'absence d'outil logiciel prenant en charge cette valorisation fortement algorithmique,

    pratiquer ces calculs que sur un chantillon d'une vingtaine de modles externes remarquables par leur frquence, d'aspect critique (comme dans d'autres domaines la loi des 80-20 se constate galement ici).

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 64

    VVVaaalllooorrriiisssaaatttiiiooonnn dddeee lll'''aaaccctttiiivvviiittt dddeeesss tttrrraaaiiittteeemmmeeennntttsss sssuuurrr lllaaa BBBDDD (((555))) 5. Poids relatif des primitives en accs logiques Dfinir des quivalents-accs-logiques = poids relatifs entre les diffrentes primitives. Conventions pour la valorisation des primitives logiques

    1- unit d'accs logique = #T, toutes les autres seront exprimes en fonction de #T. 2- le nombre de tuples occupes par une table T sera not NbT(T) 3- le nombre de pages occupes par une table T sera not NbP(T)

    avec : NbP(T) = NbT(T)/nombre moyen de tuples dans la page le nombre moyen de tuples dans la page dpendra :

    - de la taille de la page, not P - de la taille du tuple, not T - du taux de remplissage de la page

    ces valeurs seront lies au SGBD et l'organisation de la table adopts. on pourra faire des calculs en premire approximation avec un taux de

    remplissage de 80% et des pages de 4K. Exemple :

    NbT(T) = 10000; P = 4Koctets; taux de remplissage de 80%; T = 200 octets; Nombre moyen de tuples par page = 4000x0,8/200 = 16 NbP(T) = 10000/16 = 625 pages.

  • Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 65

    VVVaaalllooorrriiisssaaatttiiiooonnn dddeeesss ppprrriiimmmiiitttiiivvveeesss lllooogggiiiqqquuueeesss (((111))) valeurs moyennes pour SGBDR actuellement commercialiss, une rflexion ncssaire

    sur la pertinence de ces valeurs dans le contexte de la BD #T =1 : slection selon cl primaire = unit d'accs logique ?T= NbP(T) : slection selon un attribut non cl primaire sans index secondaire :

    balayage squentiel ?T= Sx(NbP(T)+NP(I)): si le critre de slection comprend plusieurs termes dont un

    faisant intervenir un index secondaire I (avec S = facteur de slectivit du critre, cad la probabilit qu'un tuple satisfasse le critre; NbP(T) = nb pages de la table T; NbP(I) = nb pages de l'index I)

    T+ = T- = 4: le tuple est atteint par 1 accs l'index + 1 accs la page contenant le tuple cherch + 1 mise jour d'une page + 1 mise jour de l'index.

    Tm = 3: le tuple est atteint par 1 accs l'index + 1 accs la page contenant le tuple cherch + 1 criture sur page.

    TXT' = S(NbP(T) + (N(T)xNbP(T'))) : jointure, avec NbP(T) = nombre page de la table T, S = facteur de slectivit du critre sur T, N(T) = nombre de tuples de T satisfaisant le critre, NbAP(T') = nombre page de la table T'

    Bernard ESPINASSE Rappels sur les Bases de donnes relationnelles 66

    VVVaaalllooorrriiisssaaatttiiiooonnn dddeeesss ppprrriiimmmiiitttiiivvveeesss lllooogggiiiqqquuueeesss (((222))) Globalement on pourrait retenir :

    primitive quivalent accs #T 1

    Tm 3

    T+=T- 4

    ?T NbP(T)

    ?T si critre/index Sx(NbP(T)+NP(I))

    TXT' S(NbP(T) + (N(T)xNbP(T'))