Evry, 29-31 mai 2000 1 © INT 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 1© INT
Programme
• Introduction aux BD et aux SGBD
• Le modèle relationnel
• Le langage de requête SQLLa conception d’une BD relationnelle
• Protection des informations
• Perspectives des BD
Comment concevoirune base de données ?
Evry, 29-31 mai 2000 3© INT
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 4© INT
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 5© INT
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 6© INT
Présentation du dictionnaire de données
• Un dictionnaire de données se présente sous forme tabulaire:
Code Libellé Nature CommentaireNo_client Numéro de client NC Synonyme de code_clientNom_c Nom de client NC Nom usuelRem Remise accordée C Pourcentage calculé en fonction de la catégorie
Evry, 29-31 mai 2000 7© INT
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 8© INT
• Mauvaise conception
– Redondance des données– Incohérence en modification– Anomalie d’insertion– Anomalie de suppression
But
Evry, 29-31 mai 2000 9© INT
• 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
Dépendance fonctionnelle (DF)
Evry, 29-31 mai 2000 10© INT
• 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)
Dépendance fonctionnelle (2)
Evry, 29-31 mai 2000 11© INT
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 12© INT
• Réflexivité– Y X X Y
• Augmentation– X Y XZ YZ
• Transitivité– X Y et Y Z X Z
Axiomes d’Armstrong
Evry, 29-31 mai 2000 13© INT
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
Evry, 29-31 mai 2000 14© INT
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 15© INT
Graphe de dépendances fonctionnelles
• noeuds = attributs
• arcs = DF
nn np
nom prénom qualité région nomp type pollution date
durée
Evry, 29-31 mai 2000 16© INT
Fermeture transitive• FT = DF + DF obtenues par transitivité
• Notée F+
• Nouvelles DF :– nomp, région type– nomp, région pollution.
nn np
nom prénom qualité région nomp type pollution date
durée
Evry, 29-31 mai 2000 17© INT
Couverture minimale• Définition
– 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 18© INT
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 19© INT
Clé d’une relation (2)
• Exemple– 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 20© INT
Décomposition d’une relation
Relation universelle DF
nom type nn
région durée
nomp qualité date Normalisation
prénom np pollution R1(.....)
R2(....)
......
Evry, 29-31 mai 2000 21© INT
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 22© INT
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 23© INT
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 24© INT
Formes normales
• Première forme normale
• Deuxième forme normale
• Troisième forme normale
Evry, 29-31 mai 2000 25© INT
1ère forme normale• Définition
– 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 26© INT
Exemple• Bains(nn, np, date, durées)
– «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 27© INT
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) interditok
Evry, 29-31 mai 2000 28© INT
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 29© INT
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)
interditok
Evry, 29-31 mai 2000 30© INT
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 31© INT
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 32© INT
Conclusions
• Importance de la normalisation des relations
• Autres formes normales
Evry, 29-31 mai 2000 33© INT
Modèle entité-association
• Concepts et définitions– Entité– Type d’entité– Domaine– Attribut– Clé– Association– Type d’association
Evry, 29-31 mai 2000 34© INT
Traduction d’un modèle entité-association vers un modèle
relationnel• Exemple
Etudiant Cours Prof
No_etu 1,n s'inscrire 1,n Code 1,1 superviser 1,n Nom_prof
Nom_etu Date_ins Libellé Fonctions
Adr_etu Prénom
0,1
Possède
0,1
Voiture
No_plaque
Evry, 29-31 mai 2000 35© INT
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 36© INT
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 37© INT
Domaine• Ensemble de valeur• A partir de type communs :
– 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 38© INT
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 39© INT
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 40© INT
Représentation graphique
Animal Etudiant
Numéro Numéro étudiant
Taille Adresse
Poids Age
Alimentation Année
Evry, 29-31 mai 2000 41© INT
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 42© INT
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 degardien
+
animal
Evry, 29-31 mai 2000 43© INT
• Attention : une association ne possède pas de clé!!!!
Représentation graphique
Animal Etudiant
Numéro Numéro étudiant
Taille apprivoiser Adresse
Poids date_début Age
Alimentation Année
Evry, 29-31 mai 2000 44© INT
Exemples
• Un enseignant est responsable d’un module ....Enseignant Module
Numéro Id_mod
Nom superviser Libellé
Prénom date_début Nb_heures
Adresse Année
Evry, 29-31 mai 2000 45© INT
Exemples (2)
• Une personne peut être le parent (père ou mère) d’une autre ...
Personne
Numéro_ss
Nom être parent
Prénom
Adresse
Evry, 29-31 mai 2000 46© INT
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 47© INT
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 48© INT
Différentes configurations d’associations
• Associations binaires
• Associations n-aires
Evry, 29-31 mai 2000 49© INT
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 50© INT
Exemple
Enseignant Dept
Numéro no_dept
Nom diriger Libellé
Prénom date_affect
Adresse
Evry, 29-31 mai 2000 51© INT
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 52© INT
Exemple
Enseignant Module
Numéro no_module
Nom responsable Libellé
Prénom
Adresse
Evry, 29-31 mai 2000 53© INT
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 54© INT
Exemple
Enseignant Module
Numéro no_module
Nom intervenir Libellé
Prénom
Adresse
Evry, 29-31 mai 2000 55© INT
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 classeType d’association quaternaire
Evry, 29-31 mai 2000 56© INT
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 57© INT
Valeurs caractéristiques
• Valeurs caractéristiques du minimum :– 0 – 1– Entier plus grand que 1
• Valeurs caractéristiques du maximum:– 1– n– Entier plus grand que 1
Evry, 29-31 mai 2000 58© INT
Représentation graphique
Enseignant
Numéro
Nom 0, n responsable
Prénom
Adresse
Evry, 29-31 mai 2000 59© INT
Exemples Enseignant Dept
Numéro no_dept
Nom 0,1 diriger 1,1 Libellé
Prénom date_affect
Adresse
Enseignant Module
Numéro no_module
Nom 1,n intervenir 1,n Libellé
Prénom
Adresse
Evry, 29-31 mai 2000 60© INT
Rôle
Personne
Numéro_ss avoir des parents
Nom 2,2 être parent
Prénom 0, n
Adresse être parent
Evry, 29-31 mai 2000 61© INT
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 62© INT
Exemple
Personne
Femme Homme Effectuer Service
Evry, 29-31 mai 2000 63© INT
Intervention de la théorie de la normalisation
• Types d’entités
• Cardinalités
• Attributs des types d’association
Evry, 29-31 mai 2000 64© INT
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 65© INT
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 66© INT
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 67© INT
Construction du schéma entité-association
• Méthode descendante
• Méthode ascendante
Evry, 29-31 mai 2000 68© INT
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 69© INT
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 70© INT
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 71© INT
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 72© INT
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 73© INT
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 a ?,1 1,? b
Evry, 29-31 mai 2000 74© INT
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
a c
r a r c
Evry, 29-31 mai 2000 75© INT
Méthode ascendante (5)Construction du schéma : (suite)
• 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
a c
d a c
e
d
Evry, 29-31 mai 2000 76© INT
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 77© INT
Traduction d’un modèle entité-association vers un modèle
relationnel• Exemple
Etudiant Cours Prof
No_etu 1,n s'inscrire 1,n Code 1,1 superviser 1,n Nom_prof
Nom_etu Date_ins Libellé Fonctions
Adr_etu Prénom
0,1
Possède
0,1
Voiture
No_plaque
Evry, 29-31 mai 2000 78© INT
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 79© INT
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)
E1 ?,1 R ?,1 E2
Evry, 29-31 mai 2000 80© INT
Règle 3
• Clé associée à E1 -> attribut de E2
• Attributs de R -> attributs de E2
• Exemple– Cours(Code, Libelle, Prof_resp)
E1 ?,1 R ?,n E2
Evry, 29-31 mai 2000 81© INT
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)
E1 ?,n R ?,n E2
Evry, 29-31 mai 2000 82© INT
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 83© INT
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 84© INT
Remarques
• Règles de traduction => relations en 3ème FN
• Bon schéma E/A => bon schéma relationnel