conception d’un schéma de base de données

15
1 1 © Michel Soto Modèle entité-association (1/30) Conception d’un schéma Conception d’un schéma de base de données de base de données 2 © Michel Soto Modèle entité-association (2/30) Contexte Contexte Conception d’un système d’information Conception d’un schéma de BD METHODE MERISE

Upload: others

Post on 18-Oct-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Conception d’un schéma de base de données

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

Page 2: Conception d’un schéma de base de données

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

Page 3: Conception d’un schéma de base de données

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)

Page 4: Conception d’un schéma de base de données

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

Page 5: Conception d’un schéma de base de données

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

HP_PAVILLON
Note
double trait désigne l'entité forte dont elle dépend ici salle dépend de bâtiment.
Page 6: Conception d’un schéma de base de données

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>

HP_PAVILLON
Note
Plus il y a d'association, plus la probabilité que la cardinalité soit juste est faible.
Page 7: Conception d’un schéma de base de données

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

Page 8: Conception d’un schéma de base de données

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

Page 9: Conception d’un schéma de base de données

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

Page 10: Conception d’un schéma de base de données

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

Page 11: Conception d’un schéma de base de données

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

HP_PAVILLON
Note
atomique : qui ne peut être divisé en sous partie.
Page 12: Conception d’un schéma de base de données

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

HP_PAVILLON
Note
ou excluif
HP_PAVILLON
Légende
attribut
HP_PAVILLON
Zone de texte
max 1 entité
HP_PAVILLON
Zone de texte
max 1 association
HP_PAVILLON
Légende
2 à N entités entre une association
HP_PAVILLON
Légende
1 patte possède une cardinalité min/max
Page 13: Conception d’un schéma de base de données

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>

Page 14: Conception d’un schéma de base de données

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

Page 15: Conception d’un schéma de base de données

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