cours bd
TRANSCRIPT
1
Le modèle relationnel et la normalisationLe modèle relationnel et la normalisation
• connaître les principes et caractéristiques du modèle relationnel
• connaître les principes de normalisation
• connaître les diverses notions de clés
• connaître les règles de dépendances fonctionnelles
• connaître les principales formes normales
• savoir comment concevoir une base à partir de dépendances fonctionnelles
• connaître les principaux SGBD relationnels
Objectifs d'apprentissage
2
Le modèle Relationnel• Basé sur la théorie des Relations
• Étant donnés les ensembles D1, D2, ... Dn Codd(IBM)
R est une relation sur ces n ensembles si c'est un ensemble ordonné de n-uplets <d1, d2, ... dn> tels que
d1 ε D1, d2 ε D2, ... dn ε Dn
D1, D2, ... Dn sont des domaines de R
n est le degré de la Relation-> Ex: Relation Pièce Pièces Pno Pnom Couleur Poids
P1 boulon blanc 5
P2 vis noir 2
P3 bouchon
rouge 7
P4 cle vert 25
P5 volant jaune 15
Tuple ou nuplet
3
• Il n'existe pas 2 n-uplets identiques
• L'ordre des colonnes n'importe pas
• L'ordre des lignes n'importe pas
• Un domaine particulier est la "clé primaire" (Ex.: Pno)
• Chaque valeur de Pno est différente
* Chaque valeur identifie de manière unique le n-uplet
• Cas où deux domaines(attributs) représentent le même ensemble (domaine):
Composant (PnoC, Pnoc Qté)
P1 P2 2
P1 P4 4
P5 P3 1
P3 P6 3
P6 P7 9
P5 P6 8
P2 P4 4
Clé Primaire
4
* chaque valeur d'un domaine(attribut) n'est pas décomposable
⇒ relation normalisée 3FN
Exemple:
0FN 1FN
Le modèle relationnel est formé d'une collection de relations normalisées de différents degrés (variable avec le temps).
• Avec relation ≅ fichier, domaine ≅ champs, n-uplet enregistrement , mais propriétés (normalisation) différentes
VENTE
relation
Pno, Qté
P1 P2 P3 P4 P5 P1 P2 P3 P5
PQFno
F1 F2 F3
3 2 4 2 1 3 4 4 2
Pno, Qté
P1 P2 P3 . . . .
Fno
F1 F1 F1 . . . .
3 2 4 . . .
5
Exemple d'un modèle relationnel
• Chaque fournisseur fournit des pièces et chaque pièce est fournie par des fournisseurs (correspondance plusieurs-plusieurs)
clé candidate ≠ clé alternée
FOURN P
F1 F2 F3 F4 F5 F6
1 2 2 4 4 4
Pno Pnom cat ville
Ford GE Hitachi Radio-S Motorola ...
Détroit N.Y. Tokyo Toronto L.A. L.A.
P1 P2 P3 P4 P5 P6
Pno Pnom
Culasse boulon Vis circuit capot transfo
25 8 5 2 5 58
couleur poids
blanc jaune blanc noir beige noir
FP
F1 F1 F1 F2 F2 F3 F4 F5
Fno Pno
CP
CE
Qte
P1 P2 P4 P4 P6 P4 P4 P4
1 000 10 000 10 000 100 200 300 1 000 200
F1 P2
F
6
Règles ou contraintes d'intégrité1- Aucune clé primaire ne peut être nulle (en tout ou partie)2- Intégrité référentielle
⇒ Chaque valeur de #P dans FP doit être égale à celle de #P dans P.
• Définition: schéma relationnel– structure– contraintes d'intégrité
• Conception d'une base relationnelle– méthode -> décomposition
-> composition– normalisation 1FN, 2FN,...... 5FN
FP ( #F, #P , Qté )
C lé é trangè reclés primaire
P ( #P, NOM, POIDS, COULEUR )
7
• Ajout: Il est facile d'ajouter une nouvelle pièce (P7) -> ajout d'un nouveau tuple
• Suppression: On peut supprimer F1 sans perdre l'information sur la pièce fournie
• M.A.J. : On peut changer la couleur de la pièce P2 (en jaune) sans problèmes de recherche
et sans possibilité d'incohérence.
⇒ Résout de nombreux problèmes des modèles hiérarchiques et en réseau.
• Modèle industrialisé petit à petit depuis début 80. Diffusion large actuellement
• Offre la plus grande souplesse de vue, de manipulation
• Réalise les objectifs d'indépendance recherchés
• Optimisation nécessaire
8
Caractéristiques des SGBD relationnels
• Suivant Codd, un système est relationnel<=> il supporte au moins les propriétés suivantes:
1 - Il y a une Base de données relationnelle (la base de données est perçue par l'usager selon les tables)
2 - On a au moins les opérations:
sélection, projection, jointure naturelle sans détails sur les accès physiques entraînés par ces opérations.
Par exemple, si on ne peut que sélectionner des enregistrements indexés
(champs indexés), ce n'est pas un Système Relationnel (S.R.).
9
RAISONS
• S, P, J sont un sous-ensemble de l'algèbre (très utile). Ils résolvent presque tous les problèmes.
• un système qui supporte uniquement l'aspect relationnel (tables) ne permet pas la qualité d'utilisation d'un S.R.véritable
• un système qui fournit les opérateurs relationnels mais nécessite une prédéfinition des chemins d'accès n'obéit pas au principe d'indépendance physique.
• les opérateurs relationnels doivent être implémentés avec optimisation => tâche non triviale => raison du délai d'apparition des SGBD industriels.
10
Schématiquement– Chaque secteur => une propriété fondamentale du modèle (structurale, intégrité,
manipulation) (S I M)
– Le degré de la propriété
» Systèmes tabulaires (sans set d'opérateurs)
==> ce ne sont pas des relationnels.
» tables + opérations de S, P, J (pas d'autres) ==> est relationnel minimal => Dbase 4
» tables + tous les opérateurs==> Relationnel complet
⇒ DB2, SQL/DS, INGRES, ORACLE RdB/VMS, ...» tous les aspects du modèle => notions de domaines et les deux règles d'intégrité, est
totalement relationnel
actuellement aucun, mais en préparation.
SM
I
S M
I
I
S M
11
_ DEPENDANCES FONCTIONNELLES _
• soit uj C U ou U est l ’ensemble des attributs
• soient x et y C uj et R(uj) une relation définie sur les attributs uj
x y est appelée dépendance fonctionnelle (DF) si la connaissance de x entraine celle de y
Ou encore si on a x1 y1 et x1 y2 alors y1=y2 • Si on a 2 DF x --> y et si y --> x alors x <--> y
Ex.: dept <-->dir.
• Un schéma relationnel est défini à partir de U et Σ R = (U, Σ) Σ = ensemble des DF
12
Problèmes posés par un schéma relationnel
• --> Insertion, mise-à-jour, suppression
• R(PR,P,F,AF,N) et PR,P --> F, F --> AF
• N: nombre de pièces fournies par un fournisseur pour un projet et un produit
• R: (PR, P, F, AF, N) un fournisseur f d'adresse afEx.: P4 100 f1 af1 500 a fourni n pièces p pour le
P5 100 f1 af1 600 projet P
P4 200 f1 af1 100 F --> AF
• 1- Anomalies de mise-à-jour
• Si on veut mettre à jour l'adresse du fournisseur f1 on doit le faire pour tous les tuples sinon F --> AF n'est plus valide
• ===>> redondance d'information
13
• 2- Anomalies d'insertion
• On ne peut introduire un fournisseur que s'il approvisionne une pièce pour un projet.
• Si valeurs indéfinies => valeur de clé (PR, P, F) indéfinie
• 3- Anomalies de suppression
• Suppression d'un tuple fait perdre de l'information (adresse d'un fournisseur s'il est unique)
• Une solution: décomposition de R en projections
• R1(PR, P, F, N) et R2(F, AF)
• 4- Remplacement de schémas
• Le pilote p effectue le vol v sur l'avion a.
• R(vol,avion,pilote) vol --> avion, vol --> pilote, avion --> pilote
14
• R ( vol avion pilote )• v1 a1 p1
• v2 a1 p1 vol --> avion• v3 a2 p2 vol --> pilote• v4 a3 p2 avion --> pilote
• Même anomalies décomposition en R1 et R2
• R1 (vol pilote ) R2 (vol, avion )• v1 p1 v1 a1
• v2 p1 v2 a1
• v3 p2 v3 a2
• v4 p2 v4 a3
• SI : Ajout de v4 a1 à la place de v4 a3 => ok, mais:R1 JOIN R2 = R1*R2 (vol, avion, pilote )
• v1 a1 p1
• v2 a1 p1
• v3 a2 p2
• v4 a1 p2
• sauf que la dépendance avion --> pilote plus vérifiée, a1 -->p1 et a1 -->p2
15
Algèbre des dépendances fonctionnellesAlgèbre des dépendances fonctionnelles
• On dispose d’un certain nombre de règles d'inférence (ou dérivation) ou axiomes
• FD1 (réflexivité): si Y C X , alors X --> Y• ==>Dépendance triviale
• X C X => X --> X • FD2 (augmentation):• Si X --> Y alors XZ --> YZ, et aussi XZ --> Y
• FD3(transitivité):• Si X --> Y et Y --> Z, alors X --> Z
• FD4 (pseudo-transitivité):
• Si X --> Y et YW --> Z, alors XW --> Z
16
• FD5 (union ou additivité):
• Si X --> Y et X --> Z, alors X --> YZ
• Pour: X --> Y | - X --> YZ X --> Z
• FD6 (décomposition et projection):
• Si X --> YZ alors X --> Y
• X --> Z
• Remarque
• Si (U, Σ) quels sont les r(u) qui satisfont chaque DF dans Σ ?• L’algorithme de vérification est de temps polynomial
• On doit vérifier== > | r | (| r | - 1) tuples au total
• 2
• Soit == > 0 (| Σ | . | r |2) au total
17
Dérivation de dépendances fonctionnelles• Séquence de dérivation de σ dans Σ• Σ | - σ une séquence finie σ 1, σ 2,. . . , σ κ ou
– chaque σj peut-être dérivé de σ 1, σ 2,.. . , σ j−1 ou σj est un membre de σ qui peut-être dérivé de σ 1, σ 2,.. . , σ j−1 par application d'une règle deDF et
– σ est le dernier élément σ k dans la séquence– on dit que est σ dérivable à partir de Σ
Exemple de dérivation• S {P -> T; H,P ->Y; H,N ->P; H,Y ->N}• H,N --> T• H,N --> Y• P,H,N --> Y• P,H,N --> H• P,N,H --> H
18
Fermeture des DF• (U, Σ ) Σ+ est la fermeture de Σ si• 1 - Σ est sous-ensemble de la fermeture (Σ C Σ+)• 2 - si Σ ' | - X -->Y pour Σ ' C Σ alors• X --> Y est dans Σ +
• 3 - il n'y a rien de plus dans Σ + • Cas particulier: si Σ = Σ + alors Σ est complet
• Fermeture de X• Étant donné Σ et U et X CU• la fermeture de X notée X + est telle que• 1 - Χ C X+ • 2 - si Ζ C X+ et Z --> Y est dans Z alors• Y C X+ • 3 - il n'y a rien de plus dans X+
19
• _ RedondanceRedondance _
• Une DF est redondante si elle peut être dérivée de Σ - { σ }, et non redondante dans cas ≠ • Un ensemble est non redondant si il est constitué de DF non redondantes.• Exemple:
Σ 1 { A --> B, B --> C} non redondant
Σ 2 { A --> BC, B --> C} redondant
• Clés et superclés• R (U Σ )
• X CU est une superclésuperclé de R si– X --> U est dans Σ +
• X C U est une cléclé de R si– X est une superclé de R et– Y --> U ∉ Σ + pour chaque Y C X
• Exemple: R = (U, Σ ) U= ABCDEFG
Σ {A --> BCF, C --> D, BD --> E, EF --> G}• A+ = U, C+ = CD• BD+ = BDE, EF+ = EFG ==> A clé (A est non décomposable)
20
• Attributs superflus A C X ou B C Y est superflu pour X --> Y si
• (X - A) --> Y est dans Σ + ou si• X --> B est redondant• (c.a.d. si Σ - (X-->B) | -(X -->B)
• Couverture• Soient FD(u) l'ensemble des DF sur U
Σ 1 et Σ 2 C FD(u) Σ 1 est une couverture de Σ 2 si Σ 1+ = Σ 2
+
• Ex: Σ 1 {A-->BC} Σ 2 {A-->B}• {B-->C} {B-->C}
redondant non redondantΣ 1
+ = Σ 2+
• A+ = ABC B+ = BC
21
NORMALISATION
• 1ère forme normale• R = A1 ... Ai ... Ar...• est en première forme normale (1FN) si le domaine de chaque attribut est simple
• Ex: (dept, stock, dir, qte) en 1FN• si depk = dept stock• ==> la relation (depk*,dir, qte) n'est pas en 1FN• *relation
• 2e forme normale• Déf.: attribut premier,A, si A C clé
• Déf: dépendance partielle partielle• soit X --> A , A est partiellement dépendant de X si ∃ Y --> A pour YCX• X --> A est dépendance partielle (DP)
22
• Déf.:dépendance totale (DT)
• X --> A DT si Y -/-> A pour Y C X
• Def.:R = ( U, Σ ) en 2FNen 2FN Si chaque attribut non premier de U n'est pas partiellement dépendant
d'une clé de R
• 3e forme normale
• Ex1: Logement (Numloc, Immeuble, Loyer)
• Immeuble --> Loyer• Numloc --> Immeuble --> Loyer
23
Numloc Immeuble Loyer
100 Cartier 1200
150 Champlain 800
200 Cartier 1200
250 Maisonneuve 1000
300 Cartier 1200
Relation en 2FN mais on une dépendance transitive.Si on supprime le second tuple ? On perd l’information sur la personne mais aussi sur le loyer de l ’immeuble.On ne peut pas introduire le fait que le coût du loyer de Hull est de 900 sans avoir de personne qui habite.
--> on enlève cette dépendance transitive
24
Numloc Immeuble
100 Cartier
150 Champlain
200 Cartier
250 Maisonneuve
300 Cartier
Immeuble Loyer
Cartier 1200
Champlain 800
Maisonneuve 1000
Logement1 (Numloc, Immeuble)
Logement2 (Immeuble, Loyer)
Ex2: (dept, stock, dir, qte) dept --> dir, dept stock --> qte
dept stock --> deptdir transitivement dépendant de dept stock via dept
25
• DEF: R en 3FN, si chaque attribut non premier n'est pas transitivement dépendant d'une clé.
• Ex: de la relation précédente on déduit
• (dept, dir) et (dept, stock, qte) en 3FN
• R (emp, nom, dept, dir) Σ: emp --> nom, dept dept --> dir
• (emp)+ = U ==> R1 (emp, nom, dept)
• R2 (dept, dir)
• La troisième forme normale suffit généralement à éliminer la majorité des problèmes
• Ex: R (A B C D) Σ: {A --> B, B --> C}• A+ = ABC B+ = BC ==> AD est clé• B, C non premiers• Comme AD --> B et A --> B dep part et dep transit. On transforme en deux
relations• ==> R1(A C D) AD --> C
• R2 (A B) A --> B
26
Forme normale de Boyce- Codd (FNBC)
• Une relation est FNBC, si toutes les DF proviennent des clés. ou encore: R est en FNBC si pour chaque DF non triviale X --> A, X est
une super-clé de R, c ’est à dire dire contient une clé.
• Ex1: R (A, B, C) AB --> C, C --> A
est en 3FN mais pas en FNBC• C --> A ne contient pas une clé / C --> A pas super-clé. R1(A B) R2(C A) OUI
• Ex 2: R(A B C D E F) AB --> E, AC --> F, AD --> B, B --> C, C --> D
non en FNBC
• dans B --> C et C --> D B et C ne sont pas superclés.
27
• Ex: R (A B C D) Σ: {A --> B, B --> C}• A+ = ABC B+ = BC ==> AD est clé• B, C non premiers• Comme AD --> B et A --> B dep part et dep transit. On
transforme en deux relations• ==> R1(A C D) AD --> C
• R2 (A B) A --> B
28
4e forme normale
• Fait intervenir la notion de dépendances multivaluées DMV
• Il existe une dépendance multivaluée entre les constituants x et y si la connaissance de x détermine un ensemble un ensemble de valeurs de y.
• Ex:
• R (Employé, année,fonction, enfants)
e1 1995 pgmeur anabelle
e1 1995 pgmeur eric
e1 1998 analyste anabelle
e1 1998 analyste eric
e2 1999 graphiste philippe
e3 1999 graphiste nathalie
29
• Si la connaissance d'un employé implique la connaissance des fonctions alors on a une DMV entre fonction et enfants
• employé, année --- »fonction
• employé, année --- » enfants
• Pour éliminer cette anomalie on élimine les dépendances multivaluées
• R1(employé, année, fonction)
• R2(employé, année, enfants)
30
Forme normale de clé élémentaire (FNCE)
• DEF: X --> A est une DF élémentaire (DFE) Α ⊄ X, si elle n'est pas partielle.
une clé K est élémentaire clé K est élémentaire si K --> A est élémentaire dans toutes les DF possibles
• Ex:• R (A B C D E) Σ: AB --> CE, AC --> BD, B --> CE, • C --> BD
31
• DEF :une relation est en forme normale de clé élémentaire (FNCE) si pour chaque DFE de la forme X --> A X --> A, une des conditions suivantes est satisfaite:
• 1- X est une clé OU• 2- A est un attribut premier élémentaire
• Ex: R (A B C) AB --> C, C --> A• AB+ = ABC • 1 - AB --> C DFE et AB est clé• 2 - C --> A DFE A est attribut premier élémentaire (fait partie d'une clé
élémentaire)• R est FNCE• Ex: R1 (AC) R2 (ABE) R3 (BCDEF)• C --> A AE --> B BF --> C, CD --> EF, EF --> CD
BEF BCD BDF• Ne sont pas FNCE (toutes) car R3 n'est pas FNCE
32
1 - Méthode de compositionAlgorithme de synthèse de Bernstein
(U1, Σ) --> un ensemble de Ri normalisées en 3 FN
1 - Prendre les DF,
2 - Pour chaque DF les rendre DFE (Σ --> Σ1)3 − Chercher la fermeture Σ1+ non redondante. Enlever les dépendances transitives
4 - Partitionner Σ1+ en groupe tels que toutes les DF aient la même partie gauche. Fusionner des groupes ayant partie gauche équivalente (tels que Xi --> Xj et Xj --> Xi .
5 - Pour chaque groupe construire un schéma (Xi, Σ i), la partie gauche étant clé
Conception de bases de donnés relationnelles
33
• 2- Méthode de décomposition FAGIN
• Chaque décomposition utilise une DF ou une DMV dans une relation et le reste des attributs - ceux impliqués dans la DF} dans la 2e relation.
On élimine les dept. transitives.
• Ex : U: {A B C D E F G H I J}• A--> BCD D A ->-> D• CD --> A A ->-> B, C, F, D• E, G --> A A ->-> E, G, J, H, I• A --> F• GBC --> A• E --> H, J• GA --> I