84
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

1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

Embed Size (px)

Citation preview

Page 1: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 2: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

Comment concevoirune base de données ?

Page 3: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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,– ....

Page 4: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 5: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 6: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 7: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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)

Page 8: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

Evry, 29-31 mai 2000 8© INT

• Mauvaise conception

– Redondance des données– Incohérence en modification– Anomalie d’insertion– Anomalie de suppression

But

Page 9: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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)

Page 10: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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)

Page 11: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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 ?

Page 12: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 13: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 14: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 15: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 16: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 17: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 18: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 19: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 20: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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(....)

......

Page 21: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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)

Page 22: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 23: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 24: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

Evry, 29-31 mai 2000 24© INT

Formes normales

• Première forme normale

• Deuxième forme normale

• Troisième forme normale

Page 25: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 26: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 27: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 28: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 29: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 30: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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)

Page 31: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 32: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

Evry, 29-31 mai 2000 32© INT

Conclusions

• Importance de la normalisation des relations

• Autres formes normales

Page 33: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 34: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 35: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 36: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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, ....

Page 37: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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é’)

Page 38: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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'

Page 39: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 40: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

Evry, 29-31 mai 2000 40© INT

Représentation graphique

Animal Etudiant

Numéro Numéro étudiant

Taille Adresse

Poids Age

Alimentation Année

Page 41: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 42: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 43: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 44: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 45: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 46: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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, ..)

Page 47: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 48: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

Evry, 29-31 mai 2000 48© INT

Différentes configurations d’associations

• Associations binaires

• Associations n-aires

Page 49: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 50: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

Evry, 29-31 mai 2000 50© INT

Exemple

Enseignant Dept

Numéro no_dept

Nom diriger Libellé

Prénom date_affect

Adresse

Page 51: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 52: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

Evry, 29-31 mai 2000 52© INT

Exemple

Enseignant Module

Numéro no_module

Nom responsable Libellé

Prénom

Adresse

Page 53: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 54: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

Evry, 29-31 mai 2000 54© INT

Exemple

Enseignant Module

Numéro no_module

Nom intervenir Libellé

Prénom

Adresse

Page 55: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 56: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 57: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 58: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

Evry, 29-31 mai 2000 58© INT

Représentation graphique

Enseignant

Numéro

Nom 0, n responsable

Prénom

Adresse

Page 59: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 60: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 61: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 62: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

Evry, 29-31 mai 2000 62© INT

Exemple

Personne

Femme Homme Effectuer Service

Page 63: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 64: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 65: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 66: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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é

Page 67: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

Evry, 29-31 mai 2000 67© INT

Construction du schéma entité-association

• Méthode descendante

• Méthode ascendante

Page 68: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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)

Page 69: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 70: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 71: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 72: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 73: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 74: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 75: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 76: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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!

Page 77: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 78: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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)

Page 79: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 80: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 81: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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

Page 82: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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)

Page 83: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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)

Page 84: 1© INTEvry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL +La conception dune BD relationnelle

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