Slides:



Advertisements
Présentations similaires
Modèle Conceptuel des données
Advertisements

Bases de Données Avancées: Bases de Données Relationnelles
III. Conception de schéma de base de données
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Material/Sources: Daniel Bardou, Julie Dugdale &
Material/Sources: Daniel Bardou, Julie Dugdale &
Material/Sources: Daniel Bardou, Julie Dugdale &
Un modèle conceptuel Le modèle Entité-Association Frédéric Gava (MCF)
Introduction Pour concrétiser l’enseignement assisté par ordinateur
Le modèle logique des données relationnel MLD
Bases de Données Relationnelles Modélisation Conceptuelle (Chapitre 3) Validation et transformations.
Le Modèle Relationnel (Chapitre 4)
Fonctionnalités des SGBD
Le Modèle Logique de Données
Algèbre relationnelle
Optimisation de Requêtes
Gestion de la persistance des objets

Programme Introduction aux BD et aux SGBD Le modèle relationnel
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Bases de Données Plan du cours : Année : 2009/10 A - Généralités :
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Analyse et Conception des Systèmes d’Informations
Contrôles d'accès aux données
B.Shishedjiev - Modèle relationnel
Modélisation E/R des Données
Introduction à la conception de Bases de Données Relationnelles
Chap 4 Les bases de données et le modèle relationnel
Les formes normales.
Conception d’une Base de Données Passage au Schéma Relationnel
Modélisation de données (modèle relationnel)
L’utilisation des bases de données
Modèle Logique de Données
Cas pratique : Interim.
Conception de BD relationnelle
SYSTEMES D’INFORMATION
Bases de Données Avancées: Base de données relationnelles
MODELE RELATIONNEL concept mathématique de relation
Inventé par T. Codd (IBM Recherche)
Les concepts et les méthodes des bases de données
Normalisation. RELATION NORMALE Une relation est dite normale si aucun des domaines qui la composent n'est lui-même une relation. En d'autres termes,
Initiation aux bases de données et à la programmation événementielle
201 UMLV  Type « dictionnaire » sous-ensembles finis de E (ordonné) avec les opérations : Ens_vide :  Ens Ajouter : Ens x Elément  Ens Enlever.
Chapitre 3 La normalisation du modèle relationnel
Optimisation de requêtes
Intégration de schémas
1 G. Gardarin Optimisation de Requêtes  1. Introduction  2. Arbres relationnels  3. Restructuration algébrique  4. Modèle de coût  5. Choix du meilleur.
Bases de données : modèlisation et SGBD
Le modèle relationnel Plan 1. Concepts descriptifs
N.Mellouli-Nauwynck & M.Lamolle1 Intégration de bases de données hétérogènes N.Mellouli-Nauwynck M.Lamolle.
2 Processus de conception de BD
Cours n°1 Introduction, Conception
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Initiation aux SGBD Frédéric Gava (MCF)
Systèmes de gestion de BD
Conception d’une Base de Données Le Diagramme de Classes UML
1 Structure en MC Principes Stockage des données dans la mémoire volatile d’un ordinateur Problèmes Stockage temporaire «Petits» volumes de données Langages.
Notion de Dépendance Fonctionnelle (DF)
Normalisation des BD. Normalisation d’un schéma relationnel  Une mauvaise répartition des données dans les relations peut engendrer :  Des problèmes.
INTRODUCTION AUX BASES DE DONNEES Modèle entités-relations
Initiation aux bases de données et à la programmation événementielle
LES FORMES NORMALES Les trois premières formes normales ont pour objectif de permettre la décomposition de relations sans perdre d’informations. Elles.
INTRODUCTION AUX BASES DE DONNEES Dépendances et normalisation
Le modèle logique des données relationnel
Bases de données – Cours 2
Les bases de données Séance 3 Construction du Modèle Conceptuel de Données.
Cours de Systèmes de Gestion de Données - Licence MIAGE – 2003/20041 Cours n°2 La conception d ’un schéma relationnel (suite) Chantal Reynaud Université.
Schéma de base de données Présentation. Conception du schéma logique  Transformation du schéma conceptuel en structures de données supportées par les.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
Transcription de la présentation:

27/03/2017 Conception d’une BD INT Management

Plan du document Introduction slide 182 27/03/2017 Plan du document Introduction slide 182 Modèle Entité/Association slide 187 Traduction E/A  relationnel slide 194 Rétro-conception slide 206 Généralisation/Spécialisation slide 211 Théorie des dépendances slide 221 Dépendances fonctionnelles slide 227 Décomposition des relations slide 239 Formes normales slide 248

Conception indépendante d’un modèle de données 27/03/2017 Conception indépendante d’un modèle de données Introduction Réalité Schéma conceptuel transformation Schéma relationnel réseau Fichiers ….

Conception relationnelle 27/03/2017 Conception relationnelle Introduction Relation universelle Dépendances fonctionnelles décomposition Schéma Relationnel normalisé

Conception centralisée 27/03/2017 Conception centralisée Introduction Schéma conceptuel global Schéma local Schéma local Schéma local …. Utilisateur Programme …

Conception décentralisée (à partir d’un existant) 27/03/2017 Conception décentralisée (à partir d’un existant) Introduction Hétérogène/homogène Schéma local intégration Schéma global

Conception d’une BD Introduction Réalité Indépendant du SGBD 27/03/2017 Conception d’une BD Introduction Réalité Indépendant du SGBD Recueil des besoins et analyse Besoin de la BD Conception logique Schéma conceptuel (haut niveau) Transformation du modèle Spécifique à un SGBD Schéma conceptuel (spécifique SGBD) Conception physique Schéma physique (spécifique SGBD)

Modèle Entité/Association 27/03/2017 Modèle Entité/Association Modèle E/A Proposé en 1976 (Chen) Nombreuses extensions depuis Avantages : Utilisé dans la plupart des méthodes de conception (MCD Merise, …) Simple Graphique Facilite le dialogue avec les utilisateurs

Concepts Modèle E/A Graphisme 1 Graphisme 2 Ens. entité Attribut 27/03/2017 Concepts Modèle E/A Graphisme 1 Graphisme 2 Ens. entité Attribut Attribut composite Attribut multivalué Clé d’un type d’entité Type d’association Rôle Contraintes de cardinalité Nom Type Entité T A A Ass Ass Rôle Rôle 1,n 0,n

Concepts (2) Modèle E/A Graphisme 1 Graphisme 2 Type d’entité faible 27/03/2017 Concepts (2) Modèle E/A Graphisme 1 Graphisme 2 Type d’entité faible Type d’association identifiante Attribut calculé Ass (1,1)

Modèle E/A Entreprise Modèle E/A nom adresse NoSS nomf prenom No_dept 27/03/2017 Modèle E/A Entreprise Modèle E/A nom adresse NoSS nomf prenom No_dept libelle localisations Nb_emp Travailler pour Est supervisé 1,1 1,1 Employé 0,n Département 0,1 Supervise 0,n diriger 1,1 0,n superviser 0,n 1,n date Avoir à charge gérer Travailler sur 1,1 Nb_heures 1,1 1,n Personne-à-charge Projet Parente prénom DateNaissance Numéro Description

Modèle E/A Entreprise Graphisme 2 27/03/2017 Modèle E/A Entreprise Graphisme 2 Modèle E/A 0,n supervise Employe TravaillerPour Département 1,1 1,n Superviser NoSS No_dept Est supervisé Adresse libelle Nomf 1,1 Nb_Emp Prenom 0,1 1,1 localisations Diriger 0,n 1,n Date 1,n Avoir a charge Gérer TravaillerSur Nb_heures (1,1) PersonneACharge prénom 1,n 1,1 DateNaissance Projet Parenté Numéro Description

27/03/2017 UML Entreprise UML

Entité-Association / Diagramme de classe UML 27/03/2017 Entité-Association / Diagramme de classe UML UML

Traduction EA  relationnel 27/03/2017 Traduction EA  relationnel Traduction La sémantique n’est pas complètement préservée (il faut ajouter des contraintes d’intégrité) Règles sont automatisables (de nombreux outils existent sur le marché, AMCDesignor par exemple) Transformation se fait en 7 étapes Comparaison des concepts des deux modèles : à faire par l’étudiant

Étape 1 : transformation des entités non faibles 27/03/2017 Étape 1 : transformation des entités non faibles Traduction Type d'entité  relation Attribut atomique  constituant (attribut) Attributs composites n constituants Attribut(s) clé(s)  clé candidate E C A E(C, A)

Exemples d’étape 1 Traduction Employé Attributs atomiques 27/03/2017 Exemples d’étape 1 Traduction Employé Attributs atomiques Employe(noss, adresse) Attributs composites Employe(noss, adresse, nomf, prenom) Aplatissement de la structure (suite d’attributs atomiques)  perte de la sémantique Département Département(no_dept, libelle) Attributs multivalués Etape 6 : local Attributs calculés Etape 7 : nb_emp Projet Projet(numero, description)

Étape 2 : transformation des entités faibles 27/03/2017 Étape 2 : transformation des entités faibles Traduction Type d'entité faible  relation Attribut atomique  constituant (attribut) Attributs composites n constituants Attribut(s) clé(s)  partie de clé candidate Attributs clés de l’entité identifiante  partie de clé E C A E2 C2 A2 (1,1) E2(C, C2, A2)

Exemple d’étape 2 Traduction Entité PersonneACharge 27/03/2017 Exemple d’étape 2 Traduction Entité PersonneACharge Attributs atomiques PersonneACharge(nom, DateNaissance, parenté) + Clé de l’entité identifiante PersonneACharge(nom, DateNaissance, parenté, noss) Noss : clé étrangère sur Employé Partie de la clé de PersonneACharge

Étape 3 : transformation des associations binaires monovaluées 27/03/2017 Étape 3 : transformation des associations binaires monovaluées Traduction Clé associée à E1  attribut de E2 Attributs de Ass  attributs de E2 E1 C1 A1 E2 C2 A2 ?,? Ass A3 ?,1 E2(C2, A2, C1, A3) Clé étrangère, pas clé dans E2

Exemples d’étape 3 Traduction TravaillePour 27/03/2017 Exemples d’étape 3 Traduction TravaillePour Employe(noss, adresse, nomf, prenom, no_dept) Dirige Département(no_dept, libelle, nosschef, dateDebut) Dirige monovaluée dans les 2 sens  on aurait pu créer Employe(noss, adresse, nomf, prenom, nodept, nodeptDirigé, dateDebut) Cardinalités (0,1), association partielle  valeurs nulles Controle Projet(numero, description, numdept) Supervision Employe(noss, adresse, nomf, prenom, nodept, noSSSuperviseur) noSSSuperrviseur clé étrangère de Employé sur elle-même PersonneACharge Cf. étape 2

27/03/2017 Étape 4 : transformation des associations binaires multivaluées dans les 2 sens Traduction Création d'une nouvelle relation Ass Clé de E1 + Clé de E2  clé de Ass Attributs de Ass  Attributs de Ass E1 C1 A1 E2 C2 A2 ?,n Ass A3 ?,n Ass(C1, C2, A3) TravailleDans TravailleDans(noss, numeroProjet, nb_heures)

Étape 5 : Transformation des associations n-aires (n > 2) 27/03/2017 Étape 5 : Transformation des associations n-aires (n > 2) Traduction Idem étape 4 : Création d'une nouvelle relation Ass Clé de E1 + Clé de E2 + … clé de En clé de Ass Attributs de Ass  Attributs de Ass E1 C1 A1 E2 C2 A2 Ass A4 Ass(C1, C2, C3, A4) E3 C3 A3

Étape 6 : transformation des attributs multivalués 27/03/2017 Étape 6 : transformation des attributs multivalués Traduction Création d'une nouvelle relation R Attribut multivalué -> constituant Clé du type d'entité associé -> constituant Clé de la relation : tout le schéma A Département C R(A, C) Localisations dans Département LocalisationDept(localisation, num_dept)

Étape 7 : transformation des attributs calculés 27/03/2017 Étape 7 : transformation des attributs calculés Traduction Attribut calculé Requête associée Nb_emp dans Département Département(no_dept, libelle, nosschef, dateDebut) SELECT no_dept, COUNT(*) FROM Employe GROUP BY no_dept Couples no département – effectif du département Associée à une vue relationnelle

Récapitulatif de l’exemple 27/03/2017 Récapitulatif de l’exemple Traduction Employe(noss, adresse, nomf, prenom, nodept, noSSSuperviseur) Département(no_dept, libelle, nosschef, dateDebut) Projet(numero, description, numdept) PersonneACharge(nom, noss, DateNaissance, parenté) TravailleDans(noss, numeroProjet, nb_heures) LocalisationDept(localisation, num_dept) CREATE VIEW Effectifs(no_dept, nb_emp) AS SELECT nodept, COUNT(*) FROM Employe GROUP BY nodept CREATE VIEW DepartementComplet AS SELECT D.*, EF.nb_emp FROM Département D, Effectifs EF WHERE D.no_dept=EF.no_dept

Rétro-conception But : Pourquoi ? Comment ? Remarque 27/03/2017 Rétro-conception Rétro-conception But : Passer d’un schéma relationnel à un schéma Entité-Association équivalent Pourquoi ? Analyse n’a pas été faite ou a été perdue Comment ? Appliquer les étapes de transformation « à l’envers » Remarque  Ne fournit pas une solution unique (perte d’information sur le schéma relationnel par rapport au schéma E/A)

Principes de rétro-conception 27/03/2017 Principes de rétro-conception Relation ne possédant pas de clé étrangère : ensemble d'entité Relation possédant une clé étrangère à l'extérieur de sa clé : ensemble d'entité plus association monovaluée vers l'ensemble d'entité correspondant à la clé étrangère

Principes de rétroconception (2) 27/03/2017 Principes de rétroconception (2) Relation dont la clé est intégralement composée de clés étrangères : association multivaluée entre les ensembles d'entités correspondant aux clés étrangères Relation dont la clé comprend une clé étrangère et une clé "locale" : ensemble d'entité faible par rapport à l'ensemble d'entité correspondant à la clé étrangère

Schéma relationnel BD vins 27/03/2017 Schéma relationnel BD vins Exemples Vins(num, cru, annee, degre) Recoltes(nvin, nprod, quantite) Producteurs(num, nom, prenom, region) Buveurs(num, nom, prenom, ville) Commandes(ncde, date, nb, nvin, qte) Livraisons(ncde, no_ordre, qteLivree)

Rétro-conception de la BD des vins 27/03/2017 Rétro-conception de la BD des vins Rétro-conception Vins Buveurs num ? num cru nom degré prenom annee 1 ? 0,n ville 0,n ? 0,n concerne recoltes Passer quantite 1 ? 1 ? 0,n 1,1 Producteurs 1,1 Livraisons Commandes Donner_lieu num 0,n (1,1) No_ordre ncde nom qteLivrée qté prenom date date region 1 ?

Généralisation / spécialisation 27/03/2017 Généralisation / spécialisation Introduire dans le modèle E/A un concept objet "classique" Permet de définir un ensemble d'entité relativement à un autre (attention ressemble à entité faible mais est très différent)

Sémantique de la généralisation / spécialisation 27/03/2017 Sémantique de la généralisation / spécialisation Sous ensemble d'entité hérite des attributs de son super ensemble d'entité A priori pas d'héritage multiple Spécialisation peut être : totale (toute instance est spécialisée dans au moins un sous-ensemble) ou partielle une partition (une instance ne peut être spécialisée dans plusieurs sous-ensembles) ou un recouvrement

Exemple de généralisation / spécialisation 27/03/2017 Exemple de généralisation / spécialisation Ensemble d'entité A A1 A2 Super ensemble d'entité B  C =  C  D =  A = B  C  D T/P Ensemble d'entité B B1 Ensemble d'entité C C1 Ensemble d'entité D D1 D2 A1 A2 B1 A1 A2 C1 A1 A2 D1 D2

Exemple de généralisation / spécialisation 27/03/2017 Exemple de généralisation / spécialisation PERSONNE nom prénom adresse E  S   P = E  S T/R ETUDIANT noétud cycle SALARIE salaire S = PR  PU PR  PU =  T/P PRIVE prime PUBLIC indice

Transformation G / S vers modèle relationnel (1) 27/03/2017 Transformation G / S vers modèle relationnel (1) Approche par généralisation feuille : relation de base dont le schéma est l'union des attributs de la feuille jusqu'à la racine non feuille : vue définie comme union des fils (avec projection sur les attributs communs)

Conséquences Pas de création d'instances sur les non feuilles 27/03/2017 Conséquences Pas de création d'instances sur les non feuilles Accès aux feuilles peu coûteux Accès aux non feuilles par union-projection Une même instance peut être spécialisée dans plusieurs entités Pas vraiment de notion "d'identité d'objet" (donc pas de partage de structure) Evolution de schéma difficile

Exemple de transformation 27/03/2017 Exemple de transformation CREATE TABLE ETUDIANT(nom, prénom, adresse, noétud, cycle) CREATE TABLE PRIVE(nom, prénom, adresse, salaire, prime) CREATE TABLE PUBLIC(nom, prénom, adresse, salaire, indice) CREATE VIEW SALARIE AS SELECT nom, prénom, adresse, salaire FROM PRIVE UNION FROM PUBLIC CREATE VIEW PERSONNE AS SELECT nom, prénom, adresse FROM ETUDIANT FROM SALARIE

Transformation G / S vers modèle relationnel (2) 27/03/2017 Transformation G / S vers modèle relationnel (2) Approche par spécialisation chaque noeud : relation dont le schéma est constitué des attributs "locaux" chaque instance : on rajoute un oid (ou surrogate) héritage : on ajoute l'oid de l'instance mère comme clé étrangère dans l'instance fille

27/03/2017 Conséquences Création d'instance à n'importe quel niveau dans l'arbre d'héritage Accès coûteux aux instances "loin" de la racine (reconstruction par jointures) Héritage multiple difficile Notion d'oid est offerte (partage de structure possible) Multi-instanciation possible Evolution de schéma plus facile

Exemple de transformation 27/03/2017 Exemple de transformation CREATE TABLE PERSONNE(idfP, nom, prénom, adresse) CREATE TABLE ETUDIANT(idfE, noétud, cycle, idfP) CREATE TABLE SALARIE(idfS, salaire, idfP) CREATE TABLE PUBLIC(idfPU, indice, idfS) CREATE TABLE PRIVE(idfPR, prime, idfS) CREATE VIEW PERSONNE AS SELECT nom, prénom, adresse FROM PERSONNE CREATE VIEW ETUDIANT AS SELECT P.nom, P.prénom, P.adresse, E.noétud, E.cycle FROM  PERSONNE P,  ETUDIANT E WHERE P.idfP = E.idfP ...

Théorie des dépendances 27/03/2017 Théorie des dépendances Normalisation des schémas relationnels

Objectifs Mauvaise conception => Redondance des données 27/03/2017 Objectifs Mauvaise conception => Redondance des données anomalies de maj (valeurs dupliquées) anomalies d’insertion (valeurs nulles, incohérences) anomalies de suppression (pertes d'information non désirées) Introduire une notion de "bon" schéma (sans redondance d'informations) permet de comparer deux schémas

Exemple de mauvaise conception 27/03/2017 Exemple de mauvaise conception Relation APPROVISIONNEMENT PRODUIT QUANTITE COULEUR FOURNISSEUR ADRESSE parapluie 110 rouge Labaleine Paris Chapeau 50 vert Lemelon Lyon sac à main 65 noir Toutcuir Lyon parasol 15 jaune Labaleine Paris ombrelle 5 rouge Labaleine Paris ceinture 25 vert Letour Nantes sac à main 65 noir Legrand Paris

Outils proposés Étudier les propriétés des données Formes normales 27/03/2017 Outils proposés Étudier les propriétés des données dépendances fonctionnelles dépendances multi-valuées dépendances produits, ... Formes normales ordre partiel sur les schémas Algorithmes de décomposition / synthèse pour obtenir des schémas en 3ème forme normale

Décomposition d’une relation 27/03/2017 Décomposition d’une relation

Les dépendances fonctionnelles 27/03/2017 Les dépendances fonctionnelles

Dépendance fonctionnelle (DF) 27/03/2017 Dépendance fonctionnelle (DF) Propriété définie sur le schéma cas particulier de contrainte d'intégrité définie sur l'intension (donc valide qq soit l'extension) Définition B dépend fonctionnellement de A si, étant donné une valeur de A, il lui correspond une unique valeur de B (quel que soit l'extension) A et B sont des ensembles d'attributs Notation A  B

Exemple BUVEURS(nb, nom, prénom, ville) 27/03/2017 Exemple BUVEURS(nb, nom, prénom, ville) COMMANDES(nc, datec, nv, qtéc, nb) EXPEDITIONS(nc, dateexp, qtéexp)

Exemples de DF NB  NOM NB  PRENOM NB  VILLE NC  DATEC NC  NB 27/03/2017 Exemples de DF NB  NOM NB  PRENOM NB  VILLE NC  DATEC NC  NB NC  NV NC  QTEC NC, DATEEXP  QTEEXP NOM  VILLE ? NB  NV ? QTEC  QTEEXP ?

Axiomes d’Armstrong Réflexivité Augmentation Transitivité 27/03/2017 Axiomes d’Armstrong Réflexivité Y  X  X  Y Augmentation X  Y  XZ  YZ Transitivité X  Y et Y  Z  X  Z

Propriétés déduites Union Pseudo-transitivité Décomposition 27/03/2017 Propriétés déduites Union X  Y et X  Z  X  YZ Pseudo-transitivité X  Y et YW  Z  XW  Z Décomposition X  Y et Z  Y  X  Z

27/03/2017 Fermeture transitive Fermeture transitive d'un ensemble F de DF est notée F+ F+ = F U DF obtenues via les axiomes Par exemple NC  NB et NB  NOM donc NC  NOM NB  NOM donc NB, NV  NOM, NV essentiellement transitivité et pseudo-transitivité

Graphe de dépendances fonctionnelles 27/03/2017 Graphe de dépendances fonctionnelles Noeuds = attributs Arcs = DF

Graphe de fermeture transitive 27/03/2017 Graphe de fermeture transitive

Dépendance fonctionnelle élémentaire 27/03/2017 Dépendance fonctionnelle élémentaire Une dépendance fonctionnelle X  A est dite élémentaire si A n’est pas inclus dans X il n’existe pas X’ inclus dans X tel que X’ A Permet de simplifier la fermeture transitive (sinon on peut toujours créer de nouvelles DF par augmentation) Exemple : NB  NOM NB, NV NOM non DFE

Couverture minimale Définition Exemple Théorème 27/03/2017 Couverture minimale Définition sous ensemble minimum de DF élémentaires permettant de générer toutes les autres Exemple (nb  nom; nb  prénom; nb  ville; nc  datec; nc  nb; nc  nv; nc  qtéc; nc, dateexp  qtéexp) Théorème Tout ensemble de DF admet une couverture minimale, en général non unique

Clé d’une relation Définition 27/03/2017 Clé d’une relation Définition ensemble minimum d’attributs permettant de déterminer tous les autres Soit R(A1, A2, ..., An) un schéma de relation. Soit F+ l’ensemble des DF associées à R. X (sous-ensemble d'attributs de R) est une clé de R ssi : X  A1, A2, ..., An il n’existe pas de sous-ensemble Y de X tel que Y  A1, A2, ..., An

Clé d’une relation (2) Exemple Remarques 27/03/2017 Clé d’une relation (2) Exemple nc, dateexp est une clé du schéma coopérative Remarques une même relation peut avoir plusieurs clés il existe toujours au moins une clé (au pire on prend tout le schéma)

Décomposition des relations 27/03/2017 Décomposition des relations

Décomposition d’une relation 27/03/2017 Décomposition d’une relation Décomposition d’un schéma de relation La décomposition d’un schéma de relation R(A1, A2, ..., An) est sa substitution par un ensemble de schéma de relations R1, R2, ..., Rp telles que : schéma(R)  schéma(R1)  schéma(R2)  ... schéma(Rp) Critères de bonne décomposition Décomposition sans perte d'informations Décomposition préservant les DF

Décomposition sans perte d'informations 27/03/2017 Décomposition sans perte d'informations La décomposition d’un schéma de relation R(A1, A2, ..., An) par un ensemble de schéma de relations R1, R2, ..., Rp est sans perte d'informations ssi : R  R1 R2 ... Rp

Décomposition préservant les DF 27/03/2017 Décomposition préservant les DF Soit R(A1, A2, ..., An) et DFR (ens. de DF associé) la décomposition de R en R1, R2, ..., Rp (avec DFR1, ...DFRn resp. ens. de DF de R1, ..., Rn) préserve les DF ssi : DFR+ = DFR1+ U ... U DFRn+

Exemples de décomposition 27/03/2017 Exemples de décomposition Commandes(nc, datec, nv, qtéc, nb, nom, prénom, ville) C(nc, datec, nv, qtéc, nb) et B(nom, prénom, ville) : perte d'info C(nc, datec, nv, qtéc, nb) et B(nb, nom, prénom, ville) : pas de perte d'info et préservation DF C(nc, nb) et B(nc, datec, nv, qtéc, nom, prénom, ville) : pas de perte d'info et perte de DF (nb  nom par exemple)

Principe de décomposition binaire 27/03/2017 Principe de décomposition binaire R(X,Y,Z) et X  Y  R(X,Y,Z)=R1(X,Y) R2(X,Z) on peut toujours décomposer une relation suivant une DF on ne peut pas décomposer une relation s'il n'y a pas de DF la décomposition selon une DF préserve l'information

Algorithme de décomposition 27/03/2017 Algorithme de décomposition Commandes(nc, datec, nv, qtéc, nb, nom, prénom, ville) nb  nom; nb  prénom; nb  ville; nc  datec; nc  nb; nc  nv; nc  qtéc; nc, dateexp  qtéexp Commandes(nc, datec, nv, qtéc, nb, nom, prénom, ville) nc  datec, nv, qtéc C1(nc, datec, nv, qtéc) C(nc, nb, nom, prénom, ville) nb  nom, prénom, ville C3(nb, nom, prénom, ville) C2(nc, nb)

Algorithme de décomposition 27/03/2017 Algorithme de décomposition Garantie que la décomposition soit sans perte (puiqu'on suit le principe de décomposition binaire) Pas de garantie que la décomposition préserve les DF Décomposition n'est pas unique (dépend de l'ordre du choix des DF dans la décomposition)

27/03/2017 Autre décomposition Commandes(nc, datec, nv, qtéc, nb, nom, prénom, ville) nb  nom, prénom, ville C1(nb, nom, prénom, ville) C2(nc, datec, nv, qtéc, nb)

27/03/2017 Formes normales

Formes normales Première forme normale Deuxième forme normale 27/03/2017 Formes normales Première forme normale Deuxième forme normale Troisième forme normale ...

1ère forme normale Définition Un attribut atomique n’est pas : 27/03/2017 1ère forme normale Définition Une relation est en première forme normale si tous ses attributs sont atomiques (inhérent au modèle relationnel) Un attribut atomique n’est pas : multivalué (liste de valeurs) composé (structuré en sous-attributs)

Deuxième forme normale 27/03/2017 Deuxième forme normale Définition Une relation est en deuxième forme normale ssi : elle est en première forme normale tout attribut non clé dépend de la totalité de toutes les clés Exemple C(nc, dateexp, qtéexp, nb) pas en 2FN car nc, dateexp clé et nc  nb

Troisième forme normale 27/03/2017 Troisième forme normale Objectif : élimination des redondances dues aux dépendances fonctionnelles déduites par transitivité Définition Une relation est en troisième forme normale ssi : elle est en deuxième forme normale il n’existe aucune DF entre attributs non clé

Comment calculer une forme normale 27/03/2017 Comment calculer une forme normale Soit R(A1, ..., An) et DFR ens. de DF associé calculer DFR+ déterminer la (les) clé (s) de R partitionner les attributs en attributs clés (ils appartiennent à au moins une clé) et attributs non clés appliquer les définitions de forme normale (depuis la 1ère)

27/03/2017 Propriétés Toute relation R admet au moins une décomposition en 3FN qui préserve l'information et les DF Deux approches pour la calculer : décomposition : on s'arrête dès que les relations dérivées sont en 3FN (mais pas de garantie sur les DF) synthèse à partir de la couverture minimale

Algorithme de synthèse en troisième forme normale 27/03/2017 Algorithme de synthèse en troisième forme normale Pré : connaissance du contenu de la relation universelle + DF Principe de l’algorithme : A partir du graphe G des DF, calculer une couverture minimale C Editer l’ensemble des attributs isolés dans une même relation (tous sont clés) Recherche le plus grand ensemble X d’attributs qui détermine d’autres attributs Editer la relation R(X, A1, ..., An) Supprimer les DF X  A1, .., X An du graphe de couverture minimale C Supprimer les attributs isolés de C Reprendre l’opération à partir de l’étape 3 jusqu’à ce que C soit vide

Insuffisance de la 3FN Relation VINS(CRU, PAYS, REGION) 27/03/2017 Insuffisance de la 3FN Relation VINS(CRU, PAYS, REGION) Chenas, France, Beaujolais Juliénas, France, Beaujolais Chablis, France, Bourgogne Chablis, USA, Californie avec les DF suivantes : région  pays; cru, pays  région VINS est en 3FN, pourtant il y a des redondances (ici on peut régler cela avec la 3FN Boyce Codd Kent)

Conclusion sur la normalisation 27/03/2017 Conclusion sur la normalisation Permet d'affiner une conception de schéma Peut se coupler avec une démarche de conception "à la Merise" Inconvénient majeur : on suppose qu'on possède une couverture minimale des DF (si on a oublié une DF tout est faux) Autres formes normales avec d'autres types de dépendance Peut être remis en cause au niveau physique (dénormalisation)