You are on page 1of 12

Un support de cours magistraux de Bases de donnes

Modle relationnel : formes normales


Pierre Crescenzo

retour au sommaire
1. Dpendance fonctionnelle

Dfinition : Une dpendance fonctionnelle, note DF, indique que la valeur d'un ou plusieurs attributs est associe au plus une valeur d'un ou plusieurs autres attributs. Soit la relation R(X, Y, Z) avec X, Y et Z des ensembles d'attributs, seul Z pouvant tre vide. La notation X Y signifie que Y (appel but de la DF) est fonctionnellement dpendant de X (appel source de la DF). En d'autres termes, Y dpend de X.
R

Plus formellement : x, x, y, y, z et z tels que x,


y)

y, z R

et x,

y, z R,

on a (X

R Y) (x = x y =

Par exemple, voici une relation Anniversaire(numro


numro 1 amie Sylvie Dupont ville Nice cadeau Fleurs

: Entier, amie : Chane, ville : Chane, cadeau : Chane)

2 4 12 14

Sylvie Dupont

Nice

Collier

Corinne Durand Menton Fleurs Juliette Dubois Nice Livre

Corinne Durand Menton Livre

On peut dterminer les DF suivantes pour cette relation :


o o numro Anniversaire amie, ville, cadeau amie Anniversaire ville

2. Proprits de dpendance fonctionnelle

Soient W, X, Y et Z des ensembles d'attributs non vides d'une relation R. Voici quelques proprits remarquables : Rflexivit
(X W) (W R X)

Augmentation
(W R X) (W, Y R X, Y)

Transitivit
(W R X X R Y) (W R Y)

Union
(W R X W R Y) (W R X, Y)

Pseudo-transitivit
(W R X X, Y R Z) (W, Y R Z)

Dcomposition
(W R X Y X) (W R Y)

3. Dfinitions pour les dpendances fonctionnelles

Soient X, Y et Z des ensembles d'attributs non vides d'une relation R avec X

R Y.

Cette DF est alors dite :

triviale si et seulement si Y X lmentaire si et seulement si Z tel que Z X on n'a pas Z Y canonique si et seulement si Y n'a qu'un seul attribut directe si et seulement si X Y est lmentaire et Z tel que Z
R R

X Z Y

on n'a pas X

R Z Z R Y

4. Cl candidate

Rappel : Toute relation a au moins une cl candidate. (cf. chapitre 3 Modle relationnel : concepts) Soit une relation R. si R ne contient qu'un seul attribut Cet attribut a une valeur distincte pour chaque occurrence et forme alors l'unique cl candidate de R. si R contient plusieurs attributs Soient X et Y deux ensembles non vides disjoints d'attributs de R tels que X Y = R. Si on a X Y avec X minimal, alors X est une cl candidate de R (il peut y en avoir plusieurs). Si aucun X ne peut tre trouv ainsi, toutes les occurrences de R sont distinctes et l'unique cl candidate de R est forme de tous ses attributs.
R

Indication : Pour vrifier que X est minimal, il faut contrler qu'il n'est pas possible de prendre un attribut dans X pour le mettre dans Y tout en maintenant X Y.
R

5. Pourquoi normaliser ?

La normalisation est utile :


o

pour limiter les redondances de donnes,

o o o

pour limiter les pertes de donnes, pour limiter les incohrences au sein des donnes et pour amliorer les performances des traitements.

6. Premire forme normale

Dfinition : Une relation est en premire forme normale si et seulement si tous ses attributs ont des valeurs simples (non multiples, non composes).
o o

La premire forme normale est note 1NF (1FN en franais). Si besoin est, on dcompose les attributs ou la relation pour respecter la 1NF.
rueEtVille, prnomEnfants)

Par exemple, Pers1(nom, prnom, nombreEnfants) est en 1NF.

n'est pas en 1NF alors que Pers2(nom,

prnom,

La 1NF ne rsout pas tout car aucune DF n'est prise en compte. Par exemple, Commande(codeClient, codeArticle, client, article) est en 1NF. Il est cependant possible d'y trouver les occurrences 20, 5, Dupont, Table, 21, 5, Dupont, Table et 22, 5, Durand, Chaise, ce qui est incohrent.
7. Exercices de passage en 1NF

1. Passez les relations suivantes en 1NF. Donnez le contenu de la (des) relation(s) dduite(s). 1.
numro 100 110 200 avion Airbus A320 A1247 Boeing 747 Boeing 737 B1248 B323

221 222

Airbus A330 A100 Boeing 747 B222

2. Vol 3.
type commandants Bernard Airbus A320 Gilbert Josphine Gilbert Boeing 747 Marianne Boeing 737 Gilbert

4. Avion 2. Passez les relations suivantes en 1NF. 1. Personne1(numroScu, nom, prnom, adresse, prnomEnfants, 2. Personne2(nom, prnom, natureDiplmes, lieuExamenDiplmes,
8. Deuxime forme normale
geEnfants) dateExamenDiplmes, prnomEtgeEnfants)

Dfinition : Soient C une cl candidate de R et A un attribut de R. R est en deuxime forme normale si et seulement si elle est en 1NF et pour tout A tel que A n'appartient pas C, on a C A lmentaire (cf. dfinition d'lmentaire ci-dessus).
R

La deuxime forme normale est note 2NF (2FN en franais).

o o

o o

Un relation peut tre en 2NF par rapport une de ses cls candidates et ne pas l'tre par rapport une autre. Pour rechercher une 2NF, il est au pralable ncessaire de dterminer toutes les DF et de choisir une cl candidate. Il est recommand de trouver toutes les cls candidates afin de ne pas en laisser passer une plus intressante qu'une autre. Si besoin est, on dcompose les attributs ou la relation pour respecter la 2NF. Une relation avec une cl candidate choisie rduite un seul attribut est, par dfinition, forcment en 2NF.
codeArticle, client, article)

Par exemple, Commande(codeClient,


o o codeClient Commande client et codeArticle Commande article

avec les DF

n'est pas en 2NF alors que Pers(nom,


o

prnom, ge, nombreEnfants)

avec la DF

nom, prnom Pers ge, nombreEnfants

est en 2NF. La 2NF ne rsout pas tout. Des DF sont dsormais prises en compte, ce qui est une chose positive. Mais toutes les DF ne le sont pas. Par exemple, Commande(numroCommande, codeClient, client, article) avec les DF
o o numroCommande Commande codeClient, client, article codeClient Commande client

et

est en 2NF. Il est cependant possible d'y trouver les occurrences 20, 5, Dupont, Table et 21, 5, Durand, Chaise, ce qui est incohrent.
9. Exercices de passage en 2NF

Dterminez toutes les DF et cls candidates des relations suivantes puis passez les en 2NF. (La dtermination des DF dpend notablement du contexte. En l'absence de celui-ci, il convient toujours de faire des hypothses raisonnables, justifies explicitement.) 0. 1. 2. 3. 4. 5.
Personne1(numroScu, nom, prnom, adresse, prnomEnfants, geEnfants) Personne2(nom, prnom, prnomEtgeEnfants) natureDiplmes, lieuExamenDiplmes, dateExamenDiplmes, initialeNom,

Commande1(codeClient, codeArticle, client, article) Commande2(numCommande, numProduit, libellProduit, quantitCommande) Enseignement1(nomtudiant, ge, cours, jourCours) Enseignement2(cours, joursCours, nomProfesseur,

Chaque cours n'a lieu qu'une fois par semaine. salaireProfesseur) Chaque cours n'a qu'un enseignant et n'a

lieu qu'une fois par semaine.


10. Troisime forme normale

Dfinition : Soient C une cl candidate de R et A et B deux ensembles non vides disjoints d'attributs de R. R est en troisime forme normale si et seulement si elle est en 2NF et pour tous A et B tels que A et Bdisjoints de C, on n'a pas A B.
R

o o o o

La troisime forme normale est note 3NF (3FN en franais). Un relation peut tre en 3NF par rapport une de ses cls candidates et ne pas l'tre par rapport une autre. Si besoin est, on dcompose les attributs ou la relation pour respecter la 3NF. Une relation en 2NF avec au plus un attribut qui n'appartient pas la cl candidate choisie est, par dfinition, forcment en 3NF.
codeClient, client, article)

Par exemple, Commande(numroCommande,


o o

avec les DF

numroCommande Commande codeClient, client, article codeClient Commande client

et avec la DF

n'est pas en 3NF alors que Pers(nom,

prnom, ge, nombreEnfants)

nom, prnom Pers ge, nombreEnfants

est en 3NF. La 3NF ne rsout pas tout. Des DF plus nombreuses que dans la 2NF sont dsormais prises en compte, ce qui est une chose positive. Mais toutes les DF ne le sont pas. Par exemple, Universit(tudiant, matire, enseignant, note) avec les DF
o o tudiant, matire Universit enseignant, note enseignant Universit matire

et

est en 3NF. Il est cependant possible d'y trouver les occurrences Joseph, SGBD, Durand, 5 et Patricia, IA, Durand, 17, ce qui est incohrent.
11. Exercices de passage en 3NF

Passez les relations suivantes en 3NF. 0. 1. 2. 3. 4. 5. 6. 7.


Universit(tudiant, matire, enseignant, note) tudiant, matire enseignant, enseignant Universit matire
Universit

Admettez note et
lieuExamenDiplmes, dateExamenDiplmes, initialeNom,

Personne1(numroScu, nom, prnom, adresse, prnomEnfants, geEnfants) Personne2(nom, prnom, prnomEtgeEnfants) natureDiplmes,

Commande1(codeClient, codeArticle, client, article) Commande2(numCommande, numProduit, libellProduit, quantitCommande) Enseignement1(nomtudiant, ge, cours, jourCours) Enseignement2(cours, joursCours, nomProfesseur,

Chaque cours n'a lieu qu'une fois par semaine. salaireProfesseur) Chaque cours n'a qu'un enseignant et n'a Admettez

lieu qu'une fois par semaine.


Rpertoire(nom, prnom, numroAdresse, rueAdresse, codePostal, Ville)

codePostal Rpertoire Ville.

8.

Personne(numroScu, nom, prnom, initialeNom, prnomEtgeEnfants, ge)

12. Forme normale de Boyce-Codd

Dfinition : Une relation est en forme normale de Boyce-Codd si et seulement si ses cls candidates sont les uniques sources de DF.
o o o

La forme normale de Boyce-Codd est note BCNF (FNBC en franais). Si une relation est en BCNF, elle l'est par dfinition pour toutes ses cls candidates. Si besoin est, on dcompose les attributs ou la relation pour respecter la BCNF.
matire, enseignant, note)

Par exemple, Universit(tudiant,


o o

avec les DF

tudiant, matire Universit enseignant, note enseignant Universit matire

et avec la DF

n'est pas en BCNF alors que Pers(nom,


o

prnom, ge, nombreEnfants)

nom, prnom Pers ge, nombreEnfants

est en BCNF. Toutes les DF sont prises en compte par la BCNF. On considre gnralement qu'une base de donnes de bonne qualit ne contient que des relations qui respectent la BCNF. Cependant, la BCNF ne rsout pas tout. Il faut savoir qu'il existe d'autres types de dpendance dont la prise en compte peut encore amliorer la qualit des relations. Notamment, les dpendances multivalues ont permis de dfinir la 4NF et les dpendances de jointure ont donn naissance la 5NF. Leur usage reste cependant plus marginal que celui de la BCNF.

13. Exercices de passage en BCNF

Passez les relations suivantes en BCNF. 0. 1. 2. 3. 4. 5. 6. 7. 8.


Universit(tudiant, matire, enseignant, note) tudiant, matire enseignant, enseignant Universit matire
Universit

Admettez note et
lieuExamenDiplmes, dateExamenDiplmes, initialeNom,

Personne1(numroScu, nom, prnom, adresse, prnomEnfants, geEnfants) Personne2(nom, prnom, prnomEtgeEnfants) natureDiplmes,

Commande1(codeClient, codeArticle, client, article) Commande2(numCommande, numProduit, libellProduit, quantitCommande) Enseignement1(nomtudiant, ge, cours, jourCours) Enseignement2(cours, joursCours, nomProfesseur,

Chaque cours n'a lieu qu'une fois par semaine. salaireProfesseur) Chaque cours n'a qu'un enseignant et n'a Admettez

lieu qu'une fois par semaine.


Rpertoire(nom, prnom, numroAdresse, rueAdresse, codePostal, Ville) codePostal Rpertoire Ville.

Personne(numroScu, nom, prnom, initialeNom, prnomEtgeEnfants, ge)

14. Exercices de cration de relations en BCNF

Ce type de travail ncessite habituellement une mthode de conception approprie (telle Merise ou UML). Mais nous sommes ici dans des cas trs simples o vos connaissances actuelles devraient suffire pour vous amener vous poser les questions pertinentes. 0. Vous devez crer une base de donnes pour une bibliothque. Le bibliothcaire vous demande de pouvoir grer les informations suivantes : des livres qui ont chacun un titre, des auteurs (nom et prnom), un diteur, une date d'dition et des genres (exemples : amour, science-fiction, politique, roman, nouvelles) et des clients (nom et prnom) avec une adresse (rue, code postal et ville), les livres qu'ils ont emprunts avec la date d'emprunt, la date prvue de retour et la date effective de retour.

Vous n'en savez pas plus et devez faire des hypothses et choix raisonnables et explicitement justifis. Concevez cette base de donnes qui, naturellement, doit tre forme exclusivement de relations en BCNF. 1. Vous devez crer une base de donnes pour une socit de bus. Le responsable vous donne les indications suivantes : Chaque bus, numrot, ralise des trajets forms d'un dpart, de plusieurs arrts et d'un terminus. Un bus peut chaque jour tre affect plusieurs trajets et peut faire plusieurs voyages sur chaque trajet, avec ventuellement des chauffeurs diffrents. Les horaires sont fixes pour chaque jour dans une semaine, mais ils peuvent diffrer d'un jour l'autre (exemple : tous les lundis, le bus 24 dmarre le trajet 12 8 h alors que le mardi c'est 9 h). La gestion des clients est ralise sparment (dans une autre base dont il ne faut pas s'occuper, c'est un autre service ) mais celles des bus (date de prochaine rvision, kilomtrage, numro et nom du dpt,), des chauffeurs (nom, prnom, grade, anciennet, salaire, bus conduits, trajets effectus,) et des horaires doivent l'tre dans cette base. Vous n'en savez pas plus et devez faire des hypothses et choix raisonnables et explicitement justifis. Concevez cette base de donnes qui, naturellement, doit tre forme exclusivement de relations en BCNF.

retour au sommaire

URI : http://www.crescenzo.nom.fr/CMBasesDeDonnees/004-ModeleRelationnel-FormesNormales.html conforme XHTML 1.1 et CSS 2.1 Cration : 2002/09/01 Dernire modification : 2009/04/24 Hbergement : Anima Contact et maintenance : Pierre@crescenzo.nom.fr

You might also like