La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Base de Données 2 Julie Dugdale Material/Sources: Daniel Bardou, Julie Dugdale & Vanda Luengo Cours 5 partie 2.

Présentations similaires


Présentation au sujet: "Base de Données 2 Julie Dugdale Material/Sources: Daniel Bardou, Julie Dugdale & Vanda Luengo Cours 5 partie 2."— Transcription de la présentation:

1 Base de Données 2 Julie Dugdale Material/Sources: Daniel Bardou, Julie Dugdale & Vanda Luengo Cours 5 partie 2

2 Sommaire La normalisation Buts de la normalisation Formes normales Première forme normale Deuxième forme normale Troisième forme normale Forme normale de Boyce-Codd Algorithme de Normalisation Algorithme de Normalisation – Exemple Entre Fonctionnel et Opérationnel Dénormalisation

3 Normalisation - Résumé Définition: Le processus de restructurer le modèle de données logiques pour : Eliminer les redondances, Organiser les données efficacement, Réduire le potentiel d'anomalies pendant les opérations sur les données.

4 Normalisation - Résumé Chaque nouvelle forme normale marque une étape supplémentaire de progression vers des relations présentant de moins en moins de redondance Le but.. est d'obtenir une représentation des données présentant un minimum de redondance à l'intérieur de chaque relation et un maximum d'indépendance entre les différentes relations

5 Normalisation : 3FN - Résumé Définition : troisième forme normale: Une relation est en troisième forme normale si : - elle est en deuxième forme normale ; - tout attribut n'appartenant pas à une clé ne dépend pas d'un attribut non clé. - cad toute DF dont la partie droite nest pas une clé doit avoir une partie gauche qui est une clé : A, B, CB, C OK

6 Algorithme de Normalisation

7 Lalgorithme de conception de schéma relationnel en 3NF Théorème: Tout schéma relationnel peut se décomposer en schémas sous 3 ième forme normale avec préservation des Dépendances Fonctionnelles Il existe divers algorithmes de décomposition (nous nen étudierons quun « classique » dû à Bernstein

8 Algorithme de Normalisation 4 étapes 1. Calculer DF -, une Couverture Irredondante Minimale (une CIM) de DF, en enlevant: A) les redondances des attributs de partie gauche Est-ce que AB D a des attributs redondants dans la partie gauche? Est-ce que cela pourrait être remplacé par B D ou A D? B) les dépendances redondantes (transitivité) Si A dépend de B et B dépend de C, alors A dépend aussi de C 2. Regrouper en DF i - les dépendances fonctionnelles de DF - ayant même partie gauche.

9 Algorithme de Normalisation 3. Pour chaque DF i -, construire un schéma relationnel R i avec lunion des attributs de DF i - 4. Trouver les clés de DF -. Si aucune de ces clés nest contenue dans au moins un des R i, alors il faut rajouter un schéma relationnel R k = {K i K->K} avec K un clé candidate. Résultat : Toutes les R i sont 3NF!

10 Algorithme de Normalisation: Exemple On considère la relation R(A, B, C, D, E) et lensemble de dépendances fonctionnelles suivant DF= {A -> BC, CD -> E, B -> D, A -> D, BE -> D} D'abord mettre DF sous forme canonique: (partie droite atomique)… DF = {A -> B, A -> C, CD -> E, B -> D, A -> D, BE -> D}

11 Algorithme de Normalisation: Exemple Souvent utile de dessiner un graphe des dépendances fonctionnelles de DF: DF = {A -> B, A -> C, CD -> E, B -> D, A -> D, BE -> D} A B CD E

12 Algorithme de Normalisation: Exemple 1. Calculer un couverture irredondante DF - (une CIM) de DF, en enlevant: A) les redondances des attributs de partie gauche B) les dépendances redondantes (transitivité) DF = {A -> B, A -> C, CD -> E, B -> D, A -> D, BE -> D} A) Elimine BE -> D (car on a déjà B->D) DF = {A -> B, A -> C, CD -> E, B -> D, A -> D, BE -> D} B) Elimine A -> D (car on a déjà A->B et B->D) Donc, DF - = {A -> B, A -> C, CD -> E, B -> D}

13 Algorithme de Normalisation: Exemple Utile: graphe des dépendances fonctionnelles de DF: A) Elimine BE -> D (car on a déjà B->D) B) Elimine A -> D (car A->B et B->D) Donc, DF- = {A -> B, A -> C, CD -> E, B -> D} A B CD E

14 Algorithme de Normalisation: Exemple 2. Regrouper les dépendances fonctionnelles de DF - ayant même partie gauche, en DF i - DF - = {A -> B, A -> C, CD -> E, B -> D} DF 1 - = {A -> B, A -> C} DF 2 - = {CD -> E} DF 3 - = {B -> D}

15 Algorithme de Normalisation: Exemple 3. Pour chaque DF i -, construire un schéma relationnel R i avec lunion des attributs de DF i - DF 1 - = {A -> B, A -> C} DF 2 - = {CD -> E} DF 3 - = {B -> D} R 1 = {A, B, C} R 2 = {C, D, E} R 3 = {B, D}

16 Algorithme de Normalisation: Exemple 4. Trouver les clés de DF -. Si aucune de ces clés nest contenue dans au moins un des R i, alors il faut rajouter un schéma relationnel R k = {K i K->K} avec K un clé candidate. Clés = seule candidate = A A appartient à R 1 => OK R 1 = {A, B, C} R 2 = {C, D, E} R 3 = {B, D} Résultat: Toutes les R i sont 3NF!

17 Processus global de conception de base de données On a supposé que le schéma R est donné R pourrait avoir été généré pendant la conversion du diagramme E-A en un ensemble de tableaux. R pourrait avoir été une seule relation contenant tous les attributs ayant un intérêt. La normalisation découpe R en des relations plus petites. R pourrait avoir été le résultat d'une conception ad hoc de relations, qu'on teste/convertit alors vers une forme normale.

18 Modèle ER et normalisation Quand un diagramme E-A est conçu avec soin, identifiant toutes les entités correctement, les tableaux générés à partir du diagramme E-A ne devraient pas nécessiter de plus de normalisation. Cependant, dans une conception réelle (imparfaite), il peut y avoir des dépendances fonctionnelles d'attributs non-clé d'une entité vers d'autres attributs de l'entité Exemple : une entité employé avec les attributs numéro_département et adresse_département, et une dépendance fonctionnelle numéro_département adresse_département Une bonne conception aurait fait du département une entité

19 Entre Fonctionnel et Opérationnel Quelques conseils Il ne faut jamais oublier quil y aura des utilisateurs de la base. Il faut par conséquent être fonctionnel et opérationnel. Fonctionnel : une base avec beaucoup de tables est difficile à gérer. Il faut optimiser les tables dans leur structure (recherche de clefs étrangères). Opérationnel : pour les traitements, les relations de type CIF (contrainte d'intégrité référentielle) sont à privilégier.

20 Dénormalisation

21 On appelle dénormalisation l'introduction volontaire de redondance répondant principalement à des conditions d'efficacité. Exemple; Soit le schéma relationnel suivant: Article(NumArt, desigArt, prixArt) Commande(NumCom,DateCom, NumCli) Ligne_Commande(NumCom,NumArt,Qtite) Client(NumCli,NomCli,AdrCli)

22 Dénormalisation Supposons que le marketing (pour lémission de mailing) soumet très fréquemment à la base des requêtes de la forme: Quels sont les adresses des clients ayant passé commande de tel(s) article(s) -> On doit à chaque fois vérifier dans 4 tables pour donner la réponse * Article(NumeroArticle 2, designationArticle 1, prixArticle) * Commande(NumeroCommande 5,DateCommande, NumeroClient 6 ) * Ligne_Commande(NumeroCommande 4,NumeroArticle 3,Qtite) * Client(NumeroClient 7,NomClient,AdresseClient 8 )

23 Dénormalisation Si on met l'attribut designationArt dans Commande on a besoin de deux tables..Redondance mais efficacité Article(NumeroArticle, designationArticle, prixArticle) * Commande(NumeroCommande,DateCommande, NumeroClient 2, designationArticle 1 ) Ligne_Commande(NumeroCommande,NumeroArticle,Qtite) * Client(NumeroClient 3,NomClient,AdresseClient 4 )


Télécharger ppt "Base de Données 2 Julie Dugdale Material/Sources: Daniel Bardou, Julie Dugdale & Vanda Luengo Cours 5 partie 2."

Présentations similaires


Annonces Google