Oracle Ziua 1

51
ORACLE - ZIUA 1 Data versus informatie Model fizic si model conceptual Entitati si instante Relatii ERD-uri Subtipuri si supertipuri Documentarea unui ERD Rezolvarea relatiilor Many to Many Analiza CRUD UID

description

Oracle

Transcript of Oracle Ziua 1

ORACLE - ZIUA 1

Data versus informatieModel fizic si model conceptualEntitati si instanteRelatiiERD-uriSubtipuri si supertipuriDocumentarea unui ERD

Rezolvarea relatiilor Many to ManyAnaliza CRUDUID

INTRODUCERE

S-a constatat statistic o crestere a oportunitatilor de angajare pentru persoanele cu pregatire in utilizarea bazelor de date si a internetului;

Din ce in ce mai multe organizatii apar prezente pe World Wide Web si ca urmare creste cererea de personal calificat ce poate dezvolta aplicatii www;

Sunt necesare atat persoane cu pregatire inalta, cat si medie;

Se cer certificate recunoscute.

Academia Oracle ofera:

– Profesori coordonatori si o aplicatie la cheie;– Certificare tehnica IT recunoscuta international;– Optiuni pentru fiecare nivel educational

(Think.com, ThinkQuest, Initiativa Academica Oracle – OAI si Workforce Development Program);

Cursul de fata cuprinde doua module:

Database Design - proiectare baze de date Database Programming with SQL –

programarea bazelor de date folosind limbajul SQL

Database Design cuprinde:

Modelarea entitatilor si a relatiilor dintre acestea, proiectarea bazei de date, dezvoltarea si normalizarea bazei de date;

Evolutia bazelor de date si a tehnicii de calcul utilizate;

Abilitati necesare in afaceri: prezentare si studii de caz.

Programarea BD in limbajul SQL, cuprinde:

Limbajul SQL (Structured Query Language); Accesarea datelor cu SQL; Definirea, manipularea si controlul datelor; Tranzactii; Creare de aplicatii; Abilitati necesare in afaceri: interviul si

crearea unui portofoliu.

Date versus informatie

Interactionam zilnic cu baze de date, fie ca suntem sau nu constienti:– Istoricul creditului la banca – Codurile si numele produselor din magazin– Fisa de inscriere a copilului la admitere, …

Important este sa intelegem cum sunt modelate datele, cum se pastreaza si cum putem regasi informatii pe baza acestor date.

Date Informatii

“Fapte, elemente ce servesc ca punct de plecare in cercetarea unei probleme sau pentru a trage o concluzie sau hotarare”

“Comunicare, veste, stire”“Fiecare dintre elementelenoi in raport cucunostintele prealabile”

(Dictionar general al limbii romane – Vasile Breban Ed.Enciclopedica 1991)

Informatia rezulta adesea din combinarea, compararea si efectuarea unor calcule asupra datelor.

Date Informatii

Media pe clasa la matematica

Ultima medie de admitere la un liceu

Numarul de elevi cu media sub 5 din scoala

Ce buget este necesar in anul viitor?

Notele elevilor la bacalaureat

Bugetul scolii in 2005 a fost 20000 RON

Bugetul scolii in 2006 a fost 25000 RON

Cum ati folosi o baza de date daca ati avea una dintre meseriile de mai jos?

Mecanic auto

Sofer

Cultivatoare de flori

Istoria Bazelor de date

Istoria Bazelor de date

MODEL FIZIC SI MODEL CONCEPTUAL

Modelarea datelor este doar prima parte a procesului de construire al bazei de date.

Modelul conceptual- Modeleaza nevoile

informationale ale afacerii- Se numeste “Entity Relationship

Model”- Este prezentat printr-o diagrama

numita “Entity Relationship Diagram”

Etape in procesul de dezvoltare a bazelor de date

Incepe prin formularea cerintelor informationale ale afacerii;

Se deseneaza apoi modelul conceptual; Se proiecteaza baza de date pornind de la modelul

conceptual (entitatile devin tabele, atributele devin nume de coloane care corespund unor tipuri de date, se stabilesc proprietatile speciale ale unor coloane);

Se construieste baza de date (modelul fizic) prin executarea unor instructiuni SQL.

PRINCIPII DE BAZA ALE MODELARII

Sa cuprinda toate datele necesare; Datele sa fie pastrate o singura data; Sa nu cuprinda informatii ce se obtin din date

deja cuprinse in model; Orice data sa fie asezata in locul cel mai

logic si mai potrivit.

ENTITATI SI INSTANTE

Entitate = notiune semnificativa pentru afacere, referitor la care trebuie sa cunoastem date.

Este un substantiv singular.

Entitatile au instante.

Entitatile au atribute.

O instanta este o valoare data entitatii.

Exemplu: Entitatea FRUCT are instante: cireasa, nuca, pepene, mar, portocala…

Atributul

Este o proprietate a unei entitati sau un detaliu referitor la acesta;

Descrie, cuantifica, califica, clasifica sau specifica o entitate;

Are un tip care poate fi un numar, un sir de caractere, o data calendaristica, o imagine, etc.

Exemplu: Entitatea FRUCT poate avea atributele: nume, tip, regiune, data_culesului.

In acest caz o instanta poate fi: portocala, citrice, Grecia, 10-July-2007.

Atribute obligatorii sau optionale

Unele atribute trebuie neaparat sa aiba valoare. Acestea se numesc OBLIGATORII (MANDATORII).

Exemplu: In afaceri, numele firmei este o informatie absolut necesara.

Alte atribute pot avea informatie necompletata, nula. Acestea se numesc OPTIONALE.

Exemplu: In multe cazuri numarul de telefon fix este o informatie ce poate lipsi daca apare numarul de telefon mobil.

THE MISSING LINK

Cateodata, clientul da informatii trunchiate si irelevante sau poate nu stie nici el exact ce vrea.

Informatiile pe care le primim in astfel de cazuri sunt asemeni unor piese incomplete de puzzle.

Punand intrebarile potrivite si lucrand in echipa, putem descoperi ceea ce ne lipseste.

Exercitiu

Fiecare cursant primeste o piesa de puzzle. Piesele componentilor unui grup formeaza

imaginea, mai putin piesa cea mai importanta, care lipseste.

Fara a-si arata unul altuia bucatica de imagine,

doar prin comunicare, sa se completeze imaginea grupei si apoi sa se identifice ce contine piesa ce lipseste.

RELATIA

Reprezinta ceva semnificativ pentru afacere; Exprima care sunt relatiile intre doua entitati

(sau intre una si aceeasi entitate); Se citeste in ambele sensuri; Are optionalitate; Are un grad de cardinalitate.

Optionalitatea unei relatii

Relatiile pot fi:

- mandatorii

- optionale - - - - - - - - -

Exemplu: Pentru a stabili optionalitatea relatiei dintre entitatile ANGAJAT si JOB se pun urmatoarele intrebari:

1. Trebuie ca fiecare angajat sa aiba un job?

2. Trebuie ca fiecare job sa fie acordat unui angajat?

Cardinalitatea unei relatii

Determina gradul relatieiSe determina prin raspunsul la intrebarea:

Cate? Cati?Exemplu:Cate calificari poate avea un angajat? Una, sau

mai multe?Cati angajati pot lucra la un proiect? Doar

unul? Sau mai multi?

TIPURI DE RELATII

Relatia (1:M) One to Many

Este relatia cea mai frecvent intalnita.

TIPURI DE RELATII

Relatia (1:1) One to One

In practica se intalnesc doar cateva tipuri de relatie 1:1

TIPURI DE RELATII

Relatia (M:M) Many to Many

Este o relatie foarte intalnita in prima faza a modelarii, in final ar trebui sa dispara toate aceste relatii.

CONVENTII ALE ERD-ului

Entitatile sunt reprezentate prin dreptunghiuri cu colturile rotunjite, in care este inscris numele entitatii la singular, cu litere mari.

Atributele sunt afisate sub numele entitatii, cu litere mici. Se pun in fata semnele:* pentru atribut mandatoriuo pentru atribut optional# pentru identificator unic

Identificatorul unic poate fi format din: o valoare, sau o combinaţie de valorişi permite utilizatorului să identifice în mod unic

o anumită instanţă.Atunci când un UID este alcătuit dintr-un singur

atribut, se numeşte simplu.Dacă un UID este alcătuit dintr-o combinaţie de

atribute, se numeşte compus.

CONVENTII ALE ERD-ului

Relatiile sunt trasate cu linie:

- continua, pentru relatie mandatorie;

- intrerupta, pentru relatie optionala. Relatiile se termina:

- intr-o linie, pentru cardinalitate 1;

- in trei liniute (picior de cioara), pentru “mai multe”.

DESENAREA RELATIILOR SI CITIREA LOR IN LIMBAJ ERD-ish

Exemple de relatii

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

 

DOCUMENTAREA UNUI ERD

Cheia ce permite verificarea acuratetii si completitudinii modelului este identificarea si documentarea regulilor afacerii.

Unele pot fi reprezentate in ERD, numindu-se reguli structurale.

Cele ce necesita programare se numesc reguli procedurale.

DIAGRAME MATRICIALE

Sunt o alternativa la reprezentarea prin ERD.

Sunt folosite atunci cand avem foarte multe relatii, pentru a ne asigura ca nu am uitat vreuna.

Diagramele matriciale nu arata optionalitatea si cardinalitatea

SUBTIPURI SI SUPERTIPURI

Adesea unele instante au atribute sau relatii pe care alte instante ale aceleiasi entitati nu le au. Exemplu:

Un subtip

Mosteneste toate atributele supertipului; Mosteneste toate relatiile supertipului; De obicei are propriile atribute / relatii; Este desenata in interiorul supertipului; Nu este niciodata singurul subtip; Poate avea la randul sau subtipuri; Se mai numeste “subentitate”.

Exercitiu

TRANSFERABILITATEA RELATIILOR O relatie este netransferabila daca nu poate fi mutata la alta instanta.

Exemplu de relatie transferabila:

Un student poate fi mutat in alta grupa

Exemplu de relatie netransferabila:

O poezie este scrisa de un autor si nu poate fi transferata altui autor.

În vederea implementării fizice a modelului conceptual, este important ca relaţiile Many to Many să fie rezolvate.

Într-o relaţie M:M există cel puţin un atribut care descrie relaţia.

Creând a treia entitate, numită entitate de intersecţie, se crează un loc pentru acel atribut.

REZOLVAREA RELAŢIILOR MANY TO MANY

Paşi - REZOLVAREA RELAŢIILOR MANY TO MANY

Se crează entitatea de legatură; Se crează noile relaţii; Se dau nume acestor relaţii; Daca e cazul, se adaugă atribute în entitatea

de legătură; Se crează un UID pentru entitatea de

intersecţie.

Exemple:

Resolving ManyResolving Many--toto--Many RelationshipsMany Relationships

Example:

Solution:

COURSESTUDENTenrolled in

taken by

ENROLLMENT

STUDENT COURSE

# ID

*last name

*first name

*phone

#code

*name

o fee

o duration

# date enrolled

o date completed

o grade

# id

*last name

*first name

*phone

#code

#name

o fee

o duration

for

enrolled in

for

taken by

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

Prin analiza CRUD identificăm cerinţele de

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

Analiza CRUD ne ajută să observăm dacă: am omis ceva din model; am inclus în model ceva ce nu trebuie.

Cum se realizează analiza CRUD ?

Urmărim în interviurile cu clientul sau în descrierile activităţilor, cuvintele care exprimă cele 4 operaţii: creare, regăsire, actualizare, ştergere.

Dacă există cerinţe pentru care nu există date, s-ar putea ca modelul să fie incomplet.

Dacă există date asupra cărora nu se efectuează nici una dintre operaţiile CRUD, atunci acestea nu sunt necesare pentru afacere.

IDENTIFICATOR UNIC

Identificatorul unic poate fi format din: o valoare, sau o combinaţie de valorişi permite utilizatorului să identifice în mod unic o anumită

instanţă.Atunci când un UID este alcătuit dintr-un singur atribut, se

numeşte simplu.Dacă un UID este alcătuit dintr-o combinaţie de atribute, se

numeşte compus. Un UID creat special pentru a numerota unic fiecare instanţă se

numeşte artificial.

Exemple

IDENTIFICATOR UNIC ARTIFICIALA

UID rezultat dintr-o relaţie barată

Uneori UID este o combinaţie dintre un atribut şi o relaţie.Care este UID-ul entităţii ACCOUNT?

În transferurile bancare se transmit întotdeauna atât contul clientului cât şi cel al băncii.

Atunci când un UID este o combinaţie între un atribut şi o relaţie barată putem considera că UID-ul este alcătuit dintr-un atribut şi UID-ul celeilalte entităţi din relaţie.

IDENTIFICATOR UNIC – DIN RELATII BARATE

În cazul unei entităţi de intersecţie UID poate fi o combinaţie a UID ale entităţilor care se aflau iniţial în relaţia M:M. Aceasta se reprezintă în diagramă prin bararea relaţiilor.

IDENTIFICATOR UNIC- PRIMAR/ SECUNDAR

Pot exista mai mulţi UID. unul este ales ca UID primar (ex.

student ID); ceilalţi UID sunt numiţi secundari. În exemplul alăturat prima entitate

are un UID secundar, a doua entitate are doi: badge number, identificator unic secundar simplu si first name, last name, identificator unic secundar compus.