1 bases de données avancées: base de données relationnelles 29 mai 2014 dr. rim samia kaabi

40
1 Bases de Données Avancées: Base de données relationnelles 15 juin 2022 Dr. Rim Samia Kaabi

Upload: leonie-moine

Post on 04-Apr-2015

122 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

1

Bases de Données Avancées: Base de

données relationnelles

11 avril 2023

Dr. Rim Samia Kaabi

Page 2: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

2

Normalisation d’une BD Relationnelle

Page 3: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations

cas des «projets»

Collection des attributs

• NoEmp : numéro d’un employé

• Nom : nom d’un employé

• Année : année d’embauche d’un employé

• NoDep : n° de département

• Intitulé : nom d’un département

• Taille : nombre d’employés d’un département

• NoResp : n° de l’employé responsable d’un département

• NoProj : n° d’un projet

• NoChef : n° d’ l’employé chef d’un projet

• Temps : % de temps qu’un employé passe sur un projet

Page 4: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations

Pourquoi tel ensemble de relations, plutôt que tel autre ?

Exemple 1 :RE1(NoEmp, NoDep, Nom, Intitulé,Taille)RT1(NoEmp, NoProj,NoDep,Intitulé, Année, Temps, NoResp)RP1(NoProj, NoChef)

Exemple 2 :RE2(NoEmp, NoDep, Nom, Année, Intitulé, NoResp)RD2(NoDep, Taille)RT2(NoEmp, NoProj, Temps, NoChef)

Exemple 3 : Relation universelle

RU(NoEmp, NoProj, NoChef, Temps, Nom, Année, NoDep, Intitulé, Taille, NoResp)

Page 5: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations

RU(NoEmp, NoProj, NoChef, Temps, Nom, Année, NoDep, Intitulé, Taille,

NoResp)

Point de départ : relation universelle R1 = RU

R1NoEmp NoProj NoChef Temps Nom Année NoDep Intitulé Taille NoResp

1045 A15 2067 20 % Dupond 1978 03 Comptabilité 6 04561045 B18 0789 30 % Dupond 1978 03 Comptabilité 6 04562067 A15 2067 30 % Dupont 1965 06 Informatique 10 07890456 A20 0456 50 % Martin 1981 03 Comptabilité 6 04560278 A15 2067 20 % Martin 1987 05 Achats 3 02780278 B18 0789 30 % Martin 1987 05 Achats 3 02780789 B18 0789 10 % Blanc 1981 06 Informatique 10 07890789 A20 0456 70 % Blanc 1981 06 Informatique 10 0789

Page 6: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations

Inconvénients d’un mauvais choix de relations:

• redondances

lourdeur des modifications maintient de la cohérence difficile

1ère méthode de normalisation :

Amélioration de la «qualité» du schéma, par projections successives.

Page 7: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations

Notion de dépendance fonctionnelle

liens sémantiques entre les données élémentaires.

Nous nous limiterons aux dépendances fonctionnelles (DF) : elles traduisent les liens sémantiques les plus fréquents et qu’elles sont suffisantes pour définir les trois premières formes normales.

Page 8: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations :Dépendances fonctionnelles

Définition : il existe une dépendance fonctionnelle entre deux groupes d’attributs A et B d’une relation R si à toute valeur de A on ne peut associer, à tout instant, qu’une et une seule valeur de B.

On dit alors que B dépend (fonctionnellement) de A (noté A B). A est la source de la DF et B le but. On dit aussi que A détermine (fonctionnellement) B.

Exemple : soit la relation EMPLOYE, il existe une DF entre NoEmp et Nom indiquant qu’un employé repéré par son numéro n’a qu’un seul nom : NoEmp Nom.

Page 9: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations :Dépendances fonctionnelles

Remarque : les attributs formant la clé d’une relation doivent déterminer par DF tous les autres attributs de cette relation.

Propriétés des DF :

· réflexivité : B A A B.

(A = B donne A A)

· transitivité : A B et B C A C.

· pseudo-transitivité : A B et B, D C A, D C.

· additivité : A B et A C A B, C.

· décomposition : A B, C A B et A C.

Page 10: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations :Dépendances fonctionnelles

Définition : une DF est dite triviale si elle peut se déduire par les axiomes de réflexivité ou d’augmentation.

Définition : une DF A B est dite élémentaire s’il n’existe aucun C A tel que C B.

Définition : une DF A B est dite directe s’il n’existe aucun C tel que A C et C B (i.e. elle ne peut être obtenue par l’axiome de transitivité).

Page 11: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations :Dépendances fonctionnelles

NoResp

NoDep

Intitulé Taille

NoEmpNom Année

NoProj

NoChef

Temps

DF déductible

Exemple : NoEmp, Nom Année n’est pas élémentaire car NoEmp Année (qui elle par contre est élémentaire).

Exemple : La DF NoEmp NoResp n’est pas directe car elle peut être obtenue par transitivité comme suit :

NoEmp  NoDep NoResp.

Page 12: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations :1ère forme normale

Définition : une relation est en première forme normale (1FN) si elle possède une clé et que tous ses attributs sont atomiques.

Un attribut atomique est un attribut n’ayant à un instant donné qu’une seule valeur ou ne regroupant pas un ensemble de valeurs. Une conséquence de la 1FN est que tout attribut ne doit pas être lui-même une relation.

Exemple1 : dans la relation PERSONNE1(NoPers, Patronyme), patronyme regroupe 2 propriétés distinctes nom et prénom.

Exemple2: dans la relation PERSONNE2(NoPers, Nom, Prénoms), prénom correspond en fait à une liste.

Page 13: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations :1ère forme normale

Exemple1 : relation PERSONNE1(NoPers, Patronyme),PERSONNE1

NoPers Patronyme

1248 Dubois ; Jean2078 Pignol ; Marc4195 Laplace ; Paul6746 Martin ; Henri9850 Blanc ; Jacques

PERSONNE1bis

NoPers Nom Prénom

1248 Dubois Jean2078 Pignol Marc4195 Laplace Paul6746 Martin Henri9850 Blanc Jacques

PERSONNE1bis est en 1FN:

Page 14: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations :1ère forme normale

Exemple3 : relation ACHATS(NoCli, CA) permettant d’enregistrer le montant du CA des dernières années réalisé avec les clients :

ACHATSNoCli CA

7856 8900 ; 7650 ; 96001249 4500 ; 25508543 3140 ; 6200 ; 4600

ACHATSbisNoCli Année CA

7856 1993 89007856 1994 76507856 1995 96001249 1994 45001249 1995 25508543 1993 31408543 1994 62008543 1995 4600

PERSONNE1bis est en 1FN:

Page 15: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations :1ère forme normale

« seulement » en 1FN risque d’anomalies lors de

mises à jour.

Par exemple, avec la relation R1 :

· rien sur un employé avant au moins une affectation à un projet (clé de R1 constituée de NoEmp et NoProj);

· pb inverse si on supprime un projet terminé : perte d’informations propres à l’employé;

· modification d’une donnée sur un employé tous les tuples le

concernant doivent être modifiés

Page 16: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations :1ère forme normale

D’où viennent ces problèmes ?la connaissance d’une valeur de NoEmp et de NoProj identifie de manière unique un tuple de la relation.

clé = NoEmp + NoProj

• l’attribut Temps dépend fonctionnellement du couple formé par les deux attributs NoEmp et NoProj, c’est-à-dire de l’ensemble de la clé,

• les attributs Nom, Année, NoDep ne dépendent fonctionnellement que d’un seul attribut de la clé (NoEmp). De même NoChef ne dépend que de NoProj.

Page 17: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations :2ème forme normale

Définition : une relation est en deuxième forme normale (2FN) si elle est en 1FN et que toute DF entre la clé et les attributs non-clés est élémentaire.

Remarque : ceci revient à dire que tout attribut non-clé doit dépendre fonctionnellement de l’ensemble de la clé. Il faut donc éviter la configuration suivante :

R(A, B, C, D, E)

(pas en 2FN)

Page 18: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations :2ème forme normale

• NoEmp, NoProj Temps

• NoEmp Nom, Année, NoDep

• NoProj NoChef

on «éclate» R1 en trois relations élémentaires :

• R2(NoEmp, Nom, Année, NoDep, Intitulé, Taille, NoResp)

• R3(NoEmp, NoProj, Temps)

• R4(NoProj, NoChef)

R1 n’est pas en 2FN car :

Page 19: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations :2ème forme normale

extensions des 3 relations en 2FN :

R2NoEmp Nom Année NoDep Intitulé Taille NoResp

1045 Dupond 1978 03 Comptabilité 6 04562067 Dupont 1965 06 Informatique 10 07890456 Martin 1981 03 Comptabilité 6 04560278 Martin 1987 05 Achats 3 02780789 Blanc 1981 06 Informatique 10 0789

R3NoEmp NoProj Temps

1045 A15 20 %1045 B18 30 %2067 A15 30 %0456 A20 50 %0278 A15 20 %0278 B18 30 %0789 B18 10 %0789 A20 70 %

R4NoProj NoChef

A15 2067B18 0789A20 0456

Page 20: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations :2ème forme normale

Exemple : dans la relation R2 :

R2(NoEmp, Nom, Année, NoDep, Intitulé, Taille, NoResp).

Si le numéro du responsable d’un département change, il faut faire la modification dans tous les tuples concernés.

D’où viennent ces problèmes ?

Encore des problèmes en cas de mise à jour (cohérence, modification multiple de la même chose)

Seulement 2FN

Page 21: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations :3ème forme normale

A quoi est dû ce problème ?

A une DF transitive (NoEmp NoDep NoResp).

Définition : une relation est en troisième forme normale (3FN) si elle est en 2FN et que toute DF entre la clé et les attributs non-clés est directe.

Remarque : ceci revient à dire qu’il n’existe aucune DF entre deux attributs non-clés.

Il faut donc éviter : R(A, B, C, D, E)

(pas en 3FN)

Page 22: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations :3ème forme normale

En particulier pour R2 on a :

NoDep Intitulé, Taille, NoResp

Solution : décomposer R2 en R5 et R6 de manière à mettre

en évidence la DF NoDep NoResp :

R5(NoEmp, Nom, Année, NoDep)

R6(NoDep, Intitulé, Taille, NoResp)

Page 23: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Normalisation des relations :3ème forme normale

Cela donne les tableaux suivants :

R5NoEmp Nom Année NoDep

1045 Dupond 1978 032067 Dupont 1965 060456 Martin 1981 030278 Martin 1987 050789 Blanc 1981 06

R6NoDep Intitulé Taille NoResp

03 Comptabilité 6 045606 Informatique 10 078905 Achats 3 0278

On obtient finalement les quatre relations en 3FN suivantes :

· R3(NoEmp, NoProj, Temps) i.e. TRAVAILLE

· R4(NoProj, NoChef) i.e. PROJET

· R5(NoEmp, Nom, Année, NoDep) i.e. EMPLOYE

· R6(NoDep, Intitulé, Taille, NoResp) i.e. DEPART

Page 24: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

24

FNBC Forme normale de Boyce-Codd

2FN: élimine les anomalies crées par des dépendances entre parties de clé et attributs non clé

3FN: élimine les anomalies crées par des dépendances entre les attributs non clés Quid des dépendances de parties de clés entre elles ou d’attributs non clés vers

une partie de clé???? BCNF

(BCNF)

Page 25: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

25

FNBC Forme normale de Boyce-Codd

Une relation est en BCNF ssi les seules DFs élémentaires sont celles dans lesquelles une clé entière détermine un attribut

R (K1, K2, X, Y)

(BCNF)

R doit être décomposée en R1(K1,K2,X) et R2(Y,K1)

Page 26: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

26

FNBC: exemple

Localisation (cru, pays, region, qualité)Avec les dépendances:Cru, pays regionCru, pays qualitéRegion pays

Localisation n’est pas en BCNF mais en 3FNDécomposition possible:

CRUS(cru, pays, qualité)REGION (region, pays)

Non en BCNF

Page 27: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

27

Décomposition Enseignement

Enseignement (NomEtud, Matière, Prof)

Soit la décomposition:T1 (Prof, Matière) T2 (NomEtud, Prof)

T1 + T2 : sans perte d ’information mais avec perte de la DF:

(NomEtud, Matière) Prof

il faut ajouter la C.I.: un étudiant suit une matière donnée

avec un seul professeur

Page 28: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

28

3FN: définition plus générale

Plusieurs identifiants et DF élémentaire A->B• Cond1: A est un identifiant• Cond2: B fait part d'un identifiant

FNBC si Cond1 3NF (plusieurs identifiants) si Cond1 OR Cond2

N°fourn nom-fourn

N°produitprix

Fournisseur (N°fourn, nom-fourn, N°produit, prix)

Page 29: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Dépendance multivaluée

BCNF n’est pas suffisante pour éliminer complètement les redondances Dépendance multivaluée:

Etudiant (ne, cours, sport)

Pas de DF DM x y

On dit qu’il y a DM de y sur x si étant donné des valeurs de x, il y a un ensemble de valeurs de y associées à cet ensemble est indépendant des autres attributs

Page 30: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

Dépendance multivaluée (exemple)

Vol(NV, Avion, Pilote)

NV Avion

NV Pilote

Page 31: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

31

4 FN

La 4FN est une généralisation d la BCNF destinée à décomposer les relations ayant des DM élémentaires

Une relation est en 4FN ssi les seules dépendances multivaluées élémentaires sont celles dans

lesquelles une super clé détermine un attribut Soit Etudiant(NE, Cours, Sport) n’est pas en 4FN car

NE Cours et NE Sport (la clé est l’ensemble des attributs et il existe des DM

élémentaires entre des attributs participants à la clé )

Page 32: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

32

4 FN

permet de séparer des faits indépendants qui auraient été réunis dans une même relation

exemple:• il existe plusieurs cours

• tout cours peut être assuré par plusieurs professeurs• tout cours possède un ensemble de livres de référence

alorscours (intitulé, nom-prof., titre-livre)

donne une représentation très redondante, qu’il convient de remplacer par décomposition

Page 33: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

33

RDB

4FN: exemple

Cours

intitulé nom-prof titre-livre

cours (intitulé, nom-prof., titre-livre)

RDB {Aberer, Spaccapietra} {Ullman, Date}

RDB

RDB

Ullman

Date

Ullman

RDB

Aberer

Aberer

Spaccapietra

Spaccapietra Date

Page 34: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

34

4 FN: exemple

cours (intitulé, nom-prof., titre-livre) décomposition:

– cours-p (#intitulé, #nom-prof.)– cours-1 (#intitulé, #titre-livre)

Formalisation: dans cours (intitulé, nom-prof., titre-livre) il existe une dépendance multivaluée

Intitulé nom-prof, titre-livre ouIntitutlé nom-profIntitulé titre-livre

Une relation est en 4FN s’il n’existe pas de dépendance multivaluée qui ne soit pas une dépendance fonctionnelle

Page 35: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

35

4FN: définition formelle

Soit une relation R (x,y,z) z pouvant être vide

Il y a Dépendance multivaluée (DM) x ---->> y

si à toute valeur de x correspond un ensemble de valeurs de y qui est totalement indépendant de z– Remarque: DF est un cas particulier de DM

R est en 4 FN si elle est en 1ère FN et si toute DF ou DM de R a pour source un identifiant entier de R– Remarque: 4 FN implique BCNF (FNBC)

Page 36: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

36

Dépendance de jointure

La notion de DM a conduit à décomposer les relations en 4FN

Est-ce suffisant pour éliminer les problèmes de redondances et anomalies?

Page 37: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

37

Cinquième Forme Normale (5FN)

Permet de décomposer une relation en faits élémentaires

exemple: Vins (buveur, cru, producteur) Peut être décomposable en

• V1 (buveur, cru)• V2 (buveur, producteur)• V3 (cru, producteur)

Avec Vins = V1 |X| V2 |X| V3 On dit qu’il y a dépendance de jointure

Page 38: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

38

5 NF

• Il existe des relations qui ne peuvent être décomposées qu'en trois composantes au moins

S# P# J#

S1 P1 J2S1 P2 J1S2 P1 J1S1 P1 J1

SPJS# P#

S1 P1S1 P2S2 P1

P# J#

P1 J2P2 J1P1 J1

J# S#

J2 S1J1 S1J1 S2

SP PJ SJ

SPJ est sujet aux anomalies d'insertion etde suppression, ex. delete (S1, P1, J1)

Contrainte cyclique :

(S1, P1, J2) et (S2, P1, J1) et (S1, P2, J1) (S1, P1, J1)

Page 39: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

39

5 NF

R est en 5 NF ssi toute DJ est impliquée par les clés candidates de R, c. à d.:• soit il n'y a pas de DJ• soit, toute projection contient une clé

• Toute R en 5 NF est en 4 NF (les DMs sont un cas spécial de DJs)

R (A,B,C) satisfait JD* (AB, AC) ssi on a A -->> B | C

Page 40: 1 Bases de Données Avancées: Base de données relationnelles 29 mai 2014 Dr. Rim Samia Kaabi

40

5 NF

SPJ n'est pas en 5 NF car S#, P#, J# ne sont pas clés candidates

S' ( S#, SNAME, STATUS, CITY ) est en 5 NF :

* (( S#, SNAME, STATUS), (S#, CITY ))

* (( S#, SNAME), (S#, STATUS), (SNAME, CITY))

etc.

Y a-t-il des DJs dans les tables S, P et SP ?

Sont-elles en 5 NF ?