Organisation des données dans les tablesAvant de se lancer dans la programmation proprement dite, vous aurez besoin
de créer les tables pour le stockage des données. 1) Normalisation des tables Normaliser ses tables consiste à construire celles-ci selon des rêgles permettant notamment
Cette normalisation est importante car elle apporte :
Il s'agit de rêgles de bon sens, que l'on applique peut-être sans le savoir, mais leur formalisation permet de vérifier que vos tables respectent ces rêgles. Il existe 5 formes normales, mais nous ne traiterons que les 3 premiêres qui sont les plus importantes. 2) Premiêre forme normale Cette rêgle stipule 3 points :
L'exemple ci-dessus n'est pas conforme puisque le champ nom contient à
la fois le nom et le prénom, le champ ville, la ville et le code postal.
Maintenant que tous les champs sont ‘atomiques', les tris et les recherches seront plus simples et plus directs.
Cette table n'est pas conforme puisqu'elle contient des champs répétitifs. Il faudra donc la scinder en 2 tables :
Cette table n'est pas conforme puisque le champ quantité peut représenter des litres de lait ou des nombres d'oeufs. Pour être conforme à la norme, il faudrait avoir une table pour les poules, une table pour les vaches, mais cette normalisation a ses limites, car si cette ferme produit également des quintaux de blé, des tonnes de fourrage, … Une solution simple (mais non rigoureusement conforme) consiste à rajouter un champ unité.
3) Seconde forme normale Le respect de la seconde forme normale est également important, même si sa définition peut paraître un peu obscure :
Exemple d'une table (non conforme) gérant les heures des ouvriers d'un atelier
Cette table respecte la 1 êre forme normale, mais ne respecte pas la seconde. Si nous fixons p.ex. la clef primaire NumSalarié + NumAtelier , le champ (non-clef) heures est bien en totale dépendance de la clef primaire, puisqu'à partir de cette clef, nous pouvons isoler un compte d'heures unique pour le couple NumSalarié + NumAtelier. Par contre nous ne pouvons pas le faire pour le champ (non-clef) Nom, qui ne dépend que d'un morceau de la clef primaire. Vous n'avez pas tout compris ? Regardez comment ci-dessous comment cette table a été scindée pour être normalisée.
Deux avantages :
4) Troisiême forme normale
Autrement dit, si la valeur d'un champ « non-clé » peut être déduite de la valeur d'un autre champ « non-clé » alors sa relation à la clé primaire est transitive (puisqu'elle transite par un autre champ) et la table n'est pas dans la troisiême forme normale. Exemple d'une table (non conforme) gérant les employés d'une entreprise :
Dans cet exemple, il est possible de déterminer le nom du service et le code salarié de son chef uniquement à partir du code service qui est un champ « non-clef ». Quels sont les risques ? Si nous supprimons tous les employés d'un service donné, lors de la suppression du dernier enregistrement nous perdrons également les informations concernant le service lui-même (nom du service et n° du chef). De la même façon, si on crée le nouveau service dans l'entreprise, nous ne pourront pas l'ajouter tant qu'il n'y aura pas un salarié affecté à ce service. La solution passe par un découpage de la table en deux autres tables répondant chacune aux 3 premiêres formes normales.
|
83 Personne(s) en ligne (3 Personne(s) connectée(s) sur Documentations) | Utilisateur(s): 0 | Invité(s): 83 | Plus ...