Sunteți pe pagina 1din 18

Cap.

1 Introducere n Sisteme de Baze de Date

Sisteme de baze de date - SBD


Baze de date - BD
Sisteme de gestiune a bazelor de date - SGBD
SBD relaionale
Limbajul SQL*Plus - compendiu
Iniiere n limbajul PL/SQL

SISTEME DE BAZE DE DATE - SBD

n contextul dezvoltrii societii informaionale actuale, numeroase noiuni din domeniul


informaticii, altdat cunoscute doar de specialiti, au devenit familiare tuturor. Este i
cazul unor noiuni informatice utilizate n dezvoltarea aplicaiilor cu baze de date. Mult
lume folosete noiunile de: sistem de baz de date, baz de date, sistem de gestiune a
bazelor de date. Dei n limbajul curent ele pot fi confundate ca semnificaie, pentru
specialiti fiecare dintre aceste concepte trebuie s fie delimitat, innd cont c fac parte
din acelai domeniu al informaticii

Printre produsele informatice care sunt consumate de societatea informaional se afl


i aplicaiile informatice. Acestea se dezvolt pornind de la lumea real nconjurtoare i
apoi utiliznd calculatoarele.
O aplicaie informatic presupune un ansamblu de elemente intercorelate funcional
pentru culegerea, transmiterea, stocarea i prelucrarea datelor cu ajutorul calculatorului.
Aplicaia informatic cu baze de date presupune urmtoarele aspecte:
- organizarea datelor se face n memoria extern, ntr-o baz de date. Fluxul datelor
presupune preluarea acestora ca date de intrare, stocarea lor n memoria extern,
prelucrarea datelor i obinerea unor situaii de ieire;
- operaiile din fluxul datelor vor fi realizate cu ajutorul unor programe de aplicaie
dezvoltate de specialiti;
- dezvoltarea i exploatarea aplicaiei se face ntr-un anumit context dat de cerinele
informatice, dar i de cerinele beneficiarului.

Sistemul de baz de date (DataBase System) este un ansamblu de elemente


intercondiionate care contribuie la realizarea i exploatarea unei aplicaii cu baze de date.

Elementele care fac parte din acest ansamblu se refer la: date, software, alte resurse
necesare.
Datele sunt structurate i stocate n calculator, att n memoria intern ct i n cea
extern cu ajutorul unor produse software i ntr-un anumit context de lucru.
Arhitectura pe componente d o imagine asupra elementelor constitutive ale unui SBD i
a interdependenei dintre ele.

date software
utilizatori Arhitectura pe componente
a unui SBD

Elem.auxiliare

Din aceast arhitectur rezult componentele unui sistem de baz de date:

1.Datele organizate ntr-o baz de date care conine:


coleciile cu datele propriu-zise;
dicionarul de date (structura de date, restriciile de integritate, viziunile,
clusterele etc.);
fiierele anexe (fiiere de parametri, fiiere de index etc.).

2.Software aferent realizrii i expoatrii bazei de date, care conine:


sistemul de gestiune a bazelor de date (SGBD);
programele de aplicaie, dezvoltate, n cea mai mare parte, ntr-un SGBD.

3.Elementele auxiliare sunt componente care contribuie la realizarea i funcionarea


ntregului SBD:
set de proceduri automate (rutine) i manuale;
reglementri legale i administrative;
mijloace hardware utilizate;
personalul implicat pe categorii de utilizatori.

EVOLUIE SBD

ntr-un calculator datele sunt stocate att n memoria intern (temporar) ct i n memoria
extern (persistent).

n memoria extern, evoluia modului de memorare a datelor a fost determinat de


urmtoarele aspecte:
accesul ct mai rapid i uor la date;
stocarea unui volum ct mai mare de date;
creterea complexitii datelor;
perfecionarea echipamentelor de culegere, stocare, transmitere i
prelucrare a datelor.
Bazele de date, ca mod de organizare a datelor n memoria extern, au evoluat din fiiere
printr-un proces de integrare a lor (fiierele i legturile dintre ele) i innd cont de
cerinele aplicaiilor informatice.
Sunt numeroase aspecte care privete trecerea de la fiiere la baze de date dar cel mai
important este modelul de structurare a datelor n memoria extern care difer pentru cele
dou noiuni.

De la apariia lor i pn astzi, bazele de date au parcurs urmtoarele generaii


(determinate n principal de modelul de date implementat):
generaia I: BD arborescente i reea (pn la sfritul anilor 70);
generaia a-II-a: BD relaionale (sfritul anilor 70 i pn acum);
generaia a-III-a: BD orientate obiect (sfritul anilor 80 i pn acum).
BAZE DE DATE BD (DataBase DB)

Din punctul de vedere al conceptelor folosite, vom spune (vezi tabelul de mai jos) : o
baz de date este format din mai multe colecii de date. Fiecare dintre acestea are ataat
o familie de caracteristici, care este format din mai multe caracteristici, care iau valori
dintr-un domeniu de valori.

n mod similar se citete rndul din tabelul de mai jos: un sistem de fiiere este format
din mai multe fiiere. Fiecare dintre acestea are ataat o nregistrare, care este format
din mai multe cmpuri, care iau valori.

Baza de date Colecii de date Familie de Caracteristici Domenii de


caracteristici valori
Sistem de Fiiere nregistrare Cmpuri Valori
fiiere

Domeniul de valori este dat de mulimea valorilor posibile pentru o caracteristic


(exemplu: culorile posibile pentru un automobil).
Caracteristica semnific definirea i descrierea unui anumit aspect (proprieti) dintr-o
entitate a lumii reale (exemplu: marca auto)
Familia de caracteristici este ansamblul caracteristicilor care se refer la aceeai entitate
din lumea real (exemplu: mulimea caracteristicilor prin care se poate descrie un
automobil {NUMR, MARCA, CAPACITATE_CILINDRIC, CULOARE}).
Colecia de date(entitatea) este o familie de caracteristici asupra creia se aplic un
predicat (care conduce la o relaie de ordine ntre caracteristici i la obinerea
informaiilor cu un anumit scop) cruia i se afecteaz anumite legturi.

Baza de date este un ansamblu de date n memoria extern cu urmtoarele caracteristici:


- organizat, pe trei niveluri (conceptual, logic, fizic);
- structurat, conform unui model de date;
- coerent, prin restriciile de integritate i protecia datelor;
- cu o redundan minim i controlat, prin implementarea unui model de date i prin
aplicarea unei tehnici de proiectare;
- accesibil mai multor utilizatori n timp util.
SISTEME DE GESTIUNE A BAZELOR DE DATE (SGBD)
(DataBase Management System DBMS)

SGBD este un ansamblu complex de programe care asigur interfaa ntre o baz de date
i utilizatorii acesteia.

SGBD este componenta software a unui sistem de baz de date care interacioneaz cu
toate celelalte componente ale acestuia, asigurnd legtura i interdependena ntre
elementele sistemului (vezi arhitectura pe componente a unui SBD)

Note.

1) Conceptul de Sistem de Gestiune a Bazelor de Date (SGBD) se regsete cu aceeai


denumire i semnificaie n terminologia de informatic francez (SGBD - Systeme
de Gestion de Bases de Donnees) i englez (DMBS - DataBase Management
System).

2) Un produs software este un SGBD dac (concomitent):


- este un sistem, adic un ansamblu de programe intercorelate ntre ele care
concur la atingerea unui scop comun (pentru atingerea unor obiective i a
unor funcii);
- gestioneaz date organizate n memoria extern conform unui model de date
pentru baze de date;
- ndeplinete obiectivele i funciile unui SGBD.

3) Un SGBD, n mod minimal (obligatoriu), trebuie s:


- implementeze un model de date pentru baze de date;
- conin cel puin un limbaj de programare, precum i interfee/instrumente
pentru gestionarea optim a datelor.

4) Orice organizare a datelor n memoria extern n colecii de date, care nu are un


SGBD asociat, nu conduce la un SBD, ci la fiiere sau sisteme de fiiere prelucrate
cu programe (scrise n diferite limbaje de programare).

Obiectivele unui SGBD

Obiectivul general al unui SGBD este de a furniza suportul software complet pentru
dezvoltarea de aplicaii informatice cu baze de date. Fiind un mediu specializat, SGBD
satisface cerinele informaionale ale utilizatorului ntr-un mod optim. Astfel, el asigur
minimizarea costului de prelucrare a datelor, reduce timpul de rspuns (timp util), asigur
flexibilitate i deschidere mari aplicaiei, asigur protecie ridicat a datelor.
Pentru ca un produs software s ating performanele de mai sus i s fie un SGBD, el
trebuie s asigure un set minim de obiective , care va fi prezentat n continuare.

Suport software complet pentru


Obiectiv general dezvoltarea SBD

1. Independena datelor (logic, fizic) 2. Redundan minim i controlat


3. Faciliti de utilizare a datelor 4. Protecia datelor (securitate, integritate)
Set minim
5. Partajabilitatea datelor 6. Legturi ntre date
de 7. Performane globale ale aplicaiei
obiective

Funciile unui SGBD

Realizarea obiectivelor prezentate anterior este asigurat de sistemele de gestiune a


bazelor de date printr-o serie de componente ce permit efectuarea unor operaii specifice.

n funcie de natura lor i scopul urmrit, operaiile pot fi grupate pe activiti. Activitile
accept i ele o grupare pe funcii astfel nct, una sau mai multe activiti, relativ
omogene, vor realiza o anumit funcie.

innd seama de complexitatea sistemului de gestiune, de facilitile oferite de acestea,


de limbaje utilizate i de modul de implementare al modelului de date, gruparea
activitilor pe funcii are un anumit caracter relativ.

Diferitele SGBD, n funcie de model de date implementat, au o serie de particulariti


identificate prin operaii i activiti specifice.

n ciuda acestor particulariti, exist cteva funcii general valabile pentru toate tipurile
de SGBD. Acestea sunt nite funcii de baz, pe care un sistem software, dac nu le are
n totalitate, nu poate fi considerat SGBD.
Iat care sunt funciile de baz ale unui SGBD:
- descrierea datelor,
- manipularea datelor,
- utilizarea datelor,
- administrarea bazei de date.
utilizatori

Funciile SGBD utilizatori

UTILIZARE

MANIPULARE DESCRIERE ADMINISTRARE

Baza de
date

Arhitectura pe componente (niveluri) a unui SGBD

Nu orice software care gestioneaz date n memoria extern este un SGBD, ci trebuie s
ndeplineasc urmtoarele condiii, care vor fi prezentate n continuare.

- In primul rnd, produsul software trebuie s fie un sistem, adic un ansamblu de


programe intercorelate ntre ele care lucreaz pentru un scop comun.

- Mai departe, sistemul de programe trebuie s gestioneze date n memoria extern.

- Datele nu pot exista oricum, ci organizate conform unui model de date ntr-o baz de
date (trebuie urmrite obiectivele unei baze de date).

- In sfrit, dac sistemul de programe gestioneaz o baz de date i n plus


ndeplinete funciile specifice, atunci acel sistem este un SGBD.

Rezult c SGBD conine o serie de componente care sunt produse software ce au ca


scop de a realiza funciile specifice: nucleu, interfee, instrumente.
SGBD

INTERFEE

NUCLEU
Baza de
date

INSTRUMENTE

Majoritatea arhitecturilor actuale de SGBD pot fi aduse la forma de mai sus, pe trei
niveluri. Diferitele componente din diferitele SGBD (fiecare tip a venit cu una sau
mai multe propuneri de arhitecturi) pot fi ncadrate (uneori discutabil) n unul
dintre cele trei niveluri.

Nivelurile din arhitectura de mai sus, pot conine urmtoarele componente ale unui
SGBD:

nucleul (motorul) conine limbajul de descriere a datelor (LDD), limbajul de


manipulare a datelor (LMD), componente obligatorii n kit-ul minim de SGBD.
Componenta este destinat analitilor, programatorilor i administratorilor BD;

interfeele pentru dezvoltarea aplicaiilor cu baze de date sunt formate din:


generatoarele de diferite tipuri (de meniuri, de videoformate, de rapoarte etc.),
elementele de CASE (Computer Aidede Software Engeenering), interfee cu limbaje
de programare universale, interfee cu alte sisteme etc. Componenta este destinat
tuturor categoriilor de utilizatori: finali, intensivi, specialiti;

instrumentele pentru ntreinerea bazei de date sunt formate din: editoarele,


navigatoarele (browsers), utilitarele (shells) de diferite tipuri. Componenta este
destinat, n principal, administratorului bazei de date, dar i altor categorii de
utilizatori.
SBD RELAIONALE

Bazele de date relaionale (BDR) utilizeaz modelul de date relaional i noiunile


aferente.

BDR au o solid fundamentare teoretic, n special prin cercetrile de la IBM conduse de


E.F.Codd.

BDR este un ansamblu organizat de tabele (relaii) mpreun cu legturile dintre ele.

Avantajele BDR fa de fiiere (cteva):

CRITERIU BDR FIIERE


Independena datelor logic i fizic fizic
Niveluri de structurare conceptual, logic i fizic logic i fizic
Deschidere i portabilitate mare mic
reprezentarea i utilizarea simplificat prin model complicat
datelor
structura de date se n dicionarul BD n programe.
pstreaz

Condiii minimale pentru ca un SGBD s fie relaional:


s implementeze modelul de date relaionale prin LDD i LMD;
s implementeze cel puin un limbaj relaional.

Modelul relaional

1. Definirea structurii modelului relaional.

a) Definirea entitilor se face sub forma unor tablouri bidimensionale


numite tabele sau relaii de date.

Conceptele utilizate sunt:

DOMENIU este un ansamblu de valori caracterizat printr-o denumire. El


poate fi explicit (se enumr valorile posibile, de exemplu D1:{M, F}) sau
implicit (se precizeaz proprietile valorilor, de exemplu D1:{a/aN}).
TABELA/RELAIA este un subansamblu al produsului cartezian al mai
multor domenii, caracterizat printr-un nume.

ATRIBUTUL este coloana unei tabele, caracterizat printr-un nume

TUPLUL este linia dintr-o tabel i nu are nume.


Not. Ordinea liniilor (tupluri) i coloanelor (atribute) dintr-o tabel nu trebuie
s prezinte nici-o importan.

SCHEMA TABELEI este numele tabelei, urmat ntre paranteze rotunde de


lista atributelor, iar pentru fiecare atribut se precizeaz domeniul asociat.

CHEIA este un atribut sau un ansamblu de atribute care au rolul de a identifica


un tuplu dintr-o tabel.
Tipuri de chei: primare/alternate, simple/comune, externe.

SCHEMA RELAIONAL este schema tabelei + cheile + restriciile de


integritate.

Exemplu. Fie tabela STUDENT cu atributele: NUME din domeniul D1


(numele de persoane), ANSTUDIU din domeniul D2(anii de studiu dintr-o
facultate), ANNATERE din domeniul D3(anii calendaristici).

STUDENT
NUME: D1 ANSTUDIU : D2 ANNATERE: D3
tuplu POPA A. 2 1982
PETRE M. 2 1982
ILIE C. 3 1981

Schema tabelei : STUDENT(NUME: D1, ANSTUDIU: D2, ANNATERE: D3).

Not. Numrul de domenii este mai mic sau egal cu numrul de atribute
pentru o tabel (mai multe atribute pot lua valori din acelai domeniu).

b) Definirea legturilor dintre entiti se face logic construind asocieri ntre


tabele cu ajutorul unor atribute de legtur.

Legturile se pot reprezenta sub forma unei diagrame de structur numit i


schema BD.

Exemplu. Fie o BD privind desfacerea n care am identificat tabelele: BENI,


CONTR, PROD. Legturile dintre tabele sunt:
un beneficiar poate ncheia mai multe contracte (1:M);
un produs se poate livra prin mai multe contracte (1:M);
un beneficiar poate cumpra mai multe produse i un produs se poate
livra ctre mai muli beneficiari (M:N).

BENI CODB DENB LOCB CTBC


1:M

CONTRNRCON CODB CODP CANTL PRETL TERMENL

1:M
PROD CODP DENP UMP

Not. Legtura M:N nu apare direct n schem.


Atributele subliniate sunt chei.

Caracteristici ale structurii relaionale:

Atributele implicate n realizarea legturilor se gsesc fie n


tabelele asociate, fie n tabele distincte construite special pentru
legturi.

Atributul din tabela iniial se numete cheie extern iar cel din
tabela final este cheie primar.

Legturile posibile sunt 1:1, 1:M, M:N.

Potenial, orice tabel se poate lega cu orice tabel, dup orice


atribute.

Legturile se stabilesc la momentul descrierii datelor (prin


LDD) cu ajutorul restriciilor de integritate.
Practic, se stabilesc i legturi dinamice la momentul execuiei.

2. Operatorii modelului relaional.

a) Operatori din algebra relaional:


standard: selecia proiecia, jonciunea, reuniunea, diferena,
produsul cartezian, intersecia, diviziunea;
extensii : complementarea, descompunerea (splitarea) etc.
Not. Operatorii algebrei relaionale acioneaz la nivel de tabel n expresii
relaionale. Operanzii sunt tabele iar rezultatul este ntotdeauna o tabel.

b) Operatorii din calculul relaional:


orientai pe tuplu: conectivele (conjuncia , disjuncia ,
negaia ), cuantificatorii (existenial , universal );
orientai pe domeniu: idem ca mai sus.

Not. Pentru operatorii calcului relaional operandul poate fi tuplu sau


domeniu.

3. Restriciile de integritate ale modelului relaional.

a) Structurale sunt cele care se definesc prin compararea unor valori din
tabele:
cheie unic : ntr-o tabel nu trebuie s existe mai multe tupluri cu
aceeai valoare pentru ansamblul cheie;
referenial: ntr-o tabel T1 care refer o tabel T2, valorile cheii
externe trebuie s figureze printre valorile cheii primare din T2 sau
s ia valoarea NULL (neprecizat);
entitii : ntr-o tabel, atributele din cheia primar nu trebuie s ia
valoarea NULL.

Not. Cele trei restricii de mai sus sunt minimale.


Pe lng acestea, exist o serie de alte restricii structurale care se refer la
dependenele dintre date: funcionale, multivaloare, jonciune etc. (sunt luate
n considerare la tehnicile de proiectare BD relaionale).

b) Semantice sunt cele care se definesc prin comportamentul datelor i in


cont de valorile din BD:
restricia de domeniu : domeniul corespunztor unui atribut dintr-o
tabel trebuie s se ncadreze ntre anumite valori;
restricii temporare : valorile anumitor atribute se compar cu nite
valori temporare (rezultate din calcule etc.).

Not. Restriciile semantice fiind foarte generale se gestioneaz fie la momentul


descrierii datelor (de exemplu prin clauza CHECK), fie n afara modelului la momentul
execuiei (de exemplu prin instruciunea IF) .

Caracterizarea general a modelului relaional.

1. A fost propus de ctre IBM i a revoluionat reprezentarea datelor n BD


fcnd trecerea la o nou generaie (a doua).

2. Modelul este simplu, are o solid fundamentare teoretic fiind bazat pe


teoria seturilor (ansamblurilor) i pe logica matematic.
3. Pot fi reprezentate toate tipurile de structuri de date de mare complexitate,
din diferite domenii de activitate.

4. Implementarea modelului se face logic prin atribute avnd rol de chei.

5. Limitele modelului relaional:


prea marea simplitate a modelului l face dificil de aplicat pentru
noile tipuri de aplicaii (multimedia, internet etc.);
nu asigur o independen logic total a datelor de aplicaie;
pentru aplicaii de volum i complexitate foarte mari nu mai face
fa;
poate introduce o redundan prea mare (la proiectare prin tehnica
de normalizare).

6. Baza de date relaional este un ansamblu de tabele prin care se


reprezint att datele ct i legturile dintre ele.

Definirea SGBDR

SGBDR este un sistem software complet care implementez modelul de date relaional,
precum i cel puin un limbaj relaional.

Teoria relaional este un ansamblu de concepte ,metode i instrumente care a dat o


fundamentare riguroas realizrii de SGBDR performante.

Paralela ntre conceptele utilizate n evoluia organizrii datelor n memoria extern pn


la sistemele relaionale.

FIIERE TEORIA BD TERIA SGBDR


RELAIONAL
Fiier Colecie de date Relaie Tabel
nregistrare Familie de Tuplu Linie
caracteristici
Cmp Caracteristic Atribut Coloan
Valoare Domeniu de valori Domeniu Domeniu

Regulile lui Codd

E.F. Codd (cercettor la IBM) a formulat 13 reguli care exprim cerinele maximale
pentru ca un SGBD s fie relaional.
Regulile sunt utile pentru evoluarea performanelor unui SGBDR.

R0. Gestionarea datelor la nivel de relaie: limbajele utilizate trebuie s opereze cu


relaii (unitatea de informaie).

R1. Reprezentarea logic a datelor: toate informaiile din BD trebuie stocate i


prelucrate ca tabele.

R2. Garantarea accesului la date: LMD trebuie s permit accesul la fiecare


valoare atomic din BD (tabel, coloan, cheie).

R3. Valoarea NULL: trebuie s se permit declararea i prelucrarea valorii NULL


ca date lips sau inaplicabile.

R4. Meta-datele: informaiile despre descrierea BD se stocheaz n dicionar i


trateaz ca tabele, la fel ca datele propriu-zise.

R5. Limbajele utilizate: SGBD trebuie s permit utilizarea mai multor limbaje,
dintre care cel puin unul s permit definirea tabelelor (de baz i virtuale), definirea
restriciilor de integritate, manipularea datelor, autorizarea accesului, tratarea
tranzaciilor.

R6. Actualizarea tabelelor virtuale: trebuie s se permit ca tabelele virtuale s fie


i efectiv actualizabile, nu numai teoretic actualizabile (exemplu atributul valoare dintr-
o tabel virtual nu poate fi actualizat).

R7. Actualizrile n baza de date: manipularea unei tabele trebuie s se fac prin
operaii de regsire dar i de actualizare.

R8. Independena fizic a datelor: schimbarea structurii fizice a datelor (modul de


reprezentare (organizare) i modul de acces) nu afecteaz programele.

R9. Independena logic a datelor: schimbarea structurii de date (logice) a


tabelelor nu afecteaz programele.

R10. Restriciile de integritate: acestea, trebuie s fie definite prin LDD i stocate n
dicionarul (catalogul) BD.

R11. Distribuirea geografic a datelor: LMD trebuie s permit ca programele de


aplicaie s fie aceleai att pentru date distribuite ct i pentru date centralizate (alocarea
i localizarea datelor vor fi n sarcina SGBD).

R12. Prelucrarea datelor la nivel de baz (sczut): dac SGBD posed un limbaj de
nivel sczut (prelucrarea datelor se face la nivel de nregistrare), acesta nu trebuie utilizat
pentru a evita restriciile de integritate.
LIMBAJUL SQL*Plus - compendiu

SQL este un limbaj descriptiv, relaional, ce lucreaz stil interpretor, cu o mare putere de
regsire a datelor, standardizat internaional (ANSI). n Oracle exist o versiune extins
fa de standard, numit SQL*Plus.

Comanda SQL are drept terminator caracterul punct i virgul (;).

Expresiile utilizate sunt construite cu ajutorul operatorilor i operanzilor. Expresia poate


fi de mai multe tipuri, conform tipului de operatori care apare: aritmetici (+, -, *, /), de
comparaie (=, <>, >, >=, <, <=), logici (AND, OR, NOT), speciali (LIKE, IN etc.).

Operanzii din expresii pot fi: constante, variabile (de sistem i utilizator), funcii, atribute.

Prezentm, n continuare, cteva dintre cele mai utilizate comenzi i funcii SQL*Plus,
grupate din punct de vedere funcional.

Opiuni de lucru
SET - stabilirea parametrilor de lucru.
RUN - lanseaz n execuie comenzile din zona de memorie (buffer) curent
START - lanseaz n execuie comenzile dintr-un fiier
ACCEPT - citete date de la tastatur (standard de intrare)
PROMPT - scrie date pe ecran (standard de ieire)
DEFINE - definete o variabil utilizator
DESCRIBE - afieaz structura de date a unei tabele
HELP - informaii despre comenzi/funcii

Definirea datelor
CREATE DATABASE - creeaz o baz de date (inclusiv dicionarul BD)
CREATE TABLE - creeaz structura de date a unei tabele
Not. Numele tabelei, structura, restriciile de integritate, dar i alte elemente, sunt
stocate n dicionarul bazei de date.
ALTER TABLE - actualizeaz structura de date a unei tabele
DROP TABLE - terge o tabel
CREATE VIEW - creeaz o viziune (tabel virtual)
DROP VIEW - terge o viziune
CREATE INDEX - creeaz un fiier de index
DROP INDEX - terge un fiier de index
CREATE CLUSTER - creeaz un cluster
ALTER CLUSTER - actualizeaz un cluster
DROP CLUSTER - terge un cluster

Actualizarea tabelelor
SET TRANSACTION - stabilete condiiile de acces pentru o tranzacie
INSERT - adaug o nregistrare la sfritul unei tabele
DELETE - terge nregistrri dintr-o tabel
UPDATE - modific nregistrri dintr-o tabel
COMMIT - finalizeaz tranzaciile anterioare, acestea devenind permanente
ROLLBACK - anuleaz tranzaciile efectuate anterior i care nu au fost finalizate
SAVEPOINT - marcheaz puncte de salvare ntr-o tranzacie (sub-tranzacii)

Regsirea datelor
SELECT - permite formularea cererilor de regsire de la simple la foarte complexe.
Implementeaz i cei ase operatori relaionali de baz: proiecia, selecia,
jonciunea, uniunea, diferena, intersecia. Este comanda cea mai complex din
SQL.
COPY - copiaz date dintr-o tabel surs ntr-una destinaie
SHOW - afiarea valorilor variabilelor de sistem
COMPUTE - efectuarea unor calcule conform unei expresii aritmetice indicate.

Cteva funcii standard (de sistem)


De agregare: ABS() valoarea absolut
MOD() modulo 2
ROUND() rotunjire
TRUNC() - trunchiere
SQRT() - rdcin ptrat
Caracter: ASCII() valoarea ASCII a unui caracter
CHR() - caracterul unei valori ASCII
LOWER () convertete litere mari n mici
UPPER() convertete litere mici n mari
LENGTH() lungimea unui ir de caractere
SUBSTR() extrage un subir dintr-un ir de caractere dat
De grupare: AVG() media aritmetic
SUM() suma unor valori
COUNT() contorizeaz elementele care satisfac o anumit condiie
MAX() valoarea maxim
MIN() valoarea minim
De conversie: TO_CHAR() convertete o dat calendaristic n ir de caractere
TO_DATE() convertete o valoare numeric ntr-un ir ce reprezint o
dat calendaristic i invers
Altele: DECODE() compar o valoare cu un cmp i returneaz o anumit
valoare
DUMP() afieaz zona de date interne Oracle
Not. Exist i o serie de funcii pentru prelucrarea datei calendaristice.
Iniiere n limbajul PL/SQL

PL/SQL este un limbaj procedural, propriu sistemului Oracle, care lucreaz stil
compilator i care d posibilitatea s se dezvolte structuri procedurale de program,
suportnd n acelai timp o parte dintre comenzile SQL. El a fost dezvoltat pe o structur
de program Pascal.

Instruciunea PL/SQL are drept terminator caracterul punct i virgul (;).

Expresiile n PL/SQL sunt formate din operatori i operanzi. Tipul unei expresii este dat
de tipul operatorilor utilizai.

Operatorii sunt de urmtoarele tipuri: aritmetici (+,-, *, /, **), logici (AND, OR, NOT),
de comparaie (=, !=, <, >, <=, >=), ali operatori speciali (LIKE; IN; BETWEEN etc.).

Operanzii pot fi variabile, constante, atribute (%TYPE, %FOUND etc.).

Unitatea de baz pentru structurarea unui program n limbajul PL/SQL este blocul.
Structura unui bloc este: DECLARE
Instruciuni de declarare (neexecutabile)
BEGIN
Instruciuni executabile (proprii sau din SQL)
EXCEPTION
Proceduri de tratare a erorilor (excepiilor)
END;
Not. Dintre seciunile de mai sus, doar cea executabil (ntre BEGIN i END)
este obligatorie, ntr-un bloc PL/SQL.

Comentariul se indic ca un text scris ntre /* i */ (analog ca n SQL) sau dup dou
caractere liniu de unire (- -).

Instruciunile dintr-un bloc pot fi precedate de <<etichet>>, care se poate folosi apoi
pentru referire.

Limbajul PL/SQL accept i subprograme care pot fi de urmtoarele tipuri: proceduri


(PROCEDURE), funcii (FUNCTION), pachete (PACKAGE), declanatori (TRIGGER).

Comenzi suportate din SQL


INSERT, UPDATE, DELETE, SELECT, COMMIT, ROLLBACK, SAVEPOINT, LOCK,
TABLE, SET TRANSACTION.

Instruciuni proprii
:= este instruciunea de atribuire
BEGIN desemneaz nceputul prii executabile a uni bloc
CLOSE nchide un cursor explicit
DECLARE marcheaz nceputul unui bloc i a prii nexecutabile a acestuia.
Pentru a declara variabile i constante: NUMBER, CHAR, VARCHAR, DATE,
BOOLEAN, atributele (%nume)
Pentru a declara un cursor: CURSOR
Pentru a declara o excepie (tratarea erorilor): EXCEPTION
END ncheie o serie de instruciuni (bloc END, structur repetitiv END LOOP,
structur alternativ END IF)
EXCEPTION marcheaz nceputul prii de tratare a erorilor dintr-un bloc.
EXIT foreaz ieirea necondiionat dintr-o structur nesecvenial de program.
FETCH acceseaz urmtoarea linie din mulimea selectat de un cursor explicit.
GOTO salt necondiionat la o etichet dintr-un bloc.
IFEND IF structura alternativ simpl de program.
LOOP END LOOP structura repetitiv de program tip WHILE sau FOR
NULL este instruciunea care nu are nici un efect
OPEN deschide un cursor explicit
RAISE oprete execuia unui bloc i transfer controlul unei seciuni de excepie.
SELECTINTO instruciune de regsire, care ntoarce o linie dintr-o tabel i o plaseaz
ntr-o variabil de memorie indicat prin clauza INTO.

Funcii
SQLCODE() numrul codului unei erori detectate
SQLERRM() mesajul unui cod de eroare specificat
Not. Majoritatea funciilor din SQL*Plus sunt suportate i de PL/SQL.

Exemplu
S se scrie un bloc PL/SQL care conine o structur repetitiv. Blocul va aduga n tabela
TEMP(numcol) numere de la 1 la 10 cu excepia celor din mulimea (6,8), iar execuia
blocului se va termina la numrul 10.
REZOLVARE:
BEGIN
FOR var IN 1..10 LOOP
IF var NOT IN (6,8) THEN
INSERT INTO temp(numcol) VALUES (var);
END IF;
END LOOP;
END;