Normalisation DB2

La normalisation est une approche de conception qui minimise la redondance des données et optimise les structures de données en plaçant systématiquement et correctement les éléments de données dans les groupements appropriés. La normalisation est le processus d’organisation efficace des données dans une base de données et le processus de décomposition de grandes tables en tables plus petites.

Objectifs de normalisation :

Le processus de normalisation a deux objectifs :

  • Éliminer les données redondantes (par exemple, stocker les mêmes données dans plusieurs tables).
  • Veiller à ce que les dépendances de données aient un sens (stocker uniquement les données associées dans une table).

Ces deux objectifs sont louables car ils réduisent la quantité d’espace consommée par une base de données et garantissent que les données sont stockées de manière logique et évitent les problèmes d’insertion, de mise à jour ou de suppression de données.

Forme normale :

Une série de lignes directrices ont été élaborées par la communauté des bases de données pour s’assurer que les bases de données sont normalisées. Ces lignes directrices sont représentées par différentes formes normales.

Les types de formes normales sont les suivants :

  1. Première forme normale ou 1NF
  2. Deuxième forme normale ou 2NF
  3. Troisième forme normale ou 3NF
  4. Quatrième forme normale ou 4NF
  5. Cinquième forme normale ou 5NF

Dans les applications pratiques, en général, vous n’utilisez que 1NF, 2NF et 3NF.

Première forme normale :

  • Toutes les entités doivent avoir un identifiant ou une clé unique, qui peut être composé d’un ou plusieurs attributs.
  • Éliminer les groupes répétitifs et les données non atomiques d’une entité.

Le terme atomique dérive d’atome, la plus petite particule indivisible qui puisse exister par elle-même.

La première forme normale élimine les groupes répétitifs et les données non atomiques d’une entité.

Pour normaliser un modèle de données en 1NF, éliminez les groupes répétitifs en entités individuelles. En d’autres termes, n’utilisez pas plusieurs attributs dans une seule entité pour stocker des données similaires. Considérez les exemples de données présentés dans le tableau pour un système d’information ÉTUDIANT pour un collège ou une université.

Ces données contiennent plusieurs violations de 1NF. Tout d’abord, vous suivez des cours qui représentent réellement un groupe de redoublants pour les ÉTUDIANTS. Ainsi, les informations sur le cours doivent être déplacées dans des entités distinctes. De plus, vous devez spécifier des identifiants pour les deux entités. L’identifiant est la clé primaire de l’entité

Une deuxième violation de 1NF concerne les données non atomiques affichées dans l’attribut “Nom Etudiant“. Un nom d’étudiant peut être divisé en plusieurs parties : prénom, initiale et nom de famille. Il n’est pas indivisible et viole donc la première forme normale.

Données ÉTUDIANT non normalisées

ID EtudiantNom EtudiantID MatièreNom MatièreNuméro CoursNom CoursDate Cours
0001Martin, PierreMATMathématiquesMAT0011
MAT0027
ANG0010
Mathématiques
Algèbre
Anglais Classique
2022/08/01
2022/04/30
2021/12/30
0002Antoine, PaulPHLPhilosophiePHL0010
INF00100
Introduction à la Philosophie
Langages de programmation
2022/04/30
2022/04/30
0003Robert, PiresANGLittérature anglaiseANG0102Ascension de l’homme2022/08/01
0004Lee, XavierMUSMusiqueMUS0002
ANG0102
Origine du Jazz
Ascension de l’Homme
2022/04/30
2022/08/01
0005Gassama, IsaacINFInformatiqueINF00100Langages de programmation2022/04/30
0006Luigi, MarioANGLittérature anglaiseANG0010
ANG0101
Anglais Classiques
Shakespeare
2021/12/30
2022/08/01

Entité ETUDIANT en 1NF

ID EtudiantNomPrénomID MatièreNom Cours
0001MartinPierreMATMathématiques
0002AntoinePaulPHLPhilosophie
0003RobertPiresANGLittérature anglaise
0004LeeXavierMUSMusique
0005GassamaIsaacINFInformatique
0006LuigiMarioANGLittérature anglaise

Entité COURS en 1NF

ID EtudiantNuméro CoursNom CoursDate Cours
0001MAT0011Mathématiques01/08/2022
0001MAT0027Algèbre30/04/2022
0001ANG0010Anglais Classique30/12/2021
0002PHL0010Introduction à la philosophie30/04/2022
0002INF00100Langages de programmation30/04/2022
0003ANG0102Ascension de l’homme01/08/2022
0004MUS0002Origine du jazz30/04/2022
0004ANG0102Ascension de l’homme01/08/2022
0005INF00100Langages de programmation30/04/2022
0006ANG0010Anglais Classique30/12/2021
0006ANG0101Shakespeare01/08/2022

Deuxième forme normale :

  • Doit être en première forme normale
  • Chaque attribut non clé dépend entièrement de la clé

La deuxième forme normale (2NF) garantit que tous les attributs de chaque entité dépendent de la clé primaire.

Notez que certains cours se répètent dans l’entité COURS, à savoir “Anglais Classique” et “Ascension de l’homme”. Cette situation indique une violation de 2NF. Pour corriger le problème, nous devons identifier les attributs qui ne dépendent pas de la clé entière et les supprimer. Les attributs supprimés, ainsi que la partie de la clé primaire dont ils dépendent, sont placés dans une nouvelle entité, INSCRIPTION. La clé primaire entière de l’entité d’origine reste avec l’entité d’origine.

Un autre avantage du processus de normalisation est que vous rencontrerez fréquemment de nouveaux attributs qui doivent être spécifiés pour les nouvelles entités créées. Par exemple, peut-être que la nouvelle entité COURS nous rappelle que chaque cours se voit attribuer un certain nombre de crédits qui comptent pour l’obtention du diplôme. 
Aucune modification n’a été nécessaire pour l’entité ÉTUDIANT :

Entité INSCRIPTION en 2NF

ID EtudiantNuméro CoursDate Cours
0001MAT00112022-08-01
0001MAT00272022-04-30
0001ANG00102021-12-30
0002PHL00102022-04-30
0002INF001002022-04-30
0003ANG01022022-08-01
0004MUS00022022-04-30
0004ANG01022022-08-01
0005INF001002022-04-30
0006ANG00102021-12-30
0006ANG01012022-08-01

Entité COURS en 2NF

Numéro CoursNom CoursCrédits
MAT0011Mathématiques3
MAT0027Algèbre4
ANG0010Anglais Classique3
PHL0010Introduction à la philosophie3
INF00100Langages de programmation3
ANG0102Ascension de l’homme3
MUS0002Origine du jazz3

Troisième forme normale :

  • Doit être en deuxième forme normale
  • Chaque attribut non clé dépend de manière non transitive de la clé primaire, c’est-à-dire que chaque attribut de l’entité ne doit dépendre que de la clé et non d’autres attributs non clés.

Une règle empirique pour identifier les violations 3NF consiste à rechercher des groupes d’attributs dont les valeurs peuvent s’appliquer à plusieurs occurrences d’entité. Lorsque vous découvrez de tels attributs, déplacez-les vers une entité distincte.

Il est temps de revoir à nouveau nos informations sur les ÉTUDIANTS, cette fois à la recherche de violations 3NF. Examinez attentivement les données ÉTUDIANT. Notez que les étudiants peuvent avoir la même majeure et, à ce titre, certaines informations majeures peuvent être répétées, en particulier deux étudiants de notre petit échantillon sont des majors de littérature anglaise. Pour corriger le problème, nous devons supprimer les principaux attributs qui dépendent transitivement de la clé et créer une nouvelle entité pour eux.

Entité ETUDIANT en 3NF

ID EtudiantNomPrénomID Matière
0001MartinPierreMAT
0002AntoinePaulPHL
0003RobertPiresANG
0004LeeXavierMUS
0005GassamaIsaacINF
0006LuigiMarioANG

Entité MATIERE en 3NF

ID MatièreNom Matière
MATMathématiques
PHLPhilosophie
ANGLittérature anglaise
MUSMusique
INFInformatique

Un modèle de données normalisé :

Pour être complet, un diagramme doit être développé pour le modèle de données 3NF que nous venons de créer pour les données STUDENT. La figure montre un tel modèle de données. Notez que nous n’avons pas rempli le caractère facultatif des relations. Nous pourrions le faire sur la base des exemples de données que nous avons utilisés, mais nous devons vraiment poser plus de questions avant de pouvoir répondre à des questions telles que Est-ce que chaque étudiant doit avoir une majeure ? Les données actuelles montrent que c’est le cas, mais en réalité ; vous savez que la plupart des étudiants de première année, et même des étudiants de la classe supérieure, peuvent fréquenter l’université sans avoir une majeure officiellement déclarée.

Modèle de données étudiant

Autres formes normales :

La normalisation ne s’arrête pas avec 3NF. Des formes normales supplémentaires ont été identifiées et documentées. Cependant, la normalisation au-delà de 3NF ne se produit pas souvent dans la pratique normale. Voici des formes normales supplémentaires. Juste pour votre information, nous avons gardé ceci.

La forme normale de Boyce Codd (BCNF) est un raffinement supplémentaire de 3NF. En effet, dans ses écrits ultérieurs, Codd fait référence à BCNF en tant que 3NF. Une ligne est sous forme normale de Boyce Codd si et seulement si chaque déterminant est une clé candidate. La plupart des entités en 3NF sont déjà en BCNF.

La quatrième forme normale (4NF) stipule qu’aucune entité ne peut avoir plus d’une seule relation un-à-plusieurs si les attributs un-à-plusieurs sont indépendants les uns des autres. Une entité est en 4NF si et seulement si elle est en 3NF et n’a pas d’ensembles multiples de dépendances à valeurs multiples.

La cinquième forme normale (5NF) spécifie que chaque dépendance de jointure pour l’entité doit être une conséquence de ses clés candidates.