Sunteți pe pagina 1din 42

BAZE DE DATE

Proiectarea bazelor de date relaionale


Modelul entitate-asociere
Mihaela Elena Breabn
FII 2015-2016

Modelul entitate-asociere (Entity/Relationship)


Obiective
Concepte E/A de baz
Modelarea constrngerilor
Capcane de conectare
Modelarea E/A nUML
De la diagrame E/A (UML) la schema relaional

15:34

Proiectarea unei BD
Metodologie
1. Analiza cerinelor
Fia cerinelor
2. Modelarea conceptual
Diagrame E/A (UML)
3. Modelarea logic
Normalizare
Schema relaional
4. Modelarea fizic
Faza de tuning

Concepte E/A clasice


(Chen 1976)
Entitate

Obiect ce trebuie reprezentat n baza de date

Mulime-entitate - corespunde unui grup de obiecte de acelai tip, deci unei mulimi
omogene de entiti
O instan - entitate

O instan unic identificabil

Asociere (Relationship)

Conexiune/asociere ntre dou sau mai multe entiti (sau chiar a unei entiti cu ea nsi)
Gradul asocierii = nr. de entiti participante

unare/recursive, binare, ternare

Mulime-asociere corespunde unei mulimi omogene de asocieri

Atribut

Proprietate a unei entiti


Pentru asociere

Atribute ale entitilor refereniate


Noi atribute

15:34

Diagrame E/A
Reprezentare grafic a conceptelor E/A

Exist mai multe standarde grafice, aici varianta Chen

Mulime
Asociere

Mulime Entitate

Atribut

Un graf

Mulimile-entitate, mulimile-asociere i atributele sunt noduri


Exist muchii doar ntre

noduri-entitate i noduri-asociere
noduri-entitate i noduri-atribute
noduri-asociere i noduri-atribute
15:34

Exemplu
O baz de date ce conine informaii despre:

Studeni
Profesori
Cursuri
Note
Mentori

Asociere binar

STUDENI

MENTORI

NOTE

PROFESORI

Asociere ternar

Asociere unar
PRE

CURSURI

Cerine:

Putem determina notele obinute, cursurile pe care le-a finalizat si


creditele obinute de orice student
Putem determina mentorul oricrui student
15:34

Alte concepte E/A


Rol

Explic semnificaia entitilor n asocieri


rol

Cheie primar

Un atribut sau o submulime minimal de atribute ce identific unic o


instan-entitate sau o instan-asociere
Obligatorie pentru entiti, pentru a indica care instane particip n
asocieri
Cheie primar

Cheie strin pentru o asociere

Un atribut sau o mulime de atribute care constituie cheie


primar pentru entitile implicate
15:34

Exemplu
CNP

nume

prenume

localitate

STUDENI

MENTORI

ndrumat

evaluat

ndrumtor

sem

NOTE

an

evaluator

PROFESORI

nota
CNP

nume

prenume

birou

subiect

este necesar

CURSURI

PRE
necesit
cod

denumire

credite

Care sunt cheile strine pentru cele trei mulimi de asocieri?


8

15:34

Constrngeri de conectivitate/participare

Modelul E/A permite declararea de constrngeri asupra


numrului de instane-asociere n care o instan-entitate
particip

Fie R o mulime-asociere ntre n mulimi-entitate Ei, i=1..n. Baza


de date satisface constrngerea (Ei, u,v,R) dac fiecare instanentitate din Ei particip n cel puin u i cel mult v instaneasociere din R.
u:v

15:34

Exemplu

(Studeni,1,1Mentori)
(Profesori,0,7,Mentori)
Fiecare student are un singur profesor drept mentor iar un
profesor poate fi mentor pentru cel mult 7studenti
CNP

nume

prenume

STUDENI

localitate

MENTORI

ndrumat
1:1

ndrumtor
0:7
PROFESORI
CNP

10

nume

prenume

birou

15:34

Constrngeri de conectivitate pentru


asocieri binare (1)

a) Asociere unu la unu


(A,0,1,R) (B,0,1,R)
A
11

0:1

0:1

b) Asociere unu la muli


(A,0,n,R) (B,0,1,R), n>1
B

0:n

R
15:34

0:1

Constrngeri de conectivitate pentru


asocieri binare (2)

a) Asociere muli la unu


(A,0,1,R) (B,0,n,R)
A
12

0:1

0:n

b) Asociere muli la muli


(A,0,m,R) (B,0,n,R), m,n>1
B

0:m R
15:34

0:n

Entitate slab

O mulime-entitate este slab dac existena instanelor


sale depinde de existena instanelor altei mulimi-entiti
(dependen existenial)
Entitate tare
0:n
R
1:1
Entitate slab

Nu are cheie
Satisface constrngerea de conectivitate
(Entitate_slaba,1,1,R), deci particip ntr-o asociere de tip
unu la muli relativ la entitatea tare
13

15:34

Exemplu

STUDENTI
0:10
IMPRUMUT
1:1
MPRUMUTURI

14

15:34

Capcane de conectare
(Fan traps)
PROFESOR

PROFESOR

angajat

angajat

SALARIAT

SALARIAT

angajator

angajator

FACULTATE

UNIVERSITATE

component

compus

STRUCTURA

STRUCTURA

component
FACULTATE

compus
compoziie
(tip special de asociere)

Problema:
La ce departament aparine profesorul X?
15

UNIVERSITATE

Soluia:
Model restructurat
15:34

Capcane de conectare
(Chasm traps)
FACULTATE

proprietar

FACULTATE

ofer

ofer

CURICULA

CURICULA

oferit de
CURS

oferit de
CURS

RESURS

activitate

activitate

ORAR

ORAR

locaie
SAL

Problema:
Care sunt toate slile ce aparin unei faculti?
16

locaie

proprietate

SAL

Soluia:
Noi asocieri
15:34

Modelul E/A extins


Specializare

Subgrupuri distinctive de instane-entiti

Au n plus anumite atribute


Particip n asocieri la care nu particip toate instanele-entiti
Corespund unei mulimi de entiti specializate care se afl ntro asociere de tip IS-A cu mulimea de entiti de baz
STUDENTI
IS A
STUDENI
STRINI

17

15:34

Constrngeri specifice specializrii

Instanele specializrii motenesc toate atributele i


asocierile mulimii de entiti de baz, inclusiv cheia

O instan a unei mulimi-entitate poate aparine la una


sau la mai multe specializri

Specializri disjuncte (exclusive)


Specializri cu suprapunere

IS A

{disjunct/suprapus}

O instan a unei mulimi-entitate trebuie sau nu s


aparin la cel puin o specializare

18

Complet
Incomplet (parial)

{complet/parial}

IS A

15:34

Modelare UML

Unified Modeling Language

19

Utilizat n ingineria software


Bazat pe concepte orientate obiect
Instrument de comunicare cu clientul n termenii utilizai n
companie
Un limbaj foarte mare, utilizm un set restrns de elemente
(diagrama de clase) pentru a modela o baz de date.

15:34

Mapare E/A UML


E/R

UML

Mulime-entitate cu atribute

Clas

Mulime-asociere fr atribute
proprii

Asociere

Mulime-asociere cu atribute
proprii

Clas de asociere

Specializare

Subclas
Compoziie i agregare

20

15:34

Clase

Componente: nume, atribute, metode


BD: nume, atribute (cheia primar)

CNP

nume

prenume

localitate

STUDENI

21

15:34

Asocieri

Exprim asocierea dintre obiectele aparinnd la 2 clase


BD: asocierea dintre instanele a dou entiti
CNP

nume

prenume

STUDENI

localitate

ndrumat
1:1

CNP

MENTORI

ndrumtor
0:7

nume

prenume

birou

PROFESORI

Obs: constrngerile de cardinalitate se specific invers dect n


diagramele E/A
22

15:34

Asocieri
Constrngeri de conectivitate/multiplicitate

Restricii
(C1,u,v,A)
(C2,x,y,A)

C1

u:v

x:y

C2

Fiecare obiect din (instan a entitii) C1 este asociat cu cel puin u i cel mult v
obiecte din (instane ale entitii) C2

Fiecare obiect din (instan a entitii) C2 este asociat cu cel puin x i cel mult y
obiecte din (instane ale entitii) C2

23

x..y

u..v

Tip asociere

0..1

0..1

unu la unu incomplet

1..1 (1)

1..1 (1)

unu la unu complet (implicit)

0..1

0..* (*)

unu la multi incomplet

15:34

???

Modelai asocierea dintre STUDENTI i UNIVERSITI. Un student poate


studia la cel mult 2 universiti si e necesar s studieze la cel putin una. O
universitate primete cel mult 10.000 studenti.

Fie asocierea
2..4

12..14

Care e numrul minim de instane pentru entitatea C1 i pentru C2?

24

15:34

Asocieri recursive
necesit
PRE

CURSURI

este necesar
cod

25

denumire

credite

15:34

Asocieri n-are

26

15:34

Clase de asociere

STUDENTI

LICENTA
titlu

27

PROFESORI

sesiune

15:34

Clase de asociere
CNP

nume

localitate

prenume

STUDENI
cod denumire credite

CURSURI

evaluat
NOTE

subiect

evaluator
sem

28

CNP

an

nume

prenume

PROFESORI

nota

15:34

birou

Eliminarea claselor de asociere

Atunci cnd avem multiplicitate 0..1 sau 1..1

29

15:34

Subclas
(1)
ID

nume

prenume

superclas

STUDENTI

IS A

IS A

STUDENI ROMNI

STUDENI STRINI

CNP

tara

Specializare complet, disjunct

30

15:34

Subclas
(2)

0..*

Specializare complet, cu suprapunere

31

15:34

1..*

(pk)

Compoziie i agregare
Obiecte dintr-o clas aparin obiectelor din alt clas
Tipuri speciale de asociere

Compoziia: toate obiectele unei clase pri aparin obiectelor


dintr-o clas compus; clasei pri i corespunde de obicei o
entitate slab (multiplicitate 1..1; fr cheie primar);
Agregarea: unele obiecte dintr-o clas aparin obiectelor din
alt clas (multiplicitate 0..1)

32

15:34

Mapare E/A, UML ->


schema BD relaional
E/A

UML

Schema relaional

Mulime-entitate cu atribute

Clas

Relaie cu cheie primar

Mulime-asociere fr atribute
proprii

Asociere

Relaie cu chei strine

Mulime-asociere cu atribute proprii Clas de asociere

Relaie cu chei strine i


alte atribute

Specializare

Subclas

Relaie cu cheie primar


(cea a superclasei) i
atribute
particulare/specializate

Compoziie i
agregare

Relaie cu cheie strin


i atribute particulare

33

15:34

Mulimi-entitate/clase i asocieri

{C1(K1, X1), C2(K2, X2), A(K1,K2)}

Cheia primar pentru asociere depinde de multiplicitate

34

x..y

u..v

Cheia primar pt A

Observaii

0..1
1..1

K2

Nu e necesar relaia A
{C1(K1, X1), C2(K2, X2,K1)}

0..1
1..1

K1

Nu e necesar relaia A
{C1(K1, X1,K2), C2(K2, X2)}

(K1,K2)
15:34

???

Fie diagrama

Mai este posibil renuntarea la relaia corespunztoare


asocierii?

35

15:34

Asocieri recursive

{CURSURI (cod, denumire, credite)


PRE (cod1, cod2)}

36

{UNIVERSITATI (cod, numeU,oras)


RAMURI (codFiliala, codParinte)}

15:34

Clase de asociere

{STUDENTI (ID, nume, prenume)


UNIVERSITATI (cod, numeU, oras)
APLICATII (ID, cod, data, rezultatul)}

37

15:34

Specializare/Subclase

Posibiliti

Relaii subclas ce conin cheia superclasei i atributele specializate


C1(K1,X1), C2(K1,X2), C3(K1,X3)

Relaii subclas ce conin atributele superclasei (inclusiv atributul cheie)


si atributele specializate; superclasa conine doar tuple nespecializate
C1(K1,X1), C2(K2,X1,X2), C3(K2,X1,X3)

O singur relaie ce conine atributele din superclas i subclas


C(K1,X1,X2,X3)

38

15:34

???

Fie superclasa S cu un numr de subclase. Considerm c


relaia de specializare este incomplet i cu suprapunere. Dac
n1, n2 i n3 reprezint numrul total de tuple necesare fiecrei
scheme de decodificare din cele 3 date anterior (n ordinea
dat), care este relaia dintre cele 3 valori?
o
o

o
o

39

n1<n2<n3
n1n2n3
n3<n2<n1
n3 n2 n1

15:34

Compoziie i agregare

{ UNIVERSITATI(cod, numeU, oras)


DEPARTAMENTE(codU, numeD, cladire)
BIROURI (codU, adresa)}

NU accept NULL

accept NULL
40

15:34

Modelare EA/UML
Sumar

PROS

Tehnic popular de modelare conceptual


Construcii expresive, descriu punctul de vedere personal
asupra aplicaiei
Permite exprimarea unor tipuri de constrngeri (chei primare,
strine, multiplicitate, exclusivitate)

CONS

41

Tehnic subiectiv (entitate sau atribut, entitate sau asociere,


subclasare sau nu, compoziie sau nu)
Nu permite modelarea tuturor dependentelor
Necesit utilizarea ulterioar a normalizrii

15:34

Bibliografie

Hector Garcia-Molina, Jeff Ullman, Jennifer Widom: Database Systems:


The Complete Book (2nd edition), Prentice Hall; (June 15, 2008)
Thomas Connolly, Carolyn Begg: Database Systems: A Practical
Approach to Design, Implementation and Management, (5th edition)
Addison Wesley, 2009

Unelte:

42

https://creately.com (diagrame EA, diagrame UML de clas)


http://diagramo.com/ (diagrame EA)
http://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML0.32.2.zip (diagrame UML de clas)
15:34

S-ar putea să vă placă și