# 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi...

66
Proiectarea bazelor de date # 16 Adrian Runceanu www.runceanu.ro/adrian 2018 Model fizic şi model conceptual Entităţi si instanţe (partea I)

Transcript of # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi...

Page 1: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Proiectarea bazelor de date

# 16

Adrian Runceanuwww.runceanu.ro/adrian

2018

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

Page 2: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Model fizic şi model conceptual

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

30.12.2018

Curs 16

Proiectarea bazelor de date 2

Page 3: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Model fizic şi model conceptualEntităţ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

Page 4: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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 suntmodelate datele, cum se păstrează şi cum putem regăsi informaţii pe baza acestor date

30.12.2018 Proiectarea bazelor de date 4

Page 5: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

(Dicţionar general al limbii române – Vasile Breban Ed. Enciclopedica,1991)

Informaţia rezultă adesea din combinarea, compararea siefectuarea unor calcule asupra datelor.

30.12.2018

Date Informatii

“Fapte, elemente ceservesc ca punct de plecare în cercetarea uneiprobleme sau pentru a trage o concluzie sauhotărâre”.

“Comunicare, veste, ştire”“Fiecare dintre elementelenoi în raport cucunoştinţele prealabile”.

Date versus informatie

Proiectarea bazelor de date 5

Page 6: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

30.12.2018

Date InformatiiNotele 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 fost 200000 lei

Ce buget este necesar in anulviitor?

Bugetul facultatii in 2014 a fost 250000 lei

Date versus informatie

Proiectarea bazelor de date 6

Page 7: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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

Mecanic auto

Şofer

Cultivatoare de flori

30.12.2018 Proiectarea bazelor de date7

Page 8: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Model fizic şi model conceptualEntităţ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

Page 9: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Model fizic și model conceptual

Modelarea datelor estedoar 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”

30.12.2018 Proiectarea bazelor de date9

Page 10: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Etape în procesul de dezvoltare a bazelor de date

1. Incepe prin formularea cerinţelor informaţionaleale afacerii

2. Se desenează apoi modelul conceptual

3. Se proiectează baza de date pornind de la modelulconceptual (entitaţile devin tabele, atributeledevin nume de coloane care corespund unor tipuride date, se stabilesc proprietăţile speciale ale unorcoloane)

4. Se construieşte baza de date (modelul fizic) prinexecutarea unor instructiuni SQL

30.12.2018 Proiectarea bazelor de date 10

Page 11: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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

Page 12: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Model fizic şi model conceptualEntităţ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

Page 13: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Entități și instanțe

Entitate = ceva semnificativ pentru afacere, referitorla 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

Page 14: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Atributul

Este o proprietate a unei entităţi sau un detaliureferitor 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

Page 15: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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ţiece poate lipsi dacă apare numărul de telefon mobil.

30.12.2018 Proiectarea bazelor de date 15

Page 16: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Exemplu

30.12.2018 Proiectarea bazelor de date 16

Page 17: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Exercițiu

Dati exemple de atribute ale urmatoarelor entitati:

- CUSTOMER

- CAR

- JOB

- ORDER

- TRANSACTION

- EMPLOYMENT CONTRACT

30.12.2018 Proiectarea bazelor de date 17

Page 18: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Exercițiu

30.12.2018 Proiectarea bazelor de date 18

Page 19: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Legătura lipsă (THE MISSING LINK)

Câteodată, clientul dă informaţii trunchiate siirelevante sau poate nu ştie nici el exact ce vrea.

Informaţiile pe care le primim în astfel de cazurisunt 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

Page 20: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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, doarprin comunicare, să se completeze imaginea grupeisi apoi să se identifice ce conţine piesa ce lipseşte.

30.12.2018 Proiectarea bazelor de date 20

Page 21: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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

Page 22: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Soluție

INSTRUCTOR (TEACHER)

name

phone number

STUDENT

name

phone number

COURSEcodenamefee duration

30.12.2018 Proiectarea bazelor de date 22

Page 23: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Model fizic şi model conceptualEntităţ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

Page 24: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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

Page 25: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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 siJOB 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

Page 26: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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 maimulte?

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

30.12.2018 Proiectarea bazelor de date 26

Page 27: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Exemple de relaţii

Each EMPLOYEE must hold one and only one JOBEach 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

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?

Proiectarea bazelor de date 27

Page 28: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Model fizic şi model conceptualEntităţ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

Page 29: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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.

30.12.2018 Proiectarea bazelor de date29

Page 30: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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.12.2018 Proiectarea bazelor de date30

Page 31: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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 “maimulte”.

30.12.2018 Proiectarea bazelor de date 31

Page 32: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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

30.12.2018 Proiectarea bazelor de date 32

Page 33: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Diagrame matriciale

Sunt o alternativă la reprezentarea prin ERD.

Sunt folosite atunci cândavem foarte multe relaţii, pentru a ne asigura că nu am uitat vreuna.

Diagramele matriciale nu arată opţionalitatea şicardinalitatea.

30.12.2018 Proiectarea bazelor de date 33

Page 34: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Model fizic şi model conceptualEntităţ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

Page 35: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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

Page 36: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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”

30.12.2018 Proiectarea bazelor de date36

Page 37: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Exemplu

30.12.2018 Proiectarea bazelor de date 37

Page 38: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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 atuncicand este posibil sa apara si alt tip de instantedecat cele prevazute de celelalte subtipuri.

30.12.2018 Proiectarea bazelor de date 38

Page 39: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Exercițiu

30.12.2018 Proiectarea bazelor de date 39

Page 40: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Model fizic şi model conceptualEntităţ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

Page 41: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Documentarea unui ERD

Cheia ce permite verificarea acurateţii şi completitudiniimodelului este identificarea şi documentarea regulilorafacerii.

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

Page 42: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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

Page 43: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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

Page 44: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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

Page 45: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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

Page 46: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Documentarea unui ERD

30.12.2018 Proiectarea bazelor de date 46

Page 47: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Documentarea unui ERDSOLUTIE:

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.30.12.2018 Proiectarea bazelor de date 47

Page 48: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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

Page 49: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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

Page 50: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Documentarea unui ERD

30.12.2018 Proiectarea bazelor de date 50

Page 51: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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

Page 52: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Tipuri de relații

Relaţia (1:M) One to Many

Este relaţia cea mai frecventintâlnită.

30.12.2018 Proiectarea bazelor de date 52

Page 53: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Tipuri de relații

Relaţia (1:1) One to One

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

30.12.2018 Proiectarea bazelor de date 53

Page 54: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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ă rezolvareaacestor relaţii în alt mod deoarece nu poate fi implementată în aceastăformă.

30.12.2018 Proiectarea bazelor de date 54

Page 55: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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

Page 56: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Tipuri de relații

SOLUTIE

30.12.2018 Proiectarea bazelor de date 56

Page 57: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Exercitiu

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

issued forITEM

numberdescription

ORDERnumber

type boughtvia

originated by

theoriginator

of

CUSTOMERfirst namelast name

stored in

therepository

for

WAREHOUSEidaddress

30.12.2018 Proiectarea bazelor de date 57

Page 58: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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

Page 59: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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

Page 60: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Solutie

assigned toDEPARTMENTEMPLOYEE

responsiblefor

performedby

ACTIVITY

30.12.2018 Proiectarea bazelor de date 60

Page 61: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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

Page 62: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

2. Se crează modelul conceptual:

30.12.2018 Proiectarea bazelor de date 62

Page 63: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

3. Pornind de la modelul conceptual se stabilesc:

- numele tabelelor

- numele coloanelor din fiecare tabel, tipulacestora şi după caz proprietatea:

PK (primary key), FK(foreign key), Null sauUnique

30.12.2018 Proiectarea bazelor de date 63

Page 64: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

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

30.12.2018 Proiectarea bazelor de date 64

Page 65: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Materialul utilizat in acest curs face parte din curriculum Oracle Academy

30.12.2018 Proiectarea bazelor de date 65

Page 66: # 16 Model fizic şi model conceptual - runceanu.ro · Model fizic şi model conceptual Entităţi si instanţe (partea I) 30.12.2018 Curs 16 Proiectarea bazelor de date 2

Întrebări?

30.12.2018 Proiectarea bazelor de date 66