Cours BD 2013

34
Université du Maine Yannick Estève [email protected] Bases de données relationnelles Introduction 3 Définition : Base de Données Ensemble de données modélisant les objets d’une partie du monde réel et servant de support à une application informatique (Gardarin 2001) 4 Définition : Système de Gestion de Bases de Données Ensemble de procédures permettant : la description des données et des relations les concernant l’interrogation de la base la mise à jour le partage des données la protection des données

Transcript of Cours BD 2013

Page 1: Cours BD 2013

Université du Maine

Yannick Estè[email protected]

Bases de données relationnelles Introduction

3

Définition : Base de Données

Ensemble de données modélisant les objets d’une partie du monde réel et servant de support à une application informatique (Gardarin 2001)

4

Définition : Système de Gestion de Bases de Données

Ensemble de procédures permettant :

la description des données et des relations les concernant

l’interrogation de la base

la mise à jour

le partage des données

la protection des données

Page 2: Cours BD 2013

5

Historique (1/3)

Les SGBD existent depuis 40 ans (1960)

IBM est alors le principal développeur

Première génération : basée sur la navigation dans des structures de types graphes (modèles réseau ou hiérarchique) pour l’obtention, un par un, des fichiers contenant les informations

ex. : TOTAL, IDMS, IDS 2, IMS 2

6

Historique (2/3)

Deuxième génération : développement dans les années 70.

Basés sur le modèle relationnel.

Utilisation de langages non procéduraux : facilite l’accès et la mise à jour des données

ex. : ORACLE, INGRES, SYBASE, INFORMIX, DB2, ...

7

Historique (3/3)

Troisième génération : développée dans les années 80.

Basée sur les modèles à objets

N’a pas (encore ?) supplanté les SGBD relationnels purs

ex. : ORACLE, INGRES (devenu PostgreSQL), SQL Server

8

Notion 1 : Conception d’une BD

Description des données du monde réel (entreprise) devant être stockées, mises à jour et accessibles par ordinateur

La description des données est formalisée par un modèle de description des données (MDD)

Un MDD efficace doit permettre l’élaboration d’une base de données soumises au moins aux contraintes suivantes :

pas de perte d’information

non redondance des données

intégrité (cohérence) des données

Page 3: Cours BD 2013

9

Notion 2 : Manipulation des données

Les données, décrites après étude du monde réel à l’aide d’un MDD, doivent pouvoir :

être insérées dans une base

être consultées

être modifiées

être supprimées

Les SGBD relationnels utilisent le langage SQL apparu à la fin des années 70 et normalisé pour la première fois en 1989

10

Contenu du cours

Conception d’une base de données

Modèles de conception historiques

Modèle relationnel

Modèle entité-association

Manipulation des données

Langage SQL

SGBD par la pratique : PostgreSQL

Première Partie :Conception d’une base de

données

12

Niveaux de modèles

Trois niveaux d’abstractions :

Niveau physique : spécification des structures et des méthodes de stockage sur disques.

Niveau conceptuel : description des données (MDD).

Niveau externe : arrangement de certaines données correspondant à la vision d’un programme ou d’un utilisateur

Schéma

conceptuel

Schéma

physique

Schéma

externe 1

Schéma

externe i

Schéma

externe n

Page 4: Cours BD 2013

13

Modèle conceptuel

Le concepteur doit rechercher et considérer 3 sortes de phénomènes :

Des groupes de données attachées autour d’une même notion. Ces groupes sont appelés objets ou entités selon les conventions utilisées.

Des associations entre ces objets qui traduisent une contrainte de l'entreprise (liens).

Des contraintes d’intégrité auxquelles sont soumis objets et associations d’objets pour garantir la vraisemblance avec le monde réel.

14

Trois types de liens

Liens de type 1:1. Associent à une instance de la classe d’objet A une instance de la classe d’objet B et à une instance de la classe B une instance de la classe A.

Liens de type 1:N. Associent à une instance de la classe d’objet A N instances de la classe d’objet B et à une instance de la classe B une instance de la classe A.

Liens de type N:M. Associent à une instance de la classe A M instances de la classe B et associent à une instance de la classe B N instances de la classe A.

Les modèles conceptuels historiques

Partie I : Conception d’une base de données

16

Modèle hiérarchique

Données représentées sous formes de structures arborescentes.

Données regroupées en type d’enregistrements (segments).

Un segment peut être père de plusieurs segments.

Un segment ne peut être fils de plusieurs segments.

Segment racine A Segment racine F

Segment B Segment C

Segment D Segment E

Segment G

Page 5: Cours BD 2013

17

Modèle hiérarchique

Vol

Avion

Pilote Vol-Pilote

Avion Avion

VolPilote

N : M

1 : N

N : MN : M 1 : N

Vol

Pilote

Avion Vol-Avion

Pilote Pilote

VolAvion

N : M

1 : N

N : MN : M 1 : N

18

Modèle hiérarchique : Avantages

Adéquation du modèle avec les entreprises (parties du monde réel à modéliser) à structure arborescente.

Simplicité du modèle

Implémentation facile.

19

Modèle hiérarchique : Inconvénients

Impossibilité de représenter directement les liens N:M (redondances).

Anomalies pour les opérations de stockage : la suppression d'un noeud entraîne la disparition des descendants.

L'insertion d'une information impose la création d'un segment parent.

Le remplacement d'une information doit s'effectuer pour toutes ses occurrences dans des arbres distincts.

Chemin d'accès unique aux données.

Indépendance logique très réduite. 20

Record B Record C

Record D Record E

Record G

Record FRecord A Record I

Modèle réseau

Données regroupées sous formes d’enregistrements logiques (record).

Les types d’enregistrements sont reliés entre eux par des chemins.

Semblable au modèle hiérarchique, MAIS :

un type d’enregistrements fils (membre) peut dépendre de plusieurs types d’enregistrement père (propriétaires).

Page 6: Cours BD 2013

21

Modèle Réseau

1 JEAN PARIS

2 PARIS 150 B707 4 PARIS 100 CARA

1817N P IT100 1 2

1413P N IT100 1

2221L N IT120 1 2

1110P T IT101 2 2

1615B P IT109 2 4

2 PIERRE NICE

22

Modèle réseau : Avantages

Mêmes avantages que le modèle hiérarchique, avec en plus :

Représentation naturelle des liens de type N:M

Elimination des redondances de données

Création de chemin d’accès multiples pour une même donnée

23

Modèle réseau : Inconvénients

Indépendance logique très réduite :

pas d’indépendance vis-à-vis des stratégies d’accès

Le modèle relationnel

Partie I : Conception d’une base de données

Page 7: Cours BD 2013

25

Modèle relationnel

Introduit par E.F. Codd en 1970 (centre de recherche IBM San-José)

À la base de la grande majorité des SGBD actuels

Apports :

Indépendance entre les applications et la représentation interne des données

Base solide pour le traitement des problèmes de cohérence et redondance des données

Développement de langages de manipulation de données non procéduraux

Standard de description et de manipulation des données26

Définition : DOMAINE

Ensemble de valeurs caractérisé par un nom

les données prennent leurs valeurs dans un domaine

Exemples :

Domaine des dates : “23 mai 2003”, “14 septembre 2004”, ...

Domaines des villes : “Londres”, “Turin”, “Le Mans”, ...

27

Définition : RELATION

Sous-ensemble du produit cartésien d’une liste de domaines caractérisé par un nom

Quelquefois appelé TABLE

Exemple : soient D1={Cathy, Paul, Xavier, Géraldine} et D2={Le Mans, Marseille, Nantes}

“Est Né à” D1 D2Cathy Le MansPaul Le Mans

Xavier Le MansGéraldine Nantes

Relation “Est Né à”

28

Définition : ATTRIBUT

Colonne d’une relation caractérisée par un nom

Le nom associé à un attribut est généralement porteur de sens : il diffère donc du nom du domaine qui supporte l’attribut

Exemple :

Relation “Est Né à”

“Est Né à” Prénom Ville nataleCathy Le Mans

Paul Le MansXavier Le Mans

Géraldine Nantes

Page 8: Cours BD 2013

29

Définition : TUPLE

Ligne d’une relation correspondant à un enregistrement

Exemple :

“Est Né à” Prénom Ville nataleCathy Le Mans

Paul Le MansXavier Le Mans

Géraldine Nantes

Relation “Est Né à”

30

Définition : SCHÉMA DE RELATION

Nom de la relation suivi de la liste des attributs et de la définition de leurs domaines.

Représente l’INTENTION de la relation : le schéma de relation représente les propriétés communes et invariantes des tuples qu’elle est susceptible de contenir.

Exemple :

EST_NÉ(Prénom:CHARVAR, VilleNatale:CHARVAR)

Une table représente une EXTENSION de la relation : elle propose une vue des tuples qu’elle contient à un instant donné.

Exemple :“Est Né à” Prénom Ville natale

Cathy Le MansPaul Le Mans

Géraldine Nantes

31

Définition : BASE DE DONNÉES RELATIONNELLE

Une base de données relationnelle est un ensemble de schémas de relation

La conception d’une base de données relationnelle revient donc à construire un ensemble de schémas de relation qui modélise au mieux le monde réel.

Contraintes de conception :

Éviter la redondance des données.

Garantir la cohérence des données.

32

Algèbre relationnelle

Inventée par E.F. Codd.

Fondement du modèle relationnel

Opérations de base classées en 2 types :

Opérations ensemblistes (une relation est un ensemble de tuples) : opérations binaires (union, différence, produit cartésien)

Opérations spécifiques : opérations unaires de projection et de restriction

Page 9: Cours BD 2013

33

CONCEPTION DE SCHEMAS RELATIONNELS

Dans un SGBD relationnel, les entités et les liens sont représentés par des relations.Exemple 1 :– L'entité AVION est représentée par la relation :

AVION(NUM-AV, NOM-AV, CAP-AV, LOC-AV)

34

CONCEPTION DE SCHEMAS RELATIONNELS

Exemple 2 :– Le lien existant entre les entités PILOTE et AVION apparaît dans une relation dans laquelle sont impliquées ces entités :

VOL(PILOTE,AVION, V-D, V-A, H-D, H-A)

35

CONCEPTION DE SCHEMAS RELATIONNELS

PROBLEMES DE REPRESENTATION DU REEL

VOL : Numéro, Pilote, Avion, Villes départ et arrivée, Heures départ et arrivée

IT12! Pil01! Paul! Nice! Av05! B747! 500! Nice! Paris! 12! 13

IT14! Pil01! Paul! Nice! Av05! B747! 500! Nice! Paris! 17! 18

IT15! Pil02! Yves! Pau! Av12! A300! 300! Nice! Pau! 7! 8

36

APPROCHE PAR DECOMPOSITION

La relation universelle composée de tous

les attributs est décomposée en sous

relations n'ayant pas les anomalies

signalées précédemment.

Page 10: Cours BD 2013

37

APPROCHE PAR DECOMPOSITION

PROJECTION

La projection consiste à supprimer des attributs d'une relation et à éliminer les tuples en double qui peuvent apparaître dans la nouvelle relation.

38

APPROCHE PAR DECOMPOSITION

PROJECTION

La projection de R(A1, A2, ..., An) sur les

attributs Ai1, Ai2, Ai3, ..., Aip avec ij ≠ ik est la

relation R'(Ai1, Ai2, Ai3, ..., Aip) notée :

π Ai1, Ai2, Ai3, ..., Aip (R)

39

APPROCHE PAR DECOMPOSITION

PROJECTION

Exemple :π NUM-AV, NOM-AV, CAP-AV, LOC-AV (VOL)

AVION:

Av05 B747 500 Paris Av12 A300 300 Nice

40

APPROCHE PAR DECOMPOSITION

JOINTURE NATURELLE

La jointure naturelle de relations R(A1, ..., An) et

S(B1, ..., Bp) est une relation T ayant pour attributs

l'union des attributs de R et de S et pour tuples tous

ceux obtenus par concaténation des tuples de R et de

S ayant même valeur pour les attributs de même nom.

Page 11: Cours BD 2013

41

APPROCHE PAR DECOMPOSITION

JOINTURE NATURELLE

De plus on a :

# ## π A1, A2, ...., An (T) = R

! !et

# ## π B1, B2, ...., Bp (T) = S

42

APPROCHE PAR DECOMPOSITION

JOINTURE NATURELLE : Exemple! R! ! S! Av01! B747! B747! 500! Nice! Av02! B747! B747! 500! Paris! Av12! A300! A300! 300! Paris! Av13! A300

T=R >< S

Av01 B747 500 NiceAv01 B747 500 ParisAv02 B747 500 NiceAv02 B747 500 ParisAv12 A300 300 ParisAv13 A300 300 Paris

43

APPROCHE PAR DECOMPOSITION

PROPRIETES DES JOINTURES NATURELLES

associative

(R >< S ) >< U = R >< (S >< U)

44

APPROCHE PAR DECOMPOSITION

PROPRIETES DES JOINTURES NATURELLES

commutative

(R >< S ) = (S >< R)

Page 12: Cours BD 2013

45

APPROCHE PAR DECOMPOSITION

DECOMPOSITION

La décomposition de R(A1, ..., An) est le

remplacement de R par une collection de

relations R1, R2, ..., Rp, obtenues par des

projections de R et telles que

R1 >< R2 ... >< Rp ait même schéma que R.

46

APPROCHE PAR DECOMPOSITION

DECOMPOSITION

Une décomposition est dite sans perte si pour toute extension de R on a

R = R1 >< R2 ... >< Rp.

47

DEPENDANCES FONCTIONNELLES

Définition

Soit R(A1, ..., An) un schéma de relation et X et Y des sous ensembles des attributs {A1, ..., An}.

On dit que X -> Y

(X détermine Y ou Y dépend fonctionnellement de X)

si! pour toute extension r de R,

! pour tout tuples t1 et t2 de r on a :

π X(t1) = π X(t2) => π Y(t1) = π Y(t2)

48

DEPENDANCES FONCTIONNELLES

Exemple :

NUM-PIL -> NOM-PIL

NUM-PIL -> ADR-PIL

(NUM-AV, H-D, H-A) —>(V-D, V-A)(NUM-AV, V-D, V-A)-/->(H-D, H-A)

Page 13: Cours BD 2013

49

PROPRIETES DES DF

Réflexivité

Augmentation

Transitivité

Union

Pseudo-transitivité

Décomposition

50

PROPRIETES DES DF

RéflexivitéY ⊂ X => X -> Y

Exemple(NUM-AV, H-D, H-A) —> H-D

51

PROPRIETES DES DF

AugmentationX -> Y => XZ -> YZ

Exemplesi : NUM-AV —> CAP

alors : NUM-AV,V-D —> CAP,V-D

52

PROPRIETES DES DF

Transitivité(X -> Y et Y -> Z) => X -> Z

ExempleSi : NUM-VOL -> (NUM-AV, H-D, H-A)(NUM-AV, H-D, H-A) -> (V-D, V-A)Alors : NUM-VOL -> (V-D, V-A)

Page 14: Cours BD 2013

53

PROPRIETES DES DF

Union(X ->Y et X -> Z) => X -> YZ

ExempleSi : NUM-VOL -> NUM-AV NUM-VOL -> V-DAlors : NUM-VOL ->(NUM-AV,V-D)

54

PROPRIETES DES DF

Pseudo-transitivité(X -> Y et WY -> Z) => WX -> Z

ExempleSi : V-D,H-D,NUM-AV -> V-A NUM-VOL -> NUM-AVAlors : V-D,H-D,NUM-VOL -> V-A)

55

PROPRIETES DES DF

Décomposition(X -> Y et Z ⊂ Y) => X -> Z

ExempleSi : NUM-VOL -> (V-D,V-A)or : V-D ⊂ (V-D,V-A)Alors : NUM-VOL -> V-D

56

DEPENDANCE FONCTIONNELLE ELEMENTAIRE

X -> A

A est atomique et A ∉X

non ∃ X ’ ⊂ X ' X ’ -> A

ExempleDFE : NUM-PIL -> NOM-PIL DF: NUM-VOL -> H-D, H-A NUM-VOL,V-D -> V-A

Page 15: Cours BD 2013

57

PROPRIETE DES DFE

Transitivité

(X -> Y et Y -> Z) => X -> Z

Cours n°2

Rappels du cours n°1Clés de relation

Formes normalesAlgorithmes de décomposition

59

APPROCHE PAR DECOMPOSITION

PROJECTION

La projection consiste à supprimer des attributs d'une relation et à éliminer les tuples en double qui peuvent apparaître dans la nouvelle relation.

60

APPROCHE PAR DECOMPOSITION

DECOMPOSITION

La décomposition de R(A1, ..., An) est le

remplacement de R par une collection de

relations R1, R2, ..., Rp, obtenues par des

projections de R et telles que

R1 >< R2 ... >< Rp ait même schéma que R.

Page 16: Cours BD 2013

61

APPROCHE PAR DECOMPOSITION

JOINTURE NATURELLE

La jointure naturelle de relations R(A1, ..., An) et

S(B1, ..., Bp) est une relation T ayant pour attributs

l'union des attributs de R et de S et pour tuples tous

ceux obtenus par concaténation des tuples de R et de

S ayant même valeur pour les attributs de même nom.

62

(Petit) Exercice : décomposition sans perte

Soit la relation VOITURE de schéma : VOITURE(NUM, MARQUE, TYPE,PUISSANCE, COULEUR) dont un extrait d’une extension est donnée par la table suivante :

Décomposer la relation suivant les 2 projections sur les ensembles d’attributs suivants :Pour chacun des cas vous donnerez la table pour l’extension précédente de chacune des relations obtenues ainsi que celle de la jointure naturelle de ces relations (ie R1><R2 et V1><V2><V3){NUM , TYPE , COULEUR} et {TYPE , MARQUE, PUISSANCE}{NUM , TYPE} , {TYPE , PUISSANCE, COULEUR} et { TYPE, MARQUE}Ces décompositions sont elles sans pertes ? 

VOITURE Num Marque Type Puissance Couleur

873 RH 72 RENAULT Clio RT 5 Blanche

569 VR 84 RENAULT Clio RT 5 Rouge

63

R1={NUM , TYPE , COULEUR} et R2={TYPE , MARQUE, PUISSANCE}

R1 Num Type Couleur

873 RH 72 Clio RT Blanche

569 VR 84 Clio RT Rouge

R2 Marque Type Puissance

RENAULT Clio RT 5

VOITURE Num Marque Type Puissance Couleur

873 RH 72 RENAULT Clio RT 5 Blanche

569 VR 84 RENAULT Clio RT 5 Rouge

R1><R2 = VOITUREDécomposition sans perte 64

V1={NUM , TYPE}, V2={TYPE , PUISSANCE, COULEUR} et V3={MARQUE, TYPE}

V1 Num Type

873 RH 72 Clio RT

569 VR 84 Clio RT

V2 Type Puissance CouleurClio RT 5 BlancheClio RT 5 Rouge

VOITURE

Num Marque Type Puissance Couleur873 RH 72 RENAULT Clio RT 5 Blanche569 VR 84 RENAULT Clio RT 5 Rouge

V3 Marque Type

RENAULT Clio RT

V1><V2><V3 Num Marque Type Puissance Couleur

873 RH 72 RENAULT Clio RT 5 Blanche

569 VR 84 RENAULT Clio RT 5 Blanche

873 RH 72 RENAULT Clio RT 5 Rouge

569 VR 84 RENAULT Clio RT 5 Rouge

V1><V2><V3 ≠VOITURE

Décomposition avec perte

Page 17: Cours BD 2013

65

DEPENDANCES FONCTIONNELLES

Définition

Soit R(A1, ..., An) un schéma de relation et X et Y des sous ensembles des attributs {A1, ..., An}.

On dit que X -> Y

(X détermine Y ou Y dépend fonctionnellement de X)

si! pour toute extension r de R,

! pour tout tuples t1 et t2 de r on a :

π X(t1) = π X(t2) => π Y(t1) = π Y(t2)

66

DEPENDANCE FONCTIONNELLE ELEMENTAIRE

X -> A

A est atomique et A ∉X

non ∃ X ’ ⊂ X ' X ’ -> A

ExempleDFE : NUM-PIL -> NOM-PIL DF: NUM-VOL -> H-D, H-A NUM-VOL,V-D -> V-A

67

FERMETURE TRANSITIVE

DéfinitionEnsemble de DFE enrichi de toutes les DFE

déduites par transitivitéExemple :

{ NUM-VOL -> NUM-PIL , NUM-VOL -> NUM-AV , NUM-PIL -> NOM-PIL , NUM-PIL -> ADR-PIL NUM-AV -> CAP-AV , NUM-AV -> LOC-AV }

la fermeture transitive seraF+ = F ∪ { NUM-VOL -> NOM-PIL, NUM-VOL -> ADR-PIL, NUM-VOL -> CAP-AV, NUM-VOL -> LOC-AV}

68

FERMETURE TRANSITIVE

Propriété

Deux ensembles de DFE sont équivalents s'ils ont la même fermeture transitive

Page 18: Cours BD 2013

69

V-A

H-A

NUM-AV

LOC-AV

NOM-AV CAP-AV

NUM-PIL

ADR-PIL

NOM-PIL

NUM-VOL

V-D

H-D

70

COUVERTURE MINIMALE

Ensemble F de DFEAucune DFE n'est redondante

∀ f ∈ F , F-{f} <≠> F

Toute DFE est dans la fermeture transitive

de F

71

COUVERTURE MINIMALE

tout ensemble de DFE a une couverture

minimale qui n'est en général pas unique

72

COUVERTURE MINIMALE

Exemple

F =

{ NUM-AV -> NOM-AV, NUM-AV -> LOC-AV,

NOM-AV -> CAP-AV, NUM-AV -> CAP-AV }

F- =

{ NUM-AV -> NOM-AV, NUM-AV -> LOC-AV,

NOM-AV -> CAP-AV }

Page 19: Cours BD 2013

73

CLE DE RELATION

Une clé de relation R(A1, ..., An) est un sous ensemble X des attributs tel que :

X -> A1, ..., An

Il n'existe pas Y ⊂ X tel que

! ! Y -> A1, ..., An

Exemple : NUM-VOL est clé de la relation VOL

74

CLE DE RELATION (2)

Toute relation possède au moins une clé

A1, ..., An -> A1, ..., An

pour trouver une clé, on part de l ’ensemble {A1, ..., An} il suffit alors d'éliminer les Ai jusqu'à la vérification des 2 conditions.

75

CLE DE RELATION (3)

Une relation peut avoir plusieurs clés

on en choisit en général une comme clé primaire

les autres sont appelées clés candidates

76

FORMES NORMALES

introduites par Codd pour décomposer les relations

sans pertes

Page 20: Cours BD 2013

77

PREMIERE FORME NORMALE

Une relation est en 1NF si

tout attribut est atomique

Chaque attribut ne peut être décomposé en plusieurs autres.

La relation PERSONNE(AGE, ADRESSE) n'est pas en 1NF si par exemple on a

ADRESSE(VILLE, RUE, NUMERO).

78

DEUXIEME FORME NORMALE

Une relation est en 2NF ssi :

elle est en 1NF, tout attribut n'appartenant pas à une clé ne dépend pas que d'une partie de cette clé.

79

DEUXIEME FORME NORMALE

Exemple 1 : Si l'on choisit la clé primaire NUM-VOL, la relation VOL est en 2NF.

Exemple 2 : Si l'on choisit la clé (NUM-AV, H-D), la relation VOL n'est pas en 2NF car NOM-AV, LOC-AV, CAP-AV ne dépendent que d'une partie de la clé NUM-AV.

80

DEUXIEME FORME NORMALE

Dans le cas précédent, on doit décomposer la relation VOL de manière à n'avoir que des relations en 2NF. Par exemple :

AVION(NUM-AV, NOM-AV, LOC-AV, CAP-AV)

VOL1(NUM-VOL, NUM-AV, NUM-PIL, NOM-PIL, ADR-PIL, H-D, V-D, H-A, V-A)

Page 21: Cours BD 2013

81

TROISIEME FORME NORMALE

Une relation est en 3NF ssi

elle est en 2NF,

tout attribut n'appartenant pas à une clé ne dépend pas d'un attribut non clé.

82

TROISIEME FORME NORMALE

Exemple 1 :PILOTE(NUM-PIL, NOM-PIL, ADR-PIL) est en 3NF

Exemple 2 :AVION(NUM-AV, NOM-AV, LOC-AV, CAP-AV) n'est pas en 3NF car NOM-AV -> CAP-AV.

dans ce cas il faut décomposer la relation :TYPE(NOM-AV, CAP-AV)

AVION1(NUM-AV, NOM-AV, LOC-AV)

83

PROPRIETES DES DECOMPOSITIONS EN 3NF

Une décomposition {R1, R2, ..., Rn} d'une relation R qui préserve les DF est telle que la fermeture transitive des DF de R est la même que celle de l'union des DF de R1, R2, ..., Rn.

84

PROPRIETES DES DECOMPOSITIONS EN 3NF

Si l'on décompose maladroitement la relation AVION en

AVION1(NUM-AV, NOM-AV) et

AVION2(NOM-AV, CAP-AV, LOC-AV),

alors cette décomposition ne préserve pas les DF car on perd la DF

NUM-AV -> LOC-AV.

Page 22: Cours BD 2013

85

PROPRIETES DES DECOMPOSITIONS EN 3NF

Toute relation a au moins une décomposition en 3NF telle que :

la décomposition préserve les DF,

la décomposition est sans perte.

Cette décomposition peut ne pas être unique

86

ALGORITHME DE DECOMPOSITION EN 3NF

Entrée : Schéma de relation R ne contenant que

des DF

Sortie : Schéma {R1, R2, ... , Rn} avec Ri en 3NF

pour tout i

87

ALGORITHME DE DECOMPOSITION EN 3NF

Etape 1 : Soit F l'ensemble des DF. Pour toute DF f, rendre f élémentaire. Soit F' l'ensemble obtenu.

Etape 2 : Rechercher une couverture minimale de F' notée MIN(F').

88

ALGORITHME DE DECOMPOSITION EN 3NF

Etape 3 : Partitionner MIN(F') en groupes F'1, F'2, ..., F'k tels que toutes les DF d'un même groupe aient la même partie gauche.

Etape 4 : Pour chaque groupe F'i, construire un schéma contenant les attributs de F'i et les DF de F'i.

Page 23: Cours BD 2013

89

ALGORITHME DE DECOMPOSITION EN 3NF

Les éléments isolés (non déterminés par une DFE) sont regroupés dans une relation dont ils constituent

la clé.

90

EXEMPLE DE DECOMPOSITION EN 3NF

La relation AVION peut se décomposer de la manière suivante :

Etape 1 :

Toutes les DF sont élémentaires (voir graphe des DF).

91

EXEMPLE DE DECOMPOSITION EN 3NF

Etape 2 : Une couverture minimaleNUM-VOL -> NUM-AV NUM-VOL -> H-DNUM-VOL -> H-A NUM-VOL -> V-DNUM-VOL -> V-A NUM-VOL -> NUM-PILNUM-AV -> NOM-AV NUM-AV -> LOC-AVNOM-AV -> CAP-AV

NUM-PIL -> NOM-PIL NUM-PIL -> ADR-PILNUM-PIL,H-A -> NUM-VOLNUM-PIL,H-D -> NUM-VOLNUM-AV,H-A -> NUM-VOLNUM-AV,H-D -> NUM-VOL

92

EXEMPLE DE DECOMPOSITION EN 3NF

Etape 3 : PartitionF'1 = { F'2 = {NUM-VOL -> NUM-AV, NUM-AV -> NOM-AV,NUM-VOL -> H-D, NUM-AV -> LOC-AV}NUM-VOL -> H-A, NUM-VOL -> V-D, NUM-VOL -> V-A, NUM-VOL -> NUM-PIL},F'3 = {NOM-AV -> CAP-AV},

F'4 = {NUM-PIL -> NOM-PIL, NUM-PIL -> ADR-PIL},

F'5 = {NUM-PIL,H-A -> NUM-VOL},

F'6 = {NUM-PIL,H-D -> NUM-VOL},

F'7 = {NUM-AV,H-A -> NUM-VOL},

F'8 = {NUM-AV,H-D -> NUM-VOL}}

Page 24: Cours BD 2013

93

EXEMPLE DE DECOMPOSITION EN 3NF

Etape 4 :

R1(NUM-VOL, NUM-AV, H-D, H-A, V-D, V-A, NUM-PIL)

R2(NUM-AV, NOM-AV, LOC-AV)

R3(NOM-AV, CAP-AV)

R4(NUM-PIL, NOM-PIL, ADR-PIL)

R5(NUM-PIL,H-D,NUM-VOL)

R6(NUM-PIL,H-A,NUM-VOL)

R7(NUM-AV,H-D,NUM-VOL)

R8(NUM-AV,H-A,NUM-VOL)

94

FORME NORMALE DE BOYCE-CODD

Les relations en 3NF comportent encore des redondances.

Par exemple si l'on considère la relation :CODE-POSTAL(VILLE, RUE, CODE)

avec la DFE : CODE -> VILLE

95

FORME NORMALE DE BOYCE-CODD

Cette relation comporte des redondances: CODE-POSTAL Paris Arras 75005 Paris Jussieu 75005 Paris Monge 75005 Paris Le Pic 75008

96

FORME NORMALE DE BOYCE-CODD

Définition

Une relation est en BCNF si et seulement si les seules DFE sont celles dans lesquelles une clé détermine un attribut

Page 25: Cours BD 2013

97

FORME NORMALE DE BOYCE-CODD

Propriété

Toute relation a une décomposition en BCNF qui est sans perte.

Par contre une décomposition en BCNF ne préserve pas les DF

98

FORME NORMALE DE BOYCE-CODD

VILLE-CODEParis 75001Paris 75002Avignon 84000

RUE-CODEArras 75005Jussieu 75005Halles 75001Halles 84000Pasteur 84000

ExempleLa relation précédente se décompose enVILLE-CODE(VILLE,CODE) RUE-CODE(RUE,CODE)

99

DEPENDANCES MULTIVALUEES

Considérons la relation :ETUDIANT(NUM-ET, COURS, SPORT)

100 Base de données Tennis100 Base de données Plongée100 Programmation Tennis100 Programmation Plongée

100

DEPENDANCES MULTIVALUEES

Soit R(A1, A2, ..., An) un schéma de relation

et X et Y des sous ensembles de {A1, A2, ..., An}. On dit que X ->-> Y (X multidétermine Y) si, étant données des valeurs de X il y a un ensemble de valeurs de Y associées et cet ensemble est indépendant des autres attributs Z = R - X -Y de la relation R.

Formellement on peut écrire :

(X ->-> Y) <=> {(xyz) et (xy'z') ∈ R => (xy'z) et (xyz') ∈ R}

Page 26: Cours BD 2013

101

DEPENDANCES MULTIVALUEES

Exemple :X = {NUM-ET}, Y = {COURS} et Z = {SPORT}

NUM-ET ->-> COURS et NUM-ET ->-> SPORT

en effet si l'on prend les tuples (100, Bases de Données, Tennis) et

(100, Programmation, Golf}

on aura forcément dans la base les tuples

(100, Bases de Données, Golf) et (100, Programmation, Tennis}

102

DEPENDANCES MULTIVALUEES

Propriétés1 - Les DF sont des cas particuliers des DM.

(X -> Y) => {(xyz) et (xy'z') ∈ R => y = y'}

(X -> Y) => {(xyz) et (xy'z') ∈ R => (xy'z) et (xyz') ∈ R}

! ! ! (X -> Y) => (X ->-> Y)

103

DEPENDANCES MULTIVALUEES

Propriétés2 - Complémentation

! ! (X ->-> Y) => (X ->-> R -X -Y)

3 - Augmentation (X ->-> Y) et (V⊂W) => (XW ->-> YV)

104

DEPENDANCES MULTIVALUEES

Propriétés4 - Transitivité

(X ->-> Y) et (Y ->-> L) => (X ->-> L - Y)

5 - Union(X ->-> Y) et (X ->-> L) => (X ->-> YL)

Page 27: Cours BD 2013

105

DEPENDANCES MULTIVALUEES ELEMENTAIRE

Une dépendance multivaluée élémentaire (DME) est une DM !X->-> Y où :

1 - Y n'est pas vide et est disjoint de X.

2 - Il n'existe pas une DM X' ->-> Y' tel

que X’ ⊂ X et Y' ⊂ Y.

106

QUATRIEME FORME NORMALE

Une relation est en 4NF si et seulement si

les seules DME sont celles dans lesquelles

une clé multi-détermine un attribut.

107

QUATRIEME FORME NORMALE

Du fait qu'une DF est une DM, une relation en 4NF est en BCNF.

Exemple : la relation ETUDIANT(NUM-ET, COURS, SPORT) n'est pas en 4NF car :• la clé est l'ensemble des attributs • et il existe les DME : • NUM-ET ->-> COURS et • NUM-ET ->-> SPORT.

108

QUATRIEME FORME NORMALE

On démontre que pour toute relation, il existe une décomposition en relations 4NF

qui est sans perte. et

qui n'est pas forcément unique

Page 28: Cours BD 2013

109

QUATRIEME FORME NORMALE

Exemple : la relation ETUDIANT précédente peut se décomposer en 2 relations ETUDIANT-COURS(NUM-ET, COURS) et ETUDIANT-SPORT(NUM-ET, SPORT)

qui sont en 4NF car il n'y a plus d'attributs indépendants donc plus de DME.

110

ALGORITHME DE DECOMPOSITION EN 4NF

On utilise cet algorithme lorsque certaines dépendances sont des DM.

Entrée : Schéma R(X) contenant des DF et des DM

Sortie : Schéma {R1, R2, ... , Rn} avec Ri en 4NF pour tout i

111

ALGORITHME DE DECOMPOSITION EN 4NF

Etape 1 : (initialisation)S = { R }.

112

ALGORITHME DE DECOMPOSITION EN 4NF

Etape 2 : (itération)

Si T est un schéma de S qui n'est pas en 4NF, alors chercher une DM non triviale W ->-> V de T telle que W ne contienne pas une clé de T. Remplacer le schéma T dans S par les deux schémas T1(W, V) et T2(X - V) munis des dépendances dérivées de la fermeture de celles du schéma T.

Répéter l'étape 2 si S contient un schéma qui n'est pas en 4NF.

Page 29: Cours BD 2013

113

ALGORITHME DE DECOMPOSITION EN 4NF

Etape 3 : (élimination de la redondance)

Pour tout couple Ri et Rj de S, si Xi ⊂ Xj alors éliminer Ri de S.

Cours n°3

Rappels du cours n°2Astuces pour la validation des dépendances multivaluées

Exercice de modélisation en 4FNModèle entité relation

115

Astuces pour accélérer la vérification de la validité d’une DM

Première règle : Une DM X→→ Y ne peut être valide (indépendante) s’il existe un attribut z dans les ‘autres attributs’ tel que Y→z (si l’on a (x,y,z) et (x,y’,z’) on ne peut pas avoir (x,y,z’) car un y donné DETERMINE un seul z !)

Donc en fait TOUTES les DM sont de la forme X→→ Y(…) où Y(…) symbolise Y et TOUS les attributs qu’il détermine.

116

Astuces pour accélérer la vérification de la validité d’une DM

Deuxième règle : Sur le même principe, une DM X→→ Y ne peut être vraie s’il existe un z tel que X’,Y→z avec X’ un sous ensemble de X.

Troisième règle : Il n’est pas nécessaire de tester l’indépendance par rapport aux attributs z tel que X→z : ces attributs auront toujours la même valeur dans les triplets (x,y,z) et (x,y’,z’) car ici z = z’.

Page 30: Cours BD 2013

117

Astuces pour accélérer la vérification de la validité d’une DM

Quatrième règle : Une DM X→→ Y ne peut être valide (indépendante) s’il existe un attribut z dans les ‘autres attributs’ tel que z→Y ou X’z→Y.

118

Exemple : CDs de Jazz

Voir énoncé distribué lors du cours :

définir un ensemble de dépendances fonctionnelles et multivaluées qui modélisent au mieux les informations visées.

proposez un ensemble de relations en Quatrième Forme Normale.

119

Dépendances fonctionnelles

Dépendances fonctionnelles

d1 : NUM_DISQUE → TITRE_CD, NUM_EDITEUR,NUM_CD_ED, DISTRIBUTEUR,TECHNIQUE, NOTE_ART, NOTE_TECH

d2 : NUM_DISQUE, NUM_ENR → NUM_MUSIQUE, DUREE-ENR, DATE_ENR, LIEU_ENR,COND_ENR

d3 : NUM_MUSIQUE → TITRE_MUSIQUE

d4 : NUM_MUSICIEN → NOM, PRENOM, DATE_NAIS, DATE_DECES, NATION

d5 : NUM_EDITEUR → NOM_EDITEUR, PAYS

120

Dépendances multivaluées

Dépendances multivaluées

dm1 : NUM_DISQUE →→ NUM_MUSICIEN[leader], NOM, PRENOM, DATE_NAIS, DATE_DECES, NATION

dm2 : NUM_MUSIQUE →→NUM_MUSICIEN[compositeur], NOM, PRENOM, DATE_NAIS, DATE_DECES, NATION

dm3 : NUM_DISQUE, NUM_ENR, NUM_MUSICIEN[interprète]! →→! INSTRUMENT

Page 31: Cours BD 2013

121

Décomposition en 4FN

dm1

d4

R2(Num_Musicien, Nom, Prénom,

Date_Nais, Date_Décès, Nation)

{d4}

dm2'

R1(Num_Disque, Num_Musicien[leader](...))

{d4}

R(Num_Disque(...), Num_Enr(...), Num_Musique(...), Num_Musicien[leader](...),

Num_Musicien[interprète](...), Num_Musicien[compositeur](...), Num_Editeur(...), Instrument)

{d1, d2, d3, d4, d5, dm1, dm2, dm3}

(*) dm2 devient dm2’ car nom, prénom, etc. n’existent pas dans R4

R4(Num_Disque(...), Num_Enr(...), Num_Musique(...), Num_Musicien[interprète],

Num_Musicien[compositeur], Num_Editeur(...), Instrument)

{d1, d2, d3, d5, dm2'(*), dm3}

R3(Num_Disque,

Num_Musicien[leader])

Le modèle entité relation

Partie I : Conception d’une base de données

Définitions et formalismes

EntitésRelations

PropriétésCardinalités

Nom de l'entité

Formalisme

Définition : une entité est un objet pourvu d’une existence propre et conforme aux choix de gestion de l’entreprise

Entité

Page 32: Cours BD 2013

Formalisme

Nom de la relation

Entité 1

Entité 3 Entité 4

Entité 2

Définition : Une relation entre entités est une association perçue dans le réel entre deux ou plusieurs entités. Une relation est dépourvue d’existence propre.

Relation

126

Exemple

Pilote

Dirige Vol

AvionCompagnie

aérienne

Possède Avion

Avion

- Marque

Dirige Vol

- Num Vol

Formalisme

Définition : une propriété (ou attribut) est une donnée élémentaire que l’on perçoit sur une entité ou sur une relation entre objets.

Propriété

128

Exemple

Client

- N°Client

- Nom

- Prénom

- Adresse

- etc.

Passer

Commande

Commander

Produit

- Quantité commandée

Commande

- N° Commande

- Date Commande

Produit

- N° Produit

- Libellé Produit

- Prix

- etc.

Facture

- N°Facture

- Date Facture

- Montant Facture

Facturer

Produit

- Quantité facturée

Commande -

Facture

Page 33: Cours BD 2013

129

Cardinalité

Définitions : la cardinalité d’une entité par rapport une relation s’exprime par rapport à deux nombres appelés cardinalité minimale et cardinalité maximale.

La cardinalité minimale (égale à 0 ou 1) est le nombre de fois minimum qu’une occurrence d’une entité participe aux occurrences d’une relation.

La cardinalité maximale (égale à 1 ou n) indique le nombre de fois maximum qu’une occurrence de l’entité participe aux occurrences de la relation.

EntitéRelation

Nbre 1, Nbre 2Cardinalité minimale

Cardinalité maximale

130

Exemple

Client

- N°Client

- Nom

- Prénom

- Adresse

- etc.

Passer

Commande

Commande

- N° Commande

- Date Commande

0,n 1,1

131

Identifiant d’une entité

Définition : C’est une propriété particulière de l’entité telle qu’à chaque valeur de la propriété corresponde une et une seule occurrence de l’entité.

Remarque : S’il existe pour un même objet plusieurs possibilités d’identifiants, on en retiendra un seul. Formalisme : l’identifiant

figure en première position dans la liste des propriétés. De plus, l’identifiant est souligné.

Client

- N°Client

- Nom

- Prénom

- Adresse

- etc.

132

Identifiant d’une relation

Définition : C’est l’identifiant obtenu par concaténation des identifiants des entités participant à la relation.

Exemple : L’identifiant de la relation PASSER_COMMANDE est N°CLIENT - N°COMMANDE.

Formalisme : l’identifiant d’une relation n’est en général pas inscrit dans la relation.

Client

- N°Client

- Nom

- Prénom

- Adresse

- etc.

Passer

Commande

Commande

- N° Commande

- Date Commande

0,n 1,1

Page 34: Cours BD 2013

Règles de vérification et de normalisation

134

Règles concernant les entités

Règle n°1 : Existence d’un identifiant pour chaque entité.

Règle n°2 : Toutes les propriétés autres que l’identifiant doivent être en dépendance fonctionnelle complète et directe de l’identifiant. Ainsi, pour chaque occurrence d’une entité, chaque propriété doit prendre une et une seule valeur.

135

Règle concernant les relations

Règle n°3 : Toutes les propriétés d’une relation doivent dépendre complètement de l’identifiant de la relation. De plus, chaque propriété doit dépendre de tout l’identifiant et non d’une partie de cet identifiant. Chaque propriété doit être en dépendance fonctionnelle de l’identifiant de la relation et doit donc prendre une et une seule valeur.

136

Règle concernant l’ensemble du modèle conceptuel de données

Règle n°4 : Une propriété ne peut apparaître qu’une seule fois dans tout le MCD : elle ne peut qualifier qu’une seule entité ou une seule relation.

Règle n°5 : Les propriétés qui sont le résultat d’un calcul ne doivent pas figurer dans le MCD sauf si elles sont indispensables à la compréhension de ce dernier.

Règle n°6 : Toutes les propriétés doivent être élémentaires, c’est-à-dire non décomposables.