BTS INFORMATIQUE DE GESTION Lycée Jean Rostand CHANTILLY Cardoni Jean-Marie 5 DAIGL (analyse) (1 ère année) La normalisation Condition de réalisation En classe Seul Groupe Contenu du référentiel S32 Analyse et conception de systèmes logiciels (méthodes et outils) - identifier les différents niveaux de représentation d'un SI - représenter les communications et les données d'un SI - identifier les différentes phases de la mise en œuvre d'une méthode de conception, en interpréter les résultats Sommaire 1 Problématique 2 2 Les règles de normalisation 2 3 Les formes normales 2 3.1 La 1 ère FN 3 3.2 La 2 ème FN 3 3.3 La 3 ème FN 5 3.4 Conclusion 7 4 Applications 8 Exo 1 8 Exo 2 8 Exo 3 10 Exo 4 10 Page 1 / 10
1 PROBLEMATIQUE Imaginons la relation suivante Client (NumClient, NomClient, VilleRésidence, NombreHabitantVille) Si notre base gère 50 000 clients avec comme répartition : 20 000 clients habitent Paris 10 000 clients habitent Lille 20 000 clients habitent Marseille Cette relation n'est pas acceptable En effet : La solution? Remarque : ce type de problème peut être détecté au niveau conceptuel ou plus tard (au niveau opérationnel) 2 LES REGLES DE NORMALISATION Définition Les formes normales constituent un ensemble de règles dont l'application facilite l'observation des éventuelles redondances d'information dans les tables et permet ainsi de s'assurer de la cohérence des données d'une base. Remarques : Normaliser un schéma relationnel c'est lui appliquer un ensemble de règles Un schéma relationnel normalisé évite les problèmes de redondance et ses conséquences (espace disque gâché, mise à jour inutile ou incohérente) CODD dans les années 70 a proposé un ensemble de règles pour normaliser un schéma relationnel. A chacune de ces règles correspond une forme normale. Les règles sont au nombre de 6. Ces 6 règles s'imbriquent Page 2 / 10
Nous n'étudierons que les 3 premières formes normales ainsi que la forme normale de Boyce CODD. 3 LES FORMES NORMALES 3.1 La 1 ère forme normale (1 FN) Une relation est en 1 FN si Exemple 1 Soit la table Produit Cette relation est-elle en 1 FN? La solution : Référence Caractéristiques 3CM212 Ecran : 200 BF215 Ecran : 254 GT3000 Scanneur : 125 P33214 Microordinateur : 1 250 Exemple 2 Individu (NumIndividu, NomIndividu, CaractèristiquesPhysiquesIndividu) CaractèristiquesPhysiquesIndividu contient la taille, le poids et la couleur des yeux. On souhaite réaliser des statistiques sur les caractéristiques physiques de chaque individu. La relation Individu est-elle en 1 FN? Page 3 / 10
Exemple 3 Client (NumClient, NomClient, AdresseClient) Adresse contient le nom de rue, le code postal, le nom de la ville. On souhaite adresser du courrier aux clients. La relation Client est-elle en 1 FN? Exemple 4 Personne (NumPersonne, NomPersonne, PrénomsPersonne) PrénomsPersonne contient la liste des prénoms de la personne La relation Personne est-elle en 1 FN? On a deux possibilités : Si on limite la liste de prénoms (une personne a au plus trois prénoms) Si on ne limite pas la liste de prénoms Exemple 5 Salarié (NumSalarié, NomSalarié, LanguesParlées) LanguesParlées contient la liste des langues parlées par le salarié. La relation Salarié est-elle en 1 FN? Page 4 / 10
3.2 La 2 ème forme normale (2 FN) Une relation est en 2 FN si Exemple 1 Soit la table commander #NCommande #Référence Désignation Qté 1 BR210 Ecran 10 2 GT5000 Scanneur 5 3 P321 Souris 1 4 GT500 Scanneur 1 5 AZ25 Clavier 2 6 AZ25 Clavier 5 7 GT500 Scanneur 4 8 P321 Souris 7 9 AZ23 Clavier 1 10 P321 Souris 2 Cette relation est-elle en 2 FN? La solution : Exemple 2 On dispose de la relation suivante : Fournisseur (CodeFournis, NumArticle, NomFournis, PrixArticle) ainsi que de deux règles de gestion. Un même article peut-être fourni par différents fournisseurs à des prix différents. Un fournisseur a un seul nom. La relation Fournisseur est-elle en 2 FN? 1 FN? 2 FN? En fait on peut réaliser un schéma qui fait apparaître : Fournisseur (CodeFournis, NumArticle, NomFournis, PrixArticle) Page 5 / 10
3.3 La 3 ème forme normale (3 FN) Définition Une relation est en 3 FN si Exemple 1 Employé (NumEmployé, NomEmployé, NumService, LibelléService) Un employé est identifié par un numéro et possède un nom. Il travaille dans un seul service. Un service possède un numéro et un nom unique La relation Employé est-elle en 3 FN? 1 FN? 2 FN? 3 FN? En fait on peut réaliser un schéma qui fait apparaître : Employé (NumEmployé, NomEmployé, NumService, LibelléService) Page 6 / 10
Exemple 2 Livre (NumLivre, TitreLivre, CodeEditeur, NomEditeur) Un livre est identifié par un numéro et possède un titre. Il est édité par une seule maison d'édition. Chaque maison d'édition est caractérisée par un code et un nom. La relation Livre est-elle en 3 FN? 1 FN? 2 FN? 3 FN? En fait on peut réaliser un schéma qui fait apparaître : Livre (NumLivre, TitreLivre, CodeEditeur, NomEditeur) 3.4 Conclusion Dans une table, tous les attributs doivent être en dépendance pleine et directe de la clé primaire. Page 7 / 10
4 APPLICATIONS EXERCICE 1 Le schéma relationnel suivant représente une base de données gérant les emprunts de livres effectués par les enfants d'une école maternelle. On ne conserve que le dernier emprunt effectué pour chaque enfant. L'emprunt d'un livre par un enfant nécessite l'enregistrement d'une date d'emprunt et d'une date de retour prévue pour le livre. Chaque enfant est identifié par un numéro et est caractérisé par un nom et ses prénoms (on ne conserve que les trois premiers prénoms qui lui ont été donnés lors de son inscription sur le registre d'état civil). Un élève est inscrit dans une classe. Une classe appartient à une seule section (Petits, Moyens, Grands). Un livre n'est publié qu'une seule fois. Enfant (NumEnfant, NomEnfant, PrénomsEnfant, Classe, Section) Emprunt (#NumLivre, #NumEnfant, DateEmprunt, DateRetour, AnnéePublicationLivre) Livre (NumLivre, TitreLivre) Extrait des occurrences de la table Enfant : NumEnfant NomEnfant PrénomEnfant Classe Section 1001 PERRIN Christophe P1 Petit 1002 CANET Jean Marc Michel P1 Petit 1003 KIHY Marielle Karine P1 Petit 1004 RUFFET Cyril Nicolas Jean M2 Moyens 1004 RISK Marie Jeanne Zoe M2 Moyens 1005 CANET Lucie M1 Moyens 1006 MINOT Marcel Louis M1 Moyens 1007 CALO Justin Michel G1 Grand 1008 JUSTE Célie Eloïse G1 Grand 1009 JUSTE Nathalie Sophie G1 Grand Extrait des occurrences de la table Emprunt : NumLivre NumEnfant DateEmprunt DateRetour AnnéePublicationLivre 120 1001 09/01/05 09/02/05 1999 207 1005 10/01/05 30/02/05 1999 358 1005 10/01/05 10/02/05 2004 120 1006 01/03/05 01/04/05 1998 120 1005 01/06/05 29/06/05 1997 Travail à faire a) Quelle est la forme normale de chaque relation? Justifier votre réponse. b) Normaliser chaque relation en 3 FN si elle ne l'est pas. a) Quelle est la forme normale de chaque relation? Justifier votre réponse. Enfant (NumEnfant, NomEnfant, PrénomsEnfant, Classe, Section) Page 8 / 10
Emprunt (#NumLivre, #NumEnfant, DateEmprunt, DateRetour, AnnéePublicationLivre) Livre (NumLivre, TitreLivre) b) normalisation en 3 FN EXERCICE 2 Le schéma relationnel suivant représente une base de données gérant la réservation de séjour dans un camping. Un client est caractérisé par un numéro et un nom. Le camping est divisé en emplacement. Chaque emplacement comporte une surface, peut accueillir un certain nombre de personnes et est d'un type particulier (T, C, M ). Chaque type d'emplacement possède un libellé (T correspond à "tente", C à "caravane", M à "Mobil Home") Réservation (#NumClient, #NumEmplac, NomClient) Emplacement(NumEmplac, Surface, NbPersMAX,TypeEmplac, LibelléTypeEmplac) Travail à faire a) Quelle est la forme normale de chaque relation? Justifier votre réponse. b) Normaliser chaque relation en 3 FN si elle ne l'est pas. Page 9 / 10
EXERCICE 3 Le schéma relationnel suivant représente une base de données gérant les vols aériens. Chaque avion est garé dans une zone unique de l'aéroport et possède un type particulier (727, 747, A310, A320, A330 ). Chaque type d'avion ne peut transporter qu'un nombre limité de passagers. Un vol est effectué à une date et sur un seul avion. Vol (#NumAvion, #DateDépart, NumVol, GarageAvion, TypeAvion, CapacitéAvion) Travail à faire a) Quelle est la forme normale de cette relation? Justifier votre réponse. b) Proposer un schéma relationnel composé de relations en 3 FN EXERCICE 4 Le schéma relationnel suivant représente une base de données gérant les véhicules d'un concessionnaire. Un véhicule est identifié par une immatriculation et est caractérisé par une couleur, une marque, un modèle, un type de moteur, une puissance et un numéro de châssis. Un modèle est proposé par une seule marque (ex : le modèle R19 diesel est proposé par Renault). La puissance dépend du modèle et du type de moteur. On associe un libellé unique à chaque type de moteur. Vehicule (NumImmatriculation, CouleurVéhicule, CodeMarque, CodeModèle, CodeMoteur, LibelléMoteur, Puissance, NumChassis ) Travail à faire a) Quelle est la forme normale de Cette relation? Justifier votre réponse. b) Normaliser en 3 ème forme normale Page 10 / 10