View
38
Download
0
Category
Preview:
Citation preview
Université du Maine
Yannick Estèveyannick.esteve@lium.univ-lemans.fr
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
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
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
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
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).
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
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
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
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.
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.
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)
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)
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)
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
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.
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
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
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 }
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
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)
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.
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.
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}}
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
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}
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)
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
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.
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’.
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
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é
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
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
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.
Recommended