LES FORMES NORMALES Les trois premières formes normales ont pour objectif de permettre la décomposition de relations sans perdre d’informations. Elles découlent de la notion de dépendance fonctionnelle.
Première forme normale LES FORMES NORMALES 0. Pourquoi normaliser ? Première forme normale 2. Deuxième forme normale 3. Troisième forme normale
Pourquoi normaliser ? Normaliser un schéma relationnel c'est le remplacer par un schéma équivalent où toutes les relations vérifient certaines propriétés. Ces propriétés sont basées sur l'analyse des dépendances fonctionnelles à l intérieur de chaque relation. La normalisation est utile : pour limiter les redondances de données, minimiser l’espace de stockage pour limiter les pertes de données, pour limiter les incohérences au sein des données pour améliorer les performances des traitements. éviter les problèmes de mises à jour.
Première forme normale LES FORMES NORMALES 0. Pourquoi normaliser ? Première forme normale 2. Deuxième forme normale 3. Troisième forme normale
Première forme normale PREMIERE FORME NORMALE (1NF) Une relation est en première forme normale si tous les attributs non clé sont en dépendance fonctionnelle avec la clé. Dans un n_uplet un attribut est composé par une valeur atomique. c'est à dire n'ayant à un instant donné qu'une seule valeur ou ne regroupant pas un ensemble de valeurs. Une relation est en première forme normale si tout attribut contient une valeur atomique. La relation doit avoir une clé primaire R (A, B, C, D, E, F)
MALADE (NuMal,DteConsulation,Nom,Sexe, Poids) La relation n’est pas en 1NF Caractéristiques n'est pas un attribut atomique DteCons n'est pas atomique car il regroupe plusieurs valeurs. Première forme normale Exemples : MALADE (NuMal, Nom, Caractéristiques, DteConsultation) NuMal Nom Caractéristiques DteConsultation 1 Dupond Masc,90Kg 10/10;20/10;30/11 OU MALADE (NuMal,DteConsulation,Nom,Sexe, Poids) MALADE (NuMal, Nom, Sexe, Poids) VISITES(Num_visite, date_consultation, #NuMal) NuMal Nom Sexe Poids 1 Dupond Masculin 90 kg Num_visite Date_consultation #NuMal 1 10/10 2 20/10 3 30/11
Première forme normale La relation n’est pas en 1NF adresse n'est pas un attribut atomique Prénomsenfants n'est pas atomique car il regroupe plusieurs valeurs. âgeEnfants n’est pas Atomique Exemples : Personne(numéroSécu, nom, prénom, adresse, prénomEnfants, âgeEnfants) numéroSécu Nom Prénom Adresse Prénomenfants âgeEnfants 169015746327092 Richit Patrick 15 rue de la république 13 800 ISTRES Benjamin Marion Sandra 4 17 6
Première forme normale Proposition : Personne(num_personne, nom, prénom, adresse_rue,CP,Ville,numéroSécu, âge) Lien parental(N°parent,N°enfant) Num_personne Nom Prénom Adresse_rue CP numéroSécu Âge 1 RICHIT Patrick 15 rue de la république 13800 169015746327092 45 2 Benjamin 4 N°parent N°enfant 1 2
Première forme normale LES FORMES NORMALES 0. Pourquoi normaliser ? Première forme normale 2. Deuxième forme normale 3. Troisième forme normale
2. Deuxième forme normale DEUXIEME FORME NORMALE (2NF) La deuxième forme normale est notée 2NF Une relation est en deuxième FN si : Elle est en 1FN Toutes les DF sont élémentaires par rapport à la clé : tout attribut hors clé ne dépend pas d’une partie de la clé Dans un n_uplet il ne doit pas y avoir de dépendance fonctionnelle entre une partie de la clé et des attributs non clé. Une relation avec une clé candidate choisie réduite à un seul attribut est, par définition, forcément en 2NF.
2. Deuxième forme normale Exemples : Commande(codeClient, codeArticle, nom_client, désignation_article) codeClient, codeArticle Nom_client Désignation_article 12 25 RIELPOUP Tournevis La relation n’est pas en 2NF Car une partie de la clé est en dépendance fonctionnelle avec un attribut non clé À un codeclient correspond 1 et 1 seul Nom client De même à 1 CodeArticle correspond 1 est 1 seule désignation_article. Proposition : Clients(Codeclient, nom_client) Articles(Code_article, désignation_article) Commande(#Codeclient#Code_article)
N°patientDate consultation 2. Deuxième forme normale Exemples : Mettre en deuxième forme normale Patient (N°patient, Date consultation, Nom,maladie) Propositions : Patient (N°patient,Nom) Consultation (N°patient#,Date consultation, maladie) ou Consultation(Num_consultation, Date_consultation, maladie, #n°patient) N°patientDate consultation Nom maladie 1 15/01/2006 DURAND GRIPPE 1 16/08/2005 ANGINE
2. Deuxième forme normale Exemples : Avions(N°Avion, Constructeur, type, capacité, propiétaire) La relation est en Première forme normale. Elle est également en deuxième forme normale Pourtant….. Que remarquez vous
Première forme normale LES FORMES NORMALES 0. Pourquoi normaliser ? Première forme normale 2. Deuxième forme normale 3. Troisième forme normale
3. Troisième forme normale TROISIEME FORME NORMALE (3NF) La troisième forme normale est notée 3NF Une relation est en deuxième FN si : Elle est en 1NF Elle est en 2NF Tout attribut hors clé est en DF directe par rapport à la clé. Soient C une clé candidate de R et A et B deux ensembles non vides disjoints d'attributs de R. R est en troisième forme normale si et seulement si elle est en 2NF et pour tous A et B tels que A et B disjoints de C, on n'a pas A → B.
3. Troisième forme normale Constructeur et capacité ne font pas partie de la clé et dépendent de l’attribut type on décompose en Avion (N°avion, Propriétaire,Type#) Modèle(Type, constructeur, capacité) Exemples : Avions(N°Avion, Constructeur, type, capacité, propiétaire) constructeur (N°constructeur, Nom_constructeur)) Avion(N°avion, type_avion, capacité ,#N°constructeur, #N°propriétaire) Propriétaire(N°propriétaire, Nom_propriétaire)
3. Troisième forme normale Exemples : La 3NF permet d’éliminer des redondances, dues à des dépendances transitives entre attributs mais elle ne suffit pas parfois à éliminer toutes les redondances : Codepostal (Ville, Rue ,Code ) Cette relation est elle en 3NF ? OUI Cette relation est en 3NF puisque aucun attribut non clé ne dépend d’une partie de la clé ou d’un attribut non clé mais il y a des redondances : Code Ville Rue 13005 MARSEILLE Aiguillette 13006 MARSEILLE Gal Leclerc Cette relation est elle en 3NF ?
Merci de votre patience FIN Merci de votre patience