Vous êtes sur la page 1sur 40

Licence 2

Bases de Donnes
Modle Entit Association
Modle Relationnel

Florence Petit/ Sylvain Cherrier/Claire David


Entit / Association

Mthode de conception
de bases de donnes
3

Schma Entit/Association (E/A)

Entite/Relation (E/R) invent par Chen en 1976 (USA)


Schma EntitAssociationdu Modle conceptuel de donnes
(MCD) de la mthode Merise
Les entits (ensemble d'objets) possdent des proprits
Les entits sont relies par des associations

Entit 1 association Entit 2

id1 id2 Proprit X


propritA
Proprit Y
propritB
4

Schma Entit/Association (E/A)

Entite/Relation (E/R) invent par Chen en 1976 (USA)


Schma EntitAssociationdu Modle conceptuel de donnes
(MCD) de la mthode Merise
Les entits (ensemble d'objets) possdent des proprits
Les entits sont relies par des associations

ENTIT1 association ENTIT2


identifiant1 identifiant2
propritA propritX
propritB propritY


* Notation SEA de Merise
5

Schma Entit/Association : cardinalits

Des cardinalits prcisent la participation de l'entit l'association


La cardinalit minimale peut tre de 0 ou de 1
La cardinalit maximale peut tre de 1 ou de n

cardinalit cardinalit cardinalit cardinalit


minimale maximale minimale maximale

1,1 0, n
ETUDIANT Rsider DPARTEMENT
numE numDep

Un tudiant rside dans un et un seul dpartement


-> cardinalits 1,1
Un dpartement a pour rsident aucun ou plusieurs tudiants
-> cardinalits 0, n
6

Comprhension d'un SEA


7

Questions

Un Concours peut-il tre fait par plusieurs Organisateurs ?


Un Cheval peut-il se prsenter plusieurs Concours ?
Un mme Cheval peut-il se prsenter plusieurs fois un mme
Concours ?
Un Cheval peut-il tre de plusieurs Races en mme temps ?
Que veut dire la ternaire PARTICIPER ?
Un Cheval peut-il participer plusieurs fois au mme Concours ?
Un Cavalier aussi ?
Peut-il passer plusieurs fois dans le mme Concours avec le
mme Cheval ?
Base de Donnes :
approche nave
9

Conception de BD relationnelles

Difficults de conception d'une BD :


conception non intuitive
mais points communs dans les cas traiter (souvent similaires)

Objectifs :
viter redondance de donnes
assurer cohrence des donnes
permettre des requtes
10

Le schema relationnel

Une base de donnes ?


Des donnes ranges dans des tables (ou tableau)
Cases monovalues
Des contraintes sur les colonnes des tables.
On doit dcrire la structure des tables et des contraintes.
Exemple de contraintes
Cl primaire
Cl etrangre
...
11

Exemple 1 : un exemple de problme de conception

Comment stocker les donnes sur les tudiants ainsi que leur
dpartement de rsidence sous forme de N et de libell ?
Exemple de table mal construite, non normalise

numE nom prenom licence dep libDep


1 Martin Vra 2 77 Seine-et-Marne
2 Martin Annie 1 75 Paris
3 Dupont Sylvie 2 77 Seine-et-Marne
4 Martin Annie 1 93 Seine-Saint-Denis
5 Dupond Laurent 2 92 Hauts-de-Seine
6 Lefvre Laurent 3

Redondance
Volume de donnes (espace-disque) plus important
Risque d'incohrence des donnes : anomalie l'insertion/modification
Risque de perte d'information (dpartement) : anomalie la suppression
12

Schma Entit Association adapt

0,1 0,N
ETUDIANT habite DEPARTEMENT
numE dep
nom libDep
prenom
licence
13

Exemple 1 : Solution par rpartition en 2 tables

table ETUDIANT table DEPARTEMENT


numE nom prenom licence numDep numDep libDep NbHab
1 Martin Vra 2 77 01 Ain
2 Martin Annie 1 75 ...
3 Dupont Sylvie 2 77 75 Paris
4 Martin Annie 1 93
5 Dupond Laurent 2 92 77 Seine-et-Marne
6 Lefvre Laurent 3 92 Hauts-de-Seine
93 Seine-Saint-Denis

cl primaire cl trangre cl primaire

Table dynamique Table statique


(avec cl trangre) (sans cl trangre)
gain de taille Table de rfrence
non redondance
cohrence des donnes
Attention : pas de cl trangre sur un schma E/A
14

Exemple 1 : Schma relationnel


ETUD (numE, nom, prenom, licence, numDep, libDep, nbHab)

Comment obtenir un schma relationnel correct ?

ETUDIANT (numE, nom, prenom, licence, #numDep)


DEPARTEMENT (numDep, libDep, nbHab)
Lgende
cl primaire : souligne (convention usuelle)
cl trangre : (prcde d'un #) : fait rfrence un numDep
dans DEPARTEMENT

Cl primaire : permet d'accder aux donnes de faon claire et


unique (une ou plusieurs colonnes)
Cl trangre : Lien avec l'identifiant d'un autre schma
Attention : pas de cl trangre sur un schma E/A
15

Tables et colonnes : les contraintes

Contraintes de colonnes
domaine de donnes (date, entiers,...)
Contraintes entre deux colonnes (cl primaires, cls trangres...)
Contraintes (unique, >10, etc...)
16

Exemple d'instance d'un Schma


Schma relationnel :
SouthPark( idPerso , nomPerso , prenom , #idVoix)
(idVoix cl trangre rfrence idVoix(Doubleur))
Doubleur (IdVoix, Nom)
Une premire instance (contenant des erreurs)
SouthPark
idPerso nomPerso prenom idVoix
1 Cartman Eric TP
2 McCormick Kenny MS
3 Broflosky Kyle MS
4 Marsh Stan TP
Doubleur
4 Chef IH
IdVoix Nom
5 Mackey
TP Trey Parker
7 Terrence & TP MS
Philip MS Matt Stone
IH Isaac Hayes
Correct
Erreur
17

Instance valide du mme schma


SouthPark
idPerso nomPerso prenom idVoix
1 Cartman Eric CM
2 McCormick Kenny WC
3 Broflosky Kyle WC
4 Marsh Stan TW
5 Chef JMM
6 Satan JMM
Doubleur
IdVoix Nom
Cette deuxime instance
TW Thierry Wermuth
du schma (corres-
CM Christophe Lemloine
pondant au doublage
JMM Jean Marie Martial
franais) est correcte.
WC William Coryn
18

Table (ou relation)

Ensemble d'enregistrements structurs par champs (=colonnes).


-> L'ordre des colonnes et des lignes de la table n'a pas importance.
Exemple : Table ETUDIANT
Colonne = Champ = Attribut = Proprit = Caractristique
Ligne
nom prenom date_n
=
Objet Dupont Ren
=
Durand Paul 1990-12-31
N-uplet
= Martin Paul 1990-12-30
Tuple
=
Enregistrement Donne = valeur de l'attribut
= prise dans un domaine de valeurs
Occurrence
Domaine = ensemble de valeurs
possibles d'un champ
19

Schma d'une relation

Schma en intention (ou comprhension)


exprim de manire gnrale sous la forme :
nomTable (nomChamp1, nomChamp2,
nomChamp2 nomChamp3,)
exemple : Etudiant (num, nom, prenom, date_n)
20

Schma relationnel d'une base de donnes

Ensemble des schmas des relations de la base de donnes

Exemple trs simplifi de gestion de garage


CLIENTS (numC, nomC,
nom prenomC, adresseC)
SALARIE (numS, nomS,
nom prenomS, adresseS, dateNaissS)
VOITURE (numV, marqueV,
marqueV modeleV, #numC)
numC rfrence numC(CLIENTS)
REPARATION (numR, dateArriveeR, #numV)
numV rfrence numV(Voiture)
REPARER (#numS, #numR, nbHeuresTravail)
numS rfrence numS(SALARIE)
numR rfrence numR(REPARATION)
21

Schma Entit Association

Le schma Entit Association qui a permis de crer la schma


relationnel prcedent

0,N
CLIENT
possde 1,1
numC VOITURE
numV
nomC 1,N
prenomC marqueV
concerne modleV
adresseC

1,N 1,1
SALARIE 1,N
ralise REPARATION
numS
numR
nomS
dateR
prenomS
adresseS
22

Relationnel : Cl primaire

Identificateur d'un enregistrement de la table


permet de diffrencier 2 enregistrements d'une table, de faon claire,
unique, et la plus concise possible
2 enregistrements doivent avoir des valeurs de cl diffrentes
Naturel ou artificiel (code, numro incrment automatiquement)
Choix parfois entre plusieurs cls (cls candidates)
Cl simple (un seul attribut) ou cl compose/multiple/concatne
(plusieurs attributs)
doit tre stable dans le temps (age ou date de naissance ?)
num NIR Login nom prenom date_n
00001 1630706054781 rdupont Dupont Ren

00002 1801277013111 pdurand Durand Paul 1990-12-31


00003 1801275012141 pmarti01 Martin Paul 1990-12-30
00004 1801275012142 pmarti02 Martin Pierre 1990-12-30
23

Cl primaire - Cl trangre

Cl primaire (Primary Key = PK)


attribut ou ensemble d'attributs d'une table, permettant d'identifier et de
distinguer ses occurrences
par convention, est souligne dans le schma relationnel

Cl trangre (Foreign Key = FK)


fait la liaison entre 2 tables d'une base de donnes
cl trangre de la table T1, cl primaire de la table T2.
doit tre d'un type de donnes compatible la table de rfrence
peut ou non tre tout ou partie de cl primaire de sa table

numE nom prenom numDep numDep libDep


75 Paris
1 Martin Vra 77
77 Seine-et-Marne
2 Martin Annie 75

3 Dupont Sylvie 77

...
cl primaire cl trangre cl primaire
24

Cl primaire et Aspect juridique : NIR (NScurit


sociale)
Numro d'Inscription au Rpertoire national d'identification
Site de la CNIL : www.cnil.fr
" L'enregistrement du numro de scurit sociale dans les fichiers
de paie et de gestion du personnel nest autoris que pour :
- ltablissement des bulletins de paie
et des diffrentes dclarations sociales obligatoires
- la tenue des comptes dpargne salariale "
" Le numro de scurit sociale dun employ ne peut donc pas
tre utilis comme numro de matricule unique pour lidentifier
dans tous les fichiers de gestion des ressources humaines de son
entreprise ou de son administration ".
25

Modle Entit Association Modle relationnel

Schma EA : Description de la problmatique


Entits,
Associations,
Cardinalits

Schma relationnel : Implmentation d'une solution


Relations,
Contraintes (PK, FK, et d'autres...)

Comment faire le lien?


26

Rgles de passage Schma E/A->relationnel

Rgle 1 : entit
Chaque entit donne une table
Son identifiant est la cl de la table
Rgle 2 : association de type 1-N ou 1-1
L'identifiant de l'entit ct N est ajoute du ct 1 o elle
devient cl trangre
Rgle 3: association de type N-M
Cration d'une nouvelle table dont la cl primaires est
l'ensemble des identifiants des entits concernes
Tout attribut de l'association devient attribut de la nouvelle table
27

Reprsentation d'une relation de type 1-N

Schma Entit/Association

1,1 0,n
ETUDIANT rsider DEPARTEMENT

numE numDep
nom libDep
prenom

Schma relationnel
ETUDIANT (numE, nom, prenom, #numDep)
numDep refrence numDep(DEPARTEMENT)
DEPARTEMENT (numDep, libDep)
28

Reprsentation d'une relation de type N-M

Schma Entit/Association

0,n 1,n
Produit commander Commande
quantit
code-prod num-com
lib-prod date-com
prix

Schma relationnel
PRODUIT (code-prod, lib-prod, prix)
COMMANDE (num-com, date-com)
LIGNE-DE-COMMANDE(#code-prod, #num-com, quantite)
code-prod refrence code-prod(PRODUIT)
num-com refrence numCom(COMMANDE)
29

Reprsentation d'une relation de type N-M

Schma Entit/Association

1,n 1,n
Etudiant Noter Matire
moyenne
numE codeMatiere
nom libMatiere
adresse

Schma relationnel
ETUDIANT (numE, nom, adresse)
MATIERE (codeMatiere, libMatiere)
NOTER(#numE, #codeMatiere, moyenne)
numE refrence numE(Etudiant)
codeMatiere refrence codeMatiere(Matiere)
30

Reprsentation d'une relation de type N-M (vide)

Schma Entit/Association

1,n 1,n
Etudiant Sport
pratiquer
numE numSport
nom libSport
prenom

Schma relationnel
ETUDIANT (numE, nom, prenom)
SPORT (numSport, libSport)
PRATIQUER (#numE, #numSport)
numE refrence numE(Etudiant)
numSport refrence numSport(Sport)
31

Reprsentation d'une relation ternaire


Schma Entit/Association
Etudiant 1,n 1,n Sport
pratiquer
numE numSport
nom 1,n libSport
prenom
Club

numClub
nomClub
Schma relationnel
ETUDIANT (numE, nom, prenom)
SPORT (numSport, libSport)
CLUB(numClub, nomClub)
PRATIQUER (#numE, #numSport, #numClub )
numE refrence numE(Etudiant)
numSport refrence numSport(Sport)
numClub refrence numClub(Club)
32

Reprsentation d'une relation de type 1-1


Schma Entit/Association

1,1 1,1
PREFECTURE DEPARTEMENT
est dans
numPref codeDep
nomVille libDep
nbHab nbHab
nomPrefet

Attention : pas de cl trangre sur un schma E/A

Schma relationnel
PREFECTURE (numPref, nomVille, nbHab, nomPrefet, #codeDep)
codeDep refrence codeDep(DEPARTEMENT)
DEPARTEMENT (codeDep, libDep)
33

Reprsentation d'une relation reflexive


Schma Entit/Association

EMPLOY 0,1

numE
nomE A pour chef
prenomE
Service
1,n

Attention : pas de cl trangre sur un schma E/A

Schma relationnel
EMPLOYE (numE, nomE, prenomE, Service, #chef)
chef refrence numE(EMPLOYE)
34

Reprsentation d'une relation de type 1-1

Schma Entit/Association

1,1 1,1
PREFECTURE DEPARTEMENT
est dans
numPref codeDep
nomVille libDep
nomPrefet nbHab
nbHab

Attention : pas de cl trangre sur un schma E/A

Schma relationnel
PREFECTURE (numPref, nomVille, nbHab, nomPrefet)
DEPARTEMENT (codeDep, libDep, nbHab, #numPref)
numPref refrence numPref(PREFECTURE)
35

Reprsentation d'une relation de type 1-1


Schma Entit/Association

DEPARTEMENT

codeDep
numPref
libDep
nbHabDep
nomVille
nomPrefet
nbHabPref

Schma relationnel
DEPARTEMENT (codeDep, libDep, nbHabDep, numPref, nomVille,
nomPrefet, nbHabPref)
36

Reprsentation d'une relation de type 1-1

Schma Entit/Association

PREFECTURE

numPREF
codeDep
libDep
nbHabDep
nomVille
nomPrefet
nbHabPref

Schma relationnel
PREFECTURE (numPref, codeDep, libDep, nbHabDep, nomVille,
nomPrefet, nbHabPref)
37
Gnration anonyme

1,n W
V AtW1 1,n
AtV1
1,1
r1 AtW2
AtV2
r2
1,n

X
1,n AtX1
AtX2
AtX3
Y
AtY1
1,n r3 AtX4

AtY2
AtY3
1,n
Z 0,n
AtZ1
AtZ2
r4
0,1
38

Etapes de conception pour un schma E/A

1. Analyser l'existant et lister les donnes (proprits)


2. purer les donnes : synonymes, polysmes
3. Constituer le dictionnaire des donnes
4. Dgager les entits naturelles
5. Rattacher les proprits aux entits
6. Trouver les identifiants des entits
7. Recenser les associations et leurs proprits
8. Dterminer les cardinalits de chaque couple E-A
9. Appliquer les rgles de passage pour en dduire le schma
relationnel
39

Exercices de modlisation

Une association gre des adhrents (nom, prnom, date de


naissance) qui s'inscrivent un choix d'activits (Bridge, Tricot,
Judo). Un tarif de cotisation annuelle est fix pour chaque
activit. Chaque activit a un seul responsable (nom, prnom) et
un nombre de participants maximum. Pour chaque activit, on
indique la date d'adhsion du participant et s'il a pay sa cotisation.
Adherent 1,n Inscrire 0,n Activite
NAdherent dateAdhesion NActivite
NomAdherent pay LibelleActivite
PrnomAdherent 1,1 TarifActivite
DateNaissanceAdherent Grer
1,n

Responsable
NResponsable
NomResponsable
PrnomResponsable
40

Types d'associations (selon cardinalits maximales)

Association 1 - 1 (un un)


0,1 0,1
0,1 0,1
ENTIT ENTIT
A Association B ELVE Enseigner PRCEPTEUR

Association 1 - N (un plusieurs)


0,n 0,1 0,n
ENTIT
0,1 ENTIT
A Association B
ELVE Enseigner INSTITUTEUR

Association N - M (plusieurs plusieurs)


0,n 0,n
0,n 0,n
ENTIT ENTIT
A Association B
ELVE Enseigner PROFESSEUR