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