Sunteți pe pagina 1din 13

MODELUL RELATIONAL AL BAZELOR

DE DATE IMPLEMENTAT IN ORACLE

Obiective
 Cunoasterea aspectelor teoretice si fizice ale unei baze de date relationale
 Descrierea implementarii Oracle ale RDBMS si ORDBMS
 Descrierea modului in care sunt folosite SQL si PL/SQL in Oracle
 Cunoasterea avantajelor folosirii PL/SQL

Lectia va introduce concepte ca sisteme de baza de date relationale (RDBMS) si sisteme de


baze de date obiectual-relationale. Se vor introduce notiuni ca :
- sintaxa instructiunilor SQL specifice Oracle
- utilitarul SQL*Plus folosit pentru introducerea codului SQL si PL/SQL, pentru formatarea
iesirilor
- PL/SQL care este limbajul procedural al lui Oracle

Ciclul de viata al unui sistem informatic

Analiza

Proiectare

Constructie /
Documentar
e
Implementare
/ Tranzitie

Mentenanta /
Productie

De la conceptie la productie, se poate dezvolta o baza de date utilizand ciclul de viata al unui
sistem informatic. Aceasta modelare top-down a bazelor de date transforma cerintele informationale ale
afacerii intr-o baza de date operationala.
Strategie si analiza
 Studiul si analiza cerintelor afacerii. Se intervieviaza utilizatorii si managerii pentru a identifica
cerintele informationale. Se incorporeaza in viitoarele specificatii de sistem misiunea intreprinderii.
 Se construieste modelul sistemului. Se transfera povestea afacerii in reprezentari grafice ale
informatiilor necesare afacerii si ale regulilor acesteia. Se confirma si se rafineaza modelul
impreuna cu analistii si expertii.
Proiectarea
 Se proiecteaza baza de date dupa modelul dezvoltat in faza de strategie si analiza
Constructia si documentarea
 Se construieste sistemul prototip. Se scriu si se executa comenzile pentru crearea tabelelor si
obiectelor necesare bazei de date.
 Se dezvolta documentatia pentru utilizatori, help-ul, manualele de operare.
Tranzitia sau implementarea
 Se rafineaza prototipul. Se muta aplicatia in productie cu acceptul testat al utilizatorului, conversia
datelor existente si operatii paralele. Se fac modificarile care apar.
Productia sau mentenanta
 Se preda sistemul utilizatorilor. Se monitorizeaza performanta si imbunatateste sistemul.

Stocarea datelor pe diferite suporturi media

Fiecare organizatie are nevoile sale informationale. O biblioteca tine o lista a membrilor,
cartilor a datelor de returnare. O companie are nevoie sa-si salveze informatiile despre angajati,
departamente si salarii. Toate aceste bucati de informatie sunt numite date.
Organizatiile pot stoca datele pe diferite suporturi media – de exemmplu o copie a nuni
document este stocata sub forma unei foi tabelare sau in baze de date.
O baza de date este o colectie organizata de informatii.
Pentru a manipula baze de date este nevoie de sisteme de gestiune a bazelor de date (DBMS).
Un DBMS este un program care stocheaza, extrage si modifica date din baze de date la cerere. Sunt
patru tipuri importante de baze de date: ierarhice, in retea, relationale si obiectual relationale.
Nota: Oracle 7 este un DBMS relational iar Oracle 8 este un DBMS obiectual-relational.

Conceptul de baza de date relationala


 Dr. E.F. Codd a propus modelul relational pentru baze de date in 1970
 Reprezinta baza pentru sistemele de gestiune a bazelor de date (DBMS)
 Modelul relational consta in :
- o colectie de obiecte si relatii
- un set de operatori care actioneaza asupra relatiilor
- reguli de integritate a datelor pentru acuratetea si consistenta lor
Modelul relational
Principiile modelului relational au fost subliniate pentru prima data de Dr. E.F.Codd in iunie
1970 intr-o lucrare numita “Un model relational pentru date pentru banci de date mari”. In aceasta
lucrare Dr. Codd a propus modelul relational al bazelor de date.
Cele mai populare modele ale vremii erau cele ierarhice si de retea sau chiar fisierele simple de
date. Apoi DBMS au devenit foarte populare pentru usurinta in utilizare si flexibilitatea lor.
Componentele modelului relational
- O colectie de obiecte si relatii care stocheaza date
- Un set de operatori care actioneaza asupra relatiilor pentru a produce alte relatii
- Reguli de integritate a datelor pentru consistenta si acuratete

Definirea unei baze de date relationale


O baza de date relationala foloseste relatii sau tabele bi-dimensionale pentru stocarea
informatiilor.
Modelele de date sunt dezvoltate de proiectanti pentru a explora idei si pentru a imbunatati
intelegerea proiectarii bazei de date. Modelele ajuta in comunicarea conceptelor in mintile oamenilor.
Ele pot: comunica, categoriza, descrie, specifica, investiga, analiza, imita, implica.

Modelul Entitate Relatie


 Se creeaza o diagrama entitate relatie din specificatiile informationale ale afacerii

ANGAJAT asignat la DEPARTAMENT


#* numar #* numar
* nume * nume
o meseria o localitate
compus din

 Scenariu
- “ … se asigneaza unul sau mai multi angajati la un departament …”
- “… cateva departamente nu au nici un angajat …”

Modelarea ER
Intr-un sistem efectiv, data este divizata in categorii discrete sau entitati. Un model relatie
entitate (ER) este o ilustrare a variatelor entitati dintr-o afacere si relatiile dintre ele. Un model ER este
derivat din specificatiile informationale ale afaceriisi construite in faza de analiza a sistemului. Modelul
ER separa informatiile cerute de afacere de activitatile facute in derularea afacerii. Chiar daca
activitatile afacerii se schimba tipul informatiilor trebuie sa ramana constant. De aceea structurile de
date tind sa ramana constante.
Avantajele modelului ER
 Documenteaza necesarul de informatii pentru organizatie intr-o forma clara si precisa
 Prezinta o imagine clara a scopului cerintelor informationale
 Prezinta o imagine usor de inteles pentru proiectarea bazei de date
 Ofera un mediu efectiv de integrare a aplicatiilor multiple
Componente cheie
 Entitatea: Un lucru cu semnificatie despre care este necesar de cunoscut informatii. Ex:
departamente, angajati, comenzi. Caracteristici de reprezentare: caseta, nume unic in litere mari,
sinonimul optional se pune intre paranteze, tot in majuscule.
 Atribut: Ceva care descrie sau califica o entitate. Ex: pentru entitatea Angajat atribute sunt: marca,
meserie, data de angajare, departament. Fiecare atribut poate fi obligatoriu sau optional.
Caracteristic de reprezentare: nume unice in litere mici, atributele obligatorii se marcheaza cu * si
cele optionale cu o.
 Relatie: Un nume de asociere dintre entitati care arata optionalitatea sau gradul. Ex: angajati si
departamente, comenzi si articole. Componente: un nume, o optionalitate (trebuie sa fie / poate fi),
un grad sau cardinalitate (unu si numai unu / unul sau mai multe).
Identificatori unici (UID) este orice combinatie de atribute sau/si relatii, care serveste la
distingerea aparitiilor unei entitati. Fiecare aparitie a entitatii trebuie sa fie identificata unic. Se
reprezinta grafic prin simbolul #. Al doilea UID se reprezinta prin (#).

Terminologie specifica bazelor de date relationale


O baza de date relationala contine una sau mai multe tabele. O tabela este o structura de baza a
unui RDBMS. O tabela contine toate datele necesare despre un aspect al lumii reale.
Se considera exemplul tabelei sau relatiei EMP. Notiuni:
- Un singur rind sau tupla reprezinta informatia necesara pentru un angajat specificat. Fiecare rind din
tabela trebuie identificat de o cheie primara, care nu permite rinduri duplicate. Ordinea rindurilor nu
este semnificativa.
- O coloana sau atribut contine marca angajatului care este si cheie primara. Marca identifica im nod
unic un angajat in tabela EMP. O cheie primara trebuie sa contina o valoare. Alte tipuri de coloane
reprezinta alte informatii (de ex: functia). Ordinea coloanelor nu este importanta. Coloana care contine
numarul de departament este numita si cheie externa. Cheia externa contine coloane care definesc
modul in care sunt in relatie tabele diferite. O cheie externa refera o cheie primara sau o cheie unica din
alt tabel.
- Un camp poate fi gasit la intersectia dintre un rand si o coloana. Poate contine o singura valoare.
Campurile pot sa nu contina valori. Acestea se numesc valori null.
Referirea mai multor tabele
Fiecare tabela contine date care descriu exact o entitate. De exemplu tabela EMP contine
informatii despre angajati. Deoarece date despre diferite entitati sunt stocate in diferite tabele , este
necesar sa combini doua sau mai multe tabele pentru a afla raspunsul la o interogare. De exemplu vrei
sa afli localitatea departamentului in care lucreaza un anumit angajat. Sunt necesare tabelele EMP si
DEPT. Un RDBMS permite combinarea tabelelor diferite folosind chei externe. O cheie externa este o
coloana sau o combinatie de coloane care refera o cheie primara din acelasi tabel sau din unul diferit.
Sfaturi pentru chei primare si externe
- nu sunt admise valori duplicate in chei primare
- in general cheile primare nu pot fi schimbate
- cheile externe sunt bazate pe valori si sunt logice, nu au pointeri fizici
- o cheie externa trebuie sa se potriveasca cu o valoare de cheie primara existenta sau de cheie unica,
sau sa fie NULL.

Proprietatile bazelor de date relationale


O baza de date relationala
 Poate fi accesata si modificata prin executia instructiunilor SQL
 Contine o colectie de tabele fara pointeri fizici
 Foloseste un set de operatori
Intr-o baza de date relationala nu trebuie specificata calea de acces la tabele si nu trebuie cunoscut
modul de aranjare fizic. Pentru a accesa o baza de date trebuie executata o instructiune SQL, care este
un limbaj standard (ANSI) pentru operarea in baze de date relationale. Limbajul contine un set de
operatori pentru partitionarea si combinarea relatiilor.
Comunicarea cu RDBMS folosind SQL
Se poate comunica prin fraze SQL: eficient, usor de invatat si complet functional (SQL permite
definirea, extragerea si manipularea datelor din tabele).
Sisteme de gestiune a bazelor de date relationale
Oracle furnizeaza un RDBMS flexibil: Oracle7. Trasaturile lui permit stocarea si gestiunea
datelor cu toate avantajele structurilor relationale plus PL/SQL, un motor care permite stocarea si
executarea unitatilor de program. Serverul permite utilizatorilor optiunea de extragere de date bazata pe
tehnici de optimizare. Sunt incluse trasaturi de control a modului de accesare si folosire a datelor. Alte
caracteristici sunt consistenta si protectia prin mecanisme de blocare.
Aplicatiile Oracle pot rula pe acelasi computer ca si Oracle Server. Sau se pot rula pe un sistem
local iar Serverul sa fie pe un alt sistem (arhitectura client – server).
Oracle8: ORDBMS
 Tipuri de date si obiecte utilizator
 Complet compatibil cu modelul relational
 Suporta multimedia si obiecte foarte mari
 Caracteristici de server de date de inalta calitate
Oracle8 este primul RDBMS cu facilitati obiectuale dezvoltat de Oracle. Extinde capabilitatile
Oracle7 pentru a suporta noul model obiectual-relational. Oracle8 prezinta un motor nou care combina
programarea orientata-obiect, tipuri de date complexe, obiecte complexe cu modelul relational.
Oracle8 extinde Oracle7 in mai multe moduri. Include mai multe trasaturi imbunatatite ale
aplicatiilor OLTP, cum ar fi o mai buna impartire a structurilor de date la run-time, buffere cache mai
mari, contrangeri intarziate. Aplicatiile Data Warehouse vor beneficia de executii paralele ale
operatiunilor de insert, update, delete. Oracle8 suporta aplicatii client-server si Web care sunt
distribuite si pe mai multe nivele. Oracle8 poate suporta zeci de mii de utilizatori concurenti, pana la
512 petabytes, poate gestiona orice tip de data (text, spatiala, imagine, sunet, video, serii de timp).

Obiecte
Un obiect este considerat ca o reprezentare a uni lucru din lumea reala. Cateva definitii:
- “Un obiect este un pachet software care contine o colectie de proceduri (metode) inrudite si
date(variabile)” David Taylor, “Object-Oriented Technology: A Manager’s Guide”
- “Un obiect este un concept, abstractie sau lucru cu margini si intelesuri fragile pentru
problema de rezolvat” James Rumbaugh, “Object-Oriented Modeling and Design”
Modele obiect
- obiectele modeleaza o problema spre rezolvare
- modelul este definit in termeni de interactiune intre obiecte
- modelele obiect se aseamana cu lumea reala
Cand lucrezi cu modele te gandesti mai mult in termenii aplicatiei si mai putin despre
arhitectura sistemului de operare si cerintele mediului de dezvoltare.

Caracteristicile sistemelor obiectuale


 Prezinta informatia in forma obiect
 Clasifica obiectele in tipuri de obiecte
 Mosteneste atribute si cod
 Ascunde date, cod si atribute
 Interactioneaza cu alte obiecte
 Recunoaste diferite obiecte fara analiza
 Interpreteaza aceeasi comanda in moduri diferite
Alte caracteristici:
 Reprezinta informatia ca lucruri continute intrinsec
 Clasifica obiectele in tipuri de obiecte organizate in ierarhii arborescente, unde un tip de obiect
poate fi alt fel decat alt tip de obiect (object type metadata)
 Obiectele pot mosteni trasaturile tupului sau de obiecte (inheritance)
 Pot ascunde date si procese referitoare la obiect in cadrul obiectului (encapsulation). Aceasta
permite schimbari ale unei componente specifice fara afectarea altor componente.
 Interfata cu alte obiecte (interface or messaging)
 Recunoasterea diferitelor tipuri de lucruri si comportamentul lor fara analiza lor
 Folosirea aceleasi cereri pentru a invoca diferite implementari ale aceleasi actiuni pentru doua
obiecte diferite (polymorphism)

Solutia completa Oracle

Developer 2000
Applications
HR Discoverer
Financials
Designer 2000

SQL PL/SQL SQL*Plus

Oracle7/8

Database
Data dictionary
Data Tables
Oracle RDBMS este produsul de baza al Oracle. El include Oracle Server si mai multe
instrumente pentru ajutorul utilizatorilor in mentenanta, monitorizarea si utilizarea datelor.
Dictionarul de date Oracle este o componenta foarte importanta a Serverului. El contine un set de
tabele si view-uri care prezinta o imagine read-only a bazei de date.
RDBMS gestioneaza sarcini ca:
- managementul stocarii si definirii datelor
- controlul si restrictionarea accesului la date si concurenta
- posibilitati de salvare si restaurare
- interpreteaza instructiuni SQL si PL/SQL
Instructiunile SQL si PL/SQL sunt folosite de programe si utilizatori pentru accesul si
manipularea datelor in baze de date Oracle. SQL*Plus este un instrument Oracle care recunoaste si
trimite la server sintaxe SQL si PL/SQL spre executie si contine propriile comenzi.
Oracle furnizeaza o mare varietate de intrumente GUI pentru construirea aplicatiilor, precum si
o gama larga de aplicatii software pentru afaceri si industrie.

Instructiuni SQL
SELECT - Extragere de date
INSERT - Limbajul de manipulare a datelor (DML)
UPDATE (introduce randuri noi, le sterge pe cele nedorite si le actualizeaza pe
DELETE cele existente deja in tabele)
CREATE
ALTER - Limbajul de definire a datelor (DDL)
DROP (seteaza, schimba sau sterge structuri de date din tabele)
RENAME
TRUNCATE
COMMIT - Controlul tranzactiilor
ROLLBACK (gestioneaza schimbarile facute de instructiunile DML; actualizarile
SAVEPOINT facute datelor pot fi grupate impreuna in tranzactii logice)
GRANT - Limbajul de control al datelor (DCL)
REVOKE (da sau retrage drepturi de acces asupra bazelor de date Oracle si a
structurilor sale)

Oracle SQL este compatibil cu standardele acceptate de industrie. Comitetele de standardizare


acceptate de industrie sunt ANSI (Institutul American pentru Standarde) si ISO (Organizatia
Internationala pentru Standarde). Atat ANSI cat si ISO au acceptat SQL ca limbajul standard pentru
baze de date relationale.

Introducere in PL/SQL
 PL/SQL este o extensie a SQL cu trasaturi ale limbajelor de programare
 Instructiunile de manipulari de date si SQL sunt incluse in modulele procedurale de cod
PL/SQL este extensia procedurala Oracle pentru SQL. PL/SQL ofera tehnici moderne de inginerie
software cum ar fi incapsulari de date, gestionarea exceptiilor, ascunderea informatiilor, orientarea
obiect. Permite manipulari de date si instructiuni de interogare incluse in blocuri structurate si in
modulele procedurale de cod, facand din PL/SQL un limbaj puternic de procesare a tranzactiilor.
Mediul PL/SQL
Motorul PL/SQL
Bloc PL/SQL Interpretorul
PL/SQL Bloc
PL/SQL de instructiuni
SQL procedurale

Interpretorul de instructiuni SQL

Serverul Oracle

Motorul PL/SQL si Serverul Oracle


PL/SQL nu este un produs Oracle ci o tehnologie dezvoltata de Oracle. Blocuri de PL/SQL sunt
trimise si procesate de un motor PL/SQL, care poate exista in instrument sau in Serverul Oracle.
Motorul folosit depinde de unde blocul PL/SQL este invocat.
Atunci cand se trimit blocuri PL/SQL din aplicatii utilizator, din SQL*Plus sau din Server
Manager, motorul PL/SQL din cadrul serverului Oracle le proceseaza. El imparte instructiunile
SQL in grupuri separate si le trimite interpretorului de SQL. Aceasta inseamna ca un singur transfer
este cerut pentru a trimite un bloc de la aplicatie la Oracle Server, imbunatatind astfel performanta,
mai ales intr-o retea client-server. Programele stocate pot fi referite de orice numar de aplicatii
conectate la baza de date.
Avantajele folosirii PL/SQL
Integrarea
 PL/SQL joaca un rol central atat la serverul Oracle (prin proceduri stocate, functii stocate,
declansatoare si pachete) cat si la instrumentele de dezvoltare (Developer 2000)
 Aplicatiile Developer 2000 folosesc bibliotecile comune care contin cod si pot fi accesate local sau
la distanta. Developer 2000 este format din Oracle Forms/Reports/Graphics
 Tipurile de date SQL pot fi folosite in PL/SQL. Acestea combinate cu accesul direct oferit de SQL
integreaza PL/SQL cu dictionarul de date al Serverului Oracle. PL/SQL acopera golul dintre
tehnologia de accesare a bazelor de date si nevoia capabilitatilor de programare procedurala.
PL/SQL in instrumentele Oracle
 Numeroase instrumente Oracle, incluzand Developer 2000, au motorul propriu PL/SQL, care este
independent de motorul prezent in Oracle Server.
 Motorul filtreaza instructiunile SQL si le transmite individual la interpretorul SQL din serverul
Oracle. Apoi proceseaza restul instructiunilor procedurale cu interpretorul respectiv, care este
inclus in motorul PL/SQL
 Interpretorul de instructiuni procedurale proceseaza datele locale aplicatiei (care apartin mediului
client si nu bazei de date). Aceasta reduce traficul catre serverul Oracle si numarul de cursoare
necesare in memorie

Imbunatatirea performantei.
SQL
Aplicatii Alte DBMS
SQL

SQL
Aplicatii IF .. THEN Oracle cu
SQL PL/SQL
ELSE
SQL
END IF
PL/SQL poate imbunatati performanta unei aplicatii. Avantajele difera depinzand de mediul de
executie.
 PL/SQL poate fi folosit pentru a grupa instructiuni SQL intr-un singur bloc si pentru a transmite
intregul bloc la server intr-un singur apel, reducand astfel traficul de retea. Fara PL/SQL
instructiunile SQL ar fi procesate cate una odata. Fiecare instructiune SQL va apela serverul Oracle.
Intr-un mediu de retea overhead-ul va deveni semneficativ. Daca aplicatia utilizeaza SQL intensiv
se pot folosi blocuri PL/SQL si subprograme pentru a grupa instructiuni SQL inainte de a le trimite
la server pentru executie.
 PL/SQL coopereaza cu instrumentele de dezvoltare pentru Oracle server cum ar fi Developer 2000
Forms Reports. Adaugand puterea procesarii procedurale acestor instrumente, PL/SQL mareste
performanta acestora.
Note: Procedurile si functiile declarate ca parte a aplicatiilor dezvoltate in Developer 2000 sunt
distincte de procedurile stocate in baza de date, desi au aceeasi structura. Procedurile stocate sunt
obiecte ale bazei de date si sunt stocate in Dictionarul de Date. Acestea pot fi accesate de orice numar
de aplicatii, inclusiv aplicatiile dezvoltate in Developer 2000.

Modularizarea dezvoltarii de programe

Proceduri /
Blocuri functii stocate
anonime
DECLARE

....

BEGIN Proceduri /
Aplicatii functii ale
declansatoare aplicatiei
....

EXCEPTION
Proceduri
Declansatoare .... impachetate
de baze de END;
date

Structura blocurilor PL/SQL


Fiecare unit PL/SQL poate contine unul sau mai multe blocuri. Aceste blocuri pot fi complet
separate sau imbricate unul in altul. Modulele de baza (proceduri, functii sau blocuri anonime) care
compun un program PL/SQL sunt blocuri logice, care contin orice numar de sub-blocuri imbricate. De
aceea un bloc poate reprezenta o mica parte din alt bloc, care de asemenea poate fi o parte dintr-un
modul.
Constructorii de programe PL/SQL
Diagrama de mai sus arata varietatea de constructori de programe PL/SQL care utilizeaza
blocuri de baza PL/SQL. Ei sunt disponibili in functie de mediul in care sunt executati.
 Grupati logic instructiunile corelate (intre care exista o relatie logica) in blocuri
 Imbricati sub-blocuri in blocuri mai mari pentru a construi un program puternic
 Spargeti o problema complexa intr-un set de module bine definite si implementati-le in blocuri
 Plasati cod PL/SQL reutilizabil in biblioteci partajate intre aplicatiile dezvoltate cu Developer/2000
sau stocati-le in serverul Oracle, facandu-le astfel accesibile oricarei aplicatii care interactioneaza
cu baza de date Oracle
Avantajul portabilitatii
 Deoarece PL/SQL este nativ serverului Oracle, poti muta programele pe orice gazda (sistem de
operare sau platforma) care suporta serverul Oracle si PL/SQL. Cu alte cuvinte, programele
PL/SQL pot rula oriunde serverul Oracle poate rula; nu ai nevoie de modificari pentru fiecare
mediu.
 Poti muta cod intre serverul Oracle si aplicatia ta. Poti scrie pachete de programe portabile si creea
biblioteci care pot fi folosite in diferite medii.
Declararea identificatorilor
 Se pot declara variabile, cursori, constante si exceptii si se pot folosi in instructiuni SQL sau
procedurale.
 Se pot declara variabile apartinand tipurilor de date scalare, referinta, compuse si obiecte largi
(LOB).
 Se pot declara variabile bazate pe structurile tabelelor de date si a coloanelor acestora.
Programarea cu structuri de control specifice limbajelor procedurale
 Executa o secventa de instructiuni conditionat
 Executa o secventa de instructiuni iterativ intr-o bucla
 Proceseaza individual rindurile returnate de o interogare cu mai multe randuri folosind cursori
expliciti
Gestionarea erorilor
 Proceseaza erorile serverului Oracle prin rutine de gestiune a exceptiilor
 Poate declara conditii de eroare definita de utilizator si poate sa le proceseze prin rutine de
gestiunea exceptiilor

Avantajele PL/SQL
 Este portabil
 Se pot declara identificatori
 Se poate programa cu structuri de control tipice pentru limbaje procedurale
 Gestioneaza erori

Tabelele folosite in curs


 EMP , tabela care contine detalii despre angajati
 DEPT, tabela ce contine detalii despre departamente
 SALGRADE, ce contine detalii despre salarii pe diferite grade

REZUMAT
 Bazele de date relationale sunt compuse din relatii, gestionate de operatorii relationali si
guvernate de constrangerile de integritate ale datelor
 Serverul Oracle permite stocarea si gestionarea informatiei folosind limbajul SQL si
motorul PL/SQL
 PL/SQL este o extensie a lui SQL cu trasaturi de limbaj de programare

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