conception d’un schéma de base de données
TRANSCRIPT
1
1© Michel Soto Modèle entité-association (1/30)
Conception d’un schémaConception d’un schémade base de donnéesde base de données
2© Michel Soto Modèle entité-association (2/30)
ContexteContexte
Conception d’un système d’information
Conception d’un schéma de BD
METHODE MERISE
2
3© Michel Soto Modèle entité-association (3/30)
ApprochesApproches
•• MéthodologiqueMéthodologique
�Modèle entité-association
•• FormelleFormelle
�Modèle relationnel enrichi par les dépendances fonctionnelles
4© Michel Soto Modèle entité-association (4/30)
PRINCIPES DE MODELISATIONPRINCIPES DE MODELISATION
Réalité
Schéma
Conceptuel
Schéma
Logique
Interactions avecles utlisateurs
Règles de passage
Indépendant de tout modèle de données
et de tout SGBD !!!
Dépendant du
modèle de données
cible
3
5© Michel Soto Modèle entité-association (5/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• Peter PinPeter Pin--Chan CHENChan CHEN
http://csc.lsu.edu/news/erd.pdfhttp://csc.lsu.edu/news/erd.pdf
6© Michel Soto Modèle entité-association (6/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION•• ATTRIBUTATTRIBUT
�Propriété élémentaire d’une entité ou d’une association définie sur un domaine
� Exemples: nom, prénom, prix, couleurs, age, …
•• ENTITEENTITE
�Objet de la réalité doté d’une existence propre, indépendante� Concret, tangible: Produit, client, voiture, …
� Conceptuel: Société, cours, travail, projet, …
�Exemples� Client
�� (N°:(N°: 25), 25), �� (Nom:(Nom: Dupont),Dupont),�� (Prénom:(Prénom: Jean),Jean),�� (Adresse:(Adresse: rue du chat qui pêche), rue du chat qui pêche), �� (Ville:(Ville: Paris)Paris)
� Compte �� (N°:(N°: 252),252),�� (Solde:(Solde: 1300)1300)
Collection de couple
(Attribut, Valeur)
4
7© Michel Soto Modèle entité-association (7/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• ASSOCIATIONASSOCIATION
�Lien sémantique entre plusieurs entités
�Exemples� Client (25, Dupont, Jean, rue du chat qui pêche, Paris)
Est titulaire de
Compte (252, 1300)
� Acteur (Mastroianni, Marcello)
Joue dans (cachet 1 000 000 Lires)
Film (La dolce vita, Fellini)
Attribut
D’association
8© Michel Soto Modèle entité-association (8/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• TYPE D’ENTITETYPE D’ENTITE
�Ensemble d’entités ayant les mêmes attributs� Représentation graphique
•• TYPE D’ASSOCIATIONTYPE D’ASSOCIATION
�Ensemble d’associations de même arité et avec les mêmes attributs d’association entre les mêmes types d’entité
� Représentation graphique
Nom du type
Nom duType
Nom duType
5
9© Michel Soto Modèle entité-association (9/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• EXPRESSION DE CONTRAINTESEXPRESSION DE CONTRAINTES
�Identifiant d’une entité� Ensemble d’attribut(s) permettant d’identifier (distinguer) de manière unique chaque occurrence d’entité d’un même type
�Cardinalités d’une association� Nombre minimal et maximal de participation d’une occurrence d’entité à une occurrence d’association
�� Cardinalité minimaleCardinalité minimale��0: une occurrence d’entité 0: une occurrence d’entité peut exister sans participerpeut exister sans participer à l’associationà l’association��1: une occurrence d’entité 1: une occurrence d’entité ne peut exister sans participerne peut exister sans participer au moins une fois à au moins une fois à
l’associationl’association
�� Cardinalité maximaleCardinalité maximale��1: une occurrence d’entité 1: une occurrence d’entité ne peut participer qu’une seule foisne peut participer qu’une seule fois à l’associationà l’association��N: une occurrence d’entité N: une occurrence d’entité peut participer plusieurs foispeut participer plusieurs fois à l’associationà l’association
10© Michel Soto Modèle entité-association (10/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• ENTITE FAIBLEENTITE FAIBLE
�Les attributs décrivant une entité faible ne permettent de construire qu’un identifiant partiel.
�Cet identifiant devra être complété par l’identifiant de l’entité forte (dominante) dont elle dépend.
�Exemple:
Soit une université où sont décrits :
- les bâtiments: un nom unique, une superficie et
- des salles de cours: un N° unique par bâtiment et une capacité.
SALLE BATIMENTSesitue
1,1 1, N
N°SALLECAPACITE
NOM BATIMENTSUPERFICIE
6
11© Michel Soto Modèle entité-association (11/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
CLIENT COMPTETitulairede
0, N 1, N
•• EXEMPLESEXEMPLES
N°CLIENTNOMPRENOMADRESSEVILLE
N°COMPTESOLDE
FILM ACTEURA jouédans
0, N 0, N
N°FILMTITRE
N°ACTEURNOM
CATEGORIEAppartient
1, 1
0, N
N°CATEGORIEDESIGNATION
Cachet
12© Michel Soto Modèle entité-association (12/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
SALLE PROFESSEUR
Case emploidu temps
1, N 1, N
•• EXEMPLESEXEMPLES
N°SalleCapacité
N°ProfesseurNomPrénom
HORAIRE GROUPEETUDIANT
0, N1, N
Intervalle N°GroupeNombre
PERSONNE
0, N <Père>
N°SSNomPrénomPrénom
Pèrede
1, 1 <Enfant>
7
13© Michel Soto Modèle entité-association (13/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• Démarche de conception via le modèle entitéDémarche de conception via le modèle entité--associationassociation
1. Expression du schéma conceptuel E-A à partir de la réalité
2. Amélioration du schéma conceptuel (normalisation)
14© Michel Soto Modèle entité-association (14/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• Amélioration du schéma conceptuelAmélioration du schéma conceptuel
� Représenter toute la réalité et seulement la réalité
STATIONSKI
HOTELPossède1, N 1, 1
NomAltitude
NomCapacité
Contient1, N 1, 1 CHAMBRE
NoType
Estréservabledepuis
1, N 1, N
Sesitue
1, N 1, 1
8
15© Michel Soto Modèle entité-association (15/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• Amélioration du schéma conceptuelAmélioration du schéma conceptuel
� Représenter toute la réalité et seulement la réalité
STATIONSKI
HOTELPossède1, N 1, 1
NomAltitude
NomCapacité
Contient1, N 1, 1 CHAMBRE
NoType
Estréservabledepuis
1, N 1, N
Sesitue
1, N 1, 1
REDONDANCE
D’ASSOCIATION
A SUPPRIMER
16© Michel Soto Modèle entité-association (16/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• Amélioration du schéma conceptuelAmélioration du schéma conceptuel
� Représenter toute la réalité et seulement la réalité
PRODUIT CLIENT0, N 1, N
N°ProduitDésignation
N°ClientNomPrénomCOMMANDE
1, N
N°CommandeDate
Quantité
VENTE
9
17© Michel Soto Modèle entité-association (17/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• Amélioration du schéma conceptuelAmélioration du schéma conceptuel
� Représenter toute la réalité et seulement la réalité
PRODUIT CLIENT0, N 1, N
N°ProduitDésignation
N°ClientNomPrénomCOMMANDE
1, N
N°CommandeDate
OUBLI DE
CONTRAINTE
Quantité
VENTE
18© Michel Soto Modèle entité-association (18/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• Amélioration du schéma conceptuelAmélioration du schéma conceptuel
� Représenter toute la réalité et seulement la réalité
PRODUIT CLIENT0, N 1, N
N°ProduitDésignation
N°ClientNomPrénomCOMMANDE
1, N
N°CommandeDate
OUBLI DE
CONTRAINTE
Il n’y a qu’un seulclient par commande
PRODUIT CLIENT0, N 1, N
N°ProduitDésignation
N°ClientNomPrénomCOMMANDE
1, N
N°CommandeDate
1, 1
Quantité
Quantité
VENTE
Estcommandé Passe
10
19© Michel Soto Modèle entité-association (19/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• Amélioration du schéma conceptuelAmélioration du schéma conceptuel
FOURNISSEUR CLIENT0, N 1, N
N°FournisseurNom
N°ClientNomPrénomCOMMANDE
1, 1
N°CommandeDate
Livre
20© Michel Soto Modèle entité-association (20/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• Amélioration du schéma conceptuelAmélioration du schéma conceptuel
FOURNISSEUR CLIENT0, N 1, N
N°FournisseurNom
N°ClientNomPrénomCOMMANDE
1, 1
N°CommandeDate
DECOMPOSITION
D’ASSOCIATIONSCLIENT0, N 1, N
N°ClientNomPrénomCOMMANDE
N°CommandeDate
1, 1
FOURNISSEUR
N°FournisseurNom 1, 1
Livre Passe
Livre
11
21© Michel Soto Modèle entité-association (21/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• Règles à respecterRègles à respecter
� Attribut� Un même attribut ne peut être partagé par plusieurs types entités ou
associations
� Un attribut doit être ATOMIQUE
� Un attribut doit dépendre en totalité de l'identifiant de son entité.
� Un attribut doit dépendre directement de l'identifiant de son entité: c'est-à-dire sans passer par l'intermédiaire d'un autre attribut
� Entité� Une entité possède toujours au moins un attribut qui doit être alors son
identifiant
� Chacun des attributs d'une type d’entité est caractéristique de TOUTEoccurrence de cette entité
� Association� Pour toute occurrence d'association, il existe une occurrence de chacune
des entités associées.
22© Michel Soto Modèle entité-association (22/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• RemarquesRemarques
� La réalité ?
� Bien délimiter les frontières de la réalité à modéliser
�� Exemple: Si on intègre les commandes dans cette réalité, doitExemple: Si on intègre les commandes dans cette réalité, doit--on s’occuper on s’occuper
aussi de la facturation, de la gestion des stocks ?aussi de la facturation, de la gestion des stocks ?
�� Bien définir ou lire le cahier des charges, l’évaluation des besBien définir ou lire le cahier des charges, l’évaluation des besoinsoins
� Entité vs association
� Le choix entre entité ou association n’est pas toujours évident
�� Exemple: une commande pourra être vue comme une association entrExemple: une commande pourra être vue comme une association entre un e un
client et des produits ou bien comme une entité propreclient et des produits ou bien comme une entité propre
�� Dépend du contexte et de l’utilisationDépend du contexte et de l’utilisation
12
23© Michel Soto Modèle entité-association (23/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• MétamodèleMétamodèle du modèle du modèle entitéentité--associationassociation
© Bernard Morand
24© Michel Soto Modèle entité-association (24/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• Traduction du modèle entitéTraduction du modèle entité--association en modèle relationnelassociation en modèle relationnel
�Règle 1: Type d’entité� Traduit par une relation
�� Attributs: les attributs du type d’entitéAttributs: les attributs du type d’entité�� Clé primaire: l’identifiant du type d’entitéClé primaire: l’identifiant du type d’entité
� Exemple
�� COMMANDE (COMMANDE (N°CommandeN°Commande , date), date)�� CLIENT (CLIENT (N°ClientN°Client , Nom, Prénom), Nom, Prénom)
1, N
CLIENT
N°ClientNomPrénom
COMMANDE
N°CommandeDate
1, 1Concerne
13
25© Michel Soto Modèle entité-association (25/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION•• Traduction du modèle entitéTraduction du modèle entité--association en modèle relationnelassociation en modèle relationnel
�Règle 2: Type d’association binaire avec cardinalité 1,1� Intégré dans relation traduisant le type d’entité qui participe avec la cardinalité 1,1�� Ajouts dans cette relation de l’identifiant de l’au tre type d’enAjouts dans cette relation de l’identifiant de l’au tre type d’en tité associé tité associé
et des attributs éventuels de l’associationet des attributs éventuels de l’association��Cet identifiant est une clé étrangère signalée par #Cet identifiant est une clé étrangère signalée par #
� Exemple 1
�� COMMANDE (COMMANDE (N°CommandeN°Commande , date, , date, #N°Client, Date_livraison#N°Client, Date_livraison ))�� CLIENT (CLIENT (N°ClientN°Client , Nom, Prénom), Nom, Prénom)
1, N
CLIENT
N°ClientNomPrénom
COMMANDE
N°CommandeDate
1, 1Concerne
Date livraison
26© Michel Soto Modèle entité-association (26/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• Traduction du modèle entitéTraduction du modèle entité--association en modèle relationnelassociation en modèle relationnel
�Règle 2: Type d’association binaire avec cardinalité 1,1
� Exemple 2
�� PERSONNE (PERSONNE (N°SSN°SS , Nom, Prénom, , Nom, Prénom, #N°SS_Père#N°SS_Père ]]
PERSONNE
0, N <Père>
N°SSNomPrénom
Père de
1, 1 <Enfant>
14
27© Michel Soto Modèle entité-association (27/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• Traduction du modèle entitéTraduction du modèle entité--association en modèle relationnelassociation en modèle relationnel
�Règle 3: Type d’association n-aire avec cardinalités n,n� Traduit par une relation
�� Attributs: les attributs éventuels du type d’associ ationAttributs: les attributs éventuels du type d’associ ation�� Clé primaire: formée par les Clé primaire: formée par les nn identifiants des types d’entité associésidentifiants des types d’entité associés
��Chacun de ces identifiants est une clé étrangèreChacun de ces identifiants est une clé étrangère
� Exemple 1
�� FILM (FILM (N°FilmN°Film , Titre), Titre)�� ACTEUR (ACTEUR (N°ActeurN°Acteur , Nom), Nom)�� A_JOUE_DANS (A_JOUE_DANS (#N°Film#N°Film , , #N°Acteur#N°Acteur , Cachet, Cachet ))
FILM ACTEURA jouédans
0, N 0, N
N°FILMTITRE
N°ACTEURNOM
Cachet
28© Michel Soto Modèle entité-association (28/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• Traduction du modèle entitéTraduction du modèle entité--association en modèle relationnelassociation en modèle relationnel
�Règle 3: Type d’association n-aire avec cardinalités n,n� Exemple 2
�� SALLE (SALLE (N°SalleN°Salle , Capacité), Capacité)�� PROFESSEUR (PROFESSEUR (N°ProfesseurN°Professeur , Nom, Prénom), Nom, Prénom)�� HORAIRE (HORAIRE (IntervalleIntervalle))�� GROUPE_ETUDIANT(GROUPE_ETUDIANT(N°GroupeN°Groupe , nombre), nombre)�� CASE_EDT (CASE_EDT (##N°SalleN°Salle , , #N°Professeur#N°Professeur , , #Intervalle#Intervalle , , #N°Groupe#N°Groupe ,Nom_cours,Nom_cours ))
SALLE PROFESSEUR
Case emploidu temps
1, N 1, N
N°SalleCapacité
N°ProfesseurNomPrénom
HORAIRE GROUPEETUDIANT
0, N1, N
Intervalle N°GroupeNombre
Nom cours
15
29© Michel Soto Modèle entité-association (29/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• Traduction du modèle entitéTraduction du modèle entité--association en modèle relationnelassociation en modèle relationnel
�Cas particulier: Type d’association binaire avec cardinalités 0,1� Application de la règle 2 si la cardinalité 0 est très rare
�� Une cardinalité 0 est représentée par la valeur Une cardinalité 0 est représentée par la valeur NULLNULL�� Chaque attribut de l ‘association est représenté pa r la valeur Chaque attribut de l ‘association est représenté pa r la valeur NULLNULL
�� PERSONNE (PERSONNE (N°INSEEN°INSEE , Nom, Prénom, , Nom, Prénom, #N°ville, Date_inscription#N°ville, Date_inscription ))�� VILLE (VILLE (N°VILLEN°VILLE , Nom), Nom)
PERSONNE0, 1 1, N
N°VilleNom
Date inscription
Estinscrit VILLE
N°INSEENomPrénom
30© Michel Soto Modèle entité-association (30/30)
MODELE ENTITEMODELE ENTITE--ASSOCIATIONASSOCIATION
•• Traduction du modèle entitéTraduction du modèle entité--association en modèle relationnelassociation en modèle relationnel
�Cas particulier: Type d’association binaire avec cardinalités 0,1 (suite)
� Application de la règle 3 si la cardinalité 0 est fréquente�� Attention !!Attention !!
�� La clé primaire de la relation n’est constituée que de l’identiLa clé primaire de la relation n’est constituée que de l’identi fiant du type fiant du type d’entité qui participe avec la cardinalité 0,1d’entité qui participe avec la cardinalité 0,1
�� PERSONNE (PERSONNE (N°INSEEN°INSEE , Nom, Prénom), Nom, Prénom)�� VILLE (VILLE (N°VILLEN°VILLE , Nom), Nom)�� EST_INSCRIT (#EST_INSCRIT (#N°INSEEN°INSEE , #, #N°VILLE, Date_inscriptionN°VILLE, Date_inscription ))
PERSONNE0,1 1, N
N°VilleNom
Date inscription
Estinscrit VILLE
N°INSEENomPrénom