base de donneé
DESCRIPTION
base de donneéTRANSCRIPT
-
Thorie des bases de Thorie des bases de
donnes
-
Toute manipulation de fichier exige trois niveaux dintervention, et trois couches
logicielles :
Gestion du support physique : disques durs, disquette, streamers
Pilote dentres-sorties (Driver)
Gestion des structures internes des fichiers, et des mthodes daccs : ouverture, fermeture, lecture,
criture
Systme de gestion de fichiers (SGF)
Systme de Gestion de fichier
Systme de gestion de fichiers (SGF)
Gestion des contenus : calculs, tests, affichages ...
Programmes applicatifs
-
Systme de Gestion de fichier
-
Systme de Gestion de Base de donnes :
SGBD
-
Systme de Gestion de Base de donnes :
SGBD
-
Cycle de vie dune base de donnes
-
Architecture fonctionnelle d'un SGBD : ANSI-
SPARC
-
Architecture fonctionnelle d'un SGBD : ANSI-
SPARC
-
Modle relationnel
-
Les redondances
-
Les redondances
La table fait apparatre une personne et ses coordonnes autant de
fois quelle possde un vhicule
Si Mr Pagnol change de N de tlphone, il faut sassurer que la mise
jour seffectue bien sur les deux enregistrements le concernant.
-
Une autre redondance est lie la correspondance Marque,Type, CV
Les redondances
Pour chaque propritaire ayant une R25, il faudra saisir la marqueet la puissance.
De plus, un mme vhicule peut passer entre les mains deplusieurs propritaires. Il faudra alors saisir toutes cescaractristiques lorsquil changera de mains.
-
On appelle dictionnaire des donnes, la liste des informations que le systmeinformatique doit acqurir et mmoriser pour produire les rsultats escompts.
Il s'agit de recenser les diffrentes donnes, en sachant que l'on distingue 3 typesde donnes :
Donnes lmentaires
Elles ne sont pas obtenues par calcul partir d'autres donnes.
Exemple :
On donne la quantit, le prix de l'article, calculer le cot total..
Le dictionnaire de donnes
On donne la quantit, le prix de l'article, calculer le cot total..
La quantit et le prix sont des donnes lmentaires
Donnes calcules.
Elles rsultent d'un calcul effectu partir d'autres donnes.
Le cot total est une donne calcule (= qte * prix unitaire).
Donnes paramtres.
C'est une donne qui ne prend qu'une unique valeur.
Exemple :
L'entreprise s'appelle PVF.
-
Le dictionnaire de donnes
-
Le dictionnaire de donnes
-
Dpendances fonctionnelles
-
Soient R(A,B,...) et F= {df1,...} l'ensemble des dpendances
fonctionnelles sur R, et X,
Y,.. des lments de l'ensemble des parties de {A,B,...}.
a) Rflexivit
Si Y inclus dans X alors X-->Y.
Rgles d'Amstrong
Si Y inclus dans X alors X-->Y.
b) Augmentation
Pour tout Z inclus dans {A,B,...}
si X-->Y alors XZ-->YZ. Et si X-->Y alors XZ-->Y.
c) Transitivit
Si X-->Y et Y-->Z alors X-->Z.
-
Proprits complmentaires des rgles d'Amstrong
Ces rgles se dduisent des rgles d'Amstrong.
d) Additivit / union
X-->Y, X-->Z alors X-->YZ.
e) Pseudo-transitivit
Rgles d'Amstrong
e) Pseudo-transitivit
X-->Y, WY-->Z alors XW-->Z.
f) Dcomposition
X-->Y alors X-->Z si Z est inclus dans Y.
-
Dpendances multivalues
-
Exemple :
Soit le schma relationnel R(PROF, CODMAT, J, H, SALLE)
Un tuple (p,m,s,j,h) d'une relation r de schma R signifie "L'enseignant p enseigne
la matire m dans la salle s le jour j l'heure h".
Un enseignant ne peut se trouver dans deux salles la fois un jour donn une
heure donne pour un cours donn, et que deux cours ne peuvent tre donns
simultanment par la mme personne dans la mme salle un jour et une heure
Dpendances fonctionnelles
simultanment par la mme personne dans la mme salle un jour et une heure
donne, on a les dpendances :
df1 : PROF,H,J --> SALLE, CODMAT
df2 : H,J,SALLE --> PROF, CODMAT
Si de plus la connaissance dun enseignant implique la connaissance de la
matire enseigne on a
df3 : PROF --> CODMAT
Mais si un professeur peut enseigner plusieurs matires
PROF CODMAT
-
la matrice des dpendances fonctionnelles
-
Simplification de la matrice des dpendances fonctionnelles
la matrice des dpendances fonctionnelles
-
Eliminer les dpendances transitives
Cherchons laquelle de ces deux dpendances fonctionnelles peut tre supprime.
Existe-t-il une donne C telle que N client C et C Nom client ? Non
Existe-t-il une donne C telle que N facture C et C Nom client ? Oui, c'est Nclient
En effet, N facture N client et N client Nom client
Dans la colonne N facture, on supprime le 1 sur la ligne Nom client
On rpte l'opration pour les autres lignes
la matrice des dpendances fonctionnelles
On rpte l'opration pour les autres lignes
-
Graphe des dpendances fonctionnelles
-
Cl minimale
Un ensemble dattributs X de R est une cl minimale de R muni de lensemble dedpendances fonctionnelles F si et seulement si X est une cl et si tout sous-ensemblestrict de X nen est pas une.
Exemple :
Soit la relation suivante :
Edition (Numro, Titre, Code-aut, Nom_prnom, Adresse_aut, Anne, Code-edit,nom, Adresse-edit)
Le graphe de dpendance fonctionnelle minimum montre que :
Graphe des dpendances fonctionnelles
Le graphe de dpendance fonctionnelle minimum montre que :
Numro est un attribut clNumro AnneNumro seulement ne peut pas jouer le rle dune cl minimaleCode-edit est un attribut clCode-edit AnneCode-edit seulement ne peut pas jouer le rle dune cl minimaleCode-edit et Numro jouent le rle dune cl de la relation(Code-edit, Numro) Anne(Code-edit, Numro) cl minimale de la relation dition
-
Concept de la Cl primaire
-
Concept de la Cl trangre
-
Les contraintes
-
Contrainte de domaines
Dfinition extensive ou intensive du domaine d'un attribut :
Exemple:
1. lattribut Nom du schma de relation Fournisseurs est contraint tre une
chane de caractres de longueur 20 ;
2. l'attribut Couleur du schma de relation Voitures a ses valeurs dans l'ensemble
{rouge,vert,bleu,noir,blanc} ;
Les contraintes
{rouge,vert,bleu,noir,blanc} ;
3. lattribut mois est compris entre 1 et 12 ;
4. le prix unitaire doit tre strictement positif.
5. Prsence obligatoire ou non dune valeur pour un attribut : NULL ou NOT
NULL.
-
contraintes rfrentielles ou contraintes d'inclusion
Les contraintes
-
Mises jour et cohrence
But d'un schma logique : dcrire une bd qui va effectivement tre
utilise
- charge , accde , mise jour (maj)
Les maj (insertions, suppressions, modifications) doivent conserver
la cohrence de la base de donnes
Normalisation dun schma relationnel
la cohrence de la base de donnes
- intgrit rfrentielle
- toute contrainte d'intgrit
- en particulier les dpendances entre attributs
Selon le schma c'est + ou - facile
- Plus la bd contient de redondances, plus les maj avec maintien
de la cohrence est difficile
-
Exemple d'anomalies de maj:
LivraisonTot ( Nf , adrF , Np , typeP , qt )
3 Casa 52 meuble 12
22 Rabat 10 ordinateur 6
22 Rabat 25 papier 210
3 Casa 25 papier 560
Normalisation dun schma relationnel
3 Fes 10 ordinateur 15
Dfinition : Le fournisseur Nf, qui est actuellement telle adresse adrF, a livr
au total telle quantit du produit Np, produit qui est de tel type.
Si un fournisseur change dadresse et quun seul tuple est mis jour
incohrence
Si un nouveau tuple est insr pour un fournisseur connu, avec une adresse
diffrente incohrence
Impossibilit d'enregistrer un nouveau fournisseur sans livraison
-
Quest-ce quune BD relationnelle incorrecte ?
Une relation nest pas correcte si :
elle implique des rptitions au niveau de sa population
elle pose des problmes lors des maj (insertions, modifications et
Normalisation dun schma relationnel
elle pose des problmes lors des maj (insertions, modifications et
suppressions)
Les conditions pour qu'une relation soit correcte peuvent tre
dfinies formellement :
=> rgles de normalisation
-
Exemple
LivraisonTot ( Nf , adrF , Np , typeP , qt )
3 Casa 52 meuble 12
22 Rabat 10 ordinateur 6
22 Rabat 25 papier 210
3 Casa 25 papier 560
Normalisation dun schma relationnel
3 Fes 10 ordinateur 15
Ladresse du fournisseur ne dpend que du fournisseur et pas du produit.
Le type du produit ne dpend que du produit et pas du fournisseur
REDONDANCES
Anomalies de mise jour
Cette relation n'est pas correcte. Il faut la normaliser.
-
Processus de transformation d'un schma S1 pour obtenir un
schma S2 :
- qui est quivalent (mme contenu)
- dont les maj assurant la cohrence de la bd sont simples
maj simple :
- un changement lmentaire dans le monde rel se traduit par
Normalisation d'un schma logique
- un changement lmentaire dans le monde rel se traduit par
une mise jour d'un tuple
Exemples de changements lmentaires
- LivraisonTot (Nf, adrF, Np, typeP, qt)
- La quantit totale pour un produit et un fournisseur est mise
jour => 1 tuple m.a.j.
- Un fournisseur change d'adresse => N tuples m.a.j.
-
Processus de dcomposition d'une relation maj complexes en
plusieurs relations maj simples
Processus sur le schma relationnel formel
Exemple :
La relation LivraisonTot (Nf, adrF, Np, typeP, qt) sera
Normalisation d'une relation
La relation LivraisonTot (Nf, adrF, Np, typeP, qt) sera
dcompose en :
LivraisonTot (Nf, Np, qt)
Fournisseur (Nf, adrF)
Produit (Np, typeP)
-
Normalisation d'une relation
Produit0-n 0-n
Fournisseur
Nom Adr. Nom TypeQtDate TelTel
Livraison
Exemple
Fournisseur (NF, Nom, Adr)
Produit (NP, Nom, Type)
Livraison (NP, NF, Date, Qt, Tl)
Dcomposition Fournisseur ProduitLivraison0-n 0-n
VALIDATION
Rgles
Produit0-n 0-n
Fournisseur
Nom Adr. Nom TypeQtDate TelTel
Livraison
des relations
incorrectesNORMALI-
SATION
0-n 0-n
Nom Adr. Nom TypeQt DateTelTel
Produit (NP, Nom, Type)
Fournisseur (NF, Nom, Adr, Tl)
Livraison (NP, NF, Date, Qt)
TRADUCTION
-
Soit une relation R qui contient des redondances et pose des
problmes lors des maj "Elle n'est pas normalise"
Il faut la dcomposer en plusieurs relations meilleures
("normalises")
par projection
en suivant les DF
Normalisation par dcomposition
en suivant les DF
- cela assure d'obtenir des relations normalises.
Il faut s'assurer de conserver le mme contenu La jointure des
nouvelles relations = R
-
Normalisation par dcompositionNormalisation par dcomposition (2)
R (A1, A2, , An)
R1 = [A1, A2, Ai] RR2 = [Ai, Ai+1, Aj] R.
Rk = [Al, Al+1, An] R
Les requtes sur R et celles sur la nouvelle BD donneront toujours le mme rsultat
Si R = R1*R2* *Rkla dcomposition est sans perte d'information
-
Thorme de Heath
THEOREME :R (X, Y, Z) est dcomposable sans perte dinformation en
R1 = [X,Y]RR2 = [X,Z]R
si la DF XY existesi la DF XY existe
R1 est alors ncessairement normalise (en 3FN).
Elle dcrit le fait lmentaire XY
Les requtes poses sur R et celles poses sur R1*R2
donnent le mme rsultat
-
Exemple : dcomposition sans perte d'info
Zo
Armand
Marie
Lausanne
Genve
Bienne
secrtaire
secrtaire
directeur
27
32
38
R (NomEmp, adresse, poste, age)
R1 (NomEmp, adresse, poste) R2 (NomEmp, age)
Zo
Armand
Marie
Lausanne
Genve
Bienne
secrtaire
secrtaire
directeur
Zo
Armand
Marie
27
32
38
R = R1*R2NB Cette dcomposition est sans perte d'information, mais inutile
-
Exemple : dcomposition avec perte d'info
R1' (NomEmp, adresse, poste) R2' (poste, age)
Zo
Armand
Marie
Lausanne
Genve
Bienne
secrtaire
secrtaire
directeur
secrtaire
secrtaire
directeur
27
32
38
R1' * R2'
ZoZo
Armand
LausanneLausanneGenve
secrtairesecrtairesecrtaire
27322732secrtaireGenveArmand38directeurBienneMarie
R
-
Application de Heath
LivraisonTot (Nf, adrF, Np, typeP, qt)
Nf Np
Nf adrF => R1 (Nf, adrF) ok
LivraisonTot' (Nf, Np, typeP, qt)
Np typeP => R2 (Np, typeP) ok
LivraisonTot'' (Np, Nf, qt)
(Np, Nf) qt =>
LivraisonTot'' (Np, Nf, qt) ok
adrF qt typeP
-
Qualit dune dcomposition
Une bonne dcomposition est une dcomposition
1) sans perte dinformation
2) sans perte de DF
3) qui produit des relations meilleures (mieux normalises)
Sans perte de DF :
Toute DF doit tre dans lune des relations obtenues par
dcomposition
Une DF ayant comme source un identifiant sera automatiquement
vrifie par le SGBD
Une DF perdue => une contrainte d'intgrit implicite => le SGBD ne
peut pas la vrifier
-
Formes normales : 1FN
Une relation est en 1FN si chaque valeur de chaque attribut
de chaque tuple est une valeur simple (tous les attributs sont
simples et monovalus).
Exemple :
LivraisonTot (Nf, adrF, Np, typeP, qt)LivraisonTot (Nf, adrF, Np, typeP, qt)
est en 1FN
Pratiquement, en relationnel on ne travaille que sur des
relations en 1FN
-
2me forme normale : 2FN
Permet dliminer les attributs qui ne dcrivent paslobjet reprsent par la relation
Nf Np
LivraisonTot (Nf, adrF, Np, typeP, qt)
Livraison mlange la description :
- de la livraison cumule ( Nf, Np, quantit)
- du fournisseur ( Nf, adresse)
- du produit ( Np, type)
Nf Np
adrF qt typeP
-
2me forme normale : dfinition
LivraisonTot (Nf, adrF, Np, typeP, qt)
Nf Np
Des DF partent de composants de lidentifiant => Livraison nest pas en 2FN
Dfinition : une relation est en 2FN si
- elle est en 1FN, et
- chaque attribut qui ne fait pas partie de lidentifiant dpend dun identifiant
entier
adrF qt typeP
-
Dcomposition selon les DF
l Pour chaque source de DF crer une relation comprenant :
la source
et tous les attributs cibles de DF ayant cette source
Nf Np
adrF qt typeP
R3
R1 (Nf, adrF)R2 (Np, typeP)R3 (Nf, Np, qt)
-
3FN : 3me forme normale
Permet dliminer des sous-relations incluses dans une relation
Exemple : Fournisseur (Nfourn, ville, pays)
Nfourn
ville pays
doit tre dcompose en :F (Nfourn, ville)G (ville, pays)
Nfourn
ville pays
-
3me forme normale : dfinition
Fournisseur (Nfourn, ville, pays)
Nfourn
ville pays
Profondeur de larbre des DF > 1 => Fournisseur n'est pas en 3FN
Dfinition : Une relation est en 3FN si
- elle est en 1FN, et
- chaque attribut qui ne fait partie daucun identifiant dpend
directement dun identifiant entier
ville pays
-
Importance de la 3FN
Toute relation peut toujours tre dcompose en
relations en 3FN sans aucune perte
sans perte de DF, et
sans perte d'informationsans perte d'information
Ce n'est pas vrai pour les formes suprieures
Il faut donc toujours faire des schmas au moins
en 3FN
-
Forme normale de Boyce-Codd
Gnralise la 3FN aux relations plusieurs identifiants
Fournisseur (Nfourn, nom-fourn, Nproduit, prix)
avec 2 identifiants :
- (Nfourn +Nproduit)- (Nfourn +Nproduit)
- (nom-fourn + Nproduit)
- 3NF
- Mais des redondances : Nfourn et nom-fourn
Dfinition : Une relation est en FNBC si :
- elle est en 1FN, et
- si toute source complte de DF est un identifiant entier
-
FNBC - exemple : Fournisseur
l Fournisseur (Nfourn, nom-fourn, Nproduit, prix)
Nfourn nom-fourn
Nproduitprix (2 graphes possibles)
Identifiants : (Nfourn + Nproduit)
(nomfourn + Nproduit)
Fournisseur est en 3FN mais pas en FNBC
On doit dcomposer pour obtenir des relations en FNBC
Attention : Ce passage en FNBC nest pas toujours possible sans
perte de dpendances
-
Dcompostion de Fournisseur
Fournisseur (Nfourn, nom-fourn, Nproduit, prix)
F2
F1
F1 (Nfourn, nom-fourn) avec 2 identifiantsF2 (Nfourn, Nproduit, prix)
ou (si l'on prend l'autre graphe des DF)
F1 (Nfourn, nom-fourn) avec 2 identifiantsF2 (nom-fourn, Nproduit, prix)
-
FNBC - exemple : Place
NEtud Matire
Rang
l Place (NEtud, Matire, Rang)rang sans ex aequo
2 identifiants : (NEtud + Matire)
(Rang + Matire)
Place est en 3FN et est en FNBC
-
FNBC contre-exemple
Enseignement (NEtud, Matire, Prof)
NEtud Matire
ProfProf
l 2 identifiants : (NEtud + Matire)(NEtud + Prof)
l Enseignement est en 3FN mais nest pas en FNBC
-
Dcomposition de Enseignement
Enseignement (NEtud, Matire, Prof)
La dcomposition selon Heath :
R1 (Prof, Matire) R2 (Prof, NEtud)
est sans perte dinformation
mais avec perte de la DF (NEtud, Matire)Profmais avec perte de la DF (NEtud, Matire)Prof
On peut insrer des tuples qui transgressent la DF
INSERT INTO R1 : (Rochat, BD)
INSERT INTO R1 : (Walis, BD)
INSERT INTO R2 : (Rochat, 12345)
INSERT INTO R2 : (Walis, 12345)
-
Enseignement : 2 solutions
Solution 1
Enseignement (NEtud, Prof, Matire)
avec la CI : un prof n'enseigne qu'une seule matire
Solution 2
R1 (Prof, Matire)R1 (Prof, Matire)
R2 (Prof, NEtud)
avec la CI : un tudiant suit une matire donne avec un seul
prof
Pas de solution idale
La solution 1 est prfrable
elle gnre moins de jointures lors des requtes
la CI est mono-relation