+ All Categories
Home > Documents > ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu...

ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu...

Date post: 15-Oct-2020
Category:
Upload: others
View: 8 times
Download: 0 times
Share this document with a friend
159
ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şi DataBase Programming (SQL). Scopul Institutului este de a aprofunda conceptele şi secretele modelării BD şi a limbajului SQL.
Transcript
Page 1: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

ACADEMIA ORACLE

BUCURESTI

MAI 2007

INSTRUCTOR: Sanda Popescu

Bine aţi venit la trainingul Academiei Oracle de

DataBase Design şi DataBase Programming (SQL).

Scopul Institutului este de a aprofunda conceptele şi

secretele modelării BD şi a limbajului SQL.

Page 2: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 3: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 4: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 5: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

History of the Database

Page 6: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 7: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 8: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 9: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 10: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 11: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 12: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 13: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Orice prelucrare, accesare a unei date, face ca aceasta sa devină

informaţie. Exemple: punctajul obtinut de către un student este o

dată, media aritmetică a punctajelor reprezintă o informaţie

Page 14: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 15: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 16: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Etapele procesului de dezvoltare al bazelor de date :

Strategie – capturarea informatiilor necesare, conform regulilor afacerii, etapa

din care va rezulta modelul conceptual – Sectiunile 2- 11

Analiza - maparea relatiilor dintre entitati– din modelul conceptual E, A, R şi

identificatorii unici vor fi translatati în obiecte ale bazei de date

relaţionale – Secţiunile 11(PK,FK,UK), 12.

Design - modelul conceptual va fi transformat într-un design relational al

viitoarei baze de date - Sectiune 12

Build – construcţia BD cu ajutorului SGBD – SQL, folosind DDL, DML, DCL

(limbajele de definire, manipulare, control si administrare a BD), astfel

incât BD sa devină operaţională.- modelul fizic- incepând cu

secţiunea 13 din modulul de database-design

Page 17: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 18: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

E1 - Strategie : Modelul conceptual pentru scenariul prezentat

Page 19: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

E2/3 - Analiza/Design

Page 20: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

E4- Build - Modelul fizic

Page 21: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Sectiune2- Lectie 1

MODELUL CONCEPTUAL

- modelează nevoile funcţionale şi informaţionale ale afacerii

- se bazează pe nevoile curente dar poate reflecta nevoile viitoare

- este numit şi Modelul Entitate Relaţii (Entity Relationship Model)

Scopul Modelarii Relatiilor dintre Enitati:

- să captureze toate informaţiile necesare

- orice informaţie să apară o singură dată

- să modeleze numai informaţiile care nu sunt derivabile din alte informaţii

deja modelate

- să plaseze informaţiile în locurile logice, fiecare la locul ei

Page 22: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 23: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

ENTITATE

- este ceva semnificativ (important) pentru afacere, despre care

trebuie cunoscute date

- este un nume pentru lucruri pe care le poţi lista

- entităţile sunt substantive la singular

Entitatile pot fi :

- tangibile : Exemplu : PERSON OR PRODUCT

- non-tangibile : SKILL LEVEL ( nivelul de performanta)

- un eveniment : CONCERT

Ele au instanţe: FRUIT: portocale, mere, lămâi şi atribute (nume, culoare,

preţ)

Page 24: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

ENTITATI SI INSTANTE

Page 25: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

- este de asemenea ceva semnificativ pentru afacere

- este o proprietate a entităţii cu o singură valoare

- este o informaţie specifică care descrie, cuantifică, califică,

clasifică sau specifică o entitate

- este un mic detaliu despre entitate

- are tip (ex. numeric, caracter, data calendaristica, imagine, sunet….

= tipuri de date sau formate)

ATRIBUTE

Page 26: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 27: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 28: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

UID: artificial - acela care nu-ti trece prin minte in mod

natural, dar va fi creat în scopul de a identifica o anumită

instanţă din sistem

simplu - format dintr-un singur atribut

compus – o combinaţie de atribute; sau o combinatie dintre un

atribut + relatie

Page 29: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 30: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 31: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 32: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

OPTIONALITY: Not required; left to choice

DATA TYPE: A classification identifying one of various

types of data, stating the possible values for that type, the

operations that can be done on that type, and the way the

values of that type are stored.

ATTRIBUTE: Characteristic, something that describes,

quantifies or specifies an entity.

ENTITY: A named thing or category of things that is

significant to the business and about which data must be

known.

INSTANCE: An occurrence or example

MANDATORY: Required, necessary, imperative.

NONTANGIBILE: Incapable of being perceived by the

senses. Same as intangible.

NULL: A value that is unavailable, unassigned, unknown,

or inapplicable; it is not a zero or space.

OPTIONAL: Not required; left to choice.

TANGIBLE: Perceptible by the senses especially the

sense of touch.

(UNIQUE IDENTIFIER) UID: Any combination of

attributes and/or relationships that serves, in all cases, to

uniquely identify an occurrence of an entity.

VOLATILE: Tending to vary often or widely, highly

changeable.

Page 33: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

RELATIONSHIP: A connection or association between objects.

CARDINALITY: A property of an end of a relationship between X and Y, that

describes how many of X is related to Y. Both ends of a relationship must have a

defined cardinality. Same as degree.

DEGREE: A property of an end of a relationship between X and Y, that describes

how many of X is related to Y. Both ends of a relationship must have a defined

degree. Same as cardinality.

OPTIONALITY: Not required; left to choice

Page 34: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Un model conceptual bun poate fi utilizat, indiferent de tipul bazei de

date (BD- ierarhice, relaţionale, de tip reţea.. (implementation free))

Page 35: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 36: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 37: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

- reprezintă ceva semnificativ pentru afacere

- arata cum entităţile se referă unele la altele în mod reciproc

- există întotdeauna între două entităţi (sau intre o singură entitate de două ori -> relatie recursiva-

definita prin ea insasi)

- întotdeauna are două perspective

- are nume la ambele capete ( entităţile se scriu cu litere mari şi relaţiile cu litere mici, italic)

EMPLOYEEs hold JOBs, JOBs are holded by EMPLOYEEs

PRODUCTs are classified by a PRODUCT TYPE, PRODUCT TYPE classifies a PRODUCT

- sunt obligatorii (mandatory) sau opţionale

Page 38: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

OBLIGATORIE/ OPŢIONALĂ

Determină gradul unei relaţii

Page 39: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 40: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

- numele entităţii trebuie să fie unic în cadrul unei baze de date şi să descrie formal entitatea

- când se denumeşte entitatea, trebuie să fim atenţi la omonime (se scriu la fel dar înseamnă altceva

SARE)

- se vor evita cuvintele rezervate ( entity, attribute)

- atenţie să nu se transfere numele entităţii în numele relaţiei. De Ex. A guest may be a guest of

ENTITĂŢI

Page 41: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

ATRIBUTE

Page 42: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

are trei aspecte: NUME (lângă entitate)

OPŢIONALITATE (lângă entitate) MUST BE / MAY BE

GRAD (lângă entitatea opusă)/ How many?

RELATIE

Page 43: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 44: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 45: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

PASII CARE TB. URMATI PENTRU TRASAREA UNEI ERD- ish

• Examinează substantivele

• Păstrează numai informaţiile care te interesează conform regulilor şi

nevoilor afacerii

• Stabileşte un nume semnificativ pentru fiecare entitate

• Fiecare E are un UID ? In ce fel atributul sau atributele pot servi UID

(care sunt cheile candidate pentru identificarea unica a fiecărei

instanţe?)

• Descrieţi fiecare E adăugând atributele necesare, trasând softbox-ul

pentru fiecare E

• Identificaţi relaţiile şi trasaţi diagrama.

Page 46: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 47: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 48: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 49: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 50: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 51: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

CONVENTIE:

Page 52: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 53: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 54: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 55: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

MODELAREA SUBTIPURILOR ŞI

SUPERTIPURILOR

Page 56: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 57: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 58: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

RULES:

- Mutually Exclusive: orice

instanţă aparţine doar unui singur

subtip, adică un produs nu poate fi

simultan atât carte cât şi revistă.

ANALOGIE:

Se obţine de fapt o partiţie a

mulţimii instanţelor supertipului.

Page 59: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Atributele supertipului VEHICLE pot fi # număr de înmatriculare, * anul fabricaţiei. În plus, apar ca atribute adiţionale (auxiliare) modelul şi tipul motorului.

TRUCK are atributele proprii (dimensiunea patului, tipul transmisiei) ş.a.m.d.

BOAT are propriile subtipuri

OTHER de obicei este necesar, pentru a putea face o clasificare mai exactă deoarece pot exista şi alte tipuri de vehicule (biciclete, avioane) şi nu putem încălca una din reguli - exhaustivă, completă- fiecare instanţă a supertipului trebuie să fie instanţă a unui subtip (trebuie să fie încadrat undeva)

Să vedem dacă respectă regulile:

toate au UID comun (număr de înmatriculare)

fiecare are propriile atribute

există mai mult decât un subtip

sunt exhaustive(complete/ care epuizeaza un subiect) fiecare vehicul poate fi plasat în acest model

sunt reciproc exclusive o maşină nu e barcă, o barcă nu e camion. Fiecare vehicul se potriveşte într-un singur subtip.

şi incă ceva important: se observă că există subtip al unui subtip. Subtipurile se pot imbrica (cuibări-nested) pe oricâte nivele dar rar la o adâncime mai mare de 3, deoarece e greu de implementat la nivel fizic

Ex.1

Page 60: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

WHEN:

- When a group of instances has

special properties, such as

attributes or relationships that

exist only for that group, or when

there is some functionality that

applies only to the group.

RULES:

- Exhaustive: sunt acoperite toate

cazurile posibile, adica in

exemplul nostru, orice publicatie

este o carte (BOOK), o revista

(MAGAZINE), brosura

promotionala (PROMO

BROCHURE), iar pt. a fi siguri ca

acoperim toate situatiile sau daca

ne gandim ca in viitor vom putea

avea si alte produse s-a inclus si

subtipul OTHER.

Ex.2

Page 61: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 62: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 63: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

BUSSINESS RULES

Section 4

STRUCTURAL RULES: reguli structurale arată tipul informaţiei care a fost

prelucrată arată şi cum elementele informaţiei interrelaţionează

- câteodată le numim constrângeri

- reguli care se pot deduce de pe ERD

Exemplu: Toti profesorii din şcoală trebuie sa aibă o diplomă de licenţă.

(=>atributul licenţă este obligatoriu!)

Acestea sunt reguli care ne spun ce tip de informaţii sunt reţinute.

PROCEDURAL RULES: gestionează procesele afacerii şi fluxul afacerii

Reguli interne ale firmei care nu pot fi “prinse” in ERD. Pentru a asigura

respectarea acestor reguli se apeleaza la software. Aceste reguli trebuie sa

fie documentate.

Exemplu: Pentru a participa la cursul de Programare elevii trebuie sa fi

parcurs cursul de Algebra. (se va scrie un program care verifică în baza de

date dacă elevul a făcut acest curs)

Page 64: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

unele reguli trebuie implementate prin programare

exemple

Page 65: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 66: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT (continuare slide anterior)

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.

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.

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.

Page 67: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT (continuare slide anterior)

Page 68: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRANSFERABILITATEA UNEI RELAŢII

stabileşte dacă unei instanţe a primei entităţi poate să i se asocieze o

unică instanţă a celeilalte entităţi. Dacă da, spunem că relaţia este

nontransferabilă, altfel ea este transferabilă.

Ex. un CLIENT (CUSTOMER) este asociat cu o COMANDĂ

(ORDER). COMANDA trebuie întotdeauna asociată cu acel CLIENT.

Odată ce un client a făcut o comanda aceasta nu poate fi deasociată

de acesta.

Page 69: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

-Ex. în relaţia dintre grupa sanguină şi persoană. Fiecare persoană trebuie să

aibă o singură grupă sanguină. Partea cu TREBUIE SĂ a relaţiei nu este

transferabilă. Persoanei nu i se poate schimba grupa sanguină.

-Ex. relaţia dintre persoană şi oraş. Fiecare persoană trebuie sa se fi născut

intr-un oraş. Şi în acest exemplu partea cu TREBUIE a relaţiei nu este

transferabilă. O persoană nu poate să-şi schimbe oraşul natal. Deseori

informaţiile istorice sunt modelate pe baza relaţiilor nontransferabile.

Page 70: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRANSFERABILITY

Section 5

Page 71: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRANSFERABILITY

Section 5

Page 72: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Nontransferabilitatea => valoarea campului AUTHOR_ID din tabela POEMS

nu se poate modifica.

Diamond-ul apare intotdeauna pe partea cu MANY iar optionalitate

MUST BE!!!

Page 73: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 74: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 75: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 76: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TIPUL RELAŢIILOR. GRAD. CARDINALITATE

Relaţie RARĂ mandatory la ambele capete

Each PERSON Must be the result of One and onlz one BIRDTH

Each BIRDTH Must results in One and only one PERSON

Relaţie COMUNĂ(UZUALĂ) opţională la ambele capete (folosită pentru modelarea

nivelelor într.un proces)

Each DRAFT (CIORNĂ) May become One and only one MESSAGE

Each MESSAGE may begin as One and only one DRAFT

Relaţie COMUNĂ(UZUALĂ) mandatory la un capăt şi opţională la celălalt capăt

(folosită pentru modelarea rolurilor)

Each PATIENT Must be identifiate by One and onlz one PERSONE

Each PERSON May become One and only one PATIENT

Page 77: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

1:M cele mai des întâlnite

Relaţie RARĂ, mandatory la ambele capete

Each MOTHER Must give birdth to One or more CHILD

Each CHILD Must be birdth by One and only one MOTHER

Relaţie COMUNĂ(UZUALE), opţională la ambele capete

Each WAREHOUSE (DEPOZIT) May store One or more PRODUCT

Each PRODUCT may be strored in One and onlz one WAREHOUSE

Relaţie COMUNĂ(UZUALE), opţională la capătul cu ONE şi mandatory la capătul cu MANY

Each CUSTOMER may placed One or more ORDER

Each ORDER Must be placed by One and only one CUSTOMER

Page 78: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

RELATIILE M:M nu se pot implementa, ele se vor transforma in relatii 1:MRelaţie RARĂ mandatory la ambele capete

Each POINT Must belong to One or more LINE

Each LINE Must contain one or more POINT

Relaţii COMUNE (UZUALE)

Opţională la ambele capete

Each CLUB may be joined by One ore more STUDENT

Each STUDENT may join One or more CLUB

Mandatory la un capăt, opţională la celălat capăt

Each MESSAGE Must be received by One or more USER

Each User may receive One or more MESSAGE

Page 79: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

RELATII REDUNDANTE

Page 80: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 81: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 82: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

REZOLVAREA RELAŢIILOR

M:M

Ex. Each STUDENT May be enroled in One or more COURSEs

Each COURSE May be taken by One or more STUDENTs

Page 83: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

De ce rezolvăm relaţiile M:M (Why?)

Nu se pot implementa

pot ascunde un atribut

creând a treia entitate, numită entitate intersecţie, se crează loc pentru acest atribut

Cum rezolvăm relaţiile M:M ( How?)

creăm entitatea de intersecţie

creăm relaţii noi

denumim noile relaţii

adăugăm atribute entităţii de intersecţie

creăm UID pentru entitatea de intersecţie

Page 84: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Atribute: Entitate de intersectie

- data inscrierii

- data completarii

- grad

Noile relaţii îşi păstreză opţionalitatea la capetele entităţilor

iniţiale. În ceea ce priveşte cardinalitate, aceste noi relaţii

sunt amândouă de tipul M:1. Dacă s-a dezvoltat o nouă

relaţie de M:M, acesta trebuie din nou rezolvată

Page 85: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

SOLVING MANY-TO-MANY

Section 5

1. Se pastreaza opţionalitatea

relaţiilor originale

Ex: Each ORDER MUST contain

one or more products

Each ORDER MUST contain

one or more order items.

Each PRODUCT MAY appear on

one or more ORDERS.

Each PRODUCT MAY appear

on one or more ORDER ITEMS.

Page 86: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

SOLVING MANY-TO-MANY

Section 5

2. De obicei relaţiile dinspre

entitatea de intersecţie sunt

barate, asta insemnând că un

ORDER ITEM este unic identificat

prin id-ul ORDER-ului împreună

cu ID-ul PRODUCT-ului.

Se poate însă decide includerea

unei chei artificiale care să

identifice unic fiecare order item şi

atunci dispar barele…

Aceasta variantă este de preferat

dacă UID-urile entităţilor originale

sunt compuse.

Page 87: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 88: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 89: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 90: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 91: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 92: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

SECTIUNE 6. LECTIE 1.UIDs artificial, composit Şi secundar

Page 93: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 94: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 95: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 96: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 97: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 98: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 99: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 100: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 101: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

SECTIUNE6/ LECTIE 2

NORMALIZAREA- PRIMA FORMĂ DE NORMALIZARE (1NF)

Ce este normalizarea ?

Tehnică formală de analiză şi optimizare a relaţiilor ce are la bază cheile primare (sau candidate) şi dependenţele funcţionale

O serie de condiţii (forme normale), fiecare fiind din ce în ce mai restrictivă

Formele normale FN1, FN2, FN3 se raportează la dependenţele funcţionale

Formele normale superioare (FN4, FN5) se definesc în raport de alte tipuri de dependenţe(multivaloare, respectiv joncţiune)

- scopul normalizării este să ne asigurăm că datele sunt reţinute într-un singur loc în baza de date, să se asigure integritatea datelor, să se identifice tabelele lipsă, coloanele şi constrângerile din modelul original

De ce normalizam?

Pentru a evita redundanţa (duplicarea valorilor)

Pentru a înlătura anomaliile de actualizare (erori sau inconsistenţe ale structurii bazei de date)

Inserare – nu se poate insera un tuplu pentru că nu dispunem de toate informaţiile necesare;

Ştergere – atunci când se şterge un tuplu se şterge mai multă informaţie decât s-a intenţionat;

Modificare – când dorim să modificăm o valoare şi aceasta apare în sute de rânduri.

Page 102: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 103: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Toate valorile asociate atributelor se găsesc la nivel elementar

- din punct de vedere al utilizarii;

- din punct de vedere al obţinerii;

- din punct de vedere al tipurilor de date existente;

Nu exista atribute sau grupuri de atribute repetitive

1 NF - Spune că toate atributele trebuie să aibă o singură valoare. Validăm aceasta prin aceea

că fiecare atribut are o singură valoare pentru fiecare instanţă a entităţii. Asta înseamnă că nici

un atribut nu trebuie să aibă valori care se repetă (se schimbă)

Ex. COURSE cu atributele (#) id, (*) title, (*) instructor, (*) location, (*) student.

Un curs are mai mult decăt un student care participă la acesta, deci acest atribut încalcă prima

formă de normalizare. Ca să rezolvăm asta, STUDENT ar trebui să fie o alta entitate separată,

care să fie în relaţie cu entitatea COURSE. Dacă un curs este ţinut de mai mulţi instructori,

atunci de asemenea este încălcată această 1NF. De asemenea, dacă cursul este ţinut în mai

mult decât o locaţie (sală de curs, amfiteatru, laborator) atunci şi locaţie ar trebui să fie entitate

separată.

Desigur, toate acestea depind şi de regulile afacerii

Page 104: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 105: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

START

ANLIZA DATELOR

DATELE SE AFLA LA

NIVEL ELEMENTAR

FN1

DF

P

ELIMINA DFP

FN2

DA

DFT

ELIMINA DFT

FN3

DA

STOP

DFP – dependenţă funcţională parţială

DFT – dependenţă funcţională tranzitivă

DESCOMPUNE.

ELIMINA ATRIBUT

NU

Page 106: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

First Normal Form

Single-valued attributes

Validate that each attribute has a single value for each occurrence of the entity. No attribute should have repeating values.

CLIENT#* identifier

* date contacted Does the entity CLIENT comply with 1NF?

The attribute date contacted has multiple values, therefore the entity CLIENT is not in 1NF.

First Normal Form Rule: All attributes must be singled-valued.

Page 107: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

First Normal Form (cont)

If an attribute has multiple values, create an additional entity and relate it to the original entity with a M:1 relationship.

CLIENT

#* identifier

CONTACT#* date contacted

o location

o result

for

the

subject

of

Page 108: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 109: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Second Normal Form

Dependency on entire UID

Validate that each attribute is dependent on its entity’s entireunique identifier. Each specific instance of the UID must determine a single instance of each attribute.

Validate that an attribute is not dependent upon only part of its entity’s UID.

COURSE#* code

* name

* duration

* fee

Validate placement of the COURSE entity’s

attributes

In this example, each instance of a course code determines

a specific value for name, duration, and fee ( taxa/plata).

The attributes are properly placed.

Second Normal Form Rule: An attribute must be dependent upon

its entity’s entire unique identifier.

Page 110: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

SECTIUNE 6/ LECTIE 3 2NF

Examinăm entitatea PRODUS FURNIZAT. Identificatorul unic este o

combinaţie dintre numărul furnizorului si numărul produsului. Ce ştim

despre atributul nume furnizor? Dacă un furnizor aprovizioneză 5

produse diferite ce se întimplă dacă se schimbă numele furnizorului?

Ar trebui făcute actualizări in 5 locuri. Dacă în unele actualizăm şi în

altele nu? Care va fi valoarea corectă pentru numele furnizorului?

purchase=achizitie

Page 111: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

-A două formă de normalizare necesita ca toate atributele entitatii

care nu sunt UID trebuie să fie dependent de întregul identificator

unic.

- Aceasta se aplică, de obicei, la entităţile care au UID composite

sau UID care derivă din relaţie barată.

- nu se admit dependente functionale partiale

Page 112: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

- Acelaşi număr de cont poate

exista la bănci diferite, asta

înseamnă că numărul contului

este legat de bancă => relaţie

barată

Page 113: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 114: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 115: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 116: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

-Regula pentru 3NF- niciun atribut non UID nu poate să fie dependent de un alt atribut non UID

- 3NF interzice dependenţele tranzitive. O dependenţă tranzitivă există când orice atribut (non

UID) dintr-o entitate depinde de un alt atribut (non UID) din aceeaşi entitate (sunt cel putin 2)

-Ex: Gandeste-te ce informaţie ai dori sa păstrezi pentru colectia ta de CD. Informatia legata de

magazinul de unde ai cumparat CD apartine aceleiasi entitati? Dacă adresa magazinului se

schimbă tu ar trebui să schimbi informaţiile de pe CD-urile care au fost cumparate din acel

magazin?

Page 117: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 118: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

EMPLOYEE care are ca atribut non UID partner

name şi partner birdth date. Acest exemplu

încalcă a treia formă de normalizare deoarece, deşi

partner name poate fi un atribut al entităţii – lucru

ce rezultă din următoarea regulă a afacerii: fiecare

angajat poate avea un singur partener- data de

naştere a partenerului ar trebui să fie atribut pentru

entitatea PARTNER care ar fi trebuit creată.

Page 119: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 120: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 121: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Normalize the Data Model

First Normal Form (1NF)

All Attributes must be single-valued

Second Normal Form (2NF)

An attribute must be dependent upon its entity’s entire unique identifier

Third Normal Form (3NF)

No non-UID attribute can be dependent on another non-UID attribute

A normalized entity-relationship data model automatically translates into

a normalized relational database design!

Normalization is a relational database concept, but its principles

apply to Conceptual Data Modelling.

Page 122: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Observaţie: cele trei forme de normalizare sunt progresive: asta înseamnă că nu poţiavea o bază de date care să fie în a doua formă de normalizare dacă nu e deja înprima formă de normalizare şi de asemenea, nu poate fi în a treia formă denormalizare dacă ni e în prima formă de normalizare şi în a doua formă denormalizare.

Există şi 4NF şi 5NF dar nu vom studia aceasta in cadrul acestui curs.

ETAPELE PENTRU REALIZAREA UNEI ERD:

analiza documentului (scenariului dat)

asociem atributele entităţilor

desenăm entităţile

definim relaţiile dintre entităţi

INFORMAŢII NOI DESPRE UID:

fiecare instanţă trebuie să fie identificată de o valoare unică

folosim simbolul # pentru atributul cu rol de identificator unic

UID trebuie să fie unic şi NOT NULL

În practică, de obicei, unui UID îi este asociat un număr

Unii UID sunt compuşi din mai multe atribute, altele din atribute şi relaţii barate şiunele doar din relaţii barate

Page 123: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 124: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

CONSTRANGERI ( RESTRICTII)

Unique Identifiers

Arcs

Domains

Various other constraints

Page 125: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

SECTIUNE 7/ LECTIE 1/ ARCS

-Orice afacere are restricţii pe fiecare valoare a atributelor şi pe fiecare relaţie

permisă.

-Aceste restrictii sunt cunoscute sub denumirea de CONSTRÂNGERI. Ne putem

referi la un singur atribut al unei entitati sau la relaţiile între entităţi

-Deja stim despre mai multe tipuri de constrângeri, de exemplu: fiecare angajat

trebuie sa lucreze în unul si numai intr-un departament

-un alt tip de constrangere- XOR sau exclusiv

Page 126: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Unique Identifier Examples

JOB

COMPUTER IN NETWORK

TELEPHONE

EMPLOYEE

MAIL LIST

Name

IP Address

Country code,

Area code,

Telephone number

Employee number

Name,

Initials,

Birth Date

Name,

Owner

Page 127: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Unique Identifier

CUSTOMER

# Family Name

o Initials

# Address

o Telephone

Indicates Unique Identifier

ORDER

# Dateresponsible

for

by

Indicates Unique Identifier

Page 128: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Unique Identifiers

part of

contains

USER

# Name

owner of

owned by

MAIL LIST

# Name

ROOM

# No

FLOOR

# No

HOTEL

# Name

Page 129: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Identificăm în mod unic fiecare item din

PLAY LIST ITEM spunând la ce

eveniment a fost cântat. Pentru aceasta

punem o bară pe relaţii care înseamnă că

UID pentru PLAY LIST ITEM este

#id_event + #id_song.

Barele sunt plasate pe linia continuă

pentru că ambele relaţii sunt mandatory

la capătul cu many.

Nu vom găsi niciodată bara pusă pe

linia întreruptă

Page 130: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

ARCE un arc este folosit pentru a modela două sau mai multe relaţii ale

aceleiaşi entităţi, care se exclud reciproc

arcele sunt desenate între acele două entităţi conectate între ele şidemonstrează reciproc exclusivitatea

arcele arată că fiecare instanţă a unei entităţi poate avea o singură relaţievalidă dintre relaţiile din arc, la un moment dat

arcele pot fi desenate între două sau mai multe entităţi

arcul este cunoscut şi sub denumirea de arc excusiv. În programarenumim asta XOR (sau exclusiv)

arcele sunt similare supertipurilor şi subtipurilor şi sunt modelate de multeori la fel

diferenţa este că folosim supertipuri / subtipuri când dorim săreprezentăm clasificări sau tipuri ale unor obiecte care au uneleproprietăţi comune şi cand nu au proprietati comune se recomandafolosirea arcelor

Page 131: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

-O casă de productie este un spaţiu de publicitate

care poate produce un film, un reportaj sau un

anunt public (publicitate). Poate conţine publicitate

despre una dintre aceste teme. Fiecare punct din

program are caracteristici si atribute proprii.

Page 132: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Reguli:

un arc aparţine întotdeauna unei entităţi

arcele pot include mai mult decât două relaţii

nu toate relaţiile unei entităţi trebuie să fie incluse intr-un arc

o entitate poate avea mai multe arce

un arc trebuie să conţină relaţii de acceaşi opţionalitate (toate relaţiile din arce

trebuie să fie ori mandatory ori optional)

relaţiile într-un arc pot să aibă grade diferite, deşi asta se întâmplă mai rar

Page 133: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Possible Arc Constructs

Page 134: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Some Incorrect Arc Constructs

• Relationships in the arc must be of the same optionality

• Arcs must contain at least two relationships

This arc may be correct, but is quite difficult to implement ...

• The arc “belongs” to one entity

Page 135: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

USER

LIST

owned by

ownerof

LIST ITEM

contains

in

Arc or Subtype

USER

LIST

owned by

ownerof

LIST ITEM

contains

in

ADDRESS

referring to

is referred to

referring to

is referred to

referring to

is referred to

Page 136: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Arc and Subtypes

A

QP

2

A

QP

R

1

A

P

CB

Q

3

A CB

QP

R

4 5

A CB

QP

R

Page 137: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Subtypes Hide Relationships in

Arc

Every A

is either a B or a C

Every B is an A

Every C is an A

A

C

B

C

BA

is

is

is

is

• Every A mustbe a B or be a C

• Every B must be an A

• Every C must be an A

Page 138: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 139: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 140: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 141: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

SECTIUNE 7/Lectie 2/ relatii ierarhice si recursive

-Deseori rolurile sunt organizate prin

intermediul ierarhiei

-Datele ierarhice sunt foarte

cunoscute

Ex: - organigrama unei intreprinderi

- structura unei cladiri

- arborele genealogic

Page 142: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 143: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 144: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Ambele modele reprezintă toţi

angajatii unei intreprinderi

- In partea stânga este o structură

ierarhica, în partea dreaptă este o

relatie recursivă

Care credeţi că este mai bună?

Page 145: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Relaţiile ierarhice:

nivele de organizare

reprezintă un lanţ de relaţii de tipul 1:M

Exemplul cu ROOM—SUITE—FLOOR –BUILDING sau

MUNCITOR—MANAGER—DIRECTOR—PREŞEDINTE

Relaţiile recursive:

trebuie să fie opţionale la ambele capete (de exemplu dacă preşedintele companiei trebuie să aibă un manager asta nu are sens, sau, de asemenea, nu orice angajat trebuie să fie managerul cuiva.

Exemplul - EMPLOYEE care poate fi şi manager sau manager care poate fi employee

Page 146: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Exemplul cu COMPONENT care este relaţie recursivă M:M

O componentă a motorului poate avea mai multe instanţe: părţi elementare (şaibe, piuliţe,

şuruburi), subansamble care sunt formate din părţi elementare, ansamble care sunt formate

din subansamble, şi produse finite.

Poate că o componentă este un şurub, dar şase şuruburi formează un ansamblu, deci putem

defini recursiv relaţia Fiecare componentă poate sa aparţina uneia sau mai multor

componente, şi Fiecare componentă este făcută din una sau mai multe componente.

Page 147: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 148: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT (continuare slide anterior)

Page 149: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 150: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

ISTORICUL DATELOR

O organizatie are nevoie sa pastreze

date despre salariile angajatilor

Suplimentar, organizatia ar dori sa

pastreze informatii despre modificarea

salariilor pe parcursul angajarii

Modelarea initiala

Page 151: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Un magazin care inchiriaza bijuterii,

starurilor de cinema pentru ocazii

diferite cum ar fi ceremonii de

decernare a premiilor (OSCAR) sau

premiere .Acesta ar dori sa păstreze

informaţii privind istoricul inchirierilor.

Care este cardinalitatea ?

Este corectă?

Page 152: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Poate funcţiona fără UID? Nu.

Se justifică să cream unul artificial? Care

să se refere la ce, sau la cine?

Daca îl creăm, poate furniza vreo

informatie singur? Nu, atunci nu putem

decat sa formam un UID composit din cel

artificial+relatia care ne interesează,

pentru care dorim istoricul (Jewelry Piece),

atunci=> relatie barata numai la un capat

Page 153: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming
Page 154: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 155: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT (continuare slide anterior)

Hint that the relationship between TAPE and

CUSTOMER has now changed (to a M:M,

which then needs to be resolved).

Page 156: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

TRY IT / SOLVE IT

Page 157: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

SECTIUNE 10/ MODELAREA ARHIVELOR

Când ai instanţe care se pot modifica în timp se pune problema cum să păstrezi

nişte date într-o arhivă de date (chiria, taxele, numele unei ţări, preţul unui produs)

- fiecare modificare presupune pierderea informaţiei anterioare

- pentru a modela aceste situaţii se folosesc entităţi specifice, cum ar fi entitatea

TIMP ( DAY) sau PREŢ(PRICE)

Ex.: O carte poate fi

imprumutată de la bibliotecă

de mai multe ori, de diferite

persoane, sau de către

aceeaşi persoană. Modelul

poate avea nevoie să

pastreze istoricul

imprumuturilor pentru o carte.

Gândeşte-te la o companie

de furnizare de flori sau un

departament de politie. Ce rol

va juca timpul ?

Page 158: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

- Istoricul datelor este deseori utilizat pentru a cauta

evolutia acestora (fiind un mod eficient de a face

afaceri)

-Modelarea timpului in afaceri este de asemenea

utilizat pentru capturarea informatiilor

-Raporturile furnizează informaţii care pot deriva din

alte date. Un raport bun poate furniza informatii

valabile care pot imbunătăţi afacerea în sine.

Page 159: ACADEMIA ORACLE · 2013. 12. 28. · ACADEMIA ORACLE BUCURESTI MAI 2007 INSTRUCTOR: Sanda Popescu Bine aţi venit la trainingul Academiei Oracle de DataBase Design şiDataBase Programming

Entitatea “Achizitii (Cumparari)”.

Vei putea include un atribut

“date” daca vrei sa stii cand ai

cumparat un item (produs). Desi,

daca vrei să identifici evoluţia,

cum ar fi: când cumpără oamenii

un costum, la ce temperatură

poate să-l spele, care sunt

limitele astfel încât să nu se

deprecieze.


Recommended