Anda di halaman 1dari 96

1.

Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3. MODELE RELATIONNEL ET NORMALISATION

Version 2 - Janvier 2012

Support du chapitre 3, Modle relationnel et normalisation


de l'ouvrage Bases de donnes, J-L Hainaut, Dunod 2012.
I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3. MODELE RELATIONNEL ET NORMALISATION


Contenu

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles
3.5 Contraintes d'inclusion et cls trangres
3.6 Calcul des identifiants d'une relation
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.1 Introduction

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.1 Introduction

Le modle relationnel fait son entre dans le monde en 1970 :


Codd, E., F., A Relational Model of Data for Large Shared Data Banks, in
Comm. ACM, Vol. 13, No 6, June 1970.

= modle thorique sous la forme d'une algbre


modle abstrait : pas de dtails techniques (index, support de stockage,
volumes, temps d'accs)
structure de donnes simple (voire simpliste) : tabulaire
comprhensible par l'utilisateur final
nombre minimal de concepts
interprtation sans ambigut (interprtation mathmatique)
pourrait mme faire l'objet d'une implmentation !
grand succs scientifique mais indiffrence des milieux industriels !

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.1 Introduction

Un exploit rarissime en informatique : la thorie prcde l'exploitation


industrielle !
Mais l'industrie s'est cruellement venge : SQL2 puis SQL3 !

Quelle a t l'utilit de ce modle thorique ?


simplifier les modles de bases de donnes
diffuser et populariser le concept de base de donnes
comprendre les problmes fondamentaux des modles de donnes
laborer des stratgies de conception de bases de donnes
construire des langages universels de bases de donnes
conduire des implmentations de plus en plus efficaces : SYSTEM/R
(1974), INGRES (1974), Oracle (1979), SQL/DS (1982), etc.

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.2 Le modle relationnel

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.2 Le modle relationnel - Les concepts


Deux concepts de base :
le domaine de valeurs = ensemble prdfini de valeurs simples
la relation = partie du produit cartsien de domaines
et c'est tout ?

Ben oui, c'est ( peu prs) tout !


domaines : CHAINE, PRODUIT, PRIX
relation : OFFRE(CHAINE, PRODUIT, PRIX) CHAINE X PRODUIT X PRIX

domaines : string, number


relation : OFFRE(CHAINE: string, PRODUIT: string, PRIX: number)
schma

I. Concepts des bases de donnes

attributs

Bases de donnes J-L Hainaut 2012

contenu

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.2 Le modle relationnel - Les concepts

Remarque : une relation est un ensemble de lignes (ou n-uplets)


Donc :
l'ordre des lignes est indiffrent
les lignes sont distinctes
En outre :
les attributs sont obligatoires (pas de valeur null)

Donc, une table n'est pas une relation mais une plus ou moins bonne
approximation technique d'une relation.

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.2 Le modle relationnel - Les oprateurs algbriques

Comment interroger ces donnes (domaines et relations) ?


En construisant d'autres domaines et relations au moyen d'oprateurs.

Oprateurs ensemblistes : union, intersection, diffrence

Oprateurs relationnels : projection, jointure, slection

On peut montrer que ces oprateurs sont suffisants pour exprimer toutes les
donnes calculables partir d'une base de donnes relationnelle (sauf
quelques dtails : arithmtique, agrgation, rcursivit). Equivalent la

logique des prdicats du 1er ordre.

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.2 Le modle relationnel - Les oprateurs algbriques

support des exemples

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

10

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.2 Le modle relationnel - Projection d'une relation

Expression algbrique de la projection


NIVEAU-des-PRIX = OFFRE[PRODUIT,PRIX]

Expression SQL
select distinct PRODUIT,PRIX
from
OFFRE

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

11

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.2 Le modle relationnel - Jointure de relations

Expression algbrique de la jointure


OFFRE-VILLE = OFFRE(CHAINE)* IMPLANTATION(CHAINE)
OFFRE-VILLE = OFFRE * IMPLANTATION

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

12

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.2 Le modle relationnel - Jointure de relations

Expression algbrique de la jointure


OFFRE-VILLE = OFFRE(CHAINE)* IMPLANTATION(CHAINE)
OFFRE-VILLE = OFFRE * IMPLANTATION

Expression SQL
select O.CHAINE,PRODUIT,PRIX,VILLE
from
OFFRE O,IMPLANTATION I
where O.CHAINE = I.CHAINE

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

13

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.2 Le modle relationnel - Slection de lignes

Expression algbrique de la slection


OFFRE-BUDGET = OFFRE(PRIX < 5)

Expression SQL
select *
from
OFFRE
where PRIX < 5

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

14

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.2 Le modle relationnel - Combinaison d'oprateurs

Expression algbrique
PRODUIT-VILLE = (OFFRE(PRIX < 5)* IMPLANTATION)[PRODUIT,VILLE]

Expression SQL
select
from
where
and

I. Concepts des bases de donnes

PRODUIT, VILLE
OFFRE O,IMPLANTATION I
O.CHAINE = I.CHAINE
PRIX < 5

Bases de donnes J-L Hainaut 2012

15

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.2 Le modle relationnel - Autres oprateurs

L'algbre relationnelle comporte traditionnellement quelques oprateurs


supplmentaires :
complmentaire (ce qui n'est pas dans une relation)
le produit relationnel (jointure sans condition)
division relationnelle (exprime le quantificateur pour tout)
renommage (pour lever certaines ambiguts dans les expressions)
etc.
Intrt mineur dans le cadre de ce cours

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

16

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.3 Identifiants

Dans le langage courant, on parle plutt de cl (ou key)


Problme : unique key, secondary key, superkey, foreign key, access key, record
key, alternate record key, relative key, sequence key, encryption key, user key,

privacy key, master key, public key, concatenated key, hierarchical key, prefix key,
sort key, etc.

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

17

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.3 Identifiants

Identifiant : sous-ensemble des attributs tel quil ne peut exister aucun moment
plus dune ligne possdant les mmes valeurs de ces attributs

Quelques proprits :
identifiant minimal
tout ensemble d'attributs dont une partie stricte est un identifiant est aussi un
identifiant (mais non minimal)
l'ensemble des attributs d'une relation est un identifiant (car . . .)
plusieurs identifiants minimaux peuvent coexister dans une relation

un attribut peut appartenir plusieurs identifiants


il est possible de calculer automatiquement les identifiants d'une relation

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

18

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.3 Identifiants - Exemples

VENTE(ARTICLE, MAGASIN, PRIX, ...)

VENTE'(ARTICLE, MAGASIN, PRIX, ...)

VENTE"(ARTICLE, MAGASIN, PRIX, ...)

EMPLOYE(MATR, NSS, NOM, ADRESSE)

HORAIRE(PROF, HEURE, LOCAL)


id: PROF,HEURE
id: HEURE,LOCAL

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

19

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.4 Dpendances fonctionnelles

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

20

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.4 Dpendances fonctionnelles

Dpendance fonctionnelle :

contrainte d'intgrit trs importante du modle relationnel


proche de l'identifiant mais plus prcis

la base de la thorie de la normalisation

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

21

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.4 Dpendances fonctionnelles

Quelle que soit la ligne,


une mme valeur de PRODUIT est toujours associe la mme valeur de PRIX

On note : ACHAT: PRODUIT PRIX


PRODUIT PRIX

PRODUIT est un identifiant de ACHAT[PRODUIT, PRIX]

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

22

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.4 Dpendances fonctionnelles

Dfinition standard :
Dans une relation R(A,B,C,D), il existe une dpendance fonctionnelle A B si,
tout instant, deux lignes de R qui ont mme valeur de A ont aussi mme valeur de B.

PRODUIT dtermine (fonctionnellement) PRIX ;


PRIX dpend (fonctionnellement) de PRODUIT ;
PRODUIT est le dterminant et PRIX est le dtermin de la dpendance
fonctionnelle.

Dterminant et dtermin peuvent tre multicomposants


B C,D
B,C D

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

23

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.4 Dpendances fonctionnelles - Exemple ( ne pas imiter !)

COM(NCLI, NOM, ADRESSE, NCOM, DATE, NPRO, QTE, PRIX-U)


NCOM NCLI
toute commande est mise par un client
NCLI NOM
tout client a un nom
NCLI ADRESSE
tout client a une adresse
NCOM DATE
toute commande est passe une date
NCOM, NPRO QTE dans toute commande, il y a une quantit par produit
NPRO PRIX-U
tout produit a un (et un seul) prix unitaire
NCLI

NCOM

DATE
QTE

NOM ADRESSE NPRO

I. Concepts des bases de donnes

PRIX-U

Bases de donnes J-L Hainaut 2012

24

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.4 Dpendances fonctionnelles - Graphe ADF

COM(NCLI, NOM, ADRESSE, NCOM, DATE, NPRO, QTE, PRIX-U)


NCOM NCLI
toute commande est mise par un client
NCLI NOM
tout client a un nom
NCLI ADRESSE
tout client a une adresse
NCOM DATE
toute commande est passe une date
NCOM, NPRO QTE dans toute commande, il y a une quantit par produit
NPRO PRIX-U
tout produit a un (et un seul) prix unitaire
NCLI

NCOM

DATE
QTE

NOM ADRESSE NPRO

DF interne

NCLI

NOM

ADRESSE

PRIX-U

NCOM

NPRO

DATE

attribut interne

QTE

attribut externe

PRIX-U

DF externe
= graphe ADF de la relation

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

25

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.4 Dpendances fonctionnelles - Graphe ADF

attribut externe : non dterminant


attribut interne : dterminant

DF externe :

dont le dtermin est un attribut externe

DF interne :

dont le dtermin est un attribut interne


NCLI

NCOM

DATE
QTE

NOM ADRESSE NPRO

DF interne

NCLI

NOM

ADRESSE

PRIX-U

NCOM

NPRO

DATE

attribut interne

QTE

attribut externe

PRIX-U

DF externe

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

26

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.4 Dpendances fonctionnelles - Proprits

Les rgles d'infrence d'Armstrong


1.

Rflexivit :
Si L est un sous-ensemble de K, alors on a K L.
Un ensemble dattributs dtermine chacun de ses sous-ensembles.
= DF triviales.

2.

Augmentation :
Si K B, alors on a aussi KA B.
Si on ajoute un attribut un dterminant, on obtient encore une DF.

3.

Additivit :
Si on a K A et L B, on a aussi KL AB.
Si on additionne (= union) respectivement les dterminants et les dtermins de deux
DF, on obtient encore une DF.

NCLI

NCOM

DATE
QTE

NOM ADRESSE NPRO

I. Concepts des bases de donnes

PRIX-U

Bases de donnes J-L Hainaut 2012

27

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.4 Dpendances fonctionnelles - Proprits

4.

Dcomposabilit :
Si on a K AB, on a aussi K A et K B.
Pour toute DF, il existe une DF entre son dterminant et chaque attribut de son
dtermin.

5.

Transitivit :
Si on a K L et L M, on a aussi K M.
La composition de deux DF est encore une DF.
NCLI

NCOM

DATE
QTE

NOM ADRESSE NPRO

6.

PRIX-U

Pseudo-transitivit :
Si on a K L et LA M, on a aussi KA M.

Autres rgles d'infrence : prservation vis vis des oprateurs, et notamment,


7.

Prservation dans la projection :


Si K L existe dans R, elle existe aussi dans toute projection de R qui inclut les
attributs de K et L.

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

28

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.4 Dpendances fonctionnelles - Proprits

En ralit, les proprits 1, 2 et 5 sont suffisantes. Les autres (3, 4, 6) s'en


dduisent.
NCLI

NCOM

DATE
QTE

NOM ADRESSE NPRO

I. Concepts des bases de donnes

PRIX-U

Bases de donnes J-L Hainaut 2012

29

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.4 Dpendances fonctionnelles - Proprits

ORDRE (FOURN, NPRO, NCOM, ADR, REGION, QTE)


FOURN ADR, NPRO
ADR REGION
NCOM, NPRO QTE

On a aussi, en appliquant les rgles d'infrence :


NCLI

NCOM

DATE
QTE

NOM ADRESSE NPRO

PRIX-U

FOURN, NCOM FOURN, NCOM

ADR,NCOM REGION
ADR, NCOM, NPRO REGION, QTE
FOURN NPRO
FOURN REGION

FOURN, NCOM QTE


ORDRE[FOURN, NPRO, REGION] : FOURN NPRO, REGION

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

30

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.4 Dpendances fonctionnelles - Proprits

DF minimale

dont le dterminant est minimal

DF lmentaire

dont le dtermin ne comporte qu'un seul attribut

DF de base

doit tre donne

DF drive

est calculable partir des DF de base l'aide des rgles


d'infrence
NCLI

NCOM

DATE
QTE

NOM ADRESSE NPRO

I. Concepts des bases de donnes

PRIX-U

Bases de donnes J-L Hainaut 2012

31

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.4 Dpendances fonctionnelles - DF de base et drives

COLIS(NCOL, NCLI, DATE, NOM, ADRESSE)


NCOL NCLI
df1
NCOL DATE

df2
NCLI NOM
NCLI

NCOM

df3

DATE
QTE

NOM ADRESSE NPRO

PRIX-U

On aNCLI,
aussi,
par
transitivit
:
DATE
ADRESSE

DF de base

df4

NCOL NOM

df5

NCOL ADRESSE

DF drives

df6
NCLI
NCOL

NOM
ADRESSE

DATE

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

32

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.4 Dpendances fonctionnelles - Fermeture et couvertures

Fermeture d'un ensemble F de DF


ensemble de toutes les DF qu'il est possible de driver partir de F
l'aide des rgles d'Armstrong; inclut F; il n'existe qu'une seule fermeture;
toute l'information
possible

Couverture d'un ensemble F de DF


tout ensemble partir duquel il est possible de driver F l'aide des
rgles d'Armstrong;
NCLI

NCOM

DATE
QTE

NOM ADRESSE NPRO

PRIX-U

Couverture minimale d'un ensemble F de DF


couverture de F telle qu'aucun de ses sous-ensembles strict n'est une
couverture de F; il peut exister plusieurs couvertures minimales;

l'information
minimale

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

33

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.4 Dpendances fonctionnelles - Circuit de DF

Le graphe ADF d'une relation peut prsenter


un ou plusieurs circuits

INSCRIPTION(ETUDIANT, MATIERE, PROF)


PROF MATIERE
ETUDIANT, MATIERE PROF

NCLI

NCOM

DATE
QTE

NOM ADRESSE NPRO

PRIX-U

ETUDIANT
PROF

MATIERE
pas d'attributs externes !

I. Concepts des bases de donnes

frquent
mais problmes garantis !

Bases de donnes J-L Hainaut 2012

34

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.5 Contraintes d'inclusion et cls trangres

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

35

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.5 Contraintes d'inclusion et cls trangres

OFFRE[CHAINE] IMPLANTATION[CHAINE]

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

36

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.5 Contraintes d'inclusion et cls trangres


Si les attributs cibles constituent un identifiant de leur relation :
= contrainte rfrentielle

COMMANDE[NCLI] CLIENT[NCLI]

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

37

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.5 Contraintes d'inclusion et cls trangres


Si les attributs cibles constituent un identifiant de leur relation :
= contrainte rfrentielle

COMMANDE[NCLI] CLIENT[NCLI]
DETAIL[NCOM] COMMANDE[NCOM]
COMMANDE[NCOM] DETAIL[NCOM]
COMMANDE[NCOM] = DETAIL[NCOM]

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

38

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.5 Contraintes d'inclusion et cls trangres - Proprits

1. Rflexivit :
R[A] R[A]

2. Dcomposabilit :
Si on a S[A,B] R[A,B], on a aussi S[A] R[A] et S[B] R[B]
3. Transitivit :
Si on a T[A] S[A] et S[A] R[A], on a aussi T[A] R[A]
4. Propagation des DF :
Si on a S[A,B] R[A,B] et R: A B, on a aussi S: A B.
5. Propagation dans la projection :
Si on a S[A,B] R[A,B] et S=S[A,B,C], on a aussi S[A,B] R[A,B]

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

39

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.5 Contraintes d'inclusion et cls trangres - Proprits

COMPTE[NCLI] CLIENT[NCLI]
COMPTE[NFOURN] FOURNISSEUR[NFOURN]
ACHAT[NCLI,NFOURN] COMPTE[NCLI,NFOURN]

?
COMPTE[NCLI] CLIENT[NCLI]
COMPTE[NFOURN] FOURNISSEUR[NFOURN]
ACHAT[NCLI] CLIENT[NCLI]
ACHAT[NFOURN] FOURNISSEUR[NFOURN]

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

40

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.6 Calcul des identifiants d'une relation

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

41

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.6 Calcul des identifiants d'une relation - Introduction

Comment dterminer les identifiants d'une relation ?

Intuitivement, par observation du domaine d'application :


NCLI est l'identifiant de la relation CLIENT
NCOM est l'identifiant de la relation COMMANDE
NPRO est l'identifiant de la relation PRODUIT
Facile ! Mais quel est l'identifiant de la relation suivante ?
ORDRE (FOURN, NPRO, NCOM, ADR, REGION, QTE)
FOURN ADR, NPRO
ADR REGION
NCOM, NPRO QTE

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

42

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.6 Calcul des identifiants d'une relation - Introduction

Comment dterminer les identifiants d'une relation ?

Les identifiants d'une relation R ne se choisissent pas,


ils se calculent partir des dpendances fonctionnelles de R

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

43

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.6 Calcul des identifiants d'une relation - Introduction

Deux observations

tout identifiant dune relation dtermine chaque attribut de cette relation

tout groupe dattributs qui dtermine chacun des attributs de la relation,


est un identifiant de la relation.

CLIENT (NCLI, NOM, ADRESSE)


NCLI NCLI, NOM, ADRESSE
NCLI NCLI, NOM, ADRESSE
CLIENT (NCLI, NOM, ADRESSE)

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

44

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.6 Calcul des identifiants d'une relation - Introduction

Deux proprits fondamentales


1.

Lensemble des attributs dune relation est un identifiant de cette relation.


{A,B,C} est un identifiant de R(A,B,C).

2.

Soit J un identifiant multi-attributs de R.


Soit K un sous-ensemble de J
Soit A
C un
un attribut
attribut de
de JJ extrieur
extrieur K.
K.
Si K A,
C, alors
alors JJ -- {A}
{C} est
est aussi
aussi un
un identifiant
identifiant de
de R.
R.
J

J - {C}
K

Exemple
Si R(A,B,C,D) et B C, alors R(A,B,C,D).

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

45

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.6 Calcul des identifiants d'une relation - Identifiant unique

Procdure lmentaire (Proc1)


1.

Un premier identifiant I est constitu de lensemble des attributs de la relation.

2.

On recherche dans I un attribut A externe; on retire A de I.

3.

On rpte ltape 2 jusqu ce quil ne soit plus possible de retirer dattribut I.

4.

I est un identifiant de la relation.

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

46

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.6 Calcul des identifiants d'une relation - Identifiant unique (application)


Application
COM(NCLI, NOM, ADRESSE, NCOM, DATE, NPRO, QTE, PRIX-U)
NCOM NCLI
NCLI NOM
NCLI ADRESSE
NCOM DATE
NCOM, NPRO QTE
NPRO PRIX-U

NCLI

NCOM

DATE
QTE

NOM

I. Concepts des bases de donnes

ADRESSE

NPRO

PRIX-U

Bases de donnes J-L Hainaut 2012

47

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.6 Calcul des identifiants d'une relation - Identifiant unique (application)


Application

NCLI

NCOM

DATE
QTE

NOM

ADRESSE

NCLI

NPRO

id(COM) = {NCLI, NOM, ADRESSE,


NCOM, DATE, NPRO, QTE, PRIX-U}

PRIX-U

NCOM

id(COM) = {NCLI, NCOM, NPRO}


NPRO

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

48

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.6 Calcul des identifiants d'une relation - Identifiant unique (application)


Application

NCOM

id(COM) = {NCOM, NPRO}


NPRO

COM(NCLI, NOM, ADRESSE, NCOM, NPRO, DATE, QTE, PRIX-U)

NCLI

NCOM

DATE
1

QTE
1

NOM

I. Concepts des bases de donnes

ADRESSE

NPRO

PRIX-U

Bases de donnes J-L Hainaut 2012

49

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.6 Calcul des identifiants d'une relation - Identifiants multiples


Est-ce que a marche si la relation possde plus d'un identifiant ?

COURS(MATIERE, ETUDIANT, PROF, CLASSE, TEL)


ETUDIANT CLASSE
PROF TEL
PROF MATIERE
ETUDIANT,MATIERE PROF

ETUDIANT

CLASSE
PROF

TEL

MATIERE

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

50

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.6 Calcul des identifiants d'une relation - Identifiants multiples


Est-ce que a marche si la relation possde plus d'identifiant ?

ETUDIANT

CLASSE
PROF

id(COURS) = {ETUDIANT, PROF, MATIERE


CLASSE, TEL}

TEL

MATIERE

ETUDIANT

id(COURS) = {ETUDIANT, PROF, MATIERE}

PROF

pas minimal !

MATIERE

Circuit de DF !

... et ensuite ?

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

51

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.6 Calcul des identifiants d'une relation - Identifiants multiples

La rgle 2 n'est pas applicable aux attributs d'un circuit !


2.

On recherche dans I un attribut A externe; on retire A de I.

La procdure Proc1 ne trouve qu'un unique identifiant non minimal

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

52

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.6 Calcul des identifiants d'une relation - Identifiants multiples

On reprend la proprit 2, toujours valable


2.

Soit J un identifiant multi-attributs de R.


Soit K un sous-ensemble de J
Soit A un attribut de J extrieur K.
Si K A, alors J - {A} est aussi un identifiant de R.

ETUDIANT
PROF
MATIERE

composants de l'id dtermins


par d'autres composant de l'id
mais dterminants

id(COURS) = {ETUDIANT, PROF, MATIERE}

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

53

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.6 Calcul des identifiants d'une relation - Identifiants multiples

ETUDIANT
PROF
MATIERE

ETUDIANT

ETUDIANT
PROF

id(COURS)
= {ETUDIANT, MATIERE}

MATIERE

MATIERE

ETUDIANT

ETUDIANT
PROF

PROF

id(COURS)
= {ETUDIANT, PROF}

MATIERE

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

54

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.6 Calcul des identifiants d'une relation - Identifiants multiples

Procdure gnrale (Proc2)


1.

Un identifiant est obtenu par application de la procdure Proc1

2.

Si cet identifiant nest le sige daucune DF, la procdure est termine

3.

Sinon, le graphe ADF rsiduel comporte un ou plusieurs circuits. Pour chaque


attribut A appartenant un circuit, on applique ltape 4

4.

On retire A du graphe ADF ainsi que toutes les DF dans lesquelles il apparat.
On applique au graphe rsultant la procdure Proc2

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

55

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.7 Dcomposition d'une relation

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

56

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.7 Dcomposition d'une relation - Thorme de dcomposition

Nous avons oubli une proprit trs importante des DF !


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

R = R[A,B] * R[A,C,D]
= thorme de dcomposition

La projection d'une relation selon une DF prserve les donnes


(puisqu'on peut les retrouver par une jointure)

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

57

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.7 Dcomposition d'une relation - Thorme de dcomposition

On peut donc, sous certaines conditions, remplacer une relation


par ses projections

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

R(dterminant, dtermin, rsidu)

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

R1(A,B)
R2(A,C,D)

pas quivalent

R1(dterminant, dtermin)
R2(dterminant, rsidu)

R1(A,B)
R2(A,C,D)
R1[A] = R2[A]
quivalence stricte

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

58

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.7 Dcomposition d'une relation - Thorme de dcomposition


En fait, quelle relation entre R1[A] et R2[A] ?
R1(A,B)
R2(A,C,D)
R1[A] R2[A]

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

R1(A,B)
R2(A,C,D)
R1[A] = R2[A]

R1(A,B)
R2(A,C,D)
R2[A] R1[A]
*

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

59

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.7 Dcomposition d'une relation - Exemples

ACHAT (CLIENT, PRODUIT, PRIX)


PRODUIT PRIX

ACHAT (CLI, PRO, MAG, PRIX)


PRO, MAG PRIX

COM(NCOM, CLI, PRO, QTE)

I. Concepts des bases de donnes

TARIF (PRODUIT, PRIX)


ACHAT (CLIENT, PRODUIT)
ACHAT[PRODUIT] TARIF[PRODUIT]

TARIF (PRO,MAG, PRIX)


ACHAT (CLI,PRO,MAG)
ACHAT[PRO, MAG] TARIF[PRO, MAG]

PASSE (NCOM, CLI)


COM (NCOM,PRO,QTE)
PASSE[NCOM] = COM[NCOM]

Bases de donnes J-L Hainaut 2012

60

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.7 Dcomposition d'une relation - Remarque

La dcomposition ...

ACHAT (CLI, PRO, PRIX)


PRO PRIX

R1 (CLI, PRIX)
R2 (CLI, PRO)
R1[CLI] = R2[CLI]

. . . ne suit pas la rgle mais est parfaitement valide. Cependant, elle


n'est pas rversible. En toute gnralit :
ACHAT R1 * R2

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

61

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.7 Dcomposition d'une relation - Exemples


ACHAT[CLI,PRO]

ACHAT (CLI, PRO, PRIX)


PRO PRIX

CLI
Andr
Marc
Marc
Marc
Andr

ACHAT
PRO
sucre
sucre
sel
savon
sel

PRIX
45
45
18
18
18

CLI-PRO
CLI
PRO
Andr
sucre
Marc
sucre
Marc
sel
Marc
savon
Andr
sel

ACHAT[CLI,PRIX]

CLI-PRIX
CLI
PRIX
Andr
45
Marc
45
Marc
18
Andr
18

I. Concepts des bases de donnes

CLI-PRO*CLI-PRIX
CLI-PRO-PRIX-3
CLI
PRO
PRIX
Andr
sucre
45
Andr
sucre
18
Marc
sucre
45
Marc
sucre
18
Marc
sel
45
Marc
sel
18
Marc
savon
45
Marc
savon
18
Andr
sel
45
Andr
sel
18

Bases de donnes J-L Hainaut 2012

62

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

63

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - 1re forme normale

Avertissement
On ne considre que les relation "plates",
dont les attributs sont dfinis sur des domaines simples, forms de valeurs lmentaires.

valeur lmentaire

Elles sont dites en 1re forme normale (1FN)

Une relation dfinie sur des domaines complexes est dite non en 1re forme normale
(N1FN; en anglais : NFNF ou NF2 )

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

64

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Observation


ACHAT(CLIENT, PRODUIT, PRIX)
PRODUIT PRIX

Observation : combien de fois chaque fait lmentaire est-il rpt ?


Andr a achet du sucre : 1 fois

le sucre cote 2,2 :

2 fois

Marc a achet du sucre :

1 fois

le sel cote 1,4 :

2 fois

Marc a achet du sel :

1 fois

le savon cote 1,4 :

1 fois

Anne a achet du savon :

1 fois

le pain cote 2,2 :

0 fois

Anne a achet du sel :

1 fois

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

redondance
et lacunes !

65

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Observation

Origine du problme
La relation est une structure trop complexe qui reprsente deux types de faits
indpendants

On rsout le problme en dcomposant ACHAT de manire isoler les deux types


de faits

ACHAT (CLIENT, PRODUIT, PRIX)


PRODUIT PRIX

I. Concepts des bases de donnes

TARIF (PRODUIT, PRIX)


ACHAT' (CLIENT, PRODUIT)
ACHAT'[PRODUIT] TARIF[PRODUIT]

Bases de donnes J-L Hainaut 2012

66

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Observation

Observations
1. La redondance est lie la DF PRODUIT PRIX

2. La DF PRODUIT PRIX a ceci de particulier que son dterminant n'est pas un


identifiant de ACHAT

3. La dcomposition selon la DF litigieuse PRODUIT PRIX rgle le problme;


on isole la reprsentation d'un type de faits dans une relation TARIF autonome

4. Une DF qui provoque une redondance est dite anormale

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

67

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Relation normalise

Dfinition
Une relation est normalise si

1. elle est en 1re forme normale


2. tout dterminant est un identifiant

Il existe plusieurs formes normales. Celle-ci est la forme normale de Boyce-Codd.

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

68

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Relation normalise

Les relations suivantes sont-elles normalises ?


ACHAT(CLIENT, PRODUIT, PRIX)
PRODUIT PRIX
ACHAT (CLIENT, PRODUIT, MAGASIN, PRIX)
CLIENT, PRODUIT PRIX
INSCRIPTION(ETUDIANT, MATIERE, PROF)
PROF MATIERE
ETUDIANT, MATIERE PROF
COM(NCLI, NOM, ADRESSE, NCOM, DATE, NPRO, QTE, PRIX-U)
NCOM NCLI
NCLI NOM
NCLI ADRESSE
NCOM DATE
NCOM, NPRO QTE
NPRO PRIX-U
I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

69

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'une relation


Normalisation : o en est-on ?
horticulture

modle relationnel

diagnostic

rosiers attaqus par l'odium

relation non normalise

technique

sulfate de cuivre

thorme de dcomposition

traitement

pulvrisation bouillie bordelaise

normalisation

rosiers sain

relation normalise

rsultat

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

70

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'une relation simple


Procdure de normalisation
Principe : on dcompose la relation selon une DF anormale
Deux questions :

1. Quelles DF ?
2. Dans quel ordre traite-t-on ces DF ?
1. Quelles DF ?
Les DF de base. On limine donc les DF drives.
2. Dans quel ordre traite-t-on ces DF ?
En commenant par les DF externes.

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

71

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'une relation simple


Procdure de normalisation
Proc3: Normalisation dune relation R (procdure simplifie)
1. Dessiner le graphe ADF de la relation rduit aux DF de base.
2. Calculer les identifiants minimaux.
3. Marquer les DF anormales.
4. Tant quil existe une DF anormale externe K L,
- gnrer une relation RL(K, L) et retirer L de R ;
- prciser la contrainte rfrentielle.
5. Finaliser

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

72

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'une relation simple


Application
COM(NCLI, NOM, ADRESSE, NCOM, DATE, NPRO, QTE, PRIX-U)
NCOM NCLI
NCLI NOM
NCLI ADRESSE
NCOM DATE
NCOM, NPRO QTE
NPRO PRIX-U

NCLI

NCOM

DATE
QTE

NOM

I. Concepts des bases de donnes

ADRESSE

NPRO

PRIX-U

Bases de donnes J-L Hainaut 2012

73

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'une relation simple


Application

NCLI

NCOM

1. graphe ADF rduit

DATE
QTE

NOM

ADRESSE

NPRO

PRIX-U
2. identifiant calcul

NCLI

NCOM

DATE
QTE

NOM

ADRESSE

NPRO

PRIX-U
3. DF anormales marques

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

74

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'une relation simple


Application
4. dcomposition selon DF
anormales externes
NCLI

NCOM

DATE
QTE

NOM

ADRESSE

NPRO

R4(NCOM, DATE)

PRIX-U

R1(NPRO, PRIX-U)
R2(NCLI, NOM)

I. Concepts des bases de donnes

R3(NCLI, ADRESSE)

Bases de donnes J-L Hainaut 2012

75

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'une relation simple


Application

NCLI

NCOM
QTE
NPRO

COM(NCOM, NPRO, NCLI, QTE)

R1(NPRO, PRIX-U)

R2(NCLI, NOM)
R3(NCLI, ADRESSE)
R4(NCOM, DATE)

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

76

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'une relation simple


Application
4. dcomposition selon DF
anormales externes
NCLI

NCOM
QTE
NPRO

R1(NPRO, PRIX-U)
R2(NCLI, NOM)
R3(NCLI, ADRESSE)
R4(NCOM, DATE)
R5(NCOM, NCLI)

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

77

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'une relation simple


Application

NCOM
QTE
NPRO

COM(NCOM, NPRO, QTE)

R1(NPRO, PRIX-U)
R2(NCLI, NOM)
R3(NCLI, ADRESSE)
R4(NCOM, DATE)
R5(NCOM, NCLI)

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

78

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'une relation simple


Application (finalisation)

R1(NPRO, PRIX-U)

Regroupement
selon identifiants

R1(NPRO, PRIX-U)

R2(NCLI, NOM)
R23(NCLI, NOM, ADRESSE)
R3(NCLI, ADRESSE)
R4(NCOM, DATE)
R45(NCOM, NCLI, DATE)

R5(NCOM, NCLI)
COM(NCOM, NPRO, QTE)

I. Concepts des bases de donnes

COM(NCOM, NPRO, QTE)

Bases de donnes J-L Hainaut 2012

79

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'une relation simple


Application (finalisation)

TARIF(NPRO, PRIX-U)

CLIENT(NCLI, NOM, ADRESSE)


Nom significatifs
COMMANDE(NCOM, NCLI, DATE)

DETAIL(NCOM, NPRO, QTE)

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

80

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'une relation simple


Application (finalisation)

TARIF(NPRO, PRIX-U)
CLIENT(NCLI, NOM, ADRESSE)
COMMANDE(NCOM, NCLI, DATE)
DETAIL(NCOM, NPRO, QTE)
COMMANDE[NCLI] CLIENT[NCLI]
DETAIL[NCOM] = COMMANDE[NCOM]
DETAIL[NPRO] TARIF[NPRO]

I. Concepts des bases de donnes

Contraintes d'inclusion

Bases de donnes J-L Hainaut 2012

81

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'une relation simple


Procdure de normalisation (complte)
Proc3: Normalisation dune relation R (procdure simplifie)
1. Dessiner le graphe ADF de la relation rduit aux DF de base.
2. Calculer les identifiants minimaux.
3. Marquer les DF anormales.
4. Tant quil existe une DF anormale externe K L,
- gnrer une relation RL(K, L) et retirer L de R ;
- prciser la contrainte rfrentielle.
5. Finaliser :
- regrouper selon mme identifiant ;
- noms significatifs;
- ajuster contraintes rfrentielles (dont les cls trangres).

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

82

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'un noyau irrductible


Rien n'est simple, tout se complique !

INSCR(MAT, ETUD, PROF, CLASSE, TEL)


ETUD CLASSE
PROF TEL
PROF MAT
ETUD, MAT PROF

ETUD

CLASSE
PROF

TEL

MAT

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

83

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'un noyau irrductible

1. le graphe ADF est rduit

ETUD

CLASSE
PROF

TEL

MAT

ETUD

2. les identifiants sont calculs

CLASSE
PROF

TEL

MAT
3. les DF anormales sont marques

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

84

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'un noyau irrductible

ETUD

4. dcomposition selon DF
anormales externes

CLASSE
PROF

TEL

MAT

R1(ETUD, CLASSE)

R2(PROF, TEL)

ETUD
R1(ETUD, CLASSE)
R2(PROF, TEL)

PROF
MAT

DF anormale
mais pas externe !!

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

85

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'un noyau irrductible


Que faire d'un noyau irrductible mais anormal ?
INSCR(MAT, ETUD, PROF)
PROF MAT
MAT, ETUD PROF

ETUD
PROF
MAT

Mauvaise surprise : il n'y a pas de solutions totalement satisfaisantes !


Trois solutions
1. la peste
2. le cholra
3. la peste et le cholra

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

86

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'un noyau irrductible


La peste
On conserve le noyau tel quel.
INSCR(MAT, ETUD, PROF)
PROF MAT
MAT, ETUD PROF

INSCR(MAT, ETUD, PROF)


PROF MAT

Observations :

I. Concepts des bases de donnes

1. on conserve la redondance due la DF anormale


2. toutes les DF sont conserves
3. en SQL, la DF anormale peut tre gre par des dclencheurs

Bases de donnes J-L Hainaut 2012

87

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'un noyau irrductible


Le cholra
On force la dcomposition en affaiblissant la condition "DF anormale externe".
INSCR(MAT, ETUD, PROF)
PROF MAT
MAT, ETUD PROF
DF anormale (interne)

COURS(PROF, MAT)
INSCR(ETUD, PROF)
INSCR[PROF] COURS[PROF]
COURS*INSCR: MAT, ETUD PROF

Observations :

I. Concepts des bases de donnes

1. on limine la redondance due la DF anormale


2. une DF est perdue
3. nouvelle contrainte trs complexe (DF sur une vue !)
4. en SQL, la DF perdue peut tre gre par des dclencheurs
Bases de donnes J-L Hainaut 2012

88

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'un noyau irrductible


La peste et le cholra
On fusionne les deux solutions prcdentes.
INSCR(MAT, ETUD, PROF)
PROF MAT
MAT, ETUD PROF

COURS(PROF, MAT)
INSCR(MAT, ETUD, PROF)
INSCR[PROF, MAT] COURS[PROF, MAT]

Observations :

I. Concepts des bases de donnes

1. on conserve la redondance due la DF anormale


2. on introduit une redondance supplmentaire (COURS)
3. toutes les DF sont conserves
4. en SQL, la contrainte d'inclusion peut s'exprimer simplement
Bases de donnes J-L Hainaut 2012

89

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'un noyau irrductible


La peste et le cholra
La contrainte d'inclusion peut s'exprimer
simplement et compltement en SQL2 pur (sans triggers)
COURS(PROF, MAT)
INSCR(MAT, ETUD, PROF)
INSCR[PROF, MAT] COURS[PROF, MAT]

create table COURS(PROF char(20) not null,


MAT char(20) not null,
primary key (PROF),
unique(PROF,MAT))
create table INSCR(MAT char(20) not null,
ETUD char(20) not null,
PROF char(20) not null,
primary key (MAT,ETUD),
foreign key (PROF,MAT) references COURS(PROF,MAT));
I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

pas glorieux
mais efficace
90

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'un noyau irrductible


Synthse
INSCR(MAT, ETUD, PROF)
PROF MAT

INSCR(MAT, ETUD, PROF)


PROF MAT
MAT, ETUD PROF

COURS(PROF, MAT)
INSCR(ETUD, PROF)
INSCR[PROF] COURS[PROF]
COURS*INSCR: MAT, ETUD PROF
COURS(PROF, MAT)
INSCR(MAT, ETUD, PROF)
INSCR[PROF, MAT] COURS[PROF, MAT]

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

91

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'un noyau irrductible


La littrature a donn ces formes des noms moins agressifs

Trois solutions
3e forme normale (3FN)

1. la peste
2. le cholra

forme normale de Boyce-Codd (FNBC)

3. la peste et le cholra
forme normale cl lmentaire (FNCE)

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

92

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Normalisation d'une relation


Normalisation : rsum

il existe une DF anormale


modle relationnel
diagnostic

relation non normalise

technique

thorme de dcomposition

traitement

normalisation

rsultat

la relation est normalise

la dcomposition selon une DF


est sans perte de donnes

on dcompose la relation
selon les DF anormales

il n'existe plus de DF anormales

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

93

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

3.1 Introduction
3.2 Le modle relationnel
3.3 Identifiants
3.4 Dpendances fonctionnelles

5. Les SGBD

3.5 Contraintes d'inclusion


3.6 Calcul des identifiants
3.7 Dcomposition d'une relation
3.8 Normalisation d'une relation

3.8 Normalisation d'une relation - Autres formes normales


La thorie de la normalisation se rduit-elle cela ?

On relve (au moins) 7 formes normales


1. 1re forme normale (relation plate)
2. 2e forme normale (pr-3e forme normale)
3. 3e forme normale (la peste)
4. forme normale cl lmentaire (la peste et le cholra)
5. forme normale de Boyce-Codd (le cholra)
6. 4e forme normale (base sur les dpendances multivalues)
7. 5e forme normale (base sur les dpendances de jointure)
gnralisent des DM
gnralisent des DF

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

94

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

5. Les SGBD

Fin du module 3

Module(s) suivant(s) :
Partie I, mod. 4 : Implmentation des structures de donnes
ou
Partie II, mod. 1 : Le langage SQL DDL

I. Concepts des bases de donnes

Bases de donnes J-L Hainaut 2012

95

1. Motivation et introduction
2. Concepts des bases de donnes
3. Modle relationnel et normalisation
4. Implmentation des structures de donnes

I. Concepts des bases de donnes

5. Les SGBD

Bases de donnes J-L Hainaut 2012

96

Anda mungkin juga menyukai