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

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

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

Hiérarchie des Formes Normales

3NF

2NF

1NF

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)

Luiz Angelo Steffenel DUT 2A - 2006

Exercices

● Faire les exercices de la feuille 1– Foundation Tousceau

– Équipe Sportive

– Compagnie Aérienne