Bases de données - MBDS · Bases de données Introduction à la conception d’un schéma...
Transcript of Bases de données - MBDS · Bases de données Introduction à la conception d’un schéma...
Bases de données Introduction à la conception d’un schéma relationnel avec la
Méthode de Codd et Date
Professeur Serge Miranda
Directeur Master « MBDS »
www.mbds-fr.org et
www.youtube.com/mbdsimagine
Copyright Serge Miranda
Plan
Rappels sur le modèle relationnel de CODD
(les 10 Concepts fondamentaux)
Approche intuitive d’une méthode de conception relationnelle et critique du « modèle entité –association »
La Méthode de conception de Codd and Date
- Phase 1 : Approche Synthétique
- Phase 2 : Approche analytique : La Théorie de « normalisation »
l’Espace des « 5 Formes Normales »
La « Dénormalisation »
Copyright Serge Miranda
Intérêt du modèle relationnel de
Codd
Vue simple des données - tables
(pouvant être non naturelle)
Langage de requête non procédural : « SAT » (SET at a TIME)
(dont l ’opération fondamentale est la JOINTURE)
Copyright Serge Miranda
« Schéma » et « modèle de données »
?
UNIVERS REEL
MODELE DE DONNEES
SCHEMA
DE
DONNEES
ABSTRAIT MANIPULABLE
CONCRET INACCESSIBLE
Copyright Serge Miranda
Modèle de données ?
STRUCTURES
MODELE DE
DONNEES
OPERATEURS
REGLES D ’INTEGRITE
(+ théorie formelle)
Familles de Modèles de
données
-« Informatiques » - 1968-
1988 (Ex : IMS,
DBTG,..)
- « Mathématiques » –
1980 – 2000 (Ex :
Modèle Relationnel,
SQL2)
- « Sémantiques » –1990-
2010 (Ex : Modèles
Objet, OR, SQL3)
Copyright Serge Miranda
Modèle Relationnel de CODD (les 10 concepts de
base) et PARADIGME VALEUR
Définitions « Domaines »
« Relations » (« ensemble » ou « prédicat »)
Clé Primaire / Clé Etrangère
Contrôle : Règles d’intégrité De domaines
De relation
De référence
Manipulation ensembliste : algèbre de Codd (langage « fermé, complet et orthogonal ») Opérateurs ensemblistes
Opérateurs relationnels : SELECTION, PROJECTION, JOIN et DIVISION
Copyright Serge Miranda
Critiques du modèle Entité
Association pour la construction d’un
schéma relationnel
2 Concepts flous « Entité » et « association » (
Méthode MERISE !) et un seul concept
(formel) cible : la « RELATION »
Promesses approche « OBJET » : 1 seul concept
flou !
Méthode pragmatique intuitive proposée par
Codd et Date
Copyright Serge Miranda
Approche « intuitive » de conception
relationnelle
« L ’œuvre d ’art nous apprend que nous n ’avons pas vu ce que
nous voyons »
Paul Valéry
« Pourquoi faire simple quand c ’est si facile de tout compliquer »
J.L. Godard
Copyright Serge Miranda
Un peu de modestie dans
l’appréhension de la réalité…
1) LOI D ’INCERTITUDE D ’HEIZENBERG (1927) :
« Les concepts humains ne pourront pas décrire la réalité
(l’observateur déforme) ».
2) THEORIE D ’INDECIDABILITE DE GODEL (1931) :
« Aucun système ne permet de s’auto-décrire (d’où niveau META) »
Copyright Serge Miranda
Principaux types d’abstraction ?
AGREGATION : [« PART OF »]
PILOTE = {PL#, PLNOM, ADR}
GENERALISATION : [« IS - A »]
employé
pilote hôtesse mécanicien
Copyright Serge Miranda
Principaux Types d’abstraction
ASSOCIATION/COUVERTURE : [« SET OF »]
équipage
pilote hôtesse
Modèle
Relationnel
de données
Agrégation
Simple
Typage statique (et réduit)
Copyright Serge Miranda
Type abstraction et modèle
relationnel de Codd La seul abstraction représentée c ’est l ’agrégation « simple »
(types simples d ’attributs)
Les autres types d ’abstractions : généralisation (IS-A)
association/couverture (Set-of)
récursivité
version de (Version of)
doivent être représentées en fonction de l ’agrégation simple.
Seul le produit cartésien intervient dans la définition d ’une relation
(pas l ’ensemble des parties)
Copyright Serge Miranda
Définition d’un schéma relationnel ?
2 phases conceptuelles
Définition d ’un schéma conceptuel avec tous les types
d ’abstraction
Traduction dans un schéma relationnel avec seulement
l ’agrégation simple
Utilisation d’un Modèle de données plus riche que le modèle
relationnel : NIAM, OBJET, Modèle RM-T de Codd, ..
SCHEMA CONCEPTUEL
Copyright Serge Miranda
Objectifs d’une méthode de
conception …relationnelle
Faire cohabiter plusieurs perceptions de l ’univers réel
Indiquer simplement quand on doit créer les relations
de « base » avec leurs clés primaires
Indiquer simplement où placer les clés étrangères
dans les relations de base
Copyright Serge Miranda
III Méthode de Conception de
CODD and Date Méthode pratique (utilisée dans le cours « Administrateur BD »
chez IBM)
Version Anglaise de cette méthode présentée dans :
« RELATION DB : Selected writing »,
C. DATE, Addison Wesley, 1986
Version française dans :
« COMPRENDRE et CONCEVOIR des BD RELATIONNELLES »
S. MIRANDA, Editest, 1988 e
livre DUNOD 2002
Copyright Serge Miranda
Les 2 phases de la Méthode de Codd
et Date 1ère phase : Définition des relations de base/CP et des clés étrangères
définition et classification des « entités »/ »Relations »
définition des « relations de base » associées avec les : clés primaires
clés étrangères
identification du schéma relationnel
2ème phase : Définition des « bonnes relations » pour les opérations
de mise à jour normalisation
d ’interrogation dénormalisation
Copyright Serge Miranda
Plan Phase 1 de la Méthode de Codd
and Date I - CONCEPTS DE BASE
- Notion d ’Entité et de Clé
- Classification des Liens entre entités
- Classification des Propriétés
- Classification des Entités
II - METHODOLOGIE DE CONCEPTION
- Présentation générale du processus de conception
- Analyse des 4 étapes de la démarche
- Conseils méthodologiques
III - CAS PARTICULIERS
- Représentation du Lien Sous-Type (Généralisation)
- Interblocage d ’Initialisation
Copyright Serge Miranda
Les concepts de base : « DONNEE »
(data) ?
« ROND » ?
Forme ?
Etat ?
Ballon ?
Individu ?
ROND est la forme d’un ballon de foot ?
Copyright Serge Miranda
Structures de données intuitives
1 m 70 Rouge Bleu Rond DONNEE
TAILLE COULEUR FORME PROPRIETE
VOITURE
PROPRIETAIRELIEN
PERSONNE BALLON ENTITE
Copyright Serge Miranda
Notion d’ « Entité/relation » de la
méthode de Codd and date
ENTITE 1
CLE (primaire)
« Tout ce qui est
DIFFERENTIABLE »
« Any distinguishable object »
« OBJET » (début définition dans composante structurelle)
(BD-O2)
Identifiant de l ’Entité (la Clé Primaire)
Note : La référence à une entité se fera par sa clé
Une seule structure conceptuelle : RELATION
Copyright Serge Miranda
Constructeur SET dans la définition
ENTITE ?
SET OF propriétés
PROPRIETE
SET OF données (« valeurs » ; « data »)
PARADIGME « VALEURS » et « ENSEMBLISTE »
(SET OF) du modèle relationnel
Les « LIENS » sont les « LIENS ENSEMBLISTES »
Copyright Serge Miranda
Les « LIENS » ?
« All things are connected »
Seattle (chef indien)
LES LIENS entre structures de données sont des
« LIENS ENSEMBLISTES »
Copyright Serge Miranda
Liens ensemblistes ?
Les Liens «fonctionnels » N:1 ?
LIENS « FONCTIONNELS » N : 1 de
« DETERMINATION »
Soient A et B, deux propriété ou Groupes de Propriétés (Entités) :
DETERMINANT DETERMINE
A B
N : 1
1 Au plus 1
0.1 ou N 1
= « FONCTIONS » en Mathématiques
Les plus importants dans un schéma relationnel !! (agrégation
« simple »)
Copyright Serge Miranda
Liens « fonctionnels » « N:1 »
EXEMPLES
NUMERO_VOL
N : 1 VILLE_DEPART
VILLE_ARRIVEE
NUMERO_PILOTE
N : 1 NOM_PILOTE
ADRESSE_PILOTE
HOMME
N : 1 FEMME
MARIAGE (polyandrie)
Copyright Serge Miranda
Règles de généricité pour les liens
N:1
REGLES DE GENERICITE (AMSTRONG)
Réflexivité
Transitivité
Augmentation du Déterminant
A
A B CN : 1
N : 1
N : 1
D
AB
Numero_Vol Ville_Depart
Numero_Vol Ville_Depart
Heure_Depart
Copyright Serge Miranda
Liens « hiérarchiques » 1:N
Inverse des liens … « N:1 » :
A B
1:N
1 0,1 ou N
Au plus 1 1
Exemples :
PILOTE1:N
VOL
HOMME
1:N FEMME
MARIAGE (polygamie)
A B
1:N
N : 1
Copyright Serge Miranda
Liens « maillés » N:M
A B
N : M
1 0,1 ou M
0,1 ou N 1
Exemples :
PILOTEN : M
AVION
HOMME
N : M
FEMME
MARIAGE (mariage de groupe)
Règle de Symétrie des liens
N:M :
A B
N : M
1:NC1 : M
Copyright Serge Miranda
Classification des entités/liens dans
la méthode de Codd and Date
« STATIQUES »Entités indépendantes
ex : PILOTE, AVION, VOL, DEPARTEMENT
« DYNAMIQUES »Entités dépendantes d ’autres entités (liens MULTIVALUES)
« ASSOCIATIVES » N : M
Entités représentant un lien N : M
ex : VOL représente le lien N:M
PILOTE AVION
N : M
« DESCRIPTIVES » 1 : NEntités dont la seule fonction est de décrire une autre entité
(lien 1 : N avec contrainte d ’existence)
Ex : AVION VOL, PILOTE- VOL
Copyright Serge Miranda
Classification (fin)
« DETERMINANTES » N : 1 (liens MONOVALUES)
Quel que soit son type, une entité peut DERMINER (lien N : 1) une autre entité
Ex :
PILOTE DEPARTEMENT
N:1
VOL PILOTE
N:1
VOL AVION
N:1
,
NOTE : Une même entité VOL peut être perçue de 3 manière indépendantes :- « statique (et indépendante) », - « associative », - « descriptive » !!!
Copyright Serge Miranda
Terminologie GB (Modèle RM-T)
FR (MIRA88 et MIRA2002 ) GB (DATE86)
Statique Kernel
Associative (N : M) Association
Descriptive (1 : N) Characteristics
Déterminante (N : 1) Referencing
RM-T de
CODD (80)
Copyright Serge Miranda
REPRESENTATION GRAPHIQUE DE
WINSBERG (1986)
ENTITE STATIQUEPILOTE
ENFANT
ENTITE DESCRIPTIVE (Lien 1:N)
(N) (1)
Clé étrangère au niveau de la plume de la flèche
ENTITE ASSOCIATIVE (Lien N:M)
AVION
VOL
PILOTE
DETERMINATION (LIEN N : 1)
DEPARTEMENT
(N) (1)
Copyright Serge Miranda
Version simplifiée de Winsberg
Entité traduite par une relation / table de base
Lien N : 1
notation fonctionnelle (rien de plus simple
et cohérent) indiquant la présence d ’une clé
étrangère au niveau de la plume.
(Possibilité d ’étiqueter une flèche par un prédicat bidirectionnel comme avec
NIAM dans le cas de l ’existence de plusieurs liens entre les mêmes entités).
Copyright Serge Miranda
Exemple AIRBASE
DEPARTEMENT (D#)
PILOTE (PL#)
PILENFANT
EMPLOYE (E#)
HOTESSE
STEWARD
AVION (AV#)
VOL
PILFORM
(E#)
(E#)Généralisation
(D#, E#)
(PL#)
(PL#, AV#)
(PL#)
Agrégation Entité (correspondant à une relation de base du
schéma)
La CP est indiquée dans le rectangle.La CE est
indiquée en dehors
Lien fonctionnel N:1 (présence d ’une clé étrangère
au niveau de la plume)
Copyright Serge Miranda
Entités et « propriétés »
Le processus consiste à remplir progressivement un tableau décrivant les
entités et leurs propriétés au fur et à mesure de leur définition.
Le schéma de Winsberg peut être élaboré parallèlement
PROPRIETES
ENTITESIDENTIFICATION
clé primaire
REFRENCE
clé étrangèresCARACTERISTIQUES
Copyright Serge Miranda
Méthode de conception Phase 1 Démarche Descendante (« TOP-DOWN ») et Itérative
4 Etapes :
ETAPE 1 : Définition Des Entités Statiques
ETAPE 2 : Représentation des Liens multivalués entre Entités
- Liens N : M (Associations)
- Liens 1 : N (Descriptions)
ETAPE 3 :Lien N : 1 (pas de création d ’Entité ; seul cas mais rajout
de clé étrangère)
ETAPE 4 :
Rattachement des propriétés aux entités.
Itération du processus si toutes les information ne sont pas représentées dans le
schéma
Copyright Serge Miranda
Etape 1 : entités « statiques »
a - IDENTIFICATION des Entités statiques et de leurs clés primaires
b - REPRESENTATION « relationnelle » de ces entités :
Relation de Base sans Clé étrangère
Ex : PILOTE (P PL#)
AVION (A AV#)
DEPARTEMENT (D DEP#)
VOL (VOL#)
Copyright Serge Miranda
Etape 2 : Liens « multivalués »
inter-entités (N:M, 1:N)
Identification et Représentation des Liens multivalués (N:M et 1:N) entre Entités
1 - ASSOCIATIONS Liens N : M
Ex : PILOTE AVIONN:M
FOURNISSEUR DEPARTEMENTN:M
Ex : VOL ( VOL#, V-PL#, V-AV# )
FOURN_PROD ( PROD#, FOUR# )
2- DESCRIPTION Lien 1 : N
Ex : PILOTE VOL1:N
Création d ’une relation de base ; rajout de la clé primaire de l ’entité de départ
Comme clé étrangère dans l ’entité d ’arrivée
ex : rajout de PL# dans VOL (VOL#, V-PL#)
Création d ’une relation de base avec des clés
étrangères identifiant les entités liées
Copyright Serge Miranda
Etape 3 : Liens « N:1 » inter entités
DETERMINATION Lien N : 1
Ex : VOL PILOTEN:1
PILOTE DEPARTEMENTN:1
Pas de création de nouvelle relation (seul cas).
Rajout de la clé primaire de l ’entité déterminée comme clé étrangère
dans l ’entité déterminante
Ex :
Rajout de DEP# dans PILOTE (P PL# , P-DEP#)
RAJOUT DE PL# DANS VOL (VOL#, V-PL#)
LIENS PRESENCE DE CLES ETRANGERES
Copyright Serge Miranda
« Propriétés » d’ une entité 3 types de PROPRIETES :
IDENTIFICATION Clé Primaire
Ex : Numéro-Vol dans l ’entité VOL
REFERENCE Clé étrangère
Ex : Numéro-Pilote dans l ’entité VOL
CARACTERISTIQUE Ex : Ville-Départ, Ville-Arrivée dans VOL
Copyright Serge Miranda
Rattachement des propriétés aux
entitésUne propriété peut-être
- Monovaluée ou Multivaluée
et
- Immédiate (entité de rattachement. Connue)
ou Non Immédiate (entité de rattachement inconnue)
4 CAS :
Monovaluée/Immédiate
Attribut de la relation concernée
Ex : PLNOM, P-VILLE dans PILOTE
Monovaluée/Non Immédiate
Création d ’une nouvelle relation statique (cf.Normalisation 3NF)
Ex : CAP dans AVION
A_AV# A_TYPAV CAP
N:1 N:1
Création d ’une entité statique CAPACITE ( C-TYPAV, CAP)
A-TYPAV dans AVION devient Clé étrangère
Copyright Serge Miranda
Rattachement des propriétés (fin)Multivaluée/Immédiate
Création d ’une entité descriptive « toute clé » ou définition de plusieurs attributs
(cf. Normalisation INF)
Ex : Auteurs d ’un LIVRE
LIVRE (LIV#, ………, AUT#1, AUT#2)
ou LIV-AUTEUR (LIV#, AUT#)
Multivaluée/Non Immédiate
Création d ’une entité DESCRIPTIVE représentée par une relation de base avec
la clé étrangère de l ’entité décrite.
Ex : AGE des enfants d ’un PILOTE
On crée l ’entité PILENFANT (E-PL#, PRENOM, AGE)
FORMATION et DUREE de formation d ’un PILOTE
On crée l ’entité : PILFORM (F-PL#, F-TYPAV, FORMAT, DUREE)
Note : pour chaque propriété il faut définir son domaine (typage sémantique)
Copyright Serge Miranda
PROPRIETES
ENTITESIDENTIFICATION
clé primaire
REFRENCE
clé étrangèresCARACTERISTIQUES
PILOTE P-PL# DEP# PLNOM, PL-VILLE
AVION AV-AV# A-TYPAV, CAP
AV-VILLE
DEPARTEMENT D-DEP# DEPNOM
VOL VOL# V-PL#, V-AV# VD-VILLE,
VA-VILLE
HD-HEURE,
HA-HEURE
PILENFANT ENF#, E-PL# E-EPL# PRENOM, AGE
PILEFORM P-TYPAV, F-PL# DUREE, FORMAT
F-PL#
Copyright Serge Miranda
Identification
« QU ’y a-t-il en un nom ?
Ce que nous nommons ROSE sous un tout autre nom
sentirait aussi bon …. ? »
W. Shakespeare (Roméo et Juliette)
Copyright Serge Miranda
Règles
R1 : Eviter si possible les clés primaire multi-attributs pour les raisons suivantes :
- problèmes d ’utilisation : jointure multi-attribut
- problème de définition (pour les relations statiques) si le concept de « domaine primaire » existe ;
- problème de visualisation pour éviter les redondances logiques
(ex : ETUDIANT (E #, C#, C-OFFERT, NOTE, …….)
Intérêt pour l ’administrateur d ’introduire des clés primaires mono-attributs surtout pour les relations statiques.
Copyright Serge Miranda
Règles
R2 : Lorsque la comparaison des valeurs de deux attributs a un sens, définir un domaine communpour ces attributs (union des valeurs possibles)
définition des domaines par l ’administrateur au fur et à mesure de la conception du schéma relationnel.
* (choix crucial pour un contrôle sémantique des opérateurs)
Note : toute clé étrangère doit avoir le même domaine que la clé primaire associée.
Copyright Serge Miranda
Règles
R3 : Règle d ’identification des attributs et des domaines
2 cas :
1) s ’il n ’y a pas dans la même relation deux attributs définis sur le même domaine : Nom d ’attribut = nom de domaine
2) si plusieurs attributs de la même relation sont définis sur le même domaine : Nom d ’attribut = nom de domaine préfixé ou suffixé
Note : Cette méthode d ’identification a un double intérêt :
1) avertir l’ utilisateur
2) permettre d ’introduire des domaines fictifs à SQL1 et SQL2
R4 : Noms d ’attribut … unique avec un langage relationnel fermé (ce n ’est pas le cas de SQL)
Copyright Serge Miranda
Exemple Schéma relationnel avec
nomenclature Codd and Date
AVION (AV#, AVNOM, CAP, LOC-VILLE)
PILOTE (PL#, PLNOM, SAL, ADR-VILLE)
VOL (VOL#, V-PL#, V-AV#, VD-VILLE, VA-
VILLE, HD-HEURE, HA-HEURE)
Copyright Serge Miranda
Phase 2 : L ’APPROCHE
ANALYTIQUE
de la méthode de Codd & Date
PLAN
PRINCIPE DU PROCESSUS DE
NORMALISATION et formes Normales
( Normal Forms de Codd)
LA PREMIERE FORME NORMALE (1NF)
Liens mono-valués et LES FORMES NORMALES
2NF, 3NF, BCNF,
Liens multi-valués et formes normales 4NF, 5NF
Copyright Serge Miranda
Objectifs Phase 2
TRIPLE OBJECTIF :
Chaque relation possède une clé primaire qui
représente l ’identifiant d ’un certain type d ’entité ;
Chaque relation comprend plusieurs attributs
MONOVALUES qui représentent des propriétés de
l ’entité identifiée par la clé primaire (une relation
contient donc de l ’information sur un seul type
d ’entité).
Chaque relation est « normalisée »
Copyright Serge Miranda
« 1NF » (« normalisée », 1ier Forme
Normale, 1st Normal Form) MISE EN 1ière FORME NORMALE EN SUPPRIMANT LES
ATTRIBUTS MULTIVALUES
ATTRIBUTS « MULTIVALUES » : cardinalité inconnue : traitement comme entité descriptive (lien 1 : N) en
créant nouvelle relation : exemple attribut multivalué AUTEUR de l ’entité
L’entité LIVRE ((L#, TITRE, EDITEUR, {AUTEUR}) se transforme en 2 relations 1NF : LIVRE (L#, TITRE, EDITEUR)
LIV-AUTEUR (L#, AUTEUR)
cardinalité connue : création nouvel attribut
exemple : capacité minimum et maximum d ’un avion
L’entité AVION (AV#, TYPE, {CAP}, LOC) se transforme en relation 1NF : AVION (AV#, TYPE, CAP-MIN, CAP-MAX, LOC)
Copyright Serge Miranda
EX : ATTRIBUT MULTIVALUE AVEC
CARDINALITE VARIABLE
Considérons la relation LIVRE ayant les attributs AUTEUR et MOTCLE multivalués
LIVRE L# TITRE EDITEUR ANNEE AUTEUR MOT-CLE
1 BD EN BD JESEPA 1988 GO HUMOUR
MILO BD
VULGARISATION
LIVRE L# TITRE EDITEUR ANNEE
1 BD EN BD JESEPA 1988
LIV-AUTEUR L# AUTEUR
1 GO
1 MILO
L# MOT-CLE
1 HUMOUR
1 BD
1 VULGARISATION
LIV-MOTCLE
Copyright Serge Miranda
Attributs multi-valués
LE VECTEUR
Deux représentations sont possibles :
- orientée tuple (cardinalité fixe)
- orientée attribut
Copyright Serge Miranda
Exemple VECTEUR
Prenons l ’exemple des salaires mensuels d ’un
pilote
1) Représentation orientée tuple
PL# PLNOM SAL-JAN SAL-FEV SAL-MARS … SAL-DEC
1 Pierre 20 KF 20 KF 21 KF 22 KF
2 Serge 17 KF 17 KF 18 KF 19 KF
… … … … … …
PILOTE
Copyright Serge Miranda
VECTEUR (Exemple)
2) Représentation orientée attribut
2.1 (sans création de nouvelle relation)
PILOTE PL# PLNOM MOIS SALAIRE
1 Pierre Jan 20 KF
1 Pierre Fev 20 KF
1 Pierre Mars 21 KF
… …
1 Pierre Dec 22 KF
2 Serge Jan 17 KF
2 Serge Fev 17 KF
2 Serge Mars 18 KF
… … …
2 Serge Dec 19 KF
Copyright Serge Miranda
VECTEUR (Exemple)
PILOTE PL# PLNOM ADR ...
1 Pierre Paris
2 Serge Nice
PIL-SAL PL# MOIS SALAIRE
1 Jan 20 KF
1 Fev 20 KF
1 Mars 21 KF
…
1 Dec 22 KF
2 Jan 17 KF
2 Fev 17 KF
2 Mars 18 KF
… ...
2 Dec 19 KF
2.2 : Avec Création
nouvelle relation
(pour réduire la
redondance)
Copyright Serge Miranda
Liens MONO-valués (« agrégation
simple ») et normalisation
« FORMES NORMALES » : 2, 3 , …
FORME 2 NF, 3NF,
BCNF
LIENS N : 1
(monovalués)
Copyright Serge Miranda
Normalisation par l’exemple
Considérons la relation suivante AVION dont la clé primaire est AV# :
AVION AV# AVNOM CAP LOC
100 AIRB 250 TOUL
101 AIRB 250 TOUL
102 AIRB 250 PARIS
103 CAR 100 TOUL
104 B707 150 PARIS
105 B707 150 PARIS
N:1
Supposons que l ’on ait la contrainte C1 suivante dans la compagnie aérienne :
« tous les avions de même nom ont la même capacité ». Cette contrainte est traduite par
le lien N : 1 appelé aussi « dépendance fonctionnelle » suivant :
AVNOM CAP
PROBLEMES :
-une redondance logique
- des anomalies de
stockage (storage
anomalies)
- le problème de
reconnexion (connection
trap)
Copyright Serge Miranda
Connection trap
AVION1 AV# AVNOM
100 AIRB
101 AIRB
102 AIRB
103 CAR
104 B707
105 B707
AVION2 AVNOM CAP LOC
AIRB 250 TOUL
AIRB 250 PARIS
CAR 100 TOUL
B707 150 PARIS…
AVION3 AV# AVNOM CAP LOC
100 AIRB 250 TOUL
100 AIRB 250 PARIS
101 AIRB 250 TOUL
101 AIRB 250 PARIS
... ... ... ...
Projection d AVION en AVION1 et AVION2 et « reconnexion » impossible
AVION 3 par Jointure
Copyright Serge Miranda
Buts normalisation
La normalisation a pour but :
- de supprimer la redondance logique,
- d ’éviter les anomalies de stockage,
- de résoudre le problème de reconnexions.
Copyright Serge Miranda
Lien N:1 (Functional dependency)
Soit X, Y des groupes d ’attributs de la relation R, nous avons une dépendancefonctionnelle de X dans Y notée : f : X ------> Y ou X ------ > Y
si t1 (X) = t2(X) alors t1(Y) = t2(Y), avec ti(A) sous-tuple de R correspondant aux attributs A.
Pour chaque valeur de X il existe au plus (0 ou 1) une valeur de Y associée (plusieurs valeurs de X peuvent correspondre à la même valeur de X) ; X est appelé « déterminant » et Y « déterminé ».
EXEMPLE : Les dépendances fonctionnelles traduisent les contraintes existant dans l ’univers réel :
« un pilote habite dans une seule ville » : PL# ADR
« un pilote n ’a qu ’un seul nom » : PL# ------- PLNOM
En conséquence PL# est clé candidate (et primaire) dans la relation PILOTE1 (PL#,PLNOM, ADR)
Nous rappelons que la clé primaire est soulignée dans l ’énoncé des attributs de la relation.
Copyright Serge Miranda
NORMALISATION : Théorème de
décomposition réversible
Ce théorème de décomposition (sans perte d ’information) est souvent appelé théorème de décomposition de CASEY et DELOBEL
R (U) est décomposée (projection) en 2 relations R(U1) et R(U2)
Soient R(U) et (X, Y, Z) une partition de U
Avec X Y Alors R(U) = R(U1)(X = X)R(U2) avec
U1 = X Y (union des attributs intervenant dans la DF)
U2 = X Z (union du déterminant, attribut de la jointure, avec les autres attributs de U)
Copyright Serge Miranda
Exemple décomposition réversible
EXEMPLE : AVION(AV#, AVNOM, CAP,
LOC) avec AV# clé primaire et
AVNOMCAP
Le théorème de décomposition permet d ’avoir
deux relations
AVION1 AVNOM CAP
AIRB 250
CAR 100
B707 150
AVION2 AV# AVNOM LOC
100 AIRB TOUL
101 AIRB TOUL
102 AIRB PARIS
103 CAR TOUL
104 B707 PARIS
105 B707 PARIS
Copyright Serge Miranda
Les Formes normales
2NF, 3NF, BCNF Liens (mono-valués)
N:1 ou 1:1
Liens 1:N ou N:M
4NF (multi-valués)
INDEPENDANTS
Liens 1:N ou N:M
5NF (multi-valués)
DEPENDANTS avec contrainte
de symétrie
PRINCIPE DE
LOCALITE :
un seul concept
sémantique dans
une relation sinon
on décompose
Copyright Serge Miranda
3 NF ?
Définition de Sharman d’une
« bonne »relation en 3NF pour les liens N:1
« Une Relation est en 3NF si tout déterminant d’un lien N:1 est clé primaire »
Copyright Serge Miranda
Liens multi-valués indépendants un pilote conduit plusieurs avions (N:M)
un pilote assure plusieurs trajets (VD, VA)(N:M)
TRAJET PILOTE AVION
N M N M
TRAJET PILOTE
VOL1
AVION
VOL1 (PL#, AV#, VD, VA) en 3NF
contient 2 liens N:M indépendants
Représentation Winsberg
Copyright Serge Miranda
Représentations possibles
DISJOINTES
VOL1 PL## AV## VD VA
10 100 @ @
10 101 @ @
10 102 @ @
10 @ Nice Toulouse
10 @ Paris Nice
PRODUIT
CARTESIEN
[« indépendance »]
VOL1 PL## AV## VD VA
10 100 Paris Nice
10 100 Nice Toulouse
10 101 Paris Nice
10 101 Nice Toulouse
10 102 Paris Nice
10 102 Nice Toulouse
Copyright Serge Miranda
Autre représentations…
ALEATOIRE
VOL1 PL## AV## VD VA
10 100 Paris Nice
10 101 @ @
10 102 Nice Toulouse
10 @ Paris Nice
10 102 @ @
COMPRESSE
VOL1 PL## AV## VD VA
10 100 Paris Nice
10 101 Nice Toulouse
10 102 @ @
Copyright Serge Miranda
4 NF
Exemple :
VOL11 PL## AV##
10 100
10 101
10 102
VOL12 PL## VD VA
10 Paris Nice
10 Nice Toulouse
4NF
3NF
+
pas de lien multivalué
indépendant
Copyright Serge Miranda
Liens multi-valués dépendantsEXEMPLE : un pilote conduit des avions sur différents trajets ….
PILOTE
AVION TRAJET
N
M P
VOL 1+
Le pilote P conduit l ’avions A
(et) si l ’avion A est utilisé sur le trajet T
(et) le trajet T est assuré par le pilote P
SI
Alors
le pilote P conduit l ’avion A sur le trajet T
VOL2
Copyright Serge Miranda
VOL2 PL## AV## VD VA
11 102 Madrid Paris
10 100 Paris Madrid
10 100 Madrid Paris
10 101 Madrid Paris
10 101 Paris Madrid
VOL21 PL## AV##
11 102
10 100
10 101
VOL23 AV## VD VA
100 Madrid Paris
100 Paris Madrid
101 Madrid Paris
101 Paris Madrid
102 Madrid Paris
VOL23 PL## VD VA
11 Madrid Paris
10 Paris Madrid
10 Madrid Paris
Isolement de chaque
lien inter-dépendant
PROJECT
Copyright Serge Miranda
5NF et autres NF
5NF : 4NF + isolement des liens multivalués
symétriques interdépendants)Opérateur algébrique pour :
-décomposition
-recomposition
- JOIN
- PROJET
-UNION
- SELECT
- DIVISION
- PROJECT
fonctionnelle
2NF
3NF
BCNF
(3,3)NF
-
multivaluées 4NF (3,3)NF -
De jointure 5NF - -
Iso-dépendance - - B-NF
Copyright Serge Miranda
Exemples
PILOTE
PILENFANT
1
N
PILOTE (PL#, PILNOM, ADR, SAL)
PILENFANT (PL#, E#, PILNOM, ADR, SAL)
Un pilote comprend les propriété suivantes
- monovaluées : PL#, PLNOM, ADR, SAL
- multivaluées : E#, AGE, PRENOM de ses enfants
Copyright Serge Miranda
Exemple2COURS
COURS -
OFFERT
1
N
ETUDIANT
1
N
COURS (C#, INTITULE)
COURS-OFFERT (C#, OFF#, DATE, LOCA)
ETUDIANT (C#, OFF#, E#, DIPLÔME)
Chaque cours comprend un numéro, un intitulé et un
ensemble de valeurs indiquant la
date et le lieu où le cours est donné.
Chaque cours donné comprend une date, un lieu et un
ensemble d ’étudiant suivant
le cours.
Chaque étudiant comprend un numéro et le nom du
diplôme préparé.
Copyright Serge Miranda
Exemple 3
Schéma suivant ?
VOL1 (VOL#, VD-VILLE, VA-VILLE, HD, HA)
PAV (VOL#, PL#, AV#)
:1) VOL est une entité « déterminante »
(de PILOTE et d ’AVION)
(H1) VOL# (PL#, AV#)
Schéma relationnel :
VOL (VOL#, AV#, PL#, VD, VA, HD, HA)
Copyright Serge Miranda
Exemple 3
VOL est une entité « associative »
(lien N:M entre AVION et PILOTE)
(H2) VOL# (PL#, AV#)
Schéma relationnel :
VOL1 (VOL#, VD-VILLE, VA-VILLE, HD, HA)
PAV (VOL#, PL#, AV#)
Copyright Serge Miranda
Exemple 4
EMPLOYE (E-E##, ENOM, EADR, SAL)
PILOTE (E-P##,… NBHV, SPEC)
avec NBHV : nombre d ’heures de vol
SPEC : spécialité particulière (principale)
HOTESSE (E-H##,… RANG, ANCIEN.)
AVION (AV##, AVNOM, CAP, LOC-VILLE)
EQUIPAGE (EQ##; P1#, P2#, H1#, H2#, H3#)
VOL (VOL##, EQ##, AV##, VD-VILLE,
VA-VILLE, HD, HA)
Copyright Serge Miranda
Exemple GENERALISATIONEMPLOYE E# ENOM SAL NBHVOL RANG STATUT
1 Pierre 20 KF 2000 - Pilote
2 Serge 30 KF 3000 - Pilote
3 Elodie 15 KF - 1 Hôtesse
4 Martine 20 KF - 3 Hôtesse
EMPLOYE E# ENOM SAL STATUT
1 Pierre 20 KF Pilote
2 Serge 30 KF Pilote
3 Elodie 15 KF Hôtesse
4 Martine 20 KF Hôtesse
PILOTE E# NBHVOL
1 2000
2 3000
Hotesse E# RANG
3 1
4 3
Double Déclaration :
« clé primaire et
étrangère
Elimination de valeurs
nulles inapplicables
Copyright Serge Miranda
Généralisation
Autre représentation possible
EMPLOYE E# STATUT
Pour intégrité
référentielle
PILOTE PL# PLNOM SAL NBHVOL
HOTESSE H# HNOM SAL RANG
Copyright Serge Miranda
Bon Schéma relationnel
Règle finale sur le schéma relationnel
R1 : « Deux relations indépendantes ne peuvent avoir la
même clé primaire sauf si l ’une est aussi clé étrangère ».
Cette double déclaration est nécessaire pour
prendre en compte la généralisation et
résoudre simplement le problème d ’interblocage
d ’initialisation.
Copyright Serge Miranda
Exercice de transformation de 2NF
en BCNF (en appliquant succesivement le théorème de décomposition)
VOL (VOL#, Jour, PL#, AV#, TYPE-VOL) -Initialisez par des tuples
-Montrez les anomalies de stockage
-Normalisez
1) VOL# TYPE-VOL
Normalisation 2NF (« dépendance partielle sur la clé »)
2) PL# AV#
Normalisation 3NF (« dépendance transitive »)
3) PL# Jour
Normalisation BCNF