Top Banner
Luiz Angelo Steffenel DUT 2A - 2006 SGBD Dépendance Fonctionnel et Normalisation d'un Schéma Relationnel
31

Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Sep 10, 2018

Download

Documents

trancong
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

SGBD

Dépendance Fonctionnel etNormalisation d'un Schéma Relationnel

Page 2: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Rappel – Dépendance Fonctionnel

● Soient X et Y, 2 attributs (ou groupes d'attributs) d'une même relation

● Si Y dépend de X, on dit qu'il y a une dépendance fonctionnelle

● On note X Y si la valeur de X détermine la valeur de Y

Page 3: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Rappel – Dépendance Fonctionnel

● Exemples :– Adresse (nom, ville, codepostal, département)

– on a codepostal ville

– mais pas ville département

– Etudiant (nom, prénom, moyenne, âge, enseignant)

– (nom, prénom) moyenne

– (nom, prénom) âge

Page 4: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Propriétés des DF

● Réflexivité : Y X X Y● Augmentation : X Y XZ YZ● Transitivité : X Y et Y Z X Z● Union : X Y et X Z X YZ● Pseudo-transitivité : X Y et W Y Z

W X Z● Décomposition : X Y et Z Y X Z

Page 5: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Clés

● Une clé minimale X est un attribut (ou groupe d'attributs) de R dont :– X R est identifié de façon unique– X est le plus petit ensemble d'attributs qui

identifie R● Si R possède plus d'une clé minimale, celle-

ci est appelée clé primaire● Clé étrangère est un attribut de R qui est clé

minimale de S

Page 6: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Clés

● DFs possibles✔ {ville, région} code

✔ code ville

✗ {ville} {ville, région, code}

✗ {région} {ville, région, code}

● {ville, région} est la clé minimale de R

R(ville, région, code)

Page 7: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Exercices

● Voiture(modèle, année, fabricant, couleur)– Lister les DF qui sont vérifiées

– Identifier les clés minimales de Voiture

● Etudiant(numéro, nom, prénom, formation)– Lister les DFs qui sont vérifiées

– Identifier les clés minimales d'Etudiant

● si deux étudiants ne peuvent pas avoir le même nom et prénom

● laquelle choisirez vous comme clé primaire?

Page 8: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Exercices

● Une relation R(A,B,C,D,E) satisfait les DF

{ABC → DE, E → BCD}

Trouvez toutes les clés de R

● Une relation R(A,B,C,D) satisfait les DF

{AB → C, B → D, BC → A}.

Trouvez toutes les clés de R

Page 9: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Normaliser un Schéma Relationnel

● C'est remplacer un schéma relationnel par un autre schéma "équivalent" (représentant les mêmes données)

● Toutes les relations du nouveau schéma sont dans une certaine forme normale

– respectent des règles entre les DFs

Page 10: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

But de la Normalisation

● Une mauvaise répartition des données entre les relations peut occasionner de graves problèmes lors de l'évolution de la base

● La normalisation des relations permet d'éviter ces problèmes, essentiellement en évitant les redondances

● Les problèmes viennent en fait des dépendances fonctionnelles internes aux relations

Page 11: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Pratique de la Normalisation

● Normaliser un schéma relationnel c'est remplacer chaque relation du schéma par des relations qui sont dans la forme normale voulue

● Le schéma est équivalent si l'union des attributs communs des relations obtenues redonne la relation de départ

● On extrait les DF internes qui posent des problèmes, en les transférant dans de nouvelles relations

Page 12: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Exemple

● Soit donné la relation FILM

FILM(titre, année, durée, type, studio, acteur)● Comment éviter des tuples identifiés par

{titre,année} avec différents durées, types ou studios?– On sépare la relation en FILM1 et FILM2

FILM1(titre, année, durée, type, studio)

FILM2(titre, année, acteur)

Page 13: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Exemple d'Éclatement sans Perte de Données

EMPLOYE(numéro, nom, département, depID)

Peut s'éclater en :

EMPLOYE(numéro, nom, depID)

DEPARTEMENT(depID, département)

Clé Étrangère

Page 14: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Degrés de Normalisation

● Il existe plusieurs degrés de normalisation : de la 1ère forme normale à la 5ème– 1NF - première forme normale– 2NF – deuxième forme normale – 3NF – troisième forme normale (« minimum »)– BCNF – forme normale de Boyce-Codd– 4NF – quatrième forme normale– 5NF – cinquième forme normale

● Plus le degré est grand,– moins on risquera de rencontrer des anomalies

lors des mises à jour des données– plus les conditions à remplir sont strictes

Page 15: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Hiérarchie des Formes Normales

3NF

2NF

1NF

Page 16: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

1NF - Première Forme Normale

● Toutes les attributs sont atomiques (ne sont pas multivalués)

● Ex: La pseudo-relation

Livre(codeISBN, titre, auteurs)

● peut être décomposée en 2 vraies relations :

Livre(codeISBN, titre)

Auteurs(codeISBN, auteur)

Multivalué

Page 17: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

1NF - Première Forme Normale

● Il n'existe pas d'attributs répétitifs

Étudiant (numéro, nom, adresse, cours1, cours2, cours3)

● peut être décomposée en 2 vraies relations :

Étudiant(numéro, nom, adresse)

Cours(numéro, cours)

Page 18: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

1NF - Première Forme Normale

● Chaque attribut a une sémantique précise

● Ex2 : La pseudo-relation

Film(titre, année, durée, type, studio, ville)

● peut comporter différents valeurs pour type

– genre – romance, sci-fi, drame, ...

– couleur, noir et blanc

– dolby, muet, ...

pas très clair

Page 19: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Exercices

● Transformer l'exemple suivant en 1NF

● Quelles sont les désavantages?

1214125013561456

codEtudiant Nom Adresse CoursDeschamps 10 Grande Rue Français, Physique, LatinMounié 2 Quai Perrin Economie, Droit, GestionVelasquez 52 rue Thiers Mathématique, PhysiqueKracoviak 13 avenue de Lyon Informatique, Anglais

Page 20: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

2NF - Deuxième Forme Normale

● Une relation est en 2NF– si elle est en 1NF– si chaque attribut qui ne fait partie d'aucune clé

candidate ne dépend pas d'une partie stricte d'une clé candidate

Employé(matr, projet, nomE, fonctionProjet)

● n'est pas en 2NF

Page 21: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Problèmes de Mise à Jour

● Pour modifier le nom d'un employé, on doit le modifier dans toutes les lignes des projets auxquels participe l'employé

● On ne peut ajouter un employé qui ne participe à aucun projet

● On perd toute information sur un employé qui ne participe plus à aucun projet

Page 22: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Normalisation en 2ème Forme

● On « extrait » les DF gênantes– théorème de décomposition sans perte de

données : ● Soit une relation R(A, B, C) où A, B et C sont des

ensembles d'attributs disjoints, avec B C, alors R(A, B, C) = R[A, B] * R[B, C]

Employé(matr, nomE)

Participation(matr, projet, fonctionProjet)

Page 23: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Exercice

● Soit donnée la relation Commande(NoComm, Date, TotalComm, CodClient, NomClient, Adresse, CodProd, DescriptProd, Prix, Quantité, TotalProd)

● Transformer en 2ème forme normale

Page 24: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

3NF – Troisième Forme Normale

● Objectifs de la 3NF– éliminer les dépendances partielles

● ex: Employé(nom, depID, depNom, projet)

réduit la redondance d'informations

– éliminer les dépendances transitives● ex: Commande(NumComm,Date,TotalComm,

CodClient, NomClient, Adresse)

réduit des problèmes d'insertion et suppression

Page 25: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

3NF – Troisième Forme Normale

● Une relation est en 3NF si tout attribut qui ne fait pas partie d'une clé minimale ne peut dépendre que d'une clé minimale

Employé(matr, nomE, dept, nomD)● n'est pas en 3NF● On obtient un schéma en 3NF par extraction

de la DF :Employé(matr, nomE, dept)Département(dept, nomD)

Page 26: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

BCNF – Forme Normale de Boyce-Codd

● Une relation est en FNBC si les seules sources de DF sont les clés candidates– élimine les dépendances partielles– élimine les dépendances transitives– élimine les anomalies de 3NF

● R est en BCNF ssi lorsque X A appartient à F+ et que A n'est pas dans X, alors X est une clé de R

● ex: Membre(nom, adresse, cotisation) F={nom adresse, nom cotisation}

Page 27: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Exemple de Relation PAS en BCNF

● Introduisons une nouvelle règle de gestion :● 2 personnes d'un même département ne

peuvent participer à un même projet● Cette règle induit la DF suivante :

(dept, codeP) matr● Soit la relation

Participation2(dept, codeP, matr, fonctionP)● Elle est en 3NF mais pas en BCNF

Page 28: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Normalisation en BCNF

● Si on extrait la DF, on obtient :

Participation(matr, codeP, fonctionP)

Emp(matr, dept)● On obtient bien un schéma en FNBC mais

on perd la DF (dept, codeP) matr● Il faut choisir entre

– avoir un schéma en 3 FN, avec toutes les DF

– avoir un schéma en FNBC, avec perte de DFd

Page 29: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Conséquences

● On peut toujours normaliser en 3NF, sans perte de données ni perte de dépendances

● On peut toujours normaliser en BCNF sans perte de données, mais on peut avoir des pertes de dépendances– On est obligé de faire des jointures pour vérifier les

règles de gestion liées aux DF perdues

– Exemple : avec Participation et Emp, à chaque nouvelle participation à un projet, il faut vérifier par programme qu'il n'y a pas déjà un employé du même département dans le projet

Page 30: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Exercice

● Vérifier si les relations suivantes suivent la 3NF

– les normaliser dans le cas contraire

Commande(NoComm, Date, TotalComm, CodClient, NomClient, Adresse)

ListeProds(NoComm, CodProd, Quantité, TotalProd)

Produit(CodProd, Description, Prix)

Page 31: Dépendance Fonctionnel et Normalisation d'un …cosy.univ-reims.fr/~lsteffenel/public_html/SGBD-DUTS3/Cours2.pdf · dépendances fonctionnelles internes aux relations. Luiz Angelo

Luiz Angelo Steffenel DUT 2A - 2006

Exercices

● Faire les exercices de la feuille 1– Foundation Tousceau

– Équipe Sportive

– Compagnie Aérienne