Sei sulla pagina 1di 5

Exemple de normalisation des bibliothèques

L'exercice suivant tente d'évaluer les connaissances en matière de normalisation à l'aide d'un exemple simplifié
de base de données pour une petite bibliothèque.

CodLibro Titre Auteur Éditorial NameReader DateDev


Variable Pérez Gómez,
1001 Murray Spiegel McGraw Hill 15/04/2005
complexe Juan
1004 Visual Basic 5 E. Petroustsos Anaya Ríos Terán, Ana 17/04/2005
1005 Statistiques Murray Spiegel McGraw Hill Roca, René 16/04/2005
Nancy
García Roque,
1006 Université Oracle Greenberg et Oracle Corp. 20/04/2005
Luis
Priya Nathan
Pérez Gómez,
1007 Clipper 5.01 Ramalho McGraw Hill 18/04/2005
Juan

Ce tableau ne répond pas à l'exigence de la première forme normale (1FN) de ne comporter que des champs
atomiques, car le nom du lecteur est un champ qui peut (et doit) être décomposé en nom de famille paternel,
nom de famille maternel et prénoms.

Comme le montre le tableau ci-dessous.

1NF
CodLibro Titre Auteur Éditorial Paterno Materne Noms DateDev
lle
Variable McGraw
1001 Murray Spiegel Pérez Gomez Jean 15/04/2005
complexe Hill
1004 Visual Basic 5 E. Petroustsos Anaya Rivières Terán Ana 17/04/2005
McGraw Le
1005 Statistiques Murray Spiegel René 16/04/2005
Hill rocher
Université Nancy Oracle
1006 Garcia Roque Luis 20/04/2005
Oracle Greenberg Corp.
Université Oracle
1006 Priya Nathan Garcia Roque Luis 20/04/2005
Oracle Corp.
McGraw
1007 Clipper 5.01 Ramalho Pérez Gomez Jean 18/04/2005
Hill

Comme on peut le voir, il existe une certaine redondance caractéristique de la 1NF.


La deuxième forme normale (2FN) exige qu'il n'y ait pas de dépendances partielles ou, en d'autres termes, que
tous les attributs non clés dépendent entièrement de la clé primaire.

Actuellement, dans notre tableau, nous avons plusieurs dépendances partielles si nous considérons comme
attribut clé le code du livre.

Par exemple, le titre est entièrement identifié par le code du livre, mais le nom du lecteur ne dépend pas
vraiment de ce code, de sorte que cette donnée doit être déplacée dans une autre table.

2FN

CodLibro Titre Auteur Éditorial


1001 Variable complexe Murray Spiegel McGraw Hill
1004 Visual Basic 5 E. Petroustsos Anaya
1005 Statistiques Murray Spiegel McGraw Hill
1006 Université Oracle Nancy Greenberg Oracle Corp.
1006 Université Oracle Priya Nathan Oracle Corp.
1007 Clipper 5.01 Ramalho McGraw Hill

Le nouveau tableau ne contiendra que les données du lecteur.

CodLecto Patern Matern Noms


r o elle
501 Pérez Gomez Jean
Rivière
502 Terán Ana
s
Le
503 René
rocher
504 Garcia Roque Luis

Nous avons créé un tableau contenant les données relatives aux lecteurs et nous avons également dû créer la
colonne CodLector afin d'identifier chaque lecteur de manière unique.

Toutefois, cette nouvelle présentation de la base de données nécessite l'utilisation d'une autre table pour
conserver les informations sur les livres prêtés aux différents lecteurs.

Ce tableau est présenté ci-dessous :


CodLibr CodLecto DateDev
o r
15/04/200
1001 501 5
17/04/200
1004 502 5
16/04/200
1005 503 5
20/04/200
1006 504 5
18/04/200
1007 501 5

Pour la troisième forme normale (3FN), la relation doit être en 2FN et, en outre, les attributs non clés doivent
être mutuellement indépendants et entièrement dépendants de la clé primaire.

Rappelons également que nous avons dit que cela signifie que les colonnes du tableau ne doivent contenir que
des informations sur l'entité définie par la clé primaire, et donc que les colonnes du tableau ne doivent contenir
que des données sur une seule chose.

Dans notre exemple 2FN, la première table contient des informations sur le livre, les auteurs et les éditeurs.
Nous devons donc créer de nouvelles tables pour répondre aux exigences 3FN.

3FN

CodLibro Titre
1001 Variable complexe
1004 Visual Basic 5
1005 Statistiques
1006 Université Oracle
1007 Clipper 5.01
CodAutor Auteur
801 Murray Spiegel
802 E. Petroustsos
Nancy
803 Greenberg
804 Priya Nathan
806 Ramalho

CodEditorial Éditorial
901 McGraw Hill
902 Anaya
903 Oracle Corp.

Bien que nous ayons créé de nouvelles tables de manière à ce que chaque table ne contienne que des
informations sur une seule entité, nous avons également perdu les informations relatives à l'auteur de chaque
livre et aux éditeurs correspondants, de sorte que nous devons créer d'autres tables qui relient chaque livre à
ses auteurs et éditeurs.

CodLibro auteur du
code
1001 801
1004 802
1005 801
1006 803
1006 804
1007 806

CodLibro codÉditorial
1001 901
1004 902
1005 901
1006 903
1007 901
Les autres tableaux ne nécessitent aucune modification.

CodLector Paterno Materne Noms


lle
501 Pérez Gomez Jean
502 Rivières Terán Ana
Le René
503 rocher
504 Garcia Roque Luis

CodLibr CodLect DateDev


o or
15/04/200
1001 501 5
17/04/200
1004 502 5
16/04/200
1005 503 5
20/04/200
1006 504 5
18/04/200
1007 501 5

Potrebbero piacerti anche