Moi Conception

Embed Size (px)

Citation preview

  • 8/8/2019 Moi Conception

    1/67

    Conception de bases de donnes

    Tarek BeldiDpartement dInformatiqueUniversit Time

  • 8/8/2019 Moi Conception

    2/67

    Plan Objectif de ce chapitre

    Prsenter les grandes lignes lors de la conception dune BD tape 1: Identification des besoins tape 2: laboration du schma conceptuel Utilisation du modle UML Les critres prendre en compte dans llaboration duschma physique de la BD

    Ce chapitre nest pas Exhaustif, Formel Complet

    Ce nest pas un cours sur UML !

    (c) Beldi 2

  • 8/8/2019 Moi Conception

    3/67

    HistoriqueAvant 1970 1970 1980 1980 - 1992 Depuis 1992

    Technologie

    Applications

    Mthodes DossiersdexploitationMthodesdanalyse-

    programmationMthodes

    systmiques Mthodesorientes objet

    (c) Beldi 3

  • 8/8/2019 Moi Conception

    4/67

    Mthodologie

    Conception desystmes dinformation

    Conduiteetsuivideprojet

    Delphi

    Dveloppement

    SGBD PB Java

    Merise

    UML

    SADT

    SA-RT

    Schma directeur

    (c) Beldi 4

  • 8/8/2019 Moi Conception

    5/67

    Vision complte

    Stratgie ProcessusSystme

    informatiqueSystme

    dinformation

    (c) Beldi 5

  • 8/8/2019 Moi Conception

    6/67

    Problmatique: Taille et complexit des logiciels Complexit fonctionnelle (exemples)1. Le SI : mmoriser et stocker linformation mais enplus traiter de faon sophistique pour laide ladcision (Entrept de donnes "DataWhareHouse).2. Logiciels dvelopps sparment et avec desdmarches diffrentes et appels tre interfacs

    pour les besoins de lentreprise. volutions technologiques permanentes

    Complexit architecturale : Client/serveur, n-tiers,Intranet, Corba (Common Object Request BrokerArchitecture), Systmes distribus

    (c) Beldi 6

  • 8/8/2019 Moi Conception

    7/67

    Solutions Dcoupage du processus de dveloppement :

    phase d'analyse : aspectsphase de ralisation : aspectstechnologiques et architecturaux.

    Dcoupage du systme en sous systmes :diminution de la complexit par rpartition

    du travail et rutilisation de composants

    Utilisation dune technologie de haut niveau :dcoupage naturel du systme .

    (c) Beldi 7

  • 8/8/2019 Moi Conception

    8/67

    Dmarche de construction dune application

    Mthode : guide de description dune forme de modle une autre.

    Formalisme : langage de reprsentation graphique.

    les diffrentes tapes : Expression des besoins

    Spcification

    Analyse

    Conception

    Implmentation

    Tests de vrification

    Validation

    Maintenance et volution

    (c) Beldi 8

  • 8/8/2019 Moi Conception

    9/67

    Les diffrentes tapes

    Expression des besoins : Donnes + traitements

    Spcification : Ce que le systme doit tre et comment il peut

    tre utilis.

    Analyse : Lobjectif est de dterminer les lments intervenant dansle systme construire, ainsi que leur structure et leurs relations. Elle

    doit dcrire chaque objet selon 3 axes : Axe fonctionnel : savoir-faire de lobjet. Axe statique : structure de lobjet.

    Axe dynamique : cycle de vie de lobjet au cours delapplication (tats et messages de lobjet).

    Ces descriptions ne tiennent pas compte de contraintes techniques(informatiques).

    (c) Beldi 9

  • 8/8/2019 Moi Conception

    10/67

    Les diffrentes tapes (suite)

    La conception : elle consiste apporter des solutions techniquesaux descriptions dfinies lors de lanalyse : architecture technique ;performances et optimisation ; stratgie de programmation.

    On y dfinit les structures et les algorithmes. Cette phase sera valide lors des tests

    Limplmentation : Cest la ralisation de la programmation

    Les tests de vrification : Ils permettent de raliser descontrles pour la qualit technique du systme.

    Il sagit de relever les ventuels dfauts de conception et deprogrammation (revue de code, tests des composants,...). Il faut instaurer ces tests tout au long du cycle de dveloppement

    et non la fin pour viter des reprises consquentes du travail

    (programmes de tests robustes ; Logiciels de tests).

    (c) Beldi 10

  • 8/8/2019 Moi Conception

    11/67

    Les diffrentes tapes (suite) Validation :Le dveloppement dune application doit tre li un

    contrat ayant une forme de cahier de charges, odoivent se trouver tous les besoins de lutilisateur. Cecahier de charge doit tre rdig avec la collaborationde lutilisateur et peut tre par ailleurs complt par lasuite.

    Tout au long des ces tapes, il doit y avoir desvalidations en collaboration galement aveclutilisateur.

    Une autre validation doit aussi tre envisage lors delachvement du travail de dveloppement, une fois quela qualit technique du systme est dmontre. Ellepermettra de garantir la logique et la compltude du

    systme.(c) Beldi 11

  • 8/8/2019 Moi Conception

    12/67

  • 8/8/2019 Moi Conception

    13/67

  • 8/8/2019 Moi Conception

    14/67

    Les cycles de vie (suite)Expression des besoins

    Conception du

    systme

    Conception des composants

    Implmentation

    Tests des

    composants

    Tests du

    systme

    Validation fonctionnelleSpcifications fonctionnelles

    Validation des

    besoins

    (c) Beldi 14

  • 8/8/2019 Moi Conception

    15/67

    Le modle en "V" Le modle en V permet une organisation modulaire.

    A chaque tape de lanalyse et de la conception correspond une tape detests ou de validation.

    A chaque tape fonctionnelle correspond ainsi une tape technique.

    Le processus saccomplit en deux phases : Une phase descendante : de spcifications et de conception. Une phase ascendante : de tests et de validation.

    Comme pour le modle linaire, linconvnient est que lavalidation et les tests interviennent tardivement.

    Dans un projet Objet, le cycle de vie rpond 3 caractristiquesessentielles :

    La traabilit entre les tapes Un cycle itratif Un cycle incrmental

    (c) Beldi 15

  • 8/8/2019 Moi Conception

    16/67

    Cycle de vie: traabilit entre les tapes Les concepts utiliss au cours des diffrentes tapessont quasiment identiques (Classes, Objets, Attributs,Mthodes, Hritage, Polymorphisme, ...). Ceci permet de conserver le mme discours lors detoutes les tapes :

    Analyse - Conception - Implmentation . Ce qui nest pas le cas dans les approchestraditionnelles, o lon utilise une mthode danalyse et

    de conception avec des concepts et un langage deprogrammation avec dautres concepts.

    (c) Beldi 16

  • 8/8/2019 Moi Conception

    17/67

    Cycle de vie: cycle itratif

    Expression des besoins

    Spcifications fonctionnelles

    ConceptionAnalyse

    Implmentation

    Tests de vrification

    Validation des besoins

    (c) Beldi 17

  • 8/8/2019 Moi Conception

    18/67

    Cycle de vie: cycle itratifLors du dveloppement, une maquette doit

    tre ralise pour valider lergonomie de

    lapplication et lenchanement des crans.

    Plusieurs versions peuvent tre

    dveloppes. Lors de chacune delle,chaque fonctionnalit est amliore jusqu optimisation rendant ainsi lesystme progressivement robuste.

    (c) Beldi 18

  • 8/8/2019 Moi Conception

    19/67

    Diffrents niveaux dabstraction Le systme d'information n'est pas peru de la mme manire partous les utilisateurs de l'entreprise.

    schmas externes

    schma conceptuel

    schma logique

    schma physique

    (c) Beldi 19

  • 8/8/2019 Moi Conception

    20/67

    tapes de conception tape 1: Identification des besoins tape 2: laboration du schmaconceptuel tape 3a: Conception du schma logique tape 3b: Raffinement du schma logique tape 4: laboration du schma physique

    (c) Beldi 20

  • 8/8/2019 Moi Conception

    21/67

    tape 1: Identification des besoins tudier les problmes des utilisateurs Comprendre leurs besoins:

    Donnes stocker dans la future BD Principales rsultats attendues (requtes, tats)

    Modliser le domaine de l'application On parle de laspect METIER

    Rsultat de l'tape : Ensemble de schmas externes En principe, chaque schma externe dcrit une partie de lafuture BD qui identifie les besoins dun groupe dutilisateurs(services, directions, etc.)

    (c) Beldi 21

  • 8/8/2019 Moi Conception

    22/67

    tape 2: laboration du schma conceptuel Intgrer les schmas externes labors l'tape1

    Problme assez complexe (domaine derecherche)L'intgration est souvent difficileDes retours frquents l'tape 1 sontncessaires

    Rsultat de l'tape:schma conceptuel du domaine de l'applicationdcrit selon un modle conceptuel donn c(dans notre cas, a sera UML ).

    (c) Beldi 22

  • 8/8/2019 Moi Conception

    23/67

    tape 3a: Conception du schma logique A ce niveau, le SGBD est choisi

    Dans le cadre de ce cours, on se place dans le cadre dun SGBD Objectif de cette tape:

    Transformer le schma conceptuel en structure de donnesconformes au SGBD choisi ou Schma Logique Le schma logique dpend donc du SGBD choisi

    Cette tape peut tre automatise: Un ensemble de rgles permettent de faire ce passage schmaconceptuel -- schma logique

    Rsultat de l'tape : schma logique de la BD Dans notre cas, le schma logique est un schma relationnel

    (c) Beldi 23

  • 8/8/2019 Moi Conception

    24/67

    tape 3b: Raffinement du schma logique Objectif de ltape: Rpondre la question suivante:

    Est-ce que le schma logique obtenu dans ltapeprcdente est bon ou non ? Intuitivement, un bon schma est un schma

    Sans oubliSans redondances anarchiquesSans danomalies de mises jour

    La thorie de la normalisation apporte quelquesrponses ce sujet

    Rsultat de l'tape:schma logique raffin

    (c) beldi 24

  • 8/8/2019 Moi Conception

    25/67

    tape 4: laboration du schma physique Rechercher de bonnes performances Prendre en compte les transactions Indexer, dnormaliser, grouper, partitionner les tables Rsultat de l'tape:

    schma physique optimis de la BD

    (c) Beldi 25

  • 8/8/2019 Moi Conception

    26/67

    tape 1Identification des besoinsRappel Sur le modle UML

  • 8/8/2019 Moi Conception

    27/67

    Rappels des concepts de base UML Classe

    Une classe modlise un ensemble d'objets ayant les mmesproprits au niveau des attributs, des relations et ducomportement Exemple: Personne, Vhicule, Client, Commande

    Association Une association modlise les liens entre objets Exemple: possde, passeCommande

    Attribut Un attribut reprsente une caractristique commune unensemble d'objets Exemple: Id_personne, No_client, Nom, quantit

    Opration (mthode) Une opration modlise un comportement commun unensemble d'objets

    (c) Beldi 27

  • 8/8/2019 Moi Conception

    28/67

    Classes et Objetsclasse

    VOITURE

    -noVehicule-km

    +dmarrer()

    +rouler(km)+arrter()

    CLASSE

    privattributs

    publicoprations

    objet:CLASSE

    attributs

    #12:VOITURE

    noVehicule=4562km = 54789

    objet

    (c) Beldi 28

  • 8/8/2019 Moi Conception

    29/67

    Association et cardinalits

    Min Max

    Min Max

    CLIENT COMMANDE0..*

    passe

    CLIENT COMMANDE1..1 passe

    (c) Beldi 29

  • 8/8/2019 Moi Conception

    30/67

    Diffrentes associations et cardinalitsternairebinaireDegr

    Min..MaxAgrgation1..1

    1..1 0..*0..*PartieTout

    1..n

    0..1

    0..n

    Cardinalit 1..*

    0..1

    0..*

    Composition0..*1..1

    Tout Partie

    (c) Beldi 30

  • 8/8/2019 Moi Conception

    31/67

    Exemple

    MAGASIN

    COMMANDE LIGNE_COMMANDE

    PRODUIT

    1..1 1..1

    passe rfrence

    1..*

    0..*0..*

    compose de

    (c) Beldi 31

  • 8/8/2019 Moi Conception

    32/67

  • 8/8/2019 Moi Conception

    33/67

    Attributs d'une classe Simple Compos Mono-valu Multi-valu Driv idEmploye:integerdateNaissance:date

    adresse:Adressetlphones:Collection\age

    EMPLOY

    DrivComposMulti-valu

    Simple

    Mono-valu

    rue:stringville:stringcodePostal:string

    province:string

    ADRESSE

    (c)Beldi 33

  • 8/8/2019 Moi Conception

    34/67

    Classe association En UML, quand une association possde des attributs, il faut crerune classe spciale dite classe association pour stocker sesattributs Exemple

    COURSTUDIANT0..*0..*

    VALUATION

    noteIntranoteFinale

    (c) Beldi 34

  • 8/8/2019 Moi Conception

    35/67

    Hirarchie ou Agrgation hirarchie: Une classe (super classe) peut avoir plusieurs sous-classes

    Chaque sous-classe hrite des attributs, des relations et desmthodes Sous classes avec Participation Totale ou Partielle Sous classes Disjoints ou non Disjoints

    partielleEMPLOY

    ACTIONNAIRE SYNDIQU

    EMPLOY

    PERMANENT CONTRACTUEL

    totale

    disjoint

    non disjoint

    {Overlapping, Incomplete}

    {Disjoint, Complete}

    (c) Beldi 35

  • 8/8/2019 Moi Conception

    36/67

    Diagramme de classes

    VOITURE

    ACHAT

    prixdate

    cote

    possde 1..10..n

    MOTEUR

    noMoteurtypepuissance

    noVhiculecouleurkm

    rouler(km)

    dmarrer()arrter()

    propritairepossesion

    1..1

    1..1

    PERSONNE

    NASnomprnomsadresse

    dmnager(adresse)

    La voiture

    acheter()vendre()

    (c) Beldi 36

  • 8/8/2019 Moi Conception

    37/67

  • 8/8/2019 Moi Conception

    38/67

    Conflits lors de lintgration des schmas externes

  • 8/8/2019 Moi Conception

    39/67

    Au niveau des classes noms diffrents pour des classes quivalentes noms identiques pour des classes diffrentes Inclusion de l'une dans l'autre Intersection non vide

    Au niveau des attributs noms diffrents pour des attributs quivalents noms identiques pour des attributs diffrents Types diffrents Compositions diffrentes

    Au niveau des associations noms diffrents pour des associations quivalentes noms identiques pour des associations diffrentes cardinalits diffrentes

    (c) Beldi 39

    Conflits sur le plan de la modlisation

  • 8/8/2019 Moi Conception

    40/67

    Classe ou Attributsignifications identiquescompositions similaires

    Association ou Attributassociation versus rfrencecardinalits incompatibles

    (c) Beldi 40

    Intgration des schmas externes

  • 8/8/2019 Moi Conception

    41/67

    Le modle conceptuelhabite 1..10..n

    EMPLOYE

    fonction

    salaireaugmenter()

    ADRESSE

    rue

    villecodePostalprovince

    PERSONNE

    NAS

    nomprnomsdateNaissance

    superviseur

    supervis

    1..1

    1..n

    VOITUREpossde 1..10..n

    MOTEUR

    noMoteur

    typepuissance

    noVehicule

    couleurkm

    rouler(km)

    dmarrer()arrter()

    propritairepossesion

    1..1

    1..1

    Dmnager()

    SPORTIF

    sport

    niveauchangerNiveau()

    ACHAT

    prixdatecoteacheter()

    vendre()

    (c) Beldi 41

    Sommaire

  • 8/8/2019 Moi Conception

    42/67

    Nous avons vu: 4 tapes de conception Modlisation avec le modle UML Intgration des schmas externes

    Reste voir (hors du cadre de ce cours) les autres diagrammes UML Lexploitation de ces diagrammes dans le cycle dedveloppement dune application de BD

    (c) Beldi 42

    Exercice

  • 8/8/2019 Moi Conception

    43/67

    Faire le diagramme de classes pour lnonc suivant: Soit une entreprise mettant disposition de ses clients du personnel

    qualifi. Chaque intervention donne lieu un contrat. Les principalesinformations du contrat sont:

    la description succincte de l'intervention, la date du dbut de l'intervention, la qualification prcise de chaque intervenant, le nombre de jours/personnes prvu pour chacune des qualifications.

    chaque qualification correspond un tarif journalier. L'entreprise s'accordeen interne une certaine souplesse sur la dtermination prcise de laqualification de son personnel en procdant de la manire suivante: chaque personne possde priori une qualification de base,

    chaque intervention il est possible de rajuster la qualification dited'intervention par rapport la qualification de base. La qualificationd'intervention est dtermine pour un contrat donn. La qualificationretenue doit toujours appartenir l'ensemble des qualificationsstandards.

    (c) Beldi 43

    tapes de conception (Rappel)

  • 8/8/2019 Moi Conception

    44/67

    tape 1: Capture des besoins (ok) tape 2: laboration du schmaconceptuel (ok) tape 3a: Conception du schma logique tape 3b: Raffinement du schma logique tape 4: laboration du schma physique

    (c) Beldi 44

  • 8/8/2019 Moi Conception

    45/67

    tape 3aConception du schma logique

    Du schma conceptuel au schma logique

  • 8/8/2019 Moi Conception

    46/67

    Modle conceptuel de dparthabite 1..10..n

    EMPLOYE

    fonctionsalaire

    augmenter()

    ADRESSE

    ruevillecodePostalprovince

    PERSONNE

    NASnomprnomsdateNaissance

    superviseur

    supervis

    1..1

    1..n

    VOITUREpossde 1..10..n

    MOTEUR

    noMoteurtypepuissance

    noVehiculecouleurkm

    rouler(km)

    dmarrer()arrter()

    propritairepossesion

    1..1

    1..1

    Dmnager()

    SPORTIF

    sportniveau

    changerNiveau()

    ACHAT

    prixdatecote

    acheter()vendre()

    (c) Beldi 46

    Les rgles de transformation

  • 8/8/2019 Moi Conception

    47/67

    Rgle 1: Une classe est reprsente par une table de mme nomayant pour attributs les attributs de la classe.

    EMPLOYE

    NASnomprnoms

    dateNaissancefonctionsalaire

    PERSONNE

    NASnomprnomsdateNaissance

    VOITURE

    MOTEUR

    noMoteurtypepuissance

    noVehiculecouleurkm

    ADRESSE

    idAdresseruevillecodePostalprovince

    SPORTIF

    NASnomprnoms

    dateNaissancesportniveau

    (c) Beldi 47

    Les rgles de transformation

  • 8/8/2019 Moi Conception

    48/67

    (suite) Rgle 2: Une association est reprsente par une table de mmenom ayant pour attributs la liste des cls des classes participanteset les attributs de l'association

    ADRESSE

    idAdresserueville

    codePostalprovince

    PERSONNE

    NASnomprnomsdateNaissance

    MOTEUR

    idMoteurtypepuissance

    VOITURE

    idVehiculecouleurkm

    SPORTIF

    NASnomprnomsdateNaissancesportniveau

    ACHAT

    idVehiculeNAS

    dateprixcote

    HABITE

    NASidAdresse

    CONTIENT

    idVehiculeidMoteur

    SUPERVISE

    NASsuperviseurNASsupervis

    EMPLOYE

    NASnomprnomsdateNaissancefonctionsalaire

    (c) Beldi 48

    Les rgles de transformation

  • 8/8/2019 Moi Conception

    49/67

    (suite) Rgle 3: Si une association a pour cardinalit 1:1 ou 1:n, la tablecorrespondante peut tre fusionne.

    ADRESSE

    idAdresse

    ruevillecodePostalprovince

    PERSONNE

    NAS

    nomprnomsdateNaissance

    VOITURE

    MOTEUR

    idMoteurtypepuissance

    idVehicule

    couleurkm

    SPORTIF

    NASnomprnomsdateNaissancesportniveau

    ACHAT

    idVehiculeNASdateprixcote

    HABITE

    NASidAdresse

    CONTIENT

    idVehicule

    idMoteur

    SUPERVISE

    NASsuperviseurNASsupervis

    EMPLOYE

    NASnomprnomsdateNaissancefonctionsalaire

    EMPLOYE

    NASnomprnomsdateNaissancefonctionsalaire

    ADRESSE

    idAdresse

    ruevillecodePostalprovince

    PERSONNE

    NAS

    nomprnomsdateNaissanceidAdresse

    VOITURE

    MOTEUR

    idMoteurtypepuissance

    idVehicule

    couleurkmidMoteur

    SPORTIF

    NASnomprnomsdateNaissancesportniveau

    ACHAT

    idVehiculeNASdateprixcote

    SUPERVISE

    NASsuperviseurNASsupervis

    (c) Beldi 49

    Les rgles de transformation

  • 8/8/2019 Moi Conception

    50/67

    Rgle 4a (Spcialisation): La cl du supertype est uniquementrpte dans les sous-tables. L'hritage est ralis par jointure.

    EMPLOYE

    NASnomprnomsdateNaissancefonctionsalaire

    ADRESSE

    idAdresse

    ruevillecodePostalprovince

    PERSONNE

    NAS

    nomprnomsdateNaissanceidAdresse

    VOITURE

    MOTEUR

    idMoteurtypepuissance

    idVehicule

    couleurkmidMoteur

    SPORTIF

    NASnomprnomsdateNaissancesportniveau

    ACHAT

    idVehiculeNASdateprixcote

    SUPERVISE

    NASsuperviseurNASsupervis

    EMPLOYE

    NASfonctionsalaire

    ADRESSE

    idAdresse

    ruevillecodePostalprovince

    PERSONNE

    NAS

    nomprnomsdateNaissanceidAdresse

    VOITURE

    MOTEUR

    idMoteurtypepuissance

    idVehicule

    couleurkmidMoteur

    SPORTIF

    NASsportniveau

    SUPERVISE

    NASsuperviseurNASsupervis

    ACHAT

    idVehiculeNASdateprixcote

    (c) Beldi 50

    Les rgles de transformation

  • 8/8/2019 Moi Conception

    51/67

    (suite) Rgle 4b (spcialisation): La super table est supprime etreconstitue par une vue avec projections et unions sur les sous-classes.

    EMPLOYE

    NASnomprnomsdateNaissancefonctionsalaire

    ADRESSE

    idAdresse

    ruevillecodePostalprovince

    MOTEUR

    idMoteurtypepuissance

    VOITURE

    idVehicule

    couleurkmidMoteur

    SPORTIF

    NASnomprnomsdateNaissancesportniveau

    SUPERVISE

    NASsuperviseurNASsupervis

    ACHAT

    idVehiculeNASdateprixcote

    PERSONNE

    NAS

    nomprnomsdateNaissanceidAdresse

    PERSONNE

    NASnomprnomsdateNaissanceidAdresse

    (c) Beldi 51

    Les rgles de transformation

  • 8/8/2019 Moi Conception

    52/67

    Spcialisation Rgle 4cLes sous-tables sont fusionnes dans la super table. Lesattributs non pertinents ont la valeur NULL.

    PERSONNE

    NAS

    nomprnomsdateNaissanceidAdresse

    SPORTIF

    NASnomprnomsdateNaissancesportniveau

    EMPLOYE

    NASnomprnomsdateNaissancefonctionsalaire

    PERSONNE

    NAS

    nomprnomsdateNaissanceidAdressefonctionsalairesportniveau

    ADRESSE

    idAdresse

    ruevillecodePostalprovince

    VOITURE

    idVehicule

    couleurkmidMoteur

    ACHAT

    idVehiculeNASdateprixcote

    MOTEUR SUPERVISE

    idMoteurtypepuissance

    NASsuperviseurNASsupervis

    (c) Beldi 52

    Les rgles de transformation

  • 8/8/2019 Moi Conception

    53/67

    contraintes d'intgrit Rgle 5 (Contraintes dintgrit): Toute association non fusionneengendre deux contraintes d'intgrit rfrentielle.

    ADRESSE

    idAdresse

    ruevillecodePostalprovince

    PERSONNE

    idVehiculeNASdateprixcote

    ACHAT

    MOTEUR

    idMoteurtypepuissance

    SUPERVISE

    NASsuperviseurNASsupervis

    VOITURE

    idVehicule

    couleurkmidMoteur

    NAS

    nomprnomsdateNaissanceidAdressefonctionsalairesport

    niveau

    FOREIGN KEY (idVehicule) REFERENCES VOITURE(IdVehicule)FOREIGN KEY (NAS) REFERENCES PERSONNE(NAS)

    FOREIGN KEY (NASsuperviseur) REFERENCES PERSONNE(NAS)FOREIGN KEY (NASsupervis) REFERENCES PERSONNE(NAS)

    (c) Beldi 53

    Les rgles de transformation

  • 8/8/2019 Moi Conception

    54/67

    (suite) Rgle 6 (contraintes dintgrit): Toute association de cardinalit 1:1ou 1:n engendre une contrainte d'intgrit rfrentielle.

    MOTEUR

    idMoteurtypepuissance

    VOITURE

    idVehiculecouleurkm

    idMoteur

    SUPERVISE

    NASsuperviseurNASsupervis

    ADRESSE

    idAdresserueville

    codePostalprovince

    PERSONNE

    NASnomprnoms

    dateNaissanceidAdressefonctionsalairesportniveau

    FOREIGN KEY (idAdresse) REFERENCES ADRESSE(idAdresse)

    ACHAT

    idVehiculeNASdateprixcote

    (c) Beldi 54

  • 8/8/2019 Moi Conception

    55/67

    tape 3bRaffinement du schma logique

    Suppression des redondances et des anomalies de mise

  • 8/8/2019 Moi Conception

    56/67

    jour Base sur les dpendances fonctionnelles et les formes normales(voir chapitre sur la normalisation des BD) Dfinition (rappel)

    Un attribut (ou groupe d'attributs) Y dpend fonctionnellementd'un attribut (ou groupe d'attributs) X si la connaissance de Ximplique celle de Y (notation X Y) Exemple

    VOITURE(idVehicule, type, couleur, marque, puissance)idVehicule typeidVehicule couleur, marque, puissancetype marquetype puissance

    (c) Beldi 56

    1 Forme normale(Rappel)

  • 8/8/2019 Moi Conception

    57/67

    Une relation est en premire forme normale si tout attribut contientune valeur atomique. Exemple :

    PERSONNE

    PERSONNE

    NASnomPrnoms: Multi-valudateNaissanceidAdressefonctionsalairesport

    niveau

    PERSONNE

    NASnomprnom1prnom2prnom3dateNaissanceidAdressefonctionsalairesport

    niveau

    Solution 1

    PRENOM

    NASprnom

    NASnomdateNaissanceidAdressefonction

    salairesportniveau

    Solution 2

    (c) Beldi 57

    2eme Forme Normale(rappel)

  • 8/8/2019 Moi Conception

    58/67

    Une relation est en deuxime forme normale si et seulement si: Elle est en premire forme normale Tout attribut n'appartenant pas une cl ne dpend pas d'unepartie dune cl.

    Exemple :

    ACHAT

    idVehiculeNASdate

    prixcote

    idVehicule cote

    ACHAT

    idVehiculeNASdateprix

    COTE

    idVehiculecote

    (c) Beldi 58

    3eme Forme normale(Rappel)

  • 8/8/2019 Moi Conception

    59/67

    Une relation est en troisime forme normale si et seulement si: Elle est en deuxime forme normale Tout attribut Non premier ne dpend pas d'un autre attributnon cl.

    Exemple :

    ADRESSE

    idAdresseruevillecodePostal

    province

    codePostal ville

    codePostal province

    ADRESSE

    idAdresseruecodePostal

    CODE_POSTAUX

    codePostalvilleprovince

    (c) Beldi 59

  • 8/8/2019 Moi Conception

    60/67

    tape 4laboration du schma physique

    Techniques de modlisation

  • 8/8/2019 Moi Conception

    61/67

    ParamtresFrquence et volume des donnes des requtesTypes de requtes (SELECT, UPDATE, )Configuration du SGBD (disque, cache, )

    Modle analytiqueUtilisation de formules (de cot) paramtres

    Modle simulmesures sur une BD rduite avec un gnrateur de

    transactions

    (c) Beldi 61

    Principales techniques d'optimisation

  • 8/8/2019 Moi Conception

    62/67

    Diminuer le nombre de jointuresD-normalisationGroupement (Clustering)

    Diminuer le volume de donnes changesen cas de distribution parPartitionnement vertical et/ouPartitionnement horizontal

    (c) Beldi 62

    D-normalisation

  • 8/8/2019 Moi Conception

    63/67

    La dnormalisation consiste implanter la jointure dedeux tables (ou plus) la place des tables initiales. Inconvnients de la dnormalisation:

    redondancesvaleurs nulles supplmentairesgestion des mises jour

    Illustrer ces inconvnients avec lexemple suivant:Fusion des tables COMMANDE et

    DET_COMMANDE

    (c) Beldi 63

    Groupement

  • 8/8/2019 Moi Conception

    64/67

    Le groupement consiste regrouper dans une mmepage (secteur du disque) ou des pages voisines les tuplesde deux tables (ou plus) selon un critre de jointure. Inconvnients du groupement

    Les slections sur l'une ou l'autre table sontpnalises. Exemple :

    Groupement des tables COMMANDE etDET_COMMANDE Les lignes de la table commande sont places dans lamme page que l'en-tte.

    (c) Beldi 64

    Partitionnement vertical

  • 8/8/2019 Moi Conception

    65/67

    Le partitionnement vertical consiste dcomposer unetable par projection en deux tables (ou plus) en rptantla cl dans chacune des tables pour pouvoir recomposerla table initiale par jointure.

    Inconvnient du partitionnement verticalLes slections sur la table initiale sont pnalises.

    Avantage :permet de rduire la taille d'une table en loignantles attributs peu utiliss

    (c) Beldi 65

    Partitionnement horizontal

  • 8/8/2019 Moi Conception

    66/67

    Le partitionnement horizontal consiste dcomposerune table par slection en deux tables (ou plus).La table initiale est reconstruite par union.

    Inconvnients du partitionnement horizontalLes slections sur la table initiale sont pnalises.

    Avantagepermet de rduire la taille d'une table en ladcoupant. Exemple :

    DET_COMMANDE est dcoupe en douze tables: unetable par mois.(c) Beldi 66

  • 8/8/2019 Moi Conception

    67/67