- Une relation sera en 3NF si elle est en 2NF et ne contient aucune dépendance partielle transitive.
- 3NF est utilisé pour réduire la duplication des données. Il est également utilisé pour garantir l’intégrité des données.
- S'il n'y a pas de dépendance transitive pour les attributs non premiers, alors la relation doit être sous la troisième forme normale.
Une relation est sous la troisième forme normale si elle remplit au moins une des conditions suivantes pour chaque dépendance de fonction non triviale X → Y.
- X est une super clé.
- Y est un attribut premier, c'est-à-dire que chaque élément de Y fait partie d'une clé candidate.
Exemple:
comparer à Java
Tableau EMPLOYEE_DETAIL :
EMP_ID | EMP_NAME | EMP_ZIP | EMP_STATE | EMP_CITY |
---|---|---|---|---|
222 | Harry | 201010 | EN HAUT | Noida |
333 | Stéphane | 02228 | NOUS | Boston |
444 | Et | 60007 | NOUS | Chicago |
555 | Catherine | 06389 | ROYAUME-UNI | Norwich |
666 | John | 462007 | Député | Bhopal |
Super clé dans le tableau ci-dessus :
{EMP_ID}, {EMP_ID, EMP_NAME}, {EMP_ID, EMP_NAME, EMP_ZIP}....so on
Clé du candidat : {EMP_ID}
Attributs non principaux : Dans le tableau donné, tous les attributs sauf EMP_ID ne sont pas premiers.
Ici, EMP_STATE & EMP_CITY dépendant de EMP_ZIP et EMP_ZIP dépendant de EMP_ID. Les attributs non premiers (EMP_STATE, EMP_CITY) dépendent transitivement de la super clé (EMP_ID). Cela viole la règle de la troisième forme normale.
C'est pourquoi nous devons déplacer EMP_CITY et EMP_STATE vers la nouvelle table, avec EMP_ZIP comme clé primaire.
Tableau EMPLOYÉ :
EMP_ID | EMP_NAME | EMP_ZIP |
---|---|---|
222 | Harry | 201010 |
333 | Stéphane | 02228 |
444 | Et | 60007 |
555 | Catherine | 06389 |
666 | John | 462007 |
Tableau EMPLOYEE_ZIP :
différence tigre lion
EMP_ZIP | EMP_STATE | EMP_CITY |
---|---|---|
201010 | EN HAUT | Noida |
02228 | NOUS | Boston |
60007 | NOUS | Chicago |
06389 | ROYAUME-UNI | Norwich |
462007 | Député | Bhopal |