Sunteți pe pagina 1din 19

Curs 1 Modelul relaional Componentele modelului relaional sunt: 1.

Structura relaional a datelor n cazul bazelor de date relaionale datele sunt organizate sub forma unor tablouri bidimensionale (tabele) de date, numite relaii. Asocierile dintre relaii se reprezint explicit prin atribute de legtur. Aceste atribute figureaz: + ntr-una din relaiile implicate n asociere (de regul n cazul legturilor de tip 1 la muli); - plasate ntr-o relaie distinct construit pentru a se exprima legturi intre relaii (n cazul legturilor de tipul muli la muli). O baz de date relaionale (BDR) reprezint un asamblu de relaii, prin care se reprezint att datele ct i relaiile dintre date. 2. Operatorii modelului relaional Definesc operaiile care se pot efectua asupra relaiilor, n scopul realizrii funciilor de prelucrare asupra bazei de date, respectiv consultarea, inserarea, modificarea i tergerea datelor. 3. Restricii de integritate I) Structura relaional a datelor: a) Domeniul - reprezint un aasamblu de valori caracterizate printr-un nume. Un domeniu se poate defini: - explicit prin enumerarea valorilor; - implicit prin prezentarea proprietilor elementelor acestuia. b) Relaia Reprezint un subansamblu al produsului cartezian al mai lutor domenii, subansamblu caracterizat printr-un nume i care conine tupluri cu semnificaie. Linii = tupluri Coloane = domenii Relaia poate avea semnificaia uni fiier in care : - tuplul poate fi considerat drept o nregistrare; - valorile din cadrul tuplului pot fi valori ale cmpului de nregistrare. c) Cardinalul relaiei Reprezint numrul de tupluri dintr-o relaie. d) Atributul n timp ce tuplurile dintr-o relaie trebuie s fie unice, un atribut poate aprea de mai multe ori n produsul cartezian pe baza cruia este definit relaia.

Atributul reprezint coloana unei tabele de date caracterizat printr-un nume. Numele coloanei (atributului) exprim de obicei semnificaia valorilor din cadrul coloanei respective. Tipuri de atribute: - atribut compus; - atribut calculat (calculat pe baza valorilor); - atribut simplu; - atribut repetitiv. e) Schema unei relaii Extensia unei relaii Prin schema unei realii se nelege numele relaiei, urmat de lista atributelor, pentru fiecare atribut precizndu-se domeniul asociat. Extensia unei relaii reprezint ansamblul tuplurilor care compun la un moment dat relaia, ansamblu care variaz n timp. II) Operatorii modelului relaional Modelul realional ofer dou colecii de operatori de relaii i anume: a) Algebra relaional (AR) b) Calculul relaional (CR), care cuprinde dou tipuri de calcul: - calcul relaional, orientat pe tuplu; - calcul relaional, orientat pe domeniu. a) Algebra relaional E.F.Codd a introdus algebra relaional (AR) ca fiind o colecie de operaii pe relaii, fiecare operaie avnd drept operanzi una sau mai multe relaii i producnd ca rezultat o alt relaie. Operaii de baz - reuniunea, diferena, produsul cartezian, proiecia, selecia, jonciunea. Operaii derivate - intersecia, diviziunea, etc. Operaii adiionale - complementarea unei relaii; - splintarea unei relaii; - nchiderea tranzitiv. Reuniunea (Union) Reprezint o operaie a AR definit pe dou relaii R1 I R2 ambele cu o aceeai schem, operaie care const din construirea unei noi relaii R3, cu o schem identic cu R1 i R2, avnd drept extensie tuplurile din R1 i R2, luate mpreun o singur dat. Diferena Reprezint o operaie a AR definit pe dou relaii R1 i R2 ambele cu aceea schem, operaie care const din construirea unei noi relaii R3, cu o schem identic a operanzilor R1 i R2, avnd drept extensie tuplurile din R1 care nu se regsesc in R2.

Produsul cartezian Reprezint o operraie a AR definit pe dou relaii R1 i R2, operaie care const din construirea unei noi relaii R3, a crei schem se obine prin concatenarea schemelor relaiilor R1 i R2 a crei extensie cuprinde toate combinaiile tuplurilor din R1 cu cele din R2. Proiecia Reprezint o operaie a AR definit pe o operaie R i care const n construirea unei noi relaii P n care se gsesc atributele din R specificate explicit. Suprimarea unor atribute n R nseamn efectuarea unor tieturi verticale asupra lui R, care pot avea ca efect apariia unor tupluri duplicate. Selecia Reprezint o operaie a AR definit asupra relaiei R, const n construirea unei relaii S, cu schema identic cu R, extensia este constituit din acele tupluri care satisfac o condiie menionat explicit. Jonciunea Reprezint o operaie a AR definit pe dou relaii R1 i R2, ambele cu acceai schem, care const n construirea unei noi relaii prin concatenarea unor tupluri din R1 cu tupluri din R2. Se concateneaz doar acele tupluri care satisfac o anumit condiie specificat explicit n cadrul operaiei. Extensia relaiei R3 va conine combinaiile acelor tupluri care satisfac condiia de concatenare. Operaia de jonciune se poate exprima i cu ajutorul operaiilor de produs cartezian i selecie. Intersecia Reprezint o operaie a AR definit pe dou relaii R1 i R2, ambele cu aceeai schem, care const din construirea unei noi relaii cu schema identic cu a operanzilor R1 i R2 i avnd drept extensie tuplurile comune din R1 i R2. Complementarea Reprezint o operaie adiional a AR care permite determinarea complementului unei relaii. Complementul unei relaii este definit drept ansamblul tuplurilor din produsul cartezian al domeniilor asociate atributelor relaiilor, care nu figureaz n extensia relaiei considerate. Notaie : COMP (R). Splinatarea (Spargerea) Reprezint o operaie adiional a AR definit asupra unei relaii R, operaie care const din construirea a dou relaii R1 i R2, cu aceei schem ca relaia iniial, n baza unei condiii definite asupra atributelor din tabela iniial.

Extensia lui R1 va conine tuplurile care satisfac condiia specificat, iar R2 va conine tuplurile care nu verific aceast condiie. nchiderea tranzitiv Reprezint o operaie a AR prin care se pot aduga tupluri la o relaie. Operaia de nchidere tranzitiv presupune executarea n mod repetat a secvenei de operaii jonciune, producie i reuniune. Este o operaie definit asupra unei relaii R a crei schem conine dou atribute a1 li a2 cu acelai domeniu asociat, operaie care const din adugarea la relaia R a acelor tupluri obin succesiv prin tranzitivitate: dac exist tuplurile a,b i b,c se va aduga i a,c. Notaie: CLOSE (R). III) Restricii de integritate ale modelului relaional Restriciile de integritate reprezint principalul mod de integrare a semanticii datelor n cadrul modelului relaional, mecanismele de definire i verificare a acestor restricii reprezentnd principalele instrumente pentru controlul semanticii datelor. Exist dou categorii de restricii: 1) Restricii de integritate minimal (sunt obligatorii de definit i respectat atunci cnd se lucreaz cu modelul relaional): - Restricia de unicitate a cheii - Restricia referenial - Restricia entitii 2) Alte restricii de integritate (nu sunt obligatorii de definit i respectat, dar exist cazuri cnd aplicarea lor necesar pentru coerena modelului) - Dependenele ntre date - Restricii de comportament Restricia unicitii cheii Impune ca ntr-o relaie R care are cheia k, oricare tupluri t1 i t2, trebuie satisfcut relaia t1(k) i t2(k). Restricia referenial Impune ca ntr-o relaie R1 care refer o relaie R2 valorile cheii externe s figureze printre valorile cheii primare din relaia R2, sau s fie valori de tip nul, nedefinite. Restricia entitii (integritatea entitii) Impune ca ntr-o relaie atributele cheii primare s fie nenule. Alte restricii Dependena datelor : modul n care datele depind unele de altele. Poate fi de mai multe tipuri: funcional, multivaloare i jonciune. Restricii de comportament: Restricii de domeniu Restricii temporale

Anomalii de actualizare: - Anomalii de adugare - Anomalii de modificare - Anomalii de stergere

Sisteme de gestiune a bazelor de date


I. Definirea SGBD SGBD reprezint software-ul propriu-zis al acestuia care asigur realizarea activitilor: - definirea structurii BD; - ncrcarea datelor n BD; - accesul la date; - ntreinerea BD; - reorganizarea BD i securitatea datelor. II. Obiectivele unui SGBD a) Asigurarea independenei datelor Independena fizic face ca recunoaterea datelor i tehnicile fizice de recunoatere s poat fi modificate fr a determina scrierea programului de aplicaie. Independena logic se refer la posibilitatea adugrii de noi date sau extinderea structurii conceptuale fr ca aceasta sa impun rescrierea programului. Asigurarea unei redundane minime i controlate a datelor. Asigurarea unor faciliti sporite de utilizare a datelor. Sporirea gradului de securitate a datelor mpotriva accesului neautorizat. Asigurarea integritii datelor. Asigurarea partajabilitii datelor (sub aspectul accesului mai multor useri la acelai date i posibilitatea dezvoltrii unor aplicaii fr a se modifica structura BD). III. Funciile unui SGBD 1) Funcia de descriere a datelor permite descrierea BD cu ajutorul limbajului de definire. Definirea datelor poate fi realizat la nivel conceptual, logic i fizic. La nivelul acestei funcii se descriu atributele BD, legturile dintre entiti, se definesc criteriile de vaidare, metodele de acces la date, i aspecte privind integritatea i confidenialitatea datelor. Rezultatul acestei funcii se va concretiza n schema BD. 2) Funcia de manipulare a datelor presupune realizarea, crearea BD, adugarea de noi nregistrri, tergerea unor nregistrri, modificarea valorii unor cmpuri, cutarea, sortarea i editarea unor nregistrri virtuale. 3) Funcia de utilizare asigur interfeele necesare pentru comunicarea utilizatorilor cu BD. n cadrul acestei funcii apar mai multe categorii de utilizatori: - liberi sau conversaionali categoria beneficiarilor de informaii sau utilizatorii finali care utilizeaz limbajele de interogare a BD ntr-o form simplist; ei apar ca useri neinformaticeni; - programatori care utilizeaz limbajele de manipulare pentru realizarea de proceduri complexe de exploatare a BD;

- administratorul BD are rolul decisiv n ceea ce privete funcionarea optim a ntregului sistem; 4) Funcia de administrare a BD este de competena administratorului BD.

Regulile lui Codd pentru SGBD-urile relaionale


R1. Regula privind gestionarea datelor la nivel de relaie Sistemul trebuie s gestioneze BD numai prin mecanisme relaionale. Acest lucru nseamn s-i ndeplineasc toate funciile prin manipulri n care unitatea de informaii s fie mulimea sau relaia. Unele sisteme utiizeaz mecanisme relaionale numai pentru o parte din funcii, n special pentru interogare. Aceste sisteme se numesc SGBD-uri cu interfa relaional i nu SGBDR. R2. Regula privind reprezentarea logic a datelor Toate datele din BDR trebuie sa fie reprezentate explicit la nivel logic, ntr-un singur mod ca VALORI N TABELE DE DATE. Acest lucru nseamn c toate datele trebuie s fie numerotate i prelucrate n acelai mod. Informaiile privind numele de tabele, domenii, definiiile tabelelor virtuale, restriciile de integritate trebuie s fie memorate tot n tabele de date. R3. Regula privind garantarea accesului la date Orice dat din BDR trebuie s poat fi accesat prin specificarea numelui de tabel a valorii cheii primare, i a numelui de coloan. Aceast regul exprim cerine ca limbajul de cereri al SGBDR s permit accesul la fiecare valoare atomic din BD. R4. Regula privind valorile NULL Sistemele trebuie s permit declararea i manipularea sistematic a VALORILOR NULL, cu semnificaia unei DATE LIPS sau INVALIDABILE. Valorile NULL sunt importante pentru implementarea restriciilor de integritate. R5. Regula privind metadatele Descrierea BD trebuie s se prezinte la nivel logic n acelai mod cu descrierea datelor propriu-zis, astfel nct utilizatorii autorizai s poat aplica asupra descrierii BD acelesi operaii ca i asupra datelor obinuite. Sistemele nu trebuie s fac diferenieri n definirea i tratarea datelor i metadatelor utiliznd o singur structur i anume cea referenial. R6. Regula privind facilitile limbajelor utilizate Un sistem relaional trebuie s fac posibil utilizarea mai multor limbaje n mai multe moduri. Trebuie s existe cel puin un limbaj de nivel nalt al crui instruciuni s permit definirea datelor, structurilor.

R7. Regula privind actualizarea tabelelor virtuale Toate tabelele virtuale care teoretic sunt posibil de actualizat, trebuie s fie i efectiv actualizabile. Nu toate atributele din cadrul unei tabele virtuale (deci nu toate tabelel virtuale) pot fi teoretic actualizate. R8. Regula privind inserrile, modificrile i tergerile n BD Sistemul trebuie s poat oferi posibilitatea manipulrii unei tabele nu numai n cadrul operaiei de regsire, ci i n operaiile de inserare. Aceast regul exprim cerina ca n operaiile n care se schimb coninutul BD s se lucreze la un moment dat pe o ntreag relaie. R9. Regula privind independena fizic a datelor Programele de aplicaii nu trebuie s fie afectate de schimbrile efectuate n modul de reprezentare a datelor, sau a metodelor de acces. R10. Regula privind independea logic a datelor Programele de aplicaii nu trebuie s fie afectate de schimbrile efectuate asupra relaiilor BD, schimbri care compar datele i teoretic garanteaz valabilitatea programelor de aplicaii existente. R11. Regula privind restriciile de integritate Restriciile de integritate trebuie s poat fi definite n limbajul utilizat de sistem pentru definirea datelor i s fie memorate n catalogul BD i n cadrul programelor de aplicaii. R12. Regula privind distribuirea geografic a datelor Limbajul de manipulare a datelor utilizate de sistem, trebuie s permit ca n situaia n care datele sunt distribuite, programele de aplicaii s fie logic aceleai cu cele utilizate n cazul n care datele sunt fizic centralizate. Sarcina de localizare a datelor atunci cnd acestea sunt distribuite geografic precum i sarcina recompunerii datelor trebuie s revin sistemului i nu utilizatorului. R13. Regula privind prelucrarea datelor la nivel de dat Dac sistemul are un limbaj de date de nivel sczut, orientat pe prelucrarea de nregistrri i nu pe prelucrarea relaiilor acest limbaj nu trebuie s fie utilizat pentru a se evita restriciile de integritate sau restriciile introduse prin utilizarea limbajelor relaionale de nivel nalt. Observaie n practic, n conformitate cu tipul de cerine pe care le exprim, regulile lui Codd pot fi grupate n urmtoarele categorii: 1. reguli de baz (R1 i R13) 2. reguli structurale (R2 i R7 3. reguli privind integritatea datelor (R4 i R11) 4. reguli privind manipularea datelor (R3, R5, R6, R8) 5. reguli privind independena datelor (R9, R10, R12)

Curs IV

Arhitectura Sistemului Oracle


Oracle a fost definit ca un ansamblu complex de programe, care asigur interfaa ntre o BD i utilizatorii acesteia. Rolul Oracle este acela de a organiza i prelucra volume mari i complexe de date n memoria extern. I. Criterii ndeplinite de Oracle pentru a fi definit ca un SGBD relaional 1) ndeplinete funciile unui SGBD (de descriere, manipulare, utilizare i administrare) realizate prin: - limabjul de descriere a datelor (LDD) prin comenzi SQL; - limajul de manipulare a datelor (LMD) prin comenzi SQL, PL/SQL, JAVA; - interfee i instrumente specializate prin Developer, Express, etc. 2) ndeplinete obiectivele unui SGBD: - independena datelor - redundana minim i controlat a datelor - faciliti de utilizare - integritatea datelor - partajabilitatea datelor - legtura ntre date - performane globale - administrarea i controlul datelor. 3) Implementeaz modelul de date relaional sub toate cele trei aspecte: - structura datelor se face cu ajutorul noiunilor: domeniu, tabel sau relaie, tuplu, atribute, chei sau schema relaiei - restriciile de integritate se implementeaz prin limbajele de descriere din SQL; acestea sunt: unicitatea cheii (UNIQUE, PRIMARY KEY), referenial (REFERENCES FOREIGN KEY), entitii (NOT NULL), de comportament (CHECK). - operatorii relaionali provin din algebra relaional: selecie, proiecie, jonciune, reuniune, diferen, intersecie; toi operatorii sunt implementai prin clauze specifice prin comanda SELECT. 4) Implementarea limbajului relaional SQL - n Oracle este implemetat o variant extins de SQL, numit SQL PLUS; pentru a suplini lipsa facilitilor procedurale din SQL, Oracle definete un limbaj imperativ propriu, numit PL/SQL. 5) Funcioneaz n arhitectura Client Server, cu toate procesele corespunztoare - avantajele utilizrii arhitecturii Client Server n Oracle - clientul concentrez cererile de regsire, transmite cererile serverului, primete rezultatele i le prezint, dar nu cunoate localizarea datelor; - serverul lucreaz multitasking, asigur concurena la date, integritatea BD, prelucreaz cererile de regsire, realizeaz optimizarea alocrii i accesului, asigur dinamic. 8

6) Funcioneaz n mediu distribuit, respectnd cele 12 reguli ale lui C.J. Date, dar are i versiuni de lucru pe staii individuale. 7) Deine instrumente CASE pentru activitile de analiz i proiectare a aplicaiilor cu BD (Oracle Designer) 8) Se ncadreaz n arhitectura multinivel, fcnd trecerea de la arhitectura pe 3 nivel spre arhitectura Network Computing (NC) 9) ndeplinete cele 13 reguli ale lui Codd privind cerinele ca un SGBD s fie complet relaional 10) ndeplinete toate caracteristicile unui SGBD relaional: - globale limbaje relaionale, controlul integritii semantice a datelor, cerinelor datelor, coerena datelor, optimizarea cererilor de regsire, existena utilitarelor - particulare faciliti de descriere a datelor, de manipulare a datelor, de utilizare i administrare a datelor 11) Extensia sistemului Oracle s-a materializat n numeroase faciliti dictate de contextul informatic i de noile cerine ale economiei informaionale (lucrul ditribuit n reea global de calculatoare, faciliti de lucru orientate obiect, gestionarea BD pentru Internet, etc)

II. Arhitectura Oracle


Componentele care formeaz arhitectura Oracle sunt dispuse ntr-o configuraie de tip Client/Server pe dou nivel. Tendina actual pentru SGBD-uri este de structurare a arhitecturii pe 3 sau mai multe niveluri, lucru dezvoltat i de Oracle prin caracteristicile: - SGBD-ul este structurat pe trei niveluri (nucleul, interfeele i instrumentele de ntreinere) - lucrul efectiv se realizeaz ntr-o reea de calculatoare, n arhitectura Client/Server cu tendine de evoluie spre NC.

Arhitectura Oracle Interfee de dezvoltare Developer Designer Express

Nucleul Oracle SQL PLUS PL/SQL

Baza de date JAVA

Instrumente de ntreinere Administrator Tools Net Products Browsere

Editoare

1) Nucleul sistemului conine componentele care dau tipul relaional pentru SGBD Oracle; limbajul relaional de regsire (SQL) i limbajul procedural propriu (PL/SQL) 2) Interfaele sunt componentele care permit dezvoltarea aplicaiilor cu BD. Acestea sunt componentele: - Developer o component destinat programatorilor de aplicaii i conine generatoarele FORMS (meniuri i videoformate), REPORTS (rapoarte), GRAPHICS (grafic). - Designer component destinat analitilor de aplicaii i ofer elemente de tip CASE. - Express destinat analizei datelor multidimensionate, folosind tehnologia de tip OLAP (On Line Analytical Processing) - Oracle Aplications permite dezvoltarea unor aplicaii de ntreprindere - Web Developer lucrul n mediul Internet, cu serviciile oferite de acesta 3) Intrumentele sunt componentele destinate ntreinerii i funcionrii unei BD Oracle - Administrator tools conine mai multe utilitare destinate administratorului BD. - Net Products conine utilitare pentru lucrul distribuit n reea, protocoale de comunicaie API, acces la Internet. - Browserele destinate cutrii i ntreinerii BD.

III. Structuri i mecanisme n Oracle


Pentru a putea fi construit n Oracle, BD va avea alocate automat o serie de resurse de sistem: 1) - Zonele de memorie intern, alocate standard de Oracle - Zona global de sistem (SGA System global area) conine buffere de informaii despre o sesiune Oracle, care servesc pentru memorarea unei tranzacii - Zona global de program (PGA Program global area) conine buffere alocate de server pentru fiecare client conectat la BD - Zona de context (CA Context area) conine un buffer alocat automat unei comenzi SQL lansate de un client.

10

2) Procesele Oracle sunt prelucrri care se execut la un moment dat ntr-o zon de lucru. Procesele pot fi: - Client (Utilizator) sunt procese create pe noduri, la conectarea utilizatorului la server. - Server sunt procese create pentru diferite operaii asupra BD. Observaie: Combinaia dintre zonele de memorie i Procesele Oracle se numete Instan (Oracle Instace). Zonele de memorie, procesele i instanele sunt elemente auxiliare ale unei BD. Exemple de procese sunt: DataBase Writer (scrie n baza de date), etc. 3) Obiectele de tip Oracle sunt independente de alocarea fizic pe disc i alctuiesc Structura Logic a unei BD. Acest obiecte sunt: - Baza de date definete o colecie de tabele tratate unitar. - Tabela de date este unitatea de memorare i tratare a datelor ntr-o BD. - Tabela virtual (viziunea) - este modul cum vede un utilizator la un moment dat, baza de date; - viziunea este o structur logic ce conine o cerere de regsire complex. - Indexul este structura de date asociat unei tabele sau unui cluster - se poate face indexarea dup una sau mai multe coloane ale unei tabele, care se numesc chei (ce pot fi unice sau multivaloare). 4) Tipurile de date folosite n Oracle Tipurile de date utilizate pentru descrierea datelor n memoria intern sau extern sunt cele din standardul SQL (CHAR, VARCHAR2, amd). 5) Fiierele Fiierele aflate pe disc pentru memorarea datelor formeaz structura fizic a bazei de date Oracle. - Fiierele cu date (sau tabelele) - o baz de date poate avea unul sau mai multe fiiere dar un fiier de date se poate aloca numai cu o singur baz de date -astfel de fiiere (tabele) sunt: tabele de baz (Table_name); indeci; clusteri; segmente; dicionarul de date (USER_name unde name indic obiectul apelat din dicionar) - Fiierele de control - conin informaii despre BD (parametri, informaii de sincronizare, statictici) i descriu structura fizic a bazelor de date; - sunt fiiere binare de mici dimensiuni; - o BD are unul sau mai multe fiiere de control, dar un fiier de control se poate asocia numai unei singure BD; - Fiierele Jurnal (Redo + Log) - se ntegistreaz n ele, automat de ctre sistem, toare modificrile efectuate asupra BD, la o sesiune curent, pentru a se putea reface ulterior n caz de avarii - Alte fiiere

11

- sunt cele care se folosesc pentru instalarea sistemului Oracle sau pentru ntreinerea BD Oracle - ex.: fiiere de parametri (cu extensia .ora), fiiere de parole, arhivare, etc.

B) Mecanisme interne Oracle


Pentru a se dezvolta o aplicaie cu BD Oracle este necesar s se cunoasc att elementele unei BD Oracle (care ofer modul de implementare al conceptelor relaionale) ct i mecanismele interne specifice Oracle (care ofer modul de implementare al elementelor unei BD Oracle). Mecanismele interne specifice Oracle sunt: 1) Tipurile de date acceptate de Oracle - s-au extins de la o versiune la alta, avnd ca baz standardul SQL; 2) Pseudocoloanele i pseudofunciile - sunt cuvinte rezervate utilizate pentru accesul la unformaiile imterne Oracle - pseudocoloanele permit accesul la tabele utilizator sau de sistem: ROWNUM (returneaz numrul liniei curente din tabele curent), LEVEL (returneaz profunzimea nodului curent ntr-un arbore) - pseudofunciile nu au parametri de intrare i sunt referite doar prin numele lor; ele permit accesul la o parte de informaii din sistem; spre ex.: USER (numele utilizatorului conectat), SYSDATE (data i ora sistemului), etc. 3) Contextul i Cursorul - sunt zone de memorie gestionate de Oracle printr-o serie de parametri setai iniial prin fiierul INIT.ORA - contextul este o zon de memorie alocat i gestionat de sistem pentru a se putea executa o comand; el conine informaiile necesare oricrei comenzi; - cursorul este un identificator (pointer) cu ajutorul cruia se manipuleaz un context; un cursor poate fi: o cursor implicit este creat i gestionat de ctre sistem pentru a trata o linie dintr-o tabel (INSERT, UPDATE, SELECT pentru o linie) o cursor explicit este creat i gestionat de utilizator pentru a trata mai multe linii din table (SELECT pentru mai multe linii) 4) FETCH - este o operaie elementar care se exeut pentru orice SELECT care este utilizat ntr-un cursor - Fetch are rolul de a muta liniile (tuplurile) din tabele n zona de memorie utilizator - comanda Fetch se utilizeaz n legtur cu un cursor explicit 4) Tranzacia - tranzacia este un ansamblu omogen de comenzi ntr-o sesiune de lucru utilizator - exist cteva caracteristici ale oricrei tranzacii pe care Oracle le respect n totalitate o tranzacia se utilizeaz pentru asigurarea accesului concurent; o o tranzacie fie se ia n totalitate n considerare, fie nu se ia deloc n considerare o o tranzacie nu este terminat sau validat, caz n care datele aferente sunt indisponibile pentru actualizare pentru un alt utilizator;

12

o o tranzacie poate ncepe explicit (BEGIN - END) sau implicit prin conectarea la BD; o tranzacia se poate termina explicit prin comenzile COMMIT pentru validare sau ROLL BACK pentru anulare, sau implicit prin validare prin comenzile din LDD sau anulare prin ntreruperile anormale; o tranzacia se poate descompune n subtranzacii prin utilizarea comenzii SAVEPOINT; 5) Accesul la o BD Oracle la distan - este posibil doar n anumite condiii: o s existe cel puin un calculator aflat la distan, conenctat fizic la calculatorul local; o s existe un protcol de comunicaii acceptat de ambele calculatoare i de Oracle o ambele calculatoare care se conecteaz trebuie s conin componentele Oracle de comnunicaie (NET products)

Comanda Create Database i tipuri de date n Oracle


CREATE DATABASE database [CONTROLFILE [REUSE]] [LOGFILE file [,,]] MAXLOGFILES integer MAXLOGMEMBERS integer DATAFILE files [,,] MAXDATAFILES integer MAXINSTANCES integer ARCHIVELOG / NOARCHIVELOG EXCLUSIVE CHARACTER SET charset DATABASE numele BD ce va fi creat CONTROLFILE [REUSE] specific faptul c fiierele de control existente specificate de CONTROLFILE pot fi reutilizate; dac REUSE este omis i fiierele de control exist, se va obine o eroare. LOGFILE specific unul sau mai multe fiiere ce vor fi folosite ca fiiere REDOLOG (de tip jurnal). Fiecare filespec specific un grup de fiiere REDOLOG ce conine unul sau mai muli membri de fiiere REDOLOG sau copii ale acestora; dac se omite acest parametru Oracle va crea dou grupe de fiiere REDOLOG. MAXLOGFILES specific numrul maxim de grupuri de fiiere REDOLOG ce pot fi create pentru aceast BD. MAXLOGMEMBERS specific numrul maxim de membri sau de copii pentru un grup de fiiere REDOLOG. MAXLOGHISTORY este folositor numai dac se utilizeaz opiunea PARALEL SERVER sau se lucreaz n modul ARCHIVELOG

13

DATAFILE specific unul sau mai multe fiiere, ce vor fi folosite ca fiiere de date. MAXDATAFILES specific numrul maxim de fiiere ce pot fi create n BD MAXINSTANCES - specific numrul maxim de instane ce pot avea simultan acest parametru activat i deschis ARCHIVELOG sau NOARCHIVELOG stabilete modul pentru grupurile de fiiere REDO LOG (implicit este NOARCHIVELOG) EXCLUSIVE deschid BD n modul exclusiv dup ce aceasta a fost creat; n acest mod numai o singur instan poate accesa BD. CHARACTER SET specific setul de caractere pe care l folosete BD pentru a depozita date. Observaii: La execuia comenzii Create Database se efectueaz urmtoarele operaii: - creaz fiierele de date specificate - creaz i iniializeaz fiierele de control specificate - creaz i iniializeaz fiierele REDO LOG specificate - creaz spaiul tabel SYSTEM i sistemul ROLLBACK SYSTEM - creaz dicionarul de date - definesc administratorii SYS i Sistem - monteaz i deschide BD.

Curs VI

Tipurile de date
Tabelele sunt cele mai frecvente structuri n toate BD. Ele conin rnduri (cunoscute sub numele de tuplu sau instane n domeniul teoriei relaionale i al modelrii) i coloane sau atribute. Cnd sunt interogate SQL Plus, ele sunt afiate ntr-un format de tip tabel cu numele coloanelor devenind antete. Cea mai simpl versiune a comenzii CREATE TABLE denumete tabelul i identific o singur coloan dup nume i tipul de date coninut: CREATE TABLE table_name (column_name datatype) Alegerea tipului de date i a lungimii coloanei Observaie: naintea de construirea unei tabele trebuie tiut ce tip de informaii va conine fiecare coloan. Cunoscnd acest lucru se poate selecta tipul corespunztor de date i lungimea. Tipuri de date n Oracle 1) BFILE mrime utilizat 4 GB - binary file date binare, stocate n afara BD, ce permit scrieri i citiri rapide 2) BLOB mrime utilizat 4 GB - binary large object include obiecte binare de lungime variabil 14

3) CHAR- mrime utilizat 2.000 bii - cmpuri scurte sau cmpuri ce necesit comparaii de caractere de mrime fizic. Char (n ) ir de caractere cu lungime fix, egal cu n octei (bytes) 4) CLOB 4 GB; Charcacter Large Object include cmpuri de caractere de lungime ce depesc 2 GB 5) DATE 7 bii; data i ora 6) LONG 2 GB; cmpuri de caractere cu lungimea variabil ce depesc 4000 de bii 7) LONG RAW- 2 GB; date binare neinterpretate de lungimea variabil 8) NCHAR 2.000 de bii; caractere multibit n cmpuri scurte 9) NCLOB 4 GB; cmpuri de caractere multibit de lungime variabil de depesc 2 GB; suport numai un caracter pe cmp; 10) NUCHAR2 4000 de bii; cmpuri cu lungime variabil ce stocheaz caractere cu unul sau mai muli bii i nu necesit comparaii de lungime fix 12) RAW 2000 de bii; date binare neinterpretate, de lungime variabil 13) ROWID 10 ; rnd extins cu identificatori; 14) VARCHAR & VARCHAR2 4000 de bii; cmpuri de lungime variabil ce nu necesit comparaii de lungime fix I Datele de tip Caracter Observaii: 1) Nu necesit o lungime implicit i nici un mecanism care s defineasc lungimea maxim 2) Spaiile libere sunt depozitate n BD; lungimea implicit este de un caracter; pentru a oferi o lungime maxim unui cmp se adaug lungimea avut n [ ] de dup cheie al tipului de date. Datele sunt mereu stocate n 7 componente: secolul (se preia din an), anul, luna, ziua, ora, minutul i secunda; ele sunt cuprinse ntre 1.01.1471 .e.n. i 31.12.31471 e.n. Lungimea maxim se indentific prin numrul maxim de bii; pentru caractere multibit, nr. total de caractere va fi mai mic n funcie de nr. de bii pe caractere.. n Oracle datele de tip caracter variabile binare compatibile cu standardul ANSII pentru caractere cu lungime variabil. n mod intern, cu excepia tipurilor CHAR i DATA, Oracle depoziteaz numai caracterele oferite de aplcaie din cmpurilor de caractere. Tipul de date CHAR adaug mereu spaii libere (dac sunt necesare) atunci cnd datele oferite sunt mai mici dect lungimea definit a cmpului. TIPUL CHAR i VARCHAR Pe lng diferenele de stocare (nainte de a fi scrise n BD cmpurile CHAR sunt mereu umplute cu lungimea definit), cele dou tipuri de cmpuri sorteaz i cmpuri n mod diferit. Cmpurile CHAR sunt sortate i folosind ntreaga lor lungme, n timp ce cmpurile VARCHAR (cu caractere variabile) sunt sortate numai dup caracterele incluse n ir. II. Datele numerice Numerele sunt stocate folosin tipul de date NUMBER. Ca opiune implicit un cmp cu numere poate conine pn la 38 de cifre mpreun cu (n mod opional) un punc zecimal i un semn.

15

NUMBER (x,y) - x lungimea maxim - y rezervat prii zecimale - x-y partea ntreag Folosirea unei valori cu precuzie negativ Dac se folosete o valoare negativ n cmpul de precizie al unei definiii de lungime dintr-o coloan, nr. vor fi rotunjite n plus la aceea putere nainte de a fi stocate. Cum stocheaz Oracle numerele Oracle stocheaz numerele indeferent de definiie folosind partea zecimal a unui logaritm i exponentul. III. Tipul DATE Folosete formatul DATE pentru a depozita cmpuri de date calendaristice sau informaii temporare. Oracle are un singur format de 7 bii pentru toate datele i un interval de un bit pentru fiecare secol, an, lun, zi, or, minut i secund. Datele binare sunt stocate fr orice interpretare a caracterelor incluse n acestea. Tipul de date Long Raw este nlocuit ncepnd cu versiunea 8 cu Blob i Bfile.

Curs VII
Crearea i definirea structurilor tabelare Dei tabelele pot fi create, fr a fi necesar furnizarea de informaii privind aezarea fizic a acestora, trebuie specificat faptul c un utilizator Oracle trebuie s fi primit n prealabil privilegiul de CREATE TABLE de la administratorul bazei de date i totodat s aib alocat spaiul de tabel necesar paentru a se crea tabele. Limbajul de definire a datelor (LDD) LDD este un subset al comenzilor SQL folosit pentru a crea, modifica sau muta structurile bazei de date Oracle, i deasemenea s nregistreze informaii n Dicionarul de Date. Denumirea unui tabel - numele care este ales pentru o tabel trebuie s urmeze regulile standard pentru numirea unui obiect al unei BD Oracle - numele trebuie s nceap cu o liter mare (A-Z), sau cu o liter mic (a-z) - poate conine litere, numere i caractere speciale: - underscore - caracterele $ sau # sunt deasemenea legale, dar folosirea lor nu este recomandat. - numele este aceleai, indiferent dac sunt folosite litere mari sau mici (de exemplu, denumirile <PRODUSE>,<produse> sau <ProDuse> identific toate o aceeai tabel) - numele tabelei pot fi de maxim 30 de caractere lungime - numele tabelei nu trebuie s fie acelai cu numele altui obiect din contul utilizatorului curent al BD

16

- numele unei tabele nu trebuie s fie un cuvnt rezervat standardului SQL Exemple Valid ProdD1 Da 01Prod Nu deoarece nu ncepe cu o liter Produse_IT Da Produse IT Nu deoarece conine un blank UPDATE Nu deoarece este un cuvnt SQL Crearea unei tabele Comanda utilizat pentru crearea unei tabele utiliznd standardului SQL este CREATE TABLE. Una dintre cele mai simple forme ale acestei comenzi este atunci cnd fiecare coloan este definit mpreun cu tipul ei de dat i denumirea corespunztoare. Sintaxa: CREATE TABLE nume_tabel (nume_coloan tip (dimensiune), nume_coloan tip (dimensiune)) Tipurile coloanelor: - cnd se creeaz o tabel, trebuie ntotdeauna specificat fiecare tip de dat al coloanei - tipul de dat poate fi urmat de unul sau mai multe numere n paranteze, care dau informaii despre lungimea coloanei - lungimea coloanei determin lungimea maxim pe care valorile din coloan pot s o aib. Observaie Comanda Describe a SQL/Plus-ului poate fi folosit pentru a lista detalii ale coloanelor create ntr-o tabel. Constrngerea NOT NULL Not Null ne asigur c valorile nule nu sunt permise pentru toate aceste coloane. Coloanele fr constrngerea Not Null permit introducerea de valori nule. Opiunea DEFAULT Unei coloane i se poate da o valoare implicit prin opiunea Default. Acesta previne aparia valorilor de tip Null, atunci cnd o linie este inserat fr o valoare din coloan. Valorile implicite pot fi literali, o expresie, dar nu numele altei coloane; funcii standard ca SYSDATE sau USER, sunt considerate ca valide pentru opiunea DEFAULT. Constrngeri de integritate Este permis definirea lor pentru tabele, iar coloanelor s foreze reguli sigure n cadrul unei tabele sau ntre tabele.. Constrngerile sunt clasate dup cum urmeaz: 1) Constrngeri de tabel Pot referi una sau mai multe coloane i sunt definite separat de definiiile coloanelor din tabel.

17

2) Constrngeri de coloan Refer o singur coloan i sunt definite n cadrul specificaiei pentru coloana posesoare. Toate detaliile despre constrngeri sunt stocate n dicionarul de date, iar fiecare constrngeri i este repartizat un nume. 3) Alte tipuri de constrngeri - Null/Not Null - Unique - Primary key - Foreign key - Check

Constrngerea Unique Desemneaz o coloan sau o combinaie de coloane ca o cheie unic. Dou linii n aceei tabel nu pot avea aceei valoare pentru o cheie. Null-urile sunt permise dac cheie unic este baz pe o singur coloan. Sintaxa constrngerii de tabel: [CONSTRAINT nume constrngere] UNIQUE (Coloana1, Coloana2, ) Sintaxa constrngerii de coloan: [CONSTRAINT nume constrngere] UNIQUE. Constrngerea de cheie primar Ca i la datele unice, o cheie primar foreaz unicitatea unei coloane sau combinaii de coloane implicate (n acest timp un index unic fiind creat pentru a realiza aceasta). Totui poate fi i o singur cheie primar pe o tabel, i aceasta este cunoscut ca fiind cheie definitiv prin care liniile n tabel sunt identificate individual. Valorile de tip Null nu sunt permise n coloanele de chei primare. Sintaxa constrngerii de tabel: [CONSTRAINT nume constrngere] Primary Key (Coloana1, Coloana2, ) Sintaxa constrngerii de coloan: [CONSTRAINT nume constrngere] Primary Key Constrngerea de cheie extern Cheile externe furnizeaz reguli de integritate de referin n cadrul unei tabele sau ntre tabele. O cheie extern este folosit ntr-o relaie cu fiecare cheie primar i poate fi folosit de exemplu, pentru a preveni tergerea unui produs, dac produsul respectiv face obiectul unor tranzacii. Sintaxa constrngerii de tabel [CONSTRAINT nume constrngere] Foreign Key (Coloana1, Coloan2, ) REFERENCES table (Coloana1, Coloana2,) On Delete Cascade

18

n mod teoretic un produs nu poate fi ters din nomenclatorul de produse, dac acel produs face parte dintr-o tranzacie. Atunci cnd se dorete ca un produs s nu fac parte din oferta de produse expuse pentru livrare, atunci cheia produsului trebuie tears din directorul printe, iar n directorul printe ea nu va mai aprea activ (clauza ONDELETECASCADE). Constrngerea de verificare (CHECK) Definete explicit o condiie pe care fiecare linie trebuie s o satisfac. Condiia poate folosi aceleai construcii ca acelea dintr-o restricie de cerere, cu urmtoarele excepii: - subcererile nu sunt permise; - referirile la pseudo-coloane, ca SYSDATE, nu sunt permise. Sintaxa [CONSTRAINT nume constrngeri] CHECK (condie) Opiunea Disable Adugnd Disable unei definiii de constrngere, nseamn c Oracle nu o foreaz. Crearea unei tabele cu linii din alt tabel Exist i o a doua form a declaraiei CREATE TABLE, n care tabela este creata cu liniile potrivite, derivate din alt tabel: CREATE TABLE PRODUSE [(nume coloana,)] AS SELECT declaraie Observaie - tabela va fi creat cu coloanele specificate i liniile recuperate din declaraia SELECT inserat; - numai constrngerile NULL/NOT NULL sunt motenite din tabela selectat. Exemplu: CREATE TABLE PROD_MOTHERBOARD AS SELECT DENPROD FROM PRODUSE WHERE DENPROD=MOTHERBOARD;

19