Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
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
EVOLUIE SBD
ntr-un calculator datele sunt stocate att n memoria intern (temporar) ct i n memoria
extern (persistent).
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.
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.
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.
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.
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
UTILIZARE
Baza de
date
Nu orice software care gestioneaz date n memoria extern este un SGBD, ci trebuie s
ndeplineasc urmtoarele condiii, care vor fi prezentate n continuare.
- Datele nu pot exista oricum, ci organizate conform unui model de date ntr-o baz de
date (trebuie urmrite obiectivele unei baze de date).
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:
BDR este un ansamblu organizat de tabele (relaii) mpreun cu legturile dintre ele.
Modelul relaional
STUDENT
NUME: D1 ANSTUDIU : D2 ANNATERE: D3
tuplu POPA A. 2 1982
PETRE M. 2 1982
ILIE C. 3 1981
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).
1:M
PROD CODP DENP UMP
Atributul din tabela iniial se numete cheie extern iar cel din
tabela final este cheie primar.
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.
Definirea SGBDR
SGBDR este un sistem software complet care implementez modelul de date relaional,
precum i cel puin un limbaj relaional.
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.
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.
R7. Actualizrile n baza de date: manipularea unei tabele trebuie s se fac prin
operaii de regsire dar i de actualizare.
R10. Restriciile de integritate: acestea, trebuie s fie definite prin LDD i stocate n
dicionarul (catalogul) BD.
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.
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.
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.
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.).
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.
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;