8/16/2019 2. Modelare EA
1/42
Proiectarea bazelor de date relaţionale
Modelul entitate-asociere
BAZE DE DATE
Mihaela Elena Breab ăn © FII 2015-2016
8/16/2019 2. Modelare EA
2/42
Modelul entitate-asociere ( Entity/Relationship )Obiective
2
Concepte E/Ade bază Modelarea constrângerilorCapcane de conectareModelarea E/A înUMLDe la diagrame E/A (UML) la schema relaţională
15:34
8/16/2019 2. Modelare EA
3/42
Proiectarea unei BDMetodologie
1. Analiza cerinţelor Fişa cerinţelor
2. Modelarea conceptuală
4. Modelarea fizică Faza de tuning
Diagrame E/A (UML)
3. Modelarea logică Normalizare
Schema relaţională
3
8/16/2019 2. Modelare EA
4/42
Concepte E/A clasice(Chen 1976)
4
EntitateObiect ce trebuie reprezentat în baza de date
Mulțime-entitate -corespunde unui grup de obiecte de acelaşi tip, deci unei mulțimiomogene de entitățiO instanţă- entitate
O instanţă unic identificabilă
Asociere (Relationship)Conexiune/asociere între două sau mai multe entităţi (sau chiar a unei entităţi cu ea îns Gradul asocierii = nr. de entităţi participante
unare/recursive,binare, ternare… Mulțime-asociere – corespunde unei mulțimi omogene de asocieri
AtributProprietate a unei entităţi Pentru asociere
Atribute ale entităţilor referenţiate Noi atribute
15:34
8/16/2019 2. Modelare EA
5/42
Diagrame E/A
5
Reprezentare grafică a conceptelor E/AExistă mai multe standarde grafice, aici varianta Chen
Un grafMulțimile-entitate, mulțimile-asociere şi atributele sunt noduri Există muchii doar între
noduri-entitate şi noduri-asocierenoduri-entitateşi noduri-atributenoduri-asociere şi noduri-atribute
Mulțime Entitate
Atribut
Mulțime
Asociere
15:34
8/16/2019 2. Modelare EA
6/42
Exemplu
6
O bază de date ce conţine informaţii despre:Studenţi ProfesoriCursuriNote
Mentori
Cerinţe:Putem determina notele obţinute, cursurile pe care le-a finalizat sicreditele obţinute de orice student Putem determina mentorul oricărui student
STUDENŢI
PROFESORI
CURSURI
NOTE
MENTORI
Asociere binară
Asociere ternară
PRE
Asociere unară
15:34
8/16/2019 2. Modelare EA
7/42
Alte concepte E/A
7
RolExplică semnificaţia entităţilor în asocieri
Cheieprimară Un atribut sau o submulţimeminimalăde atribute ce identifică unic oinstanţă-entitate sau o instanță-asociereObligatorie pentru entităţi, pentru a indica care instanţe participă înasocieri
Cheie străină pentru o asociere Un atribut sau o mulţime de atribute care constituie cheieprimară pentru entităţile implicate
rol
Cheie primară
15:34
8/16/2019 2. Modelare EA
8/42
Exemplu
8
STUDENŢI
PROFESORI
CURSURI
NOTE
MENTORI
CNP nume prenume localitate
CNP nume prenume birou
sem
an
nota
cod denumire credite
îndrumător
evaluator
evaluat
subiect
îndrumat
Care sunt cheile străine pentru cele trei mulțimi de asocieri?
PREnecesită
este necesar
15:34
8/16/2019 2. Modelare EA
9/42
Constrângeri de conectivitate/participare
9
Modelul E/A permite declararea de constrângeri asupranumărului de instanţe-asociere în care o instanţă-entitateparticipă
Fie R o mulțime-asociere între n mulțimi-entitate Ei, i=1..n. Bazade date satisface constrângerea (Ei, u,v,R) dacă fiecare instanţă-entitate din Ei participă în cel puţin u şi cel mult v instanţe-asociere din R.
u:v
15:34
8/16/2019 2. Modelare EA
10/42
Exemplu
10
(Studenţi,1,1Mentori) (Profesori,0,7,Mentori)Fiecare student are un singur profesor drept mentor iar unprofesor poate fi mentor pentru cel mult 7studenti
STUDENŢI
PROFESORI
MENTORI
CNP nume prenume localitate
CNP nume prenume birou
îndrumător
0:7
îndrumat1:1
15:34
8/16/2019 2. Modelare EA
11/42
Constrângeri de conectivitate pentruasocieri binare (1)
11
a) Asociere unu la unu(A,0,1,R) (B,0,1,R)
b) Asociere unu la mulţi(A,0,n,R) (B,0,1,R), n>1
A BR0:1 0:1 A BR0:n 0:1
15:34
8/16/2019 2. Modelare EA
12/42
Constrângeri de conectivitate pentruasocieri binare (2)
12
a) Asociere mulţi la unu(A,0,1,R) (B,0,n,R)
b) Asocieremulţi la mulţi(A,0,m,R) (B,0,n,R), m,n>1
A BR0:1 0:n A BR0:m 0:n
15:34
8/16/2019 2. Modelare EA
13/42
Entitate slabă
13
O mulțime-
entitate este slabă dacă existenţa instanţelorsale depinde de existenţa instanţelor altei mulțimi-entităţi(dependenţă existenţială)
Nu are cheieSatisface constrângerea de conectivitate(Entitate_slaba,1,1,R), deci participă într-o asociere de tipunu la mulţi relativ la entitatea tare
Entitate tare
Entitate slabă
R
1:1
0:n
15:34
8/16/2019 2. Modelare EA
14/42
Exemplu
14
STUDENTI
ÎMPRUMUTURI
IMPRUMUTĂ
1:1
0:10
15:34
8/16/2019 2. Modelare EA
15/42
Capcane de conectare(Fan traps)
15
compoziţie (tip special de asociere)
UNIVERSITATE
FACULTATE
PROFESOR
SALARIAT
STRUCTURA
angajat
angajator
compus
componentă
Problema:La ce departament aparţine profesorul X?
FACULTATE
UNIVERSITATE
PROFESOR
SALARIAT
STRUCTURA
angajat
angajator
componentă
compus
Soluţia:Model restructurat
15:34
8/16/2019 2. Modelare EA
16/42
Capcane de conectare(Chasm traps)
16
CURS
SALĂ
FACULTATE
CURICULA
ORAR
oferă
oferit de
activitate
locaţie
CURS
SALĂ
FACULTATE
CURICULA
ORAR
oferă
oferit de
activitate
locaţie
RESURSĂ
proprietar
proprietate
Problema:Care sunt toate sălile ce aparţin unei facultăţi?
Soluţia:Noi asocieri
15:34
8/16/2019 2. Modelare EA
17/42
Modelul E/A extinsSpecializare
17
Subgrupuri distinctive de instanţe-entităţi Au în plus anumite atributeParticipă în asocieri la care nu participă toate instanţele-entităţi Corespund unei mulțimi de entităţi specializate care se află înt-o asociere de tip IS-A cu mulțimea de entități de bază
STUDENTI
STUDENŢISTRĂINI
IS A
15:34
8/16/2019 2. Modelare EA
18/42
Instanţele specializării moştenesc toate atributele şiasocierile mulțimii de entităţi de bază, inclusiv cheia
O instanţă a unei mulțimi-entitate poate aparţine la unasau la mai multe specializări
Specializări disjuncte (exclusive) Specializări cu suprapunere
O instanţă a unei mulțimi-entitate trebuie sau nu săaparţină la cel puţin o specializare
CompletIncomplet (parţial)
Constrângeri specifice specializării
18
{disjunct/suprapus}
{complet/parţial}IS A
IS A
15:34
8/16/2019 2. Modelare EA
19/42
Unified Modeling LanguageUtilizat în ingineria softwareBazat pe concepte orientate obiectInstrumentde comunicare cu clientul în termenii utilizaţi în
companieUn limbaj foarte mare, utilizăm un set restrâns de elemente(diagrama de clase) pentru a modela o bază de date.
Modelare UML
19 15:34
8/16/2019 2. Modelare EA
20/42
Mapare E/A – UML
20
E/R UML
Mulțime-entitate cu atribute Clasă Mulțime-asocierefără atributeproprii
Asociere
Mulțime-asociere cu atributeproprii
Clasă de asociere
Specializare Subclasă Compoziţie şi agregare
15:34
8/16/2019 2. Modelare EA
21/42
Clase
21
Componente: nume, atribute, metodeBD: nume, atribute (cheia primară)
STUDENŢI
CNP nume prenume localitate
15:34
8/16/2019 2. Modelare EA
22/42
Exprimă asociereadintre obiectele aparţinând la2 claseBD: asocierea dintre instanţele a două entităţi
Obs: constrângerile de cardinalitate se specifică invers decât îndiagramele E/A
Asocieri
22
STUDENŢI PROFESORIMENTORI
CNP nume prenume localitate CNP nume prenume birou
îndrumător 0:7
îndrumat1:1
15:34
8/16/2019 2. Modelare EA
23/42
Restricţii (C1,u,v,A)(C2,x,y,A)
Fiecare obiectdin (instanţă a entităţii) C1 este asociat cu cel puţin u şi cel mult vobiecte din(instanţe ale entităţii)C2Fiecare obiect din (instanţă a entităţii) C2 este asociat cu cel puţin x şi cel mulobiecte din (instanţe ale entităţii) C2
AsocieriConstrângeri de conectivitate/multiplicitate
23
C1 C2Au:v x:y
x..y u..v Tip asociere0..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
8/16/2019 2. Modelare EA
24/42
???
24
Modelaţi asocierea dintre STUDENTI şi UNIVERSITĂŢI. Un studenstudia la cel mult 2universităţi si e necesarsăstudieze la cel putin una. Ouniversitate primeşte cel mult 10.000studenti.
Fie asocierea
Care e numărul minim de instanţe pentru entitatea C1 şi pentru C2?
2..4 12..14
15:34
8/16/2019 2. Modelare EA
25/42
Asocieri recursive
25
CURSURI
cod denumire credite
PREnecesită
este necesar
15:34
8/16/2019 2. Modelare EA
26/42
Asocieri n-are
26 15:34
8/16/2019 2. Modelare EA
27/42
Clase de asociere
27
STUDENTI PROFESORILICENTA
titlu sesiune
15:34
8/16/2019 2. Modelare EA
28/42
Clase de asociere
28
PROFESORICURSURI NOTE
CNP nume prenume birou
sem an nota
cod denumire credite
evaluatorsubiect
STUDENŢI
CNP nume prenume localitate
evaluat
15:34
8/16/2019 2. Modelare EA
29/42
Eliminarea claselor de asociere
29
Atunci când avem multiplicitate 0..1 sau 1..1
15:34
8/16/2019 2. Modelare EA
30/42
Subclasă (1)
30
STUDENTI
STUDENŢI ROMÂNI
IS A
ID nume prenume
CNP
STUDENŢI STRĂINI
IS A
tara
Specializare completă, disjunctă
superclasă
15:34
8/16/2019 2. Modelare EA
31/42
Subclasă (2)
31
Specializare completă, cu suprapunere
(pk)1..*0..*
15:34
8/16/2019 2. Modelare EA
32/42
Obiecte dintr-o clasă aparţin obiectelor din altă clasă Tipuri speciale de asociere
Compoziţia: toate obiectele unei clasepărţi aparţin obiectelordintr-o clasăcompusă; claseipărţi îi corespunde de obicei oentitate slabă (multiplicitate 1..1; f ără cheie primară);Agregarea:unele obiecte dintr-oclasăaparţin obiectelor dinaltă clasă (multiplicitate 0..1)
Compoziţie şi agregare
32 15:34
8/16/2019 2. Modelare EA
33/42
Mapare E/A, UML ->schema BD rela ţională
33
E/A UML Schema relaţională Mulțime-entitate cu atribute Clasă Relaţie cu cheie primară Mulțime-asocierefără atributeproprii
Asociere Relaţie cu chei străine
Mulțime-asociere cu atribute propriiClasă de asociere Relaţie cu chei străine şialte atribute
Specializare Subclasă Relaţie cu cheie primară(cea a superclasei) şiatributeparticulare/specializate
Compoziţie şiagregare
Relaţie cu cheie străinăşi atribute particulare
15:34
8/16/2019 2. Modelare EA
34/42
Cheia primară pentru asociere depinde de multiplicitate
Mul țimi-entitate/ clase şi asocieri
34
{C1(K1, X1), C2(K2, X2), A(K1,K2)}
x..y u..v Cheia primar ă pt A Observa ţii 0..11..1
* K2 Nu enecesară relaţia A {C1(K1, X1), C2(K2, X2,K1)}
* 0..11..1
K1 Nu enecesară relaţia A {C1(K1, X1,K2), C2(K2, X2)}
* * (K1,K2)
15:34
8/16/2019 2. Modelare EA
35/42
???
35
Fie diagrama
Mai este posibilă renuntareala relaţia corespunzătoareasocierii?
15:34
8/16/2019 2. Modelare EA
36/42
Asocieri recursive
36
{CURSURI (cod, denumire, credite)PRE (cod1, cod2)}
{UNIVERSITATI (cod, numeU,oras)RAMURI (codFiliala, codParinte)}
15:34
8/16/2019 2. Modelare EA
37/42
Clase de asociere
37
{STUDENTI (ID, nume, prenume)UNIVERSITATI (cod, numeU, oras)
APLICATII (ID, cod, data, rezultatul)}
15:34
8/16/2019 2. Modelare EA
38/42
Specializare/Subclase
38
Posibilităţi Relaţii subclasă ce conţin cheia superclasei şi atributele specializate C1(K1,X1), C2(K1,X2), C3(K1,X3)
Relaţii subclasă ce conţinatributele superclasei (inclusiv atributul cheie)si atributele specializate; superclasa conţine doar tuple nespecializateC1(K1,X1), C2(K2,X1,X2), C3(K2,X1,X3)O singură relaţie ce conţine atributele din superclasă şi subclasă C(K1,X1,X2,X3)
15:34
8/16/2019 2. Modelare EA
39/42
???
39
Fie superclasa S cu un număr de subclase. Considerăm cărelaţia de specializare este incompletă şi cu suprapunere. Dn1,n2 şi n3 reprezintă numărul total detuplenecesare fiecăreischeme de decodificare din cele 3 date anterior (în ordineadată), care este relaţia dintre cele 3 valori?
o n1
8/16/2019 2. Modelare EA
40/42
Compozi ţie şi agregare
40
{ UNIVERSITATI(cod, numeU, oras)DEPARTAMENTE(codU, numeD, cladire)BIROURI (codU, adresa)}
acceptă NULL
15:34
NU acceptă NULL
8/16/2019 2. Modelare EA
41/42
Modelare EA/UMLSumar
41
PROSTehnică populară de modelare conceptuală Construcţii expresive, descriu punctul de vedere personalasupra aplicaţiei Permite exprimarea unor tipuri de constrângeri (chei primare,străine, multiplicitate, exclusivitate…)
CONSTehnică subiectivă (entitate sau atribut, entitate sau asocieresubclasaresau nu, compoziţie sau nu) Nu permite modelarea tuturor dependentelorNecesită utilizarea ulterioară a normalizării
15:34
8/16/2019 2. Modelare EA
42/42
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, (5 th edition)Addison Wesley, 2009
Unelte:https://creately.com (diagrame EA, diagrame UML de clasă)http://diagramo.com/ (diagrame EA)http://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML-0.32.2.zip (diagrame UML de clasă)
https://creately.com/http://diagramo.com/http://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML-0.32.2.ziphttp://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML-0.32.2.ziphttp://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML-0.32.2.ziphttp://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML-0.32.2.ziphttp://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML-0.32.2.ziphttp://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML-0.32.2.ziphttp://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML-0.32.2.ziphttp://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML-0.32.2.ziphttp://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML-0.32.2.ziphttp://diagramo.com/https://creately.com/Top Related