Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL La conception d’une BD relationnelle Protection des informations Perspectives des BD Evry, 29-31 mai 2000
Comment concevoir une base de données ?
Dictionnaire de données liste des rubriques + renseignements associés des indications comme la nature et le type, l’entité ou l’association de rattachement, les contrôles, la date de création et l’auteur, les autorisations de mise à jour, le nombre d’occurrences de valeurs, des exemples de valeurs, le contexte d’utilisation, .... Evry, 29-31 mai 2000
Dictionnaire de données (2) code libellé nature : rubriques non calculées (NC) : par exemple le nom d’un client les paramètres (P) : par exemple le taux de TVA les rubriques calculées (C) : par exemple le montant T.T.C. sur une facture les rubriques calculées incrémentées (CI) : par exemple le numéro d’une facture commentaires Evry, 29-31 mai 2000
Epuration du dictionnaire de données Rubrique ayant plusieurs significations => remplacée par plusieurs Date peut être remplacée par date_commande, date_livraison; Elimination des synonymes numéro client et code_client : idem; Rubriques décomposées en sous rubriques => décomposition Par exemple, une adresse peut être décomposée en un numéro de rue, un nom de rue, un code postal et une ville. La notion d’adresse disparaît alors Outils d’aide à la constitution d’un DD : AGL Evry, 29-31 mai 2000
Présentation du dictionnaire de données Un dictionnaire de données se présente sous forme tabulaire: Evry, 29-31 mai 2000
Théorie de la normalisation organisations : Bains(nn, nom, prénom, qualité, date, durée, np, nomp, type région, pollution) et Nageur(nn, nom, prénom, qualité) Plage(np, nomp, type, région, pollution) Baignade(nn, np, date, durée) Evry, 29-31 mai 2000
But Mauvaise conception Redondance des données Incohérence en modification Anomalie d’insertion Anomalie de suppression Evry, 29-31 mai 2000
Dépendance fonctionnelle (DF) Modélisation contraintes sur les données réalité limites à la base Définition Un attribut 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’instant t) A détermine B Notation A B Evry, 29-31 mai 2000
Dépendance fonctionnelle (2) L ’attribut A peut être composé de plusieurs attributs. immatriculation, date no_propriétaire DF : propriété définie sur tous les tuples, vérifiée en permanence DF non symétrique en général nom nn n’est pas vérifiée. Deux nageurs différents peuvent posséder le même nom (Dupont, Martin) Evry, 29-31 mai 2000
Exemples nn nom ? nn prénom ? nom, prénom qualité ? nn qualité ? np nomp ? np région ? np pollution ? np type ? Région np ? nom, région np ? Evry, 29-31 mai 2000
Axiomes d’Armstrong Réflexivité Augmentation Transitivité Y X X Y Augmentation X Y XZ YZ Transitivité X Y et Y Z X Z Evry, 29-31 mai 2000
Propriétés déduites Union Pseudo-transitivité Décomposition 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 Evry, 29-31 mai 2000
Dépendance fonctionnelle élémentaire DF + Axiomes => toutes les DF DF élémentaire : DF non déductibles 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 famille génératrice = couverture minimale Exemple : nomp, région pollution nomp pollution ou région pollution faux Evry, 29-31 mai 2000
Graphe de dépendances fonctionnelles noeuds = attributs arcs = DF Evry, 29-31 mai 2000
Fermeture transitive FT = DF + DF obtenues par transitivité Notée F+ Nouvelles DF : nomp, région type nomp, région pollution. Evry, 29-31 mai 2000
Couverture minimale Définition Exemple Théorème sous ensemble minimum de dépendances fonctionnelles élémentaires permettant de générer toutes les autres Exemple (nn nom, nn prénom, nn qualité, np nomp, np région, nomp, région pollution, nomp, région type, nomp, région np) Théorème Tout ensemble de dépendances fonctionnelles admet une couverture minimale, en général non unique Evry, 29-31 mai 2000
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 dépendances fonctionnelles associées à R. Soit X un sous-ensemble d’attributs de R. X 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 Evry, 29-31 mai 2000
Clé d’une relation (2) Exemple Remarques nn est une clé de la relation nageur Remarques Plusieurs clés peuvent être candidates pour une même relation Dans l’écriture du schéma, la clé est soulignée Evry, 29-31 mai 2000
Décomposition d’une relation Evry, 29-31 mai 2000
Décomposition d’une relation (2) Décomposition sans perte Décomposition préservant les DF 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) Evry, 29-31 mai 2000
Décomposition sans perte 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 ssi : R R1>< R2 ><...>< Rp Une décomposition d’une relation en deux relations est sans perte si l’attribut de jointure est clé d’une des deux relations Evry, 29-31 mai 2000
Décomposition préservant les DF La décomposition d’un schéma de relation R(A1, A2, ..., An) par un ensemble de schéma de relations R1, R2, ..., Rp préserve les dépendances fonctionnelles si la fermeture transitive de R est la même que l’union des fermetures transitives de chacune des relations Evry, 29-31 mai 2000
Formes normales Première forme normale Deuxième forme normale Troisième forme normale Evry, 29-31 mai 2000
1ère forme normale Définition Un attribut atomique n’est pas : Une relation est en première forme normale si tous ses attributs sont atomiques. Un attribut atomique n’est pas : multivalué (liste de valeurs) composé (structuré en sous-attributs) Pour toute relation en première forme normale, un attribut représente une donnée élémentaire du monde réel Evry, 29-31 mai 2000
Exemple Bains(nn, np, date, durées) Solutions : «durées» : liste des durées de baignade - attribut multivalué Cette relation n’est donc pas en première forme normale Solutions : nombre de baignades limité par jour Bains(nn, np, date, durée1, durée2, durée3) nombre illimité Bains(nn, np, date, durée) autant de tuples qu’il y a de baignade Evry, 29-31 mai 2000
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 la clé R(A,B,C,D) interdit ok Evry, 29-31 mai 2000
Deuxième forme normale (2) Exemple Plage(nomp, région, type, pollution) est-elle en deuxième forme normale ? Remarque Toute relation contenant une clé non composée est automatiquement en deuxième forme normale si elle est en première forme normale Evry, 29-31 mai 2000
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 Si tout attribut non clé dépend directement de la clé, il n’existe donc aucune dépendance avec un attribut non clé R(A,B,C,D,E) interdit ok Evry, 29-31 mai 2000
Propriétés Toute relation R admet au moins une décomposition en troisième forme normale telle que : elle préserve les dépendances fonctionnelles elle est sans perte Exemple plage(np, région, type, pollution) Hypothèse : région type => plage n’est pas en troisième forme normale Transformation plage(np, région, pollution) région (région, type) Evry, 29-31 mai 2000
Algorithme de décomposition 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 Evry, 29-31 mai 2000
Conclusions Importance de la normalisation des relations Autres formes normales Evry, 29-31 mai 2000
Modèle entité-association Concepts et définitions Entité Type d’entité Domaine Attribut Clé Association Type d’association Evry, 29-31 mai 2000
Traduction d’un modèle entité-association vers un modèle relationnel Exemple Evry, 29-31 mai 2000
Entité Entité = objet (concret ou abstrait) Existe en tant que tel, sans être soumis à l’existence d’une autre entité Exemples : Produit X Module d’enseignement de mathématiques Lion Evry, 29-31 mai 2000
Type d’entité Regroupement des entités en fonction de leurs caractéristiques communes => Type d’entité Exemple : Regrouper éléphant, tortue et zèbre en un type d’entité : « animal » Informations en commun (par leur structure) : poids, taille, alimentation, .... Evry, 29-31 mai 2000
Domaine Ensemble de valeur A partir de type communs : Plus finement : entier, chaîne de caractères, ... Plus finement : par extension en listant les valeurs possibles en définissant des plages de valeurs Exemples : âge : entier âge : entier compris entre 0 et 130 situation familiale : ensemble de valeurs (‘célibataire’, ‘marié’, ‘veuf’, ‘divorcé’) Evry, 29-31 mai 2000
Attribut Attribut : propriété d’un type d’entité Pour chaque entité d’un type d’entité une valeur est associée à cet attribut Exemple : Type d’entité animal, Entité éléphant : Taille = 2,30 m Poids = 1000 kg Alimentation = 'végétarien' Evry, 29-31 mai 2000
Clé Attribut (ou groupe d’attributs) particulier d’un type d’entité Différencie toutes les entités d’un même type d’entité Exemple : Numéro d’étudiant Plaque d’immatriculation Evry, 29-31 mai 2000
Représentation graphique Evry, 29-31 mai 2000
Association Association d’entités : regroupement d’entités Traduit plutôt une action entre les entités Exemple : Alimenter :association entre un le lion Clarence et le gardien John Se baigner: association entre le nageur Gaël et la plage de Binic Evry, 29-31 mai 2000
Type d ’association Regroupement des associations en type d’association Peuvent posséder des attributs Attribut d’un type d’association: propriété dépendant de tous les types d’entités intervenant dans l’association Exemple: la date de prise en charge d’un animal par un gardien dépend de gardien + animal Evry, 29-31 mai 2000
Représentation graphique Attention : une association ne possède pas de clé!!!! Evry, 29-31 mai 2000
Exemples Un enseignant est responsable d’un module .... Evry, 29-31 mai 2000
Exemples (2) Une personne peut être le parent (père ou mère) d’une autre ... Evry, 29-31 mai 2000
Exemples (3) A vous de jouer : le type d’association "inscrit" défini entre les types d’entités "étudiant" et "module" a pour attribut le numéro d’ordre d’inscription pour ce module (l’étudiant s’inscrit pour la 1ère, la 2ème fois à ce module, ..) Evry, 29-31 mai 2000
Remarques On ne crée jamais de type d’entité pour représenter un ensemble d’entité réduit à un seul élément Un attribut n’apparaît qu’à une seule place s’il n’y a pas de polysèmes (mots ayant plusieurs sens). Pas de duplication de l’information! Toutes les rubriques du DD ne deviennent pas attributs du modèle. Attribut : rubrique non paramètre, non calculée Evry, 29-31 mai 2000
Différentes configurations d’associations Associations binaires Associations n-aires Evry, 29-31 mai 2000
Associations binaires de type 1:1 À une entité E peut correspondre par l’association A au plus une entité de F À une entité F peut correspondre par l’association A au plus une entité de E Evry, 29-31 mai 2000
Exemple Evry, 29-31 mai 2000
Associations binaires de type 1: n À une entité E peut correspondre par l’association A plusieurs entités de F À une entité F peut correspondre par l’association A au plus une entité de E Evry, 29-31 mai 2000
Exemple Evry, 29-31 mai 2000
Associations binaires de type n:m À une entité E peut correspondre par l’association A plusieurs entités de F À une entité F peut correspondre par l’association A plusieurs entités de E Evry, 29-31 mai 2000
Exemple Evry, 29-31 mai 2000
Association n-aires Plus de deux entités Par exemple, type d’association ternaires. Case d’emploi du temps déterminée que si l’on a l’horaire le jour la matière la classe Type d’association quaternaire Evry, 29-31 mai 2000
Cardinalités d’un couple entité-association La cardinalité d’un couple entité-association E, A est un couple de nombre m, n où : m définit le nombre minimum d’association de type A pouvant exister pour une entité E n définit le nombre maximum d’association de type A pouvant exister pour une entité E Evry, 29-31 mai 2000
Valeurs caractéristiques Valeurs caractéristiques du minimum : 1 Entier plus grand que 1 Valeurs caractéristiques du maximum: n Evry, 29-31 mai 2000
Représentation graphique Evry, 29-31 mai 2000
Exemples Evry, 29-31 mai 2000
Rôle Evry, 29-31 mai 2000
Spécialisation/généralisation d’entités Spécialisation d’un type d’entité Définir des sous-types d’entités Affiner la représentation des données Généralisation Créer un sur-type d’entité Mettre en facteur les attributs communs à plusieurs types d’entités Evry, 29-31 mai 2000
Exemple Personne Femme Homme Effectuer Service Evry, 29-31 mai 2000
Intervention de la théorie de la normalisation Types d’entités Cardinalités Attributs des types d’association Evry, 29-31 mai 2000
Type d’entité Clé d’un type d’entité E : ensemble d’attributs qui détermine fonctionnellement tous les autres attributs de ce type d’entité Un type d'entité doit vérifier les trois formes normales Evry, 29-31 mai 2000
Cardinalités Association ?,1 Si la cardinalité du couple (E, A) où E est un type d’entité et A est un type d’association est (?,1) => une occurrence de E participe au plus à une association de A Cette occurrence détermine donc les autres entités participant à cette association Toute clé de E détermine fonctionnellement les clés des autres types d’entité participants Evry, 29-31 mai 2000
Attributs de type d’association Si T est un attribut d’un type d’association A => T dépend fonctionnellement de l’ensemble des clés de chacun des types d’entité participants Exemple: date_affect du type d’association ‘ diriger ’ défini entre les deux types d’entités ‘ Enseignant ’ et ‘ département ’: num_ens, num_dept date_affect => aucun type d’association ne peut posséder de clé Evry, 29-31 mai 2000
Construction du schéma entité-association Méthode descendante Méthode ascendante Evry, 29-31 mai 2000
Méthode descendante Point de départ : univers du discours Etapes: 1- DD + règles de gestion 2- Recensement des entités et des associations (intuitif) 3- Placement des attributs au sein des types d’entités et d’association 4- Calcul des cardinalités (DF) Evry, 29-31 mai 2000
Méthode descendante (2) 5-Vérification : Respects des règles du formalisme E/A Absence de répétition d’attribut Une clé par type d’entité Vérifier les DF Vérifier les cardinalités /règles de gestion Evry, 29-31 mai 2000
Méthode descendante (3) Vérification :(suite) Normalisation : Vérifier la 3 FN pour tous les types d’entité Vérifier les types d’association n-aire : décomposition en plusieurs types d’association de degré plus faible Supprimer les types d’associations qui se déduisent par transitivité d’autres types d’associations 6-Validation : Par l’utilisateur Par l’analyse des traitements Evry, 29-31 mai 2000
Méthode ascendante Point de départ : sorties Méthode de Flory Etapes : 1- Recensement des rubriques (existantes ou souhaitées) => DD 2- Rechercher les DF (matrice carrée) 3- Couverture minimale 4- Elimination des circuits Evry, 29-31 mai 2000
Méthode ascendante (2) 5- Construction du schéma : Recherche des clés primaires : S : ensemble des attributs correspondant à des sommets du graphe des dépendances fonctionnelles G B : ensemble des attributs étant le but d’au moins une dépendance fonctionnelle et origine d’au moins une dépendance fonctionnelle Chaque attribut de S ou de B est une clé primaire d’un des types d’entité du modèle entité-association Evry, 29-31 mai 2000
Méthode ascendante (3) Construction du schéma : (suite) Recherche des types d’entité : Chaque attribut de S et de B devient clé d ’un type d’entité E Si s est dans S, les attributs déterminés par s n’étant ni dans S ni dans B sont attributs de E; Recherche des types d’associations : Deux clés définies liées par un arc dans G induisent une association de type 1,n La cardinalité (?,1) est rattachée à l’entité dont la clé est source de la dépendance fonctionnelle a b ?,1 1,? Evry, 29-31 mai 2000
Méthode ascendante (4) Construction du schéma : (suite) Recherche des types d’associations : un arc de G provenant de plusieurs sommets (n sommets) vers un attributs non clé se traduit par un type d’association n-aire A de type n:m associant les types d’entités correspondant aux sommets Evry, 29-31 mai 2000
Méthode ascendante (5) Construction du schéma : (suite) 6- Validation Recherche des types d’associations : un arc G provenant de plusieurs sommets (p sommets) et allant vers un attribut clé constitue un type d’association (p+1)-aire; Ajouter les associations sans attribut (non déductibles des DF) 6- Validation Evry, 29-31 mai 2000
Remarques Peu de types d’association ternaire ou plus Abus de langage Entité à la place de type d’entité Association à la place de type d’association Entité = objet ; Entité = occurrence d’entité Type d’entité = concept abstrait détaché de la réalité Modèle entité-association = modèle entité-relation Représentation graphique variable Rédiger des hypothèses! Evry, 29-31 mai 2000
Traduction d’un modèle entité-association vers un modèle relationnel Exemple Evry, 29-31 mai 2000
Règle 1 Type d'entité -> relation Attribut atomique -> constituant (attribut) Attributs composites -> n constituants Attribut(s) clé(s) -> clé candidate Exemple Etudiant(No_etu, Nom_etu, Adr_etu) Cours(Code, Libellé) Prof(Nom_prof, Prénom) Evry, 29-31 mai 2000
Règle 2 Clé associée à E1 (ou E2) -> attribut de E2 (ou E1) Attributs de R -> attributs de E2 (ou E1) Exemple: Etudiant(No_etu, Nom_etu, Adr_etu, No_plaque) Evry, 29-31 mai 2000
Règle 3 Clé associée à E1 -> attribut de E2 Attributs de R -> attributs de E2 Exemple Cours(Code, Libelle, Prof_resp) Evry, 29-31 mai 2000
Règle 4 Création d'une nouvelle relation R Clé de E1 + Clé de E2 -> clé de R Attributs de R-> Attributs de R Exemple Inscription(No_étudiant, No_cours, Date_inscription) Evry, 29-31 mai 2000
Règle 5 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 Exemple: Fonctions(Nom_enseig, Fonction) Evry, 29-31 mai 2000
Résultat Prof(Nom_prof, Prénom) Etudiant(No_etu, Nom_etu, Adr_etu, No_plaque) Cours(Code, Libelle, Prof_resp) Inscription(No_étudiant, No_cours, Date_inscription) Fonctions(Nom_enseig, Fonction) Evry, 29-31 mai 2000
Remarques Règles de traduction => relations en 3ème FN Bon schéma E/A => bon schéma relationnel Evry, 29-31 mai 2000