Chapitre 6

Chapitre 5 : Bien concevoir une base de données


Nous étudions dans ce chapitre comment bien concevoir une BD. Pour ce faire, à partir d'un même ensemble de connaissances ayant trait aux plages, nous proposons deux choix d'organisation des informations sous forme relationnelle. Nous étudions les qualités et les défauts de ces différents choix avant de présenter les règles de "bonne" conception d'une BD relationnelle.

Premier choix :

BAINS (NN, NOM, PRENOM, QUALITE, DATE, DUREE, NP, NOMP, TYPE, REGION, POLLUTION) Deuxième choix : NAGEUR (NN, NOM, PRENOM, QUALITE)
PLAGE (NP, NOMP, TYPE, REGION, POLLUTION)

BAIGNADE (NN, NP, DATE, DUREE)

 
NN et NP sont des numéros permettant de distinguer respectivement les nageurs et les plages. NN est l'équivalent du numéro de sécurité sociale.
Nous constatons sur cet exemple l'existence de plusieurs façons de structurer un même ensemble d'informations. Si nous privilégions instinctivement l'une des deux solutions proposées, c'est qu'elle correspond davantage à notre perception du monde réel, dans laquelle nous distinguons naturellement certaines entités : les personnes, les plages, etc.

L'étape de conception est primordiale pour le bon fonctionnement d'un SGBD. Elle fait partie des quelques facteurs qui peuvent entraîner des incohérences dans les réponses et une diminution inacceptable des performances du système ; c'est pourquoi il est indispensable d'y attacher une attention toute particulière.

Une solution "instinctive" n'est pas suffisante pour concevoir le schéma d'une base importante. Il est donc nécessaire d'isoler les critères de décision et de formaliser des méthodes de conception des bases de données. Tel est l'objet de ce chapitre.

Les problèmes les plus courants rencontrés dans des bases de données mal conçues peuvent être regroupés selon les critères suivants :

Redondance des données

Certains choix de conception entraînent une répétition des données lors de leur insertion dans la base. Cette redondance est souvent la cause d'anomalies provenant de la complexité des insertions.

C'est, par exemple, le cas de la première organisation proposée : dès qu'une personne prend un nouveau bain, on doit non seulement répéter son numéro qui, par hypothèse, suffit à le déterminer, mais aussi toutes les informations liées à ce numéro (son nom, son prénom, sa qualité). Au contraire, dans le deuxième choix, seul le numéro indispensable à la distinction d'un nageur est répété. La situation est identique pour les plages.

Incohérence en modification La redondance de l'information entraîne également des risques en cas de modification d'une donnée répétée en différents endroits : on oublie fréquemment de modifier toutes ses occurrences (en général par simple ignorance des différentes places où figure l'information).

Par exemple, dans la première organisation proposée, si une personne change de nom (cas fréquent lors de mariages), il faut changer ce nom dans tous les tuples où apparaissent ses coordonnées. Dans la deuxième organisation, un seul tuple est modifié.

Anomalie d'insertion Une mauvaise conception peut parfois empêcher l'insertion d'un tuple, faute de connaître la valeur de tous les attributs de la relation. Pour remédier à ce problème, certains SGBD implantent une valeur non typée qui signifie que la valeur d'un attribut d'un tuple est inconnue ou indéterminée. Cette valeur (appelée usuellement NULL) indique réellement une valeur inconnue et non une chaîne de caractères vide ou un entier égal à zéro (analogie avec un pointeur égal à NIL en Pascal).

Dans le premier schéma proposé, insérer une nouvelle plage où personne ne s'est jamais baigné est aussi impossible.

Anomalie de suppression Enfin, une mauvaise conception peut entraîner, lors de la suppression d'une information, la suppression d'autres informations, sémantiquement distinctes, mais regroupées au sein d'un même schéma.

C'est ce qui se produit dans notre premier exemple, la suppression d'une plage entraîne automatiquement la suppression de tous les nageurs ne s'étant baignés que sur cette plage.

De nombreux travaux ont permis de mettre au point une théorie de conception d'une base de données relationnelle : la théorie de la normalisation, que nous allons maintenant développer.

V.1. La théorie de la normalisation

Cette théorie est basée sur les "dépendances fonctionnelles" (DF). Les dépendances fonctionnelles traduisent des contraintes sur les données (par exemple, on décide que deux individus différents peuvent avoir même nom et prénom mais jamais le même numéro NN). Ces contraintes sont représentatives d'une perception de la réalité et imposent des limites à la base.

Les dépendances fonctionnelles et des propriétés particulières, définissent une suite de formes normales (FN). Elles permettent de décomposer l'ensemble des informations en diverses relations. Chaque nouvelle forme normale marque une étape supplémentaire de progression vers des relations présentant de moins en moins de redondance. Ces étapes traduisent une compréhension de plus en plus fine de la réalité.

Chacune de ces formes normales peut être obtenue au moyen d'algorithmes de décomposition. Le point de départ de ces algorithmes est la relation universelle, c'est-à-dire la relation qui regroupe toutes les informations à stocker (dans notre exemple, le premier schéma représente cette relation universelle) ; le but est d'obtenir, en sortie, une représentation canonique des données présentant un minimum de redondance à l'intérieur de chaque relation et un maximum d'indépendance entre les différentes relations .
 


V.1.1. Les dépendances fonctionnelles

Définition : dépendance fonctionnelle On dit qu'un attribut B dépend fonctionnellement d'un attribut A si, étant donné une valeur de A, il lui correspond une unique valeur de B (quel que soit l'instant t considéré).
 
Notation : A ® B

Exemple :

La dépendance fonctionnelle NN ® NOM signifie qu'à un numéro est associé un nom unique (c'est, par exemple, le cas du numéro de sécurité sociale). Remarquons qu'une dépendance fonctionnelle n'est généralement pas symétrique, c'est-à-dire que NN ® NOM n'interdit pas que deux personnes distinctes (correspondant à deux NN différents) portent le même nom.
Une dépendance fonctionnelle est une propriété définie sur tous les tuples d'une relation et pas seulement sur un tuple particulier. Elle traduit une certaine perception de la réalité (par exemple, deux personnes distinctes peuvent porter le même nom). Elle correspond à une contrainte qui doit être vérifiée en permanence.

Les dépendances fonctionnelles sont parties intégrantes du schéma d'une BD. Elles doivent donc théoriquement être déclarées par l'administrateur et contrôlées par le SGBD.

Exemple :

Nous définissons les propriétés vérifiées par notre base de baignades. Deux personnes distinctes peuvent, par exemple, porter le même nom, le même prénom, et avoir la même qualité de nage. Deux numéros de nageur différent les distinguent l'une de l'autre. Les dépendances fonctionnelles que nous venons de décrire sont donc
 
NN ® NOM, NN ® PRENOM, NN ® QUALITE
 
Nous pouvons supposer également que deux plages distinctes ont toujours deux numéros différent ; ce qui implique :
 
NP ® NOMP
NP ® REGION

 
que la pollution et le type sont propres à une plage :
 
NP ® POLLUTION
NP ® TYPE

 
et que deux plages d'une même région ne peuvent porter le même nom :
 
(NOMP, REGION) ® NP
Propriétés des dépendances fonctionnelles Les dépendances fonctionnelles obéissent à certaines propriétés connues sous le nom d'axiomes d'Armstrong.

Réflexivité :

Y Ì X Þ X ® Y Augmentation : X ® Y Þ XZ ® YZ Transitivité : X ® Y et Y ® Z Þ X ® Z
 
D'autres propriétés se déduisent de ces axiomes :

Union :

X ® Y et X ® Z Þ X ® YZ Pseudo-transitivité : X ® Y et YW ® Z Þ XW ® Z Décomposition : X ® Y et Z Ì Y Þ X ® Z
 
L'intérêt de ces axiomes et des propriétés déduites est de pouvoir construire, à partir d'un premier ensemble de dépendances fonctionnelles, l'ensemble de toutes les dépendances fonctionnelles qu'elles génèrent. On parle alors de dépendance fonctionnelle élémentaire.

V.1.2. Dépendance fonctionnelle élémentaire

Définition : dépendance fonctionnelle élémentaire Une dépendance fonctionnelle X ® A est élémentaire si
- A n'est pas inclus dans X ;

- il n'existe pas X' inclus dans X tel que X' ® A.
Cette notion de dépendance fonctionnelle élémentaire est primordiale car elle permet de construire une sorte de famille génératrice minimale (appelée couverture minimale) des dépendances fonctionnelles utiles pour structurer la base.

Exemple :

Deux plages d'une même région ne peuvent pas porter le même nom (contrairement à deux plages de régions différentes) ; le degré de pollution d'une plage dépend exclusivement de la plage et non de la région. On a alors
 
(NOMP, REGION) ® POLLUTION
 
mais on n'a aucunement
 
NOMP ® POLLUTION
ni

REGION ® POLLUTION

 
donc (NOMP, REGION) ® POLLUTION est une dépendance fonctionnelle élémentaire.
 

V.1.3. Graphe des dépendances fonctionnelles

C'est une représentation graphique permettant de visualiser aisément toutes les dépendances fonctionnelles et d'isoler les principales (i.e. les DF élémentaires).

Exemple :

Toutes les dépendances fonctionnelles citées précédemment peuvent être représentées de la façon suivante.

V.1.4. Fermeture transitive

  Définition : fermeture transitive La fermeture transitive d'un ensemble de dépendances fonctionnelles est ce même ensemble enrichi de toutes les dépendances fonctionnelles déduites par transitivité.
Exemple : De l'exemple précédent , on déduit par transitivité deux nouvelles dépendances fonctionnelles :
 
(NOMP, REGION) ® TYPE
(NOMP, REGION) ® POLLUTION

 
qui enrichit le graphe de la façon suivante :

V.1.5. Couverture minimale

Définition : couverture minimale La couverture minimale d'un ensemble de dépendances fonctionnelles est un sous ensemble minimum de dépendances fonctionnelles élémentaires permettant de générer toutes les autres. Exemple : L'ensemble des dépendances fonctionnelles suivant :

(NN ® NOM, NN ® PRENOM, NN ® QUALITE, NP ® NOMP, NP ® REGION, (NOMP, REGION) ® POLLUTION, (NOMP, REGION) ® NP)

est une couverture minimale de l'ensemble des dépendances fonctionnelles.
 

Théorème : Tout ensemble de dépendances fonctionnelles admet une couverture minimale, en général non unique. Exemple : L'ensemble des dépendances fonctionnelles suivant :

(NN ® NOM, NN ® PRENOM, NN ® QUALITE, NP ® NOMP, NP ® REGION, NP ® POLLUTION, (NOMP, REGION) ® NP)

est une autre couverture minimale de l'ensemble des dépendances fonctionnelles.

La recherche de la couverture minimale d'un ensemble de dépendances fonctionnelles est un élément essentiel du processus de normalisation, dont le but est de décomposer une relation en plusieurs relations plus petites.

V.1.6. Clé d'une relation

Définition : clé d'une relation Soit R(A1, A2, ..., AN) un schéma de relation, soit F+ l'ensemble des dépendances fonctionnelles associées à R, soit X un sous-ensemble de A1, A2, ..., AN, on dit que X est une clé de R si et seulement si

- X ®A1, A2, ..., AN ;

- il n'existe pas de sous ensemble Y inclus dans X tel que Y ® A1, A2, ..., AN.

Une clé d'une relation est un ensemble minimum d'attributs qui détermine tous les autres. Exemple : NN est clé de la relation PERSONNE (NN, NOM, PRENOM, QUALITE) ;

(NOMP, REGION) est clé de la relation (NP, NOMP, REGION, POLLUTION, TYPE).

Plusieurs clés peuvent être candidates pour une même relation. Exemple : NP et (NOMP, REGION) sont deux clés candidates à la relation (NP, NOMP, REGION, POLLUTION, TYPE). Dans l'écriture des schémas de relations, on indique les clés en soulignant les attributs constitutifs. Exemple : PLAGE (NP, NOMP, REGION, POLLUTION, TYPE)
 

V.1.7. Décomposition des relations

La théorie de la normalisation repose sur un principe de décomposition des relations. Définition : décomposition d'une relation La décomposition d'un schéma de relation R(A1, A2, ..., AN) est son remplacement par une collection de schémas de relations (R1, R2, ..., Ri) telle que :

SCHEMA(R) = SCHEMA(R1) È SCHEMA(R2) È ... È SCHEMA (Ri)
 

Définition : décomposition sans perte Une décomposition d'une relation R en N relations R1, R2, ..., RN est sans perte si et seulement si, pour toute extension de R, on a :

R = R1 |x| R2 |x| ... |x| RN
 

Théorème : décomposition sans perte Une décomposition en deux relations est sans perte si l'attribut de jointure de la recomposition est clé d'une au moins des deux relations.
 
Définition : décomposition préservant les dépendances fonctionnelles Une décomposition (R1, R2, ..., RN) de R préserve les dépendances fonctionnelles si la fermeture des dépendances fonctionnelles de R est la même que celle de l'union des dépendances fonctionnelles des relations R1, R2, ..., RN.
 

V.2. Les trois premières formes normales

Nous définissons ici des règles de décomposition la relation universelle sans perdre d'information en utilisant les dépendances fonctionnelles. Le but est d'obtenir une représentation du monde réel qui minimise la redondance et les risques d'anomalies lors des mises à jour.

V.2.1. La première forme normale 1FN

Définition : première forme normale Une relation est en première forme normale si tout attribut est atomique.
 
Conséquences : - un attribut représente une donnée élémentaire du monde réel ;

- un attribut ne peut désigner, ni une donnée composée d'entités de nature quelconque, ni une liste de données de même nature.

La première forme normale correspond à un souci de simplicité au niveau du langage de manipulation. Elle a pour particularité d'éviter toute hiérarchie dans une relation en interdisant les domaines composés de plusieurs valeurs. Exemple : Nous pourrions imaginer une relation BAINS de schéma BAINS (NN, NP, DATE, DUREES) DUREES serait la liste des durées des bains pris par le nageur NN sur la plage NP à la date DATE. A lieu de cela, la première forme normale nous oblige à décomposer cette relation en BAINS (NN, NP, DATE, DUREE) ce qui induira autant de tuples qu'il y a de baignade d'un même baigneur, sur la même plage, le même jour ; avec (nn, np, date, duréei) pour le ième bain de la journée.
 

V.2.2. La deuxième forme normale 2FN

  Définition : deuxième forme normale Une relation est en deuxième forme normale si et seulement si :

- elle est en première forme normale ;
- tout attribut n'appartenant pas à une clé ne dépend pas que d'une partie de cette clé.

 

Exemple : Considérons la relation PLAGE de schéma suivant :

PLAGE (NOMP, REGION, TYPE, POLLUTION)

où la clé est (NOMP, REGION). Supposons que la pollution est bien dépendante de la plage mais que le type est, quant à lui, dépendant de la région. La deuxième forme normale nous impose de distinguer deux relations R1 et R2 de schémas respectifs :

R1 (NOMP, REGION, POLLUTION) ;
R2 (REGION, TYPE).

 

V.2.3. La troisième forme normale 3FN

L'objectif de cette troisième forme normale est l'élimination des redondances dûes aux dépendances fonctionnelles déduites par transitivité. Définition : troisième forme normale Une relation est en troisième forme normale si :

- elle est en deuxième forme normale ;
- tout attribut n'appartenant pas à une clé ne dépend pas d'un attribut non clé.
 

Théorème : Toute relation R admet au moins une décomposition (R1, R2, ..., RN) en troisième forme normale telle que :

- la décomposition conserve les dépendances fonctionnelles ;
- la décomposition est sans perte.

 

Exemple : Considérons maintenant la relation PLAGE de schéma PLAGE (NP, REGION, TYPE, POLLUTION) où la clé est NP. Supposons maintenant comme dans l'exemple précédent que le type est dépendant de la région. La troisième forme normale nous impose de distinguer deux relations R1 et R2 de schémas respectifs :

R1 (NP, REGION, POLLUTION) ;
R2 (REGION, TYPE).

V.2.4. Algorithme de décomposition en troisième forme normale

Cet algorithme accepte en entrée la relation universelle à décomposer et les dépendances fonctionnelles de la relation.

Principe de l'algorithme :

1- à partir du graphe G des dépendances fonctionnelles, CALCULER une couverture minimale C ;

2- EDITER l'ensemble des attributs isolés dans une même relation (tous les attributs sont clés) ;

3- RECHERCHER le plus grand ensemble X d'attributs qui détermine d'autres attributs ;

4- EDITER la relation R(X, A1, ..., AN) qui est en troisième forme normale ;

5- SUPPRIMER toutes les dépendances fonctionnelles figurant dans R du graphe de couverture minimale C ;

6- SUPPRIMER les attributs isolés de C (c'est-à-dire les attributs non sources ou cibles de dépendances fonctionnelles) ;

7- REPETER l'opération de réduction du graphe C à partir de l'étape 3 jusqu'à ce que C soit vide.

Remarque : Cet algorithme fournit bien une décomposition en 3FN qui préserve les DF mais qui n'est pas nécessairement sans perte. Pour avoir une décomposition sans perte, il suffit d'ajouter à la décomposition finale une relation composée des attributs formant la clé de la relation universelle (ou ajouter ces attributs à la relation créée à l'étape 2, si elle existe).

V.2.5. Insuffisance de la troisième forme normale

Il s'agit ici de détecter les boucles pouvant exister dans le graphe des dépendances fonctionnelles. Supposons, par exemple une relation PLAGE indiquant le nom, la région et le canton où se situent les plages. Supposons en outre que deux plages d'une même région ne puissent pas porter le même nom et qu'il n'existe pas deux cantons de même nom. La relation se note : PLAGE (NOMP, REGION, CANTON) et possède les dépendances fonctionnelles suivantes : (NOMP, REGION) ® CANTON et CANTON ® REGION Bien que la relation soit en 3ème forme normale, il existe encore des redondances dues au fait qu'un attribut non clé détermine une partie de la clé. Afin d'éliminer ce type de redondance, BOYCE et CODD ont introduit une nouvelle forme normale : Définition : Forme Normale de BOYCE-CODD (BCNF) : Une relation est en BCNF si et seulement si les seules dépendances fonctionnelles élémentaires sont celles dans lesquelles une clé détermine un attribut. Pour l'exemple précédent une décomposition en BCNF serait :

PLAGE (NOMP,CANTON) et GEO(CANTON,REGION)
 

Théorème de décomposition en BCNF : Toute relation admet au moins une décomposition en BCNF qui est sans perte ; cependant, une telle décomposition ne préserve généralement pas les dépendances fonctionnelles. Dans l'exemple précédent on ne préserve pas la première DF.
 

V.3. La quatrième forme normale

La notion de dépendance fonctionnelle nous a conduit à décomposer les relations en troisième forme normale et en forme normale de BOYCE CODD. Ceci est pourtant insuffisant pour éliminer les redondances et les anomalies de mises à jour. Considérons, par exemple, une relation PREFERENCES où nous indiquons, pour chaque nageur, ses différents domiciles et les plages qu'il a l'habitude de fréquenter : PREFERENCES (NN, VILLE, NP) Il n'existe aucune dépendance fonctionnelle entre les différents attributs, ce qui conduit à des situations du type :
 



 


Dans cette relation, tout est clé : elle est en 3ème forme normale. Pourtant, il subsiste de nombreuses redondances. La relation n'est pas décomposable selon les critères que nous venons d'évoquer, ce qui nous conduit à introduire la notion de dépendance fonctionnelle multivaluée.

V.3.1. Les dépendances multivaluées

Définition : Dépendance Multivaluée Soit R(A1, A2, �,An) un schéma de relation. Soient X et Y des sous-ensembles de A1, A2, �,An. On dit que X ->-> Y (X multi-détermine Y, ou il y a une dépendance multivaluée de Y sur X) si, étant données des valeurs de X, il y a un ensemble de valeurs de Y associées et cet ensemble est indépendant des autres attributs Z = R-X-Y de la relation R.

( X ->-> Y) Û ( (xyz) et (xy'z') Î R Þ (xy'z) et (xyz') Î R)
 

Propriété : Les dépendances fonctionnelles sont des cas particuliers de dépendances multivaluées :

(X®Y) Û ( (xyz) et (xy'z') Î R Þ y = y')

De même que pour les dépendances fonctionnelles, il existe des axiomes d'inférence de dépendances multivaluées. Ce sont les suivants : - Complémentation : (X ->-> Y) Þ (X ->-> R - X - Y)

- Augmentation : (X ->-> Y) et (V Ì W) Þ (XW ->-> YV)

- Transitivité : (X ->-> Y) et (Y ->-> Z) Þ (X ->-> Z-Y)

Dont on peut déduire d'autres règles telles l'union : - Union : (X ->-> Y) et (Y ->-> Z) Þ (X ->-> YZ) A partir de ces axiomes, on introduit la notion de Dépendance Multivaluée Elémentaire : Définition : Dépendance Multivaluée Elémentaire Une dépendance multivaluée élémentaire X ->-> Y d'une relation R est une dépendance multivaluée telle que :

- Y n'est pas vide et est disjoint de X ;

- R ne contient pas une autre Dépendance Multivaluée du type X' ->-> Y' telle que X'ÌX et Y'ÌY.

Ainsi, dans l'exemple précédent nous isolons les Dépendances Multivaluées Elémentaires suivantes : NN ->-> VILLE et NN ->-> NP
 

V.3.2. Quatrième forme normale

  Définition : quatrième forme normale Une relation est en quatrième forme normale si et seulement si, lorsqu'il existe une dépendance multivaluée élémentaire, celle-ci est unique. Propriété : Toute relation a une décomposition en quatrième forme normale qui est sans perte. Cette décomposition n'est pas forcément unique.
Du fait qu'une dépendance fonctionnelle est un cas particulier de dépendance multivaluée, nous pouvons déduire qu'une relation en quatrième forme normale est en forme normale de BOYCE-CODD et donc en troisième forme normale.

Sur l'exemple que nous venons de voir (PREFERENCES), la clé est l'ensemble des trois attributs et il existe deux dépendances multivaluées : la relation n'est donc pas en quatrième forme normale. Une décomposition de cette relation en quatrième forme normale donne deux relations PREF1 (NN, VILLE) et PREF2 (NN, NP)

V.4. La cinquième forme normale

La quatrième forme normale n'est pas encore suffisamment poussée pour éliminer tous les risques de redondances et d'anomalies.

Exemple :

Nos précédents nageurs sont amateurs de fruits de mer et en consomment couramment quand ils vont sur leurs plages préférées. Voyons une extension de la relation CONSOMMATION (NAGEUR, CRUSTACES, VILLE) :
 



 


Nous constatons aisément que cette relation présente de la redondance. Cette redondance provient d'une contrainte d'intégrité implicite dans la conception du monde réel :

"Tout nageur ayant consommé un type de crustacés et ayant séjourné dans une ville les cultivant a consommé de ce type de crustacés dans cette ville." Ainsi, le fait que Plouf ait mangé du tourteau est répété à plusieurs reprises, etc.

Toutefois, cette relation est en quatrième forme normale car il n'y a pas de dépendance multivaluée. Pour nous en assurer, nous pouvons considérer les projections B1, B2, B3 de la relation CONSOMMATION sur les différents couples d'attributs C1(NAGEUR, CRUSTACES), C2(NAGEUR, VILLE) et C3(CRUSTACES, VILLE), et constater que la jointure de deux de ces relations ne redonne jamais la relation CONSOMMATION. La relation n'est donc pas décomposable en deux autres relations.

V.4.1. Les dépendances de jointure

Le problème provient du fait que nous avons jusqu'alors toujours essayé de décomposer une relation en deux relations. Comme nous allons le montrer ci-dessous, certaines relations sont décomposables, non pas en deux, mais en trois relations. C'est le cas dans notre exemple en raison de la contrainte d'intégrité que nous rappelons ci-dessous : "Tout nageur ayant consommé un type de crustacés et ayant séjourné dans une ville les cultivant a consommé de ce type de crustacés dans cette ville." qui se note de façon plus formelle : (nageur, crustacés) Î C1 et (nageur, ville) Î C2 et (crustacés, ville) Î C3
Þ (nageur, crustacés, ville) Î CONSOMMATION

 
Définition : dépendance de jointure Soit R(A1, A2, �, An) un schéma de relation et X1, X2, �, Xm des sous-ensembles de (A1, A2, �, An). On dit qu'il existe une dépendance de jointure *(X1, X2, �,Xm) si R est la jointure de ses projections sur X1, X2, �, Xm, c'est-à-dire si :

R = p X1(R) |x| p X2(R) |x| � |x| p Xm(R).

Par exemple, la relation CONSOMMATION obéit à la dépendance de jointure suivante : * (NAGEUR CRUSTACES, NAGEUR VILLE, CRUSTACES VILLE) Propriété : Les dépendances multivaluées sont des cas particuliers de dépendances de jointure :

(X®Y) Þ ( (xyz) et (xy'z') Î R Þ y = y')
 

V.4.2. Cinquième forme normale

La cinquième forme normale est une généralisation de la quatrième forme normale qui nécessite de prendre en compte les dépendances de jointure induites par la connaissance des clés d'une relation. Définition : Cinquième Forme Normale Une relation R est en cinquième forme normale si et seulement si toute dépendance de jointure est impliquée par des clés candidates de R.
 

V.5. Conclusions

Dans ce chapitre, nous avons présenté la théorie de la normalisation des schémas relationnels. Cette normalisation est très importante dans la pratique si l'on veut éviter de stocker des informations redondantes. On considère, en général, que la troisième forme normale est suffisante dans les cas courants.

Dépendant de la sémantique des données, le processus de normalisation reste à la charge de l'utilisateur du SGBD. Cette phase, délicate, est aujourd'hui largement facilitée par des outils d'aide à la conception que proposent différents constructeurs.

V.6. Références

[Codd 74] E.F. CODD, "Recent Investigations in Relational Database Systems", IFIP Congrès 1974, North-Holland Ed., pp 1017-1021.

[Fagin 79] R. FAGIN, "Normal Forms and Relational Database Operators", ACM SIGMOD 1979, Boston, Juin 1979, pp 153-160.

[Nicolas 78] J.M. NICOLAS, "Mutual Dependencies and Some Results on Undecomposable Relations", 5th Very Large Data Bases, Berlin 1978, IEEE Ed., pp 360-367.


Chapitre 6