Upload
trancong
View
220
Download
0
Embed Size (px)
Citation preview
Luiz Angelo Steffenel DUT 2A - 2006
SGBD
Dépendance Fonctionnel etNormalisation d'un Schéma Relationnel
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
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
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
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
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)
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?
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
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
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
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
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)
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
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
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é
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)
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
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
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
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
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)
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
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
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)
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}
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
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
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
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)