Persistance Normalisation - sfrancois99/WIKI GitHub Wiki

Les Formes Normales

Normalisation

https://www.youtube.com/watch?v=xK7WvzlFrzw

  • Correspond au processus d'organiser les données afin de limiter les redondances, divisant une table en plusieurs, et en les reliant entre elles par des clés primaires et étrangères.
  • L'objectif est d'isoler les données afin que l'ajout, la suppression ou la modification d'un champ puisse se faire sur une seule table et se propager au reste de la base via les relations.

1ère Forme Normale 1FN

Problématique : Donnée composée et liste de valeurs.

  • A un instant donné dans une entité, pour un individu, un attribut ne peut prendre qu'une valeur et non pas un ensemble ou une liste de valeurs.
    Si un attribut prend plusieurs valeurs, alors ces valeurs doivent faire l'objet d'une entité supplémentaire qui sera associée avec la première.
    Exemple : La relation PERSONNE (id_personne, nom, prenom, nom_organisme, adresse_organisme) ne respecte pas 1FN car une personne peut travailler dans plusieurs organismes. Les attributs organisme et fonction peuvent être une liste de valeurs. Il faudra créer une entité ORGANISME(id_organisme, nom, adresse, etc.) dont la clé id_organisme sera une clé étrangère dans l'entité PERSONNE (id_personne, nom, prenom, id_organisme);

Attention aux mauvais exemples !

Exemple : La relation PERSONNE2 (Id_personne, Nom_prenom, num_secu, genre) respecte 1FN car les attributs Nom_prenom et num_secu bien que décomposables (l'un en Nom et Prenom, l'autre en .

2ème Forme Normale 2FN

Problématique : Utile seulement dans le cas de clé composée, un attribut ne doit pas être lié à une partie de la clé.

  • Une relation est 2FN si :
    • Elle est 1FN.
    • Si tout attribut n'appartenant pas à la clé ne dépend pas d'une partie de la clé.
    • Dit autrement : Un attribut non clé ne dépend pas d’une partie de la clé mais de toute la clé.
    • Dit encore autrement : L'identifiant peut être composé de plusieurs attributs mais les autres attributs de l'entité doivent dépendre de l'identifiant en entier (et non pas une partie de cet identifiant).

Exemple : La relation R ( a1, a2, a3, a4, a5, a6) n'est pas 2FN si a5 ne dépend que de a2.

Corollaire : Une relation ayant une clé formée d’un seul attribut est donc en 2FN.

3ème Forme Normale 3FN

  • Une relation est 3FN si :
    • Elle est 2FN.
    • Si tous les attributs non clé dépendent directement de la clé.
    • Dit autrement : Si tout attribut non clé ne dépend pas d'un attribut non clé.

Exemple : La relation R ( a1, a2, a3, a4, a5, a6) n'est pas 3FN si a6 dépend de a4.

<Back | <<Home