UML Merise

Click here to load reader

  • date post

    07-Apr-2015
  • Category

    Documents

  • view

    148
  • download

    11

Embed Size (px)

Transcript of UML Merise

http://www-adele.imag.fr/users/Didier.Donsez/cours

Le Modle Entit-Association (et UML) et les Bases de Donnes Relationnelles

Didier DONSEZUniversit Joseph Fourier PolyTechGrenoble - LIG/ADELE [email protected] [email protected]

25/09/2007

2

MotivationsModle Entit/Association (Entity/Relationship) point de dpart aux MCD de nombreuses mthodes Merise, OMT, UML,

extension objet (hritage)

Modle Relationnel modle de base pour les SGBDs relationnels >70 % des applications SI

thorie de la normalisationD. Donsez, EA et BD, 1998-2007

suppression des redondances mais il faut dterminer toutes les dpendances fonctionnelles

Transformation E/A vers le Relationnel

25/09/2007

Modle Entit-Association E/A [Chen76]Entity-Relationship Model E/R Concepts de Base Type d Entit (Entity Set) Type d Association (Relationship Set) Attribut (Attribute) Cl (Key) Etudiant Suivre numss nom adresse anne code

3

Cours titre heures

Base pour de nombreux autres mthodologies Merise, OMT, Booch, , Diagramme de classes UML (1 & 2)D. Donsez, EA et BD, 1998-2007

Etudiant numss nom adresse

0..n

0..n

Cours code titre heure

Suivre anne

25/09/2007

4

Les ClsUne entit a une et une seule cl mme si plusieurs cls sont candidates les attributs cl sont souligns

Cours

Cours

D. Donsez, EA et BD, 1998-2007

formation intitul

salle

heure

formation intitul

salle

heure

25/09/2007

5

Choisir une ClNaturelle (Natural) Attribut seul ou composition d attributs doit toujours tre renseign (NOT NULL)

Remarque : Attribut cl reprsentant une compositionISBN : numro intl d diteur + numro d ouvrage GENCOD, EAN, SKU : numro intl de fabricant + numro de produit

cl d une entit faible

Artificielle (Surrogate)D. Donsez, EA et BD, 1998-2007

introduction d un attribut artificiel n appartenant pas au systme dcrit. performance en comparaison compacit du stockagesouvent employ pour les bases dcisionnelles

25/09/2007

6

Cardinalits des AssocationsMultiplicity of RelationshipsA B A B A B

Many-to-many N-M 0,n - 0,nD. Donsez, EA et BD, 1998-2007

Many-to-one N-1 0,n - 0,1 B A A0..n

One-to-one 1-1 0,1 - 0,1 B A A0..1

E/A

A0..n

R0..n

R0..1

R0..1

B B

UML A

B

B

25/09/2007

7

Associativit Many-to-OneEncadrant de Stage

Etudiants

Enseignants

Se lit : Un tudiant est encadr que par un enseignant

Se lit : Un enseignant encadre plusieurs tudiants

D. Donsez, EA et BD, 1998-2007

25/09/2007

8

Association n-Aire Plusieurs entits peuvent participer la mme associations

Exemple d un association ternaire

Etudiants

Enseigne

TDs

numssD. Donsez, EA et BD, 1998-2007

nom

adresse

codcours

titre

coef

Assistants

numemp

nom

bureau

25/09/2007

Modle Entit-AssociationEntity-Relationship ModelEtudiants Suivre anne Cours

9

EtudiantsD. Donsez, EA et BD, 1998-2007

Suivre Anne anne

Cours

25/09/2007

10

Rles dans une associationRles asymtrique / symtrique Couple poux PersonneD. Donsez, EA et BD, 1998-2007

Ami pouse 1 Personne 2

poux Joseph Sanson

pouse Marie Dalida Pierre Paul

1 Paul Jean

2

25/09/2007

11

Les Entits Faibles (Weak Entity)Parfois, un attribut de la cl d une entit (dite faible) provient d une autre entit ExempleLoginsnom

@

Machinesnom

ProduitD. Donsez, EA et BD, 1998-2007

Instance de

Modle

fabriquer

Marque

nserie

code

nom

Remarque Certains attributs cls sont composs et forme la cl dune entit faible ISBN, GENCOD, EAN, SKU, IBAN,

25/09/2007

13

Transformation E/A vers RelationnelBut Implantation du modle E/A sur un SGBD rel

Mthode transformation des associations n-aires en associations binaires 1 entit = 1 relation 1 association = dpendant de sa cardinalit

Cas de navigation restrienteD. Donsez, EA et BD, 1998-2007

Employnemp nom sal

appartient >

Service1 nom adr

1..n

25/09/2007

14

Cas gnral : Association Many-to-ManyA kaMany-to-Many

R aa R cc

B kb bb kb ... cc ...

A ka aa B

0..n

0..n

B cc kb bb ... ...

B kb bb

A

N-Mcreate table A ( ka , aa , primary key(ka) )

ka ...

aa ...

ka ...

D. Donsez, EA et BD, 1998-2007

create table R ( create table B ( ka , kb , cc , kb , bb , primary key(ka,kb), primary key(kb) foreign key (ka) references A, ) foreign key (kb) references B )

25/09/2007

15

Cas d une Association Many-to-OneA Cot des jointures ! ka aa ... ka ... aa ... aa R R cc ka ... cc ... B kb bb kb ... cc ... B A ka aa B0..n 0..1

B cc kb bb ... ...

B kb bb

AMany-to-One

ka ... A

N-1

kb ...

kb bb ... ...

D. Donsez, EA et BD, 1998-2007

create table A ( ka , kb , aa, cc , primary key(ka), foreign key (kb) references B check(cc IS NULL OR kb IS NOT NULL) )

create table B ( kb , bb , primary key(kb) )

25/09/2007

16

Cas d une Association One-to-OneA Cot des jointures ! AOne-to-One

R aa R cc ka ... cc ... B

B kb bb kb ... cc ... B

ka aa ... ka ... ka ... aa ... aa ...

A ka aa B

0..1

0..1

B cc kb bb ... ...

B kb bb

ka ... A

1-1kb ... kb bb ... ... ka ... cc ...

D. Donsez, EA et BD, 1998-2007

A

kb bb ... ...

25/09/2007

17

Cas d une Association avec des Rlesrle 2 A rle1 ka aa cc R A ka ... aa ... R krole1 krole2 cc ... ... ...create table R ( krole1 , krole2 , cc , primary key(krole1, krole2), foreign key (krole1) references A, foreign key (krole2) references A )

create table A ( ka , aa , primary key(ka) )

Rle symtrique et One-To-OneD. Donsez, EA et BD, 1998-2007

quel est le danger de cette modlisation ?A ka ... aa krole2 cc ... ... ...Rle Symtrique et One-to-One

25/09/2007

18

Cas de l entit faible (Weak Entity)A ka A ka ... aa ... aa kb ... R cc cc ... B kb bb B kb bb ... ... A ka aa0..n 0..1

B cc

B kb bb

D. Donsez, EA et BD, 1998-2007

create table A ( create table B ( ka , kb , kb , bb , aa, cc , primary key(kb) primary key(ka,kb), ) - - diffrent du cas N-to-1 foreign key (kb) references B )

Cas de laggrgation en UML

25/09/2007

19

Cas de navigation restreinteLa navigation est unidirectionnelle ExempleHotelnom adrHberge

Clientnom adr

D. Donsez, EA et BD, 1998-2007

25/09/2007

20

Exercices de transformation E/A vers RelationnelExercice 1 transformez les cas de l entit faible avec 3 tables A, B, R Exercice 2 transformez le schma suivant attention l ordre des nomsD. Donsez, EA et BD, 1998-2007

Machines

@

Domaines Secondairesnom

@

Domaines Primairesnom

nom

25/09/2007

21

Exercices de transformation E/A vers RelationnelExercice 3 transformez le schma suivant#client Client nom Date dateD. Donsez, EA et BD, 1998-2007

Prfre

Produit #serie sav

R

Modle #mod design

R cc

Marque #mar nom

25/09/2007

23

Le Cas des Sous Entits (i)Employ nemp nom sal sal5000 20000

Cadre prime

Empl nemp nom sal

Cadre prime

1 - SeparationEmp nemp100 200

nomDupond Durant

Cadre nemp200

prime10000

Cadre.nemp est une cl trangre sur EmpD. Donsez, EA et BD, 1998-2007

2 - Push downEmp nemp100

nomDupond

sal5000

Cadre nemp200

nomDurant

sal20000

prime10000

CI : {Emp.nemp} {Cadre.emp} =

25/09/2007

25

Le Cas des Sous Entits (ii)Employ nemp nom sal Cadre primeEmpl nemp nom sal Cadre prime

3 - Push UpEmp nemp100 200D. Donsez, EA et BD, 1998-2007

nomDupond Durant

sal5000 20000

primeNULL 10000

25/09/2007

27

Le Cas des Sous Entits (iii)Inconvnients

1 2 3D. Donsez, EA et BD, 1998-2007

Jointure pour reconstituer Cadre Union pour reconstituer Employ Pas de distinction entre un Employe et un Cadre avec une prime NULL en gnral, pas d abstraction dans les Traitements

25/09/2007

28

Amlioration du Cas 3 - Push UpEmploy nemp nom sal nemp100 200

Cadre prime nomDupond Durant

Empl nemp nom sal

Cadre prime

4

Emp typempEMP CAD

sal5000 20000

primeNULL 10000

Emp typempEMP CAD

Emp.typemp est une cl trangre CI : Emp.typemp =EMP prime=NULLD. Donsez, EA et BD, 1998-2007

5

Emp typempEMP CAD

nemp100 200

nomDupond Durant

sal5000 20000

primeNULL 10000

Domaine typemp, CD typeemp IN (EMP,CAD) CI : Emp.typemp =EMP prime=NULL

25/09/2007

30

Entit AbstraiteEmploy : entit abstraite (notion dans Java, C#, C++, UML, ...) pas de tuple (instance) EmployCadre Employ nemp nom Emp typempD. Donsez, EA et BD, 1998-2007

prime

sal nomDupond Durant

Ouvrier sal5000 20000

equipe primeNULL 10000

nemp100 200

equipeNuit NULL

OUV CAD

Domaine type