Sunteți pe pagina 1din 66

Proiectarea bazelor de date

Model fizic şi model conceptual


# 16 Entităţi si instanţe (partea I)

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

Model fizic şi model conceptual


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

30.12.2018 Proiectarea bazelor de date 2


Model fizic şi model conceptual
Entităţi si instanţe (partea I)

1. Data versus informaţie


2. Model fizic şi model conceptual
3. Entităţi si instanţe
4. Relaţii
5. ERD-uri
6. Subtipuri şi supertipuri
7. Documentarea unui ERD

30.12.2018 Proiectarea bazelor de date 3


Date versus informatie

Interacţionăm zilnic cu baze de date, fie că


suntem sau nu conştienţi:
– Istoricul creditului la bancă
– Codurile şi numele produselor din magazin
– Fişa de înscriere a studentului la admitere, …
Important este să înţelegem cum sunt
modelate datele, cum se păstrează şi cum
putem regăsi informaţii pe baza acestor date

30.12.2018 Proiectarea bazelor de date 4


Date versus informatie

Date Informatii
“Fapte, elemente ce “Comunicare, veste, ştire”
servesc ca punct de “Fiecare dintre elementele
plecare în cercetarea unei noi în raport cu
probleme sau pentru a cunoştinţele prealabile”.
trage o concluzie sau
hotărâre”.
(Dicţionar general al limbii române – Vasile Breban Ed. Enciclopedica,1991)

Informaţia rezultă adesea din combinarea, compararea si


efectuarea unor calcule asupra datelor.

30.12.2018 Proiectarea bazelor de date 5


Date versus informatie

Date Informatii
Notele studentilor in sesiune Media notelor pe grupă la
proiectarea bazelor de date
Ultima medie de admitere la
Facultatea de Inginerie
Numarul de studenti cu media
peste 9 din facultate
Bugetul facultatii in 2013 a Ce buget este necesar in anul
fost 200000 lei viitor?
Bugetul facultatii in 2014 a
fost 250000 lei

30.12.2018 Proiectarea bazelor de date 6


Cum aţi folosi o baza de date dacă aţi avea una
dintre meseriile de mai jos?

 Mecanic auto

 Şofer

 Cultivatoare de flori

7 30.12.2018 Proiectarea bazelor de date


Model fizic şi model conceptual
Entităţi si instanţe (partea I)

1. Data versus informaţie


2. Model fizic şi model conceptual
3. Entităţi si instanţe
4. Relaţii
5. ERD-uri
6. Subtipuri şi supertipuri
7. Documentarea unui ERD

30.12.2018 Proiectarea bazelor de date 8


Model fizic și model conceptual
Modelarea datelor este
doar prima parte a
procesului de construire al
bazei de date.

Modelul conceptual:
- Modelează nevoile
informaţionale ale afacerii
- Se numeşte “Entity
Relationship Model”
- Este prezentat printr-o
diagramă numită “Entity
Relationship Diagram”
9 30.12.2018 Proiectarea bazelor de date
Etape în procesul de dezvoltare a bazelor de
date
1. Incepe prin formularea cerinţelor informaţionale
ale afacerii
2. Se desenează apoi modelul conceptual
3. Se proiectează baza de date pornind de la modelul
conceptual (entitaţile devin tabele, atributele
devin nume de coloane care corespund unor tipuri
de date, se stabilesc proprietăţile speciale ale unor
coloane)
4. Se construieşte baza de date (modelul fizic) prin
executarea unor instructiuni SQL

30.12.2018 Proiectarea bazelor de date 10


Principii de bază ale modelării

Să cuprindă toate datele necesare


Datele sa fie păstrate o singură dată
Să nu cuprindă informaţii ce se obţin din date
deja cuprinse in model
Orice dată să fie aşezată în locul cel mai logic
şi mai potrivit

30.12.2018 Proiectarea bazelor de date 11


Model fizic şi model conceptual
Entităţi si instanţe (partea I)

1. Data versus informaţie


2. Model fizic şi model conceptual
3. Entităţi si instanţe
4. Relaţii
5. ERD-uri
6. Subtipuri şi supertipuri
7. Documentarea unui ERD

30.12.2018 Proiectarea bazelor de date 12


Entități și instanțe

Entitate = ceva semnificativ pentru afacere, referitor


la care trebuie să cunoaştem date.
Entităţile au instanţe.
Entităţile au atribute.

O instanţă este o valoare dată entităţii.

Exemplu: Entitatea FRUCT are instanţe: cireasa, nuca,


pepene, măr, portocală.
30.12.2018 Proiectarea bazelor de date 13
Atributul
 Este o proprietate a unei entităţi sau un detaliu
referitor la acesta.
 Descrie, cuantifică, califică, clasifică sau specifică o
entitate.
 Are un tip care poate fi un număr, un şir de caractere,
o dată calendaristică, o imagine, etc.
Exemplu:
Entitatea FRUCT poate avea atributele: nume, tip, regiune,
data_culesului.
In acest caz o instanta poate fi: portocală, citrice, Grecia, 10-
July-2014.

30.12.2018 Proiectarea bazelor de date 14


Atribute mandatorii sau opționale

 Unele atribute trebuie neapărat să aibă valoare.


Acestea se numesc MANDATORII.
Exemplu: In afaceri, numele este o informaţie absolut necesară.

 Alte atribute pot avea informaţie necompletată, nulă.


Acestea se numesc OPŢIONALE.
Exemplu: În multe cazuri numărul de telefon fix este o informaţie
ce poate lipsi dacă apare numărul de telefon mobil.

30.12.2018 Proiectarea bazelor de date 15


Exemplu

30.12.2018 Proiectarea bazelor de date 16


Exercițiu

Dati exemple de atribute ale urmatoarelor entitati:


- CUSTOMER
- CAR
- JOB
- ORDER
- TRANSACTION
- EMPLOYMENT CONTRACT

30.12.2018 Proiectarea bazelor de date 17


Exercițiu

30.12.2018 Proiectarea bazelor de date 18


Legătura lipsă (THE MISSING LINK)

 Câteodată, clientul dă informaţii trunchiate si


irelevante sau poate nu ştie nici el exact ce vrea.

 Informaţiile pe care le primim în astfel de cazuri


sunt asemeni unor piese incomplete de puzzle.

 Punând întrebările potrivite şi lucrând în echipă,


putem descoperi ceea ce ne lipseşte.

30.12.2018 Proiectarea bazelor de date 19


Exercițiu

 Fiecare student primeşte o piesă de puzzle.

 Piesele componentilor unui grup formează


imaginea, mai putin piesa cea mai importantă, care
lipseşte.

 Fără a-şi arăta unul altuia bucăţica de imagine, doar


prin comunicare, să se completeze imaginea grupei
si apoi să se identifice ce conţine piesa ce lipseşte.

30.12.2018 Proiectarea bazelor de date 20


Identificarea și modelarea entităților
Identificați și modelați entitățile pe baza următorului set de cerințe de informații

“I’m the manager of a training company that provides instructor-led


courses in management techniques. We teach many course, each of which has a
code, a name, and a fee. Introduction to UNIX and C Programming are two of our
more popular courses. Courses vary in length from one day to four days. An
instructor can teach several courses. Paul Rogers and Maria Gonzales are two of
our best teachers. We track each instructor’s name and phone number. Each
course is taught by only one instructor. We create a course and then line up an
instructor. The students can take several courses over time, and many of them do
this. Jamie Brown from AT&T took every course we offer! We track each students
name and phone number. Some of our students and instructors do not give us their
phone numbers.”
30.12.2018 Proiectarea bazelor de date 21
Soluție

INSTRUCTOR (TEACHER)
name
COURSE phone number
code
name STUDENT
fee
name
duration
phone number

30.12.2018 Proiectarea bazelor de date 22


Model fizic şi model conceptual
Entităţi si instanţe (partea I)

1. Data versus informaţie


2. Model fizic şi model conceptual
3. Entităţi si instanţe
4. Relaţii
5. ERD-uri
6. Subtipuri şi supertipuri
7. Documentarea unui ERD

30.12.2018 Proiectarea bazelor de date 23


Relația
 Reprezintă ceva semnificativ pentru afacere

 Exprimă care sunt relaţiile între două entităţi (sau


între una şi aceeaşi entitate)

 Se citeşte în ambele sensuri

 Are opţionalitate

 Are un grad de cardinalitate

30.12.2018 Proiectarea bazelor de date 24


Opționalitatea unei relații

Relaţiile pot fi:


1. mandatorii
2. opţionale

Exemplu:
Pentru a stabili opţionalitatea relaţiei dintre entităţile ANGAJAT si
JOB se pun următoarele întrebări:
1. Trebuie ca fiecare angajat să aibă un job?
2. Trebuie ca fiecare job să fie acordat unui angajat?

30.12.2018 Proiectarea bazelor de date 25


Cardinalitatea unei relații

Determină gradul relaţiei.


Se determină prin răspunsul la întrebarea: Câte?
Câți?

Exemplu:
Câte job-uri poate îndeplini un angajat? Unul, sau mai
multe?
Câti angajaţi pot lucra la un job? Doar unul? Sau mai
mulţi?

30.12.2018 Proiectarea bazelor de date 26


Exemple de relaţii
Câte job-uri poate îndeplini un angajat? Unul, sau mai multe?

Câti angajaţi pot lucra la un job? Doar unul? Sau mai mulţi?

Each EMPLOYEE must hold one and only one JOB


Each JOB may be held by one or more EMPLOYEEs

Each PRODUCT must be classified by one and only one


PRODUCT TYPE
Each PRODUCT TYPE may classify one or more
PRODUCTs

30.12.2018 Proiectarea bazelor de date 27


Model fizic şi model conceptual
Entităţi si instanţe (partea I)

1. Data versus informaţie


2. Model fizic şi model conceptual
3. Entităţi si instanţe
4. Relaţii
5. ERD-uri
6. Subtipuri şi supertipuri
7. Documentarea unui ERD

30.12.2018 Proiectarea bazelor de date 28


Convenții ale ERD-ului
 Entităţile sunt reprezentate prin
dreptunghiuri cu colţurile
rotunjite, în care este înscris
numele entităţii la singular, cu
litere mari.
 Atributele sunt afişate sub
numele entităţii, cu litere mici.
 Se pun in faţă semnele:
* pentru atribut mandatoriu
o pentru atribut opţional
# pentru identificator unic.

29 30.12.2018 Proiectarea bazelor de date


Convenții ale ERD-ului
ERD – Entity Relationship Diagram

Informaţiile dintre date pot fi reprezentate


într-o formă convenţională care să poată fi
uşor înţeleasă de toată lumea.

O astfel de reprezentare este diagrama


entităţi-relaţii, numită şi harta relaţiilor sau
ERD-ul (Entity Relationship Diagram).
30 30.12.2018 Proiectarea bazelor de date
Convenții ale ERD-ului

Relaţiile sunt trasate cu linie:


- continuă, pentru relaţie mandatorie
- întreruptă, pentru relaţie optională
Relaţiile se termină:
- într-o linie, pentru cardinalitate 1;
- în trei liniuţe (picior de cioară), pentru “mai
multe”.

30.12.2018 Proiectarea bazelor de date 31


DESENAREA RELAŢIILOR SI CITIREA LOR IN
LIMBAJ ERD-ish

30.12.2018 Proiectarea bazelor de date 32


Diagrame matriciale

 Sunt o alternativă la
reprezentarea prin ERD.

 Sunt folosite atunci când


avem foarte multe relaţii,
pentru a ne asigura că nu
am uitat vreuna.

 Diagramele matriciale nu
arată opţionalitatea şi
cardinalitatea.
30.12.2018 Proiectarea bazelor de date 33
Model fizic şi model conceptual
Entităţi si instanţe (partea I)

1. Data versus informaţie


2. Model fizic şi model conceptual
3. Entităţi si instanţe
4. Relaţii
5. ERD-uri
6. Subtipuri şi supertipuri
7. Documentarea unui ERD

30.12.2018 Proiectarea bazelor de date 34


Subtipuri și supertipuri
Adesea unele instanţe au atribute sau relaţii pe care alte instanţe ale
aceleiaşi entităţi nu le au.
Exemplu:

30.12.2018 Proiectarea bazelor de date 35


Un subtip

Moşteneşte toate atributele supertipului


Moşteneşte toate relaţiile supertipului
De obicei are propriile atribute / relaţii
Este desenat în interiorul supertipului
Nu este singurul subtip
Poate avea la rândul său subtipuri
Se mai numeşte “subentitate”

36 30.12.2018 Proiectarea bazelor de date


Exemplu

30.12.2018 Proiectarea bazelor de date 37


Subtipuri și supertipuri

Fiecare instanţă a unui supertip este instanţă a


unui subtip (partiţionarea este exhaustiva).

Nici o instanţă a unui supertip nu apare în două


subtipuri (partiţionarea este mutual exclusivă).

Se indica folosirea subtipului OTHER atunci


cand este posibil sa apara si alt tip de instante
decat cele prevazute de celelalte subtipuri.
30.12.2018 Proiectarea bazelor de date 38
Exercițiu

30.12.2018 Proiectarea bazelor de date 39


Model fizic şi model conceptual
Entităţi si instanţe (partea I)

1. Data versus informaţie


2. Model fizic şi model conceptual
3. Entităţi si instanţe
4. Relaţii
5. ERD-uri
6. Subtipuri şi supertipuri
7. Documentarea unui ERD

30.12.2018 Proiectarea bazelor de date 40


Documentarea unui ERD
 Cheia ce permite verificarea acurateţii şi completitudinii
modelului este identificarea şi documentarea regulilor
afacerii.
 Nu toate regulile pot fi reprezentate în diagramă.
 Unele vor fi implementate mai târziu, prin programare.
Ele trebuie incluse în documentaţia modelului.

Există două tipuri de reguli


1. Regulile structurale

2. Regulile procedurale
30.12.2018 Proiectarea bazelor de date 41
Documentarea unui ERD

1. Regulile structurale indică:

tipurile de informaţii care se vor memora;

relaţiile dintre aceste informaţii.

Aproape toate regulile structurale pot fi


reprezentate în diagramă.

30.12.2018 Proiectarea bazelor de date 42


Documentarea unui ERD

2. Regulile procedurale descriu procesele din


cadrul activităţii.

In general, regulile procedurale nu pot fi


reprezentate în diagramă, şi deci trebuie incluse
în documentaţie.

Acestea indică adesea succesiunea în timp a


unor evenimente.
30.12.2018 Proiectarea bazelor de date 43
Documentarea unui ERD
EXERCITIU

 Members of your design team have been working with the


local hospital to develop a data model for their need to store
information about patients, the patient's room number, the
patient's doctor, drug prescriptions given, and specific drug
information.
 However, they all went on vacation and left you to figure out
the model.
 They also failed to give you any of their documentation other
than the entities and attributes illustrated here.
 Instead of going back to the hospital, which could reflect
poorly on your company, you’re going to have to think about
everything you know about hospitals!
30.12.2018 Proiectarea bazelor de date 44
Documentarea unui ERD
EXERCITIU

 Your task is to generate a list of business rules you think were


used to arrive at the information shown here.
 Use your imagination.
 List 10 structural rules, 5 procedural rules, and 2
programmatic rules (rules to be addressed by computer
applications in the future).
 State each rule as a single sentence.
 Based on your set of business rules, draw the ERD.

30.12.2018 Proiectarea bazelor de date 45


Documentarea unui ERD

30.12.2018 Proiectarea bazelor de date 46


Documentarea unui ERD
SOLUTIE:

Structural Rules:
 A patient is someone who is admitted to the hospital.
 Each room assignment must include the building number and
room number.
 Each room may be occupied by one or more patients.
 A physician must have a valid license number.
 Each drug must be prescribed by a physician.
 Each drug prescribed must have a label showing label number,
dosage, treatment duration, and expiration date.
 The drug code, name, and cost must be recorded for all drugs.
 Each prescription must have a number and date. Each physician
may be assigned to more than one patient. Each patient must have
an assigned physician. Proiectarea bazelor de date
30.12.2018 47
Documentarea unui ERD
Procedural Rules:

 Changes to prescriptions can be made only by


licensed physicians.
 Patients cannot refill prescriptions without a
physician's signature.
 Physicians cannot remove drug labels.
 Patients cannot change hospital rooms without a
physician's recommendation.
 Nurses cannot reassign patients without physician
approval.
30.12.2018 Proiectarea bazelor de date 48
Documentarea unui ERD

Programming Rules:

 Drugs costs are billed at current cost at the time of


patient discharge.

 Physician fees may reflect additional costs associated


with patient complications, additional patient
requests, etc.

30.12.2018 Proiectarea bazelor de date 49


Documentarea unui ERD

30.12.2018 Proiectarea bazelor de date 50


TRANSFERABILITATEA RELATIILOR
O relaţie este netransferabilă dacă nu poate fi mutată la altă instanţă.

Exemplu de relaţie transferabilă:

Un student poate fi mutat în altă


grupă

Exemplu de relaţie netransferabilă:

O poezie este scrisă de un autor şi nu


poate fi transferată altui autor.

30.12.2018 Proiectarea bazelor de date 51


Tipuri de relații

Relaţia (1:M) One to Many

Este relaţia cea mai frecvent


intâlnită.

30.12.2018 Proiectarea bazelor de date 52


Tipuri de relații

Relaţia (1:1) One to One

În practică se întâlnesc
doar câteva tipuri de
relaţie 1:1

30.12.2018 Proiectarea bazelor de date 53


Tipuri de relații

Relaţia (M:M) Many to Many

 Este o relaţie foarte întâlnită


în prima fază a modelării.
 Se recomandă rezolvarea
acestor relaţii în alt mod
deoarece nu poate fi
implementată în această
formă.

30.12.2018 Proiectarea bazelor de date 54


Tipuri de relații
EXERCITIU

Draw an entity relationship diagram to represent the following:

a. Each CLUB must be assigned to one and only DEPARTMENT

b. Each DEPARTMENT may be responsible for one or more CLUBs

c. Each STUDENT may join one or more CLUBs

d. Each CLUB may be composed of one or more STUDENTs

30.12.2018 Proiectarea bazelor de date 55


Tipuri de relații

SOLUTIE

30.12.2018 Proiectarea bazelor de date 56


Exercitiu
Read the relationships. Write the relationship sentences for this
E-R diagram.

ORDER issued for


ITEM
number number
type bought description
via

stored in
originated by
the the
originator repository
of for

CUSTOMER WAREHOUSE
first name id
last name address

30.12.2018 Proiectarea bazelor de date 57


Solutie
 Each ORDER must be issued for one or more ITEMs.

 Each ITEM may be bought via one or more ORDERs.

 Each ORDER must be originated by one and only one


CUSTOMER.

 Each CUSTOMER may be the originator of one or more


ORDERs.

 Each ITEM must be stored in one and only one WAREHOUSE.

 Each WAREHOUSE may be the repository for one or more


ITEMs.

30.12.2018 Proiectarea bazelor de date 58


Exercitiu

Draw an Entity-Relationship Diagram.


Draw an Entity-Relationship diagram to represent the
following:

a. Each EMPLOYEE must be assigned to one and only


DEPARTMENT.
b. Each DEPARTMENT may be responsible for one or more
EMPLOYEEs.
c. Each EMPLOYEE may be assigned to one or more ACTIVITIES.
d. Each ACTIVITY may be performed by one or more
EMPLOYEEs.

30.12.2018 Proiectarea bazelor de date 59


Solutie

assigned to
EMPLOYEE DEPARTMENT
responsible
for

performed
by

ACTIVITY

30.12.2018 Proiectarea bazelor de date 60


Exemplu pentru etapele creării unei baze de
date
1. Se prezintă necesităţile informaţionale ale
afacerii:

30.12.2018 Proiectarea bazelor de date 61


2. Se crează modelul conceptual:

30.12.2018 Proiectarea bazelor de date 62


3. Pornind de la modelul conceptual se stabilesc:

- numele tabelelor
- numele coloanelor din fiecare tabel, tipul
acestora şi după caz proprietatea:
PK (primary key), FK(foreign key), Null sau
Unique

30.12.2018 Proiectarea bazelor de date 63


4. Prin instrucţiuni SQL se crează
baza de date proiectată anterior.

30.12.2018 Proiectarea bazelor de date 64


Materialul utilizat in acest curs face parte din
curriculum Oracle Academy

30.12.2018 Proiectarea bazelor de date 65


Întrebări?

30.12.2018 Proiectarea bazelor de date 66

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