cours bd

33
1 Le modèle relationnel et la normalisation Le 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

Upload: kheireddine-tolba

Post on 05-Jul-2015

414 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cours bd

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

Page 2: Cours bd

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

Page 3: Cours bd

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

Page 4: Cours bd

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 . . .

Page 5: Cours bd

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

Page 6: Cours bd

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 )

Page 7: Cours bd

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

Page 8: Cours bd

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.).

Page 9: Cours bd

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.

Page 10: Cours bd

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

Page 11: Cours bd

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

Page 12: Cours bd

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

Page 13: Cours bd

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

Page 14: Cours bd

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

Page 15: Cours bd

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

Page 16: Cours bd

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

Page 17: Cours bd

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

Page 18: Cours bd

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+

Page 19: Cours bd

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)

Page 20: Cours bd

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

Page 21: Cours bd

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)

Page 22: Cours bd

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

Page 23: Cours bd

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

Page 24: Cours bd

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

Page 25: Cours bd

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

Page 26: Cours bd

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.

Page 27: Cours bd

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

Page 28: Cours bd

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

Page 29: Cours bd

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)

Page 30: Cours bd

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

Page 31: Cours 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

Page 32: Cours bd

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

Page 33: Cours bd

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