Sunteți pe pagina 1din 72

Proiectarea bazelor de date

Model fizic şi model conceptual


# 17 Entităţi si instanţe (partea II)

Adrian Runceanu
www.runceanu.ro/adrian
2018
Curs 17

Model fizic şi model conceptual


Entităţi si instanţe (partea II)

30.12.2018 2
Model fizic şi model conceptual
Entităţi si instanţe (partea II)

1. Rezolvarea relaţiilor Many to Many


2. Analiza CRUD
3. UID
4. Normalizare
5. Arce
6. Ierarhii

30.12.2018 3
REZOLVAREA RELAŢIILOR
MANY TO MANY
În vederea implementării fizice a modelului
conceptual, este important ca relaţiile Many
to Many să fie rezolvate.
Într-o relaţie M:M există cel puţin un atribut
care descrie relaţia.
Se creeaza a treia entitate, numită entitate de
intersecţie, gasind astfel un loc pentru acel
atribut.

30.12.2018 4
Paşi

1. Se creează entitatea de legatură


2. Se creează noile relaţii
3. Se dau nume acestor relaţii
4. Daca e cazul, se adaugă atribute în entitatea
de legătură
5. Se crează un UID pentru entitatea de
intersecţie

30.12.2018 5
30.12.2018 6
30.12.2018 7
30.12.2018 8
30.12.2018 9
Exercitiu

Desenati ERD-ul

30.12.2018 10
rezolvare

30.12.2018 11
30.12.2018 12
SOLUTIE

30.12.2018 13
Model fizic şi model conceptual
Entităţi si instanţe (partea II)

1. Rezolvarea relaţiilor Many to Many


2. Analiza CRUD
3. UID
4. Normalizare
5. Arce
6. Ierarhii

30.12.2018 14
ANALIZA C.R.U.D.
(Create, Retrieve, Update, Delete)

Prin analiza CRUD identificăm cerinţele de


creare, regăsire, actualizare şi ştergere a datelor.

Analiza CRUD ne ajută să observăm dacă:


am omis ceva din model
am inclus în model ceva ce nu trebuie

30.12.2018 15
Cum se realizează analiza CRUD ?
 Urmărim în interviurile cu clientul sau în descrierile
activităţilor, cuvintele care exprimă cele 4 operaţii:
1. creare
2. regăsire
3. actualizare
4. ştergere
 Dacă există cerinţe pentru care nu există date, s-ar
putea ca modelul să fie incomplet.
 Dacă există date asupra cărora nu se efectuează nici
una dintre operaţiile CRUD, atunci acestea nu sunt
necesare pentru afacere.

30.12.2018 16
Model fizic şi model conceptual
Entităţi si instanţe (partea II)

1. Rezolvarea relaţiilor Many to Many


2. Analiza CRUD
3. UID
4. Normalizare
5. Arce
6. Ierarhii

30.12.2018 17
IDENTIFICATOR UNIC

Identificatorul unic (UID) poate fi format din:


1. o valoare, sau
2. o combinaţie de valori
şi permite utilizatorului să identifice în mod unic o anumită
instanţă.
 Atunci când un UID este alcătuit dintr-un singur atribut,
se numeşte simplu.
 Dacă un UID este alcătuit dintr-o combinaţie de
atribute, se numeşte compus.
 Un UID creat special pentru a numerota unic fiecare
instanţă se numeşte artificial.

30.12.2018 18
Exemple de UID

30.12.2018 19
30.12.2018 20
UID rezultat dintr-o relaţie barată
Uneori UID este o combinaţie dintre un atribut şi o
relaţie.
Care este UID-ul entităţii ACCOUNT?

 În transferurile bancare se transmit întotdeauna atât


contul clientului cât şi cel al băncii.
 Atunci când un UID este o combinaţie între un atribut şi
o relaţie barată putem considera că UID-ul este alcătuit
dintr-un atribut şi UID-ul celeilalte entităţi din relaţie.
30.12.2018 21
 În cazul unei entităţi de
intersecţie UID poate fi o
combinaţie a UID ale
entităţilor care se aflau
iniţial în relaţia M:M.

 Aceasta se reprezintă în
diagramă prin bararea
relaţiilor.

30.12.2018 22
Pot exista mai mulţi UID.
 unul este ales ca UID primar
(ex. student ID);
 ceilalţi UID sunt numiţi
secundari.

În exemplul alăturat prima


entitate are un UID secundar,
a doua entitate are doi: badge
number, identificator unic
secundar simplu si first name,
last name, identificator unic
secundar compus.
30.12.2018 23
Model fizic şi model conceptual
Entităţi si instanţe (partea II)

1. Rezolvarea relaţiilor Many to Many


2. Analiza CRUD
3. UID
4. Normalizare
5. Arce
6. Ierarhii

30.12.2018 24
NORMALIZARE

Normalizarea se referă la procesul de creare a


unei structuri relaţionale eficiente, flexibile
care aşează fiecare dată într-un singur loc,
care este şi cel mai potrivit loc, astfel încât
operaţiile de adăugare, modificare, ştergere
să se facă într-un singur tabel.

30.12.2018 25
Un astfel de model va respecta:

FLEXIBILITATEA DATELOR
Datele vor fi pastrate în locul cel mai bun şi vor putea
fi vizualizate în diverse feluri.
INTEGRITATEA DATELOR
Normalizarea asigură integritatea datelor în operaţii
de ştergere, adăugare, actualizare.
EFICIENŢA
Nu vor exista date redundante. Se va face economie
de spaţiu.

30.12.2018 26
PRIMA FORMA DE NORMALIZARE

UN ATRIBUT NU POATE AVEA VALORI


CARE SE REPETĂ

30.12.2018 27
30.12.2018 28
Exerciţiu

Analizaţi entităţile de mai jos şi decideţi dacă


respectă prima formă de normalizare.

30.12.2018 29
Exercitiu
 Examinati urmatoarele entitati.
 Identificati atributele cu valori
multiple.

30.12.2018 30
FORMA A II-a DE NORMALIZARE

ORICE ATRIBUT CE NU E UID SĂ DEPINDĂ


DE ÎNTREGUL UID

Se aplică în mod special entităţilor care au un


UID compus din mai multe atribute sau dintr-
un atribut şi o relaţie.

30.12.2018 31
FORMA A II-a DE NORMALIZARE

Acest exemplu respecta forma


2 de normalizare.

În acest ERD, bank_location


depinde numai de bancă, nu şi
de contul persoanei şi astfel
încalcă Forma de Normalizare
2

30.12.2018 32
Exemplu

Durata depinde numai de


SONG.

Event_date depinde numai


de eveniment.

30.12.2018 33
FORMA A II-a DE NORMALIZARE

EXERCITIU
1. The identifier of a library book includes its shelf location.
 Does this ERD follow the rules of Second Normal Form?
 If you spot a violation, correct it.

30.12.2018 34
FORMA A II-a DE NORMALIZARE

SOLUTIE:

30.12.2018 35
FORMA A II-a DE NORMALIZARE

EXERCITIU

2. A store can be located in several shopping malls, and a


shopping mall may house several stores.
 To locate a particular store in a specific neighborhood, you
will need to know the name and address of the nearby
shopping mall, plus the name of the store.
 Does the ERD follow the rules of Second Normal Form?
 If you spot a violation, correct it.

30.12.2018 36
FORMA A II-a DE NORMALIZARE

30.12.2018 37
FORMA A II-a DE NORMALIZARE

SOLUTIE:

30.12.2018 38
FORMA A III-a DE NORMALIZARE

UN ATRIBUT CE NU E UID NU TREBUIE SĂ


DEPINDĂ DE ALT ATRIBUT NON-UID.

30.12.2018 39
Exemplu
În acest exemplu, store adress depinde de store
name.

Soluţia acestei probleme este să creăm o nouă


entitate, STORE, care va conţine cele două
atribute.

30.12.2018 40
Exemplu

state flower depinde


de state şi nu de oraş.

Soluţia este să creăm o


nouă entitate STATE

30.12.2018 41
FORMA A III-a DE NORMALIZARE

EXERCITIU
1. Identify the transitive dependency in the model below.
 State which attributes violate Third Normal Form

30.12.2018 42
FORMA A III-a DE NORMALIZARE

EXERCITIU
2. A color scheme for a car includes specifications for paint color
for the body and the interior colors and materials.
 For example: The “Desert” color scheme includes silver paint
and gray leather interior; the “Sunburst” color scheme
includes gold paint and cream leather interior.
 Does the model below follow the rules of Third Normal Form?
If you spot a violation, correct it.

30.12.2018 43
FORMA A III-a DE NORMALIZARE

SOLUTIE

30.12.2018 44
Model fizic şi model conceptual
Entităţi si instanţe (partea II)

1. Rezolvarea relaţiilor Many to Many


2. Analiza CRUD
3. UID
4. Normalizare
5. Arce
6. Ierarhii

30.12.2018 45
ARCE

 Orice afacere are restricţii ce pot fi aplicate


valorilor unor atribute sau asupra relaţiilor dintre
entităţi.
 Acestea se numesc CONSTRÂNGERI.

 ARCele sunt un mod de a reprezenta relaţiile


mutual exclusive: pentru fiecare instanţă numai
una dintre relaţii este validă.

30.12.2018 46
Exemplu

Fiecare eveniment se
poate desfăşura fie într-un
mediu privat fie într-un
mediu public.

30.12.2018 47
Explicati ERD-ul

30.12.2018 48
Rezolvare

Pe un panou publicitar pot aparea la un


moment dat ori un film, ori o reclama, ori un
anunţ public.

30.12.2018 49
ARCE
 Arcele pot fi modelate şi cu Subtipuri şi
Supertipuri.

 Când se doreşte să se reprezinte o


clasificare se folosesc subtipurile.

 Folsim arce atunci când dorim


să reprezentăm relaţiile mutual
exclusive dintre entităţi.

30.12.2018 50
ARCE

EXERCITIU

1. A show ticket is purchased from an agent, the box office, or


the Internet.
 A ticket has a description, an event, a date and a price.
 An agent has a name and a phone number.
 The box office has an address and a phone number.
 The Internet has a URL address.
 Draw the entities and represent the exclusive relationship.

30.12.2018 51
ARCE

SOLUTIE

30.12.2018 52
Model fizic şi model conceptual
Entităţi si instanţe (partea II)

1. Rezolvarea relaţiilor Many to Many


2. Analiza CRUD
3. UID
4. Normalizare
5. Arce
6. Ierarhii

30.12.2018 53
IERARHII, RELATII

În viaţa de zi cu zi întâlnim adesea modele


organizate în ierarhii cum ar fi:

1. scheme organizaţionale

2. reprezentarea unor structuri fizice

3. arbori genealogici

30.12.2018 54
MODELE IERARHICE

30.12.2018 55
Model organizaţional

30.12.2018 56
Exercitiu
explicati ERD-ul aratand care este UID-ul
fiecarei entitati

30.12.2018 57
Exercitiu
 Fie o baza de date despre hotelurile unei statiuni.
 Fiecare camera (ROOM) trebuie sa fie identificata
printr-un numar sau cod.
 Camera este situată în apartament (SUITE)
 care se află la un anumit etaj (FLOOR)
 care se află în clădire (BUILDING).

Desenati ERD-ul.
UID-ul unui sir de entităţi ierarhice se poate propaga
prin relaţii multiple !

30.12.2018 58
Rezolvare

30.12.2018 59
RELAŢII RECURSIVE

O relaţie recursivă este o relaţie


între o entitate şi ea însăşi.
Exemplu:
 Fiecare angajat (EMPLOYEE) poate
fi condus de unul şi numai unul
dintre angajaţi (EMPLOYEE).
 Fiecare angajat (EMPLOYEE) poate
fi şeful (managerul) unuia sau mai
mulţi angajaţi (EMPLOYEE).

30.12.2018 60
30.12.2018 61
Relaţie recursivă Many to Many
 Pentru o fabrică de automobile putem considera: părti
elementare, componente şi produse.
 O astfel de situaţie poate fi modelată astfel:

 Fiecare componentă poate fi o parte a uneia sau mai


multor componente.
 Fiecare componentă poate fi făcută din una sau mai multe
componente.
Exercitiu.
30.12.2018
Cum rezolvati M_M? 62
30.12.2018 63
30.12.2018 64
Exercitiu:

Develop two ER diagrams to represent the following situation.


Develop one using a hierarchical structure and one using a
recursive structure

 Our company sells products throughout the United States.


 So we’ve divided the U.S. into four major sales regions: the Northern,
Eastern, Southern, and Western regions.
 Each sales region has a unique region code.
 Each sales region is then divided into sales districts.
 For example, the Western region is divided into the Rocky Mountain,
Northwest, Pacific Coast, and Pacific districts.
 Each district has a unique district code.
 Each district is made up of sales territories.
 The Rocky Mountain district is composed of three territories: Wyoming-
Montana, Colorado, and Utah-New Mexico.
 The Northwest district is made up of two territories: the Washington and
Oregon-Idaho territories.
 The Pacific Coast district is composed of two territories: the California
and Nevada territories.

30.12.2018 65
Exercitiu:

Develop two ER diagrams to represent the following situation.


Develop one using a hierarchical structure and one using a
recursive structure
 The Pacific District includes the Hawaii territory and the Alaska territory.
 Each territory has a unique territory code.
 Then each sales territory is broken down into sales areas.
 For example, Colorado is made up of two sales areas: the Front Range and the
Western Slope sales areas.
 Each sales area has a unique sales-area code.
 Each salesperson is responsible for one or more sales areas and has a specific sales
quota.
 We also have sales managers who are responsible for one or more sales districts,
and sales directors who are responsible for one or more sales regions.
 Each sales manager is responsible for the territories with his/her districts.
 We don’t overlap our employees’ responsibilities.
 Each sales area is always the responsibility of a single salesperson, and our
managers' and directors' responsibilities don’t overlap.
 Sometimes our salespersons, managers, and directors will have special assignments
and will not be responsible for sales.
 We identify all our sales personnel by their employee IDs.”
30.12.2018 66
SOLUTIE

30.12.2018 67
SOLUTIE

30.12.2018 68
Subtypes Hide Relationships in Arc

A A
is B
B is

is C
C
is

Every A  Every A must


is either a B or a C be a B or be a C
Every B is an A  Every B must be an A
Every C is an A
30.12.2018
 Every C must be an A 69
Arc and Subtypes

A A
1 2

R
Q P Q
P
A C
A C B
A C B
B
3 4 5

R R
Q Q
P Q P P

30.12.2018 70
Materialul utilizat in acest curs face parte din
curriculum Oracle Academy

30.12.2018 71
Întrebări?

30.12.2018 72

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