Sunteți pe pagina 1din 8

1.

INTRODUCERE
1.1.

Definiii

Datele reprezint informaii fixate pe un anumit suport fizic n vederea utilizrii i


prelucrrii ntr-un anumit scop.
Baza de date (data base) este o colecie de date organizate care servete unui anumit
scop (nu conine date care nu sunt relevante). Faptul c sunt organizate nseamn c sunt
stocate, reprezentate i accesate ntr-o manier consistent.
Dezvoltarea bazelor de date s-a bazat pe 2 cerine:
- persistena datelor (datele trebuie s fie valide pentru mai multe rulri),
- simplitatea stocrii i manipulrii datelor.

1.2.

Arhitectura unui sistem de baze de date

Sistemul bazelor de date are 4 nivele:


1.2.1. Nivelul conceptual
Este nivelul fundamental ce descrie ntr-un mod natural i fr ambiguiti sistemul ce
urmeaz a fi modelat. La acest nivel se realizeaz schema conceptual care reprezint designul general al sistemului.
1.2.2. Nivelul extern
La acest nivel se realizeaz schema extern care este astfel realizat nct grupuri diferite de
utilizatori s acceseze numai anumite subscheme ale schemei conceptuale globale (din
motive de relevan i securitate). Aceeai informaie poate fi reprezentat n mod diferit
(grafice, tabele) din motive de experien sau interes ale utilizatorilor.
1.2.3. Nivelul logic
Pentru o anumit aplicaie dat schema conceptual se convertete ntr-o structur de nivel
inferior (schem logic) unde se alege un model logic adecvat de organizare a datelor (model
relaional, ierarhic, reea etc.). Schema logic este reprezentat cu ajutorul unor structuri
abstracte specifice modelului respectiv (ex.: tabele).
1.2.4. Nivelul intern
Dup ce a fost realizat schema logic aceasta se concretizeaz ntr-o schem intern care
este specific sistemului de gestiune a bazelor de date ales (Oracle, Acces, DB2 etc.). Schema
intern include toate detaliile despre stocarea fizic i structurile de acces n sistemul
respectiv (ex.: indeci, clustere etc.). Chiar i n cadrul aceluiai sistem de gestiune a bazelor
de date utilizatori diferii pot construi scheme interne diferite.

1.3.

Sisteme de gestiune a bazelor de date (SGBD)

1.3.1. Noiuni despre SGBD


Un SGBD (Sistem de Gestiune a Bazelor de Date) sau DBMS (DataBase Management
System) este un sistem software care gestioneaz toate procesele dintr-o baz de date i care
permite utilizatorului s interacioneze cu aceasta.
Principalele funciuni ale unui SGBD sunt:
- stocarea datelor,
- definirea structurilor de date,
- manipularea datelor,
- interogarea (extragerea i prelucrarea) datelor,
- asigurarea securitii datelor,
- asigurarea integritii datelor,
- accesul concurent la date cu pstrarea consistenei acestora,
- asigurarea unui mecanism de recuperare a datelor,
- asigurarea unui mecanism de indexare care s permit accesul rapid la date.
1.3.2. Modele de date (moduri de organizare a datelor)
Modelul de date reprezint un tipar dup care este organizat din punct de vedere logic baza
de date. Dup modelul folosit exist mai multe tipuri de SGBD.
a) SGBD ierarhic
Modelul ierarhic stocheaz datele n structuri de tip arbore. Se consider c ntre date exist o
relaie de tip printe-copil. Nivelul superior al arborelui (rdcina) poate avea orice numr de
descendeni care i ei, la rndul lor, au ali descendeni etc. n prezent, modelul ierarhic este
depit i nu se mai folosete aproape deloc.
b) SGBD reea
Datele sunt stocate sub form de nregistrri cu legturi multiple i complexe ntre ele. Este o
extindere a celui ierarhic. Aici un copil poate avea mai muli prini sau chiar niciunul.
Caracteristicile principale ale SGBD reea sunt:
- reprezentare date complexe
- extrem de puin flexibil
- design extrem de complicat
n prezent este puin folosit.
c) SGBD relaional
Reprezint cea mai simpl structur pe care o poate avea o baz de date. Datele sunt
organizate n tabele formate din nregistrri i cmpuri. n acest caz bazele de date relaionale
sunt foarte flexibile i uor de mnuit. Cele mai populare baze de date relaionale: Oracle,
Acces, Informix i Sybase. Altele : SQL server i DB2.

d) SGBD orientat pe obiect


Este tipul cel mai nou de SGBD fiind introdus conceptul de obiect. Integreaz principiile
programrii orientate pe obiect (C++, Actor etc.) cu cele ale bazelor de date. Gestioneaz
obiecte complexe (date neconvenionale) (texte, grafice, hri imagini sunete); obiecte
dinamice (programe, simulri). Tehnologia este la nceput (Oracle 8 i 9)
1.3.3. Comunicarea cu baza de date
n ORACLE comunicarea cu baze de date se face prin intermediul limbajului SQL
(Structured Query Language) care este n prezent cel mai rspndit limbaj de interogare a
bazelor de date relationale.
Prezint componente (sublimbaje) de definire date, control date i manipulare date.
a) Definirea structurilor de date Limbajul DDL (Data Definition Language)
(Limbaj de definire a datelor)
Permite definirea (crearea, modificarea i distrugerea) schemei bazei de date (structurilor de
date folosite i legturilor dintre ele).
b) Manipularea datelor Limbajul DML (Data Manipulation Language)
(Limbaj de manipulare a datelor)
Permite inserarea de noi date, actualizarea sau tergerea celor existente.
c) Interogarea datelor Limbajul DQL (Data Query Language) (Limbaj de
interogare sau acces)
Permite extragerea, vizualizarea i prelucrarea (filtrarea, sortarea) datelor existente.
d) Controlul datelor Limbajul DCL (Data Control Language) (Limbaj de
control al datelor)
Asigur securitatea, confidenialitatea, salvarea, integritatea i consistena datelor. Este foarte
util n cazul manipulrii concurente.
1.3.4. Accesul concurent (simultan) la date
n cazul existenei mai multor utilizatori, un SGBD trebuie s gestioneze accesul curent al
acestora la date, meninnd n acelai timp integritatea bazei de date.
a) Cnd dou sau mai multe persoane vor s vizualizeze aceleai date fr a le
modifica ns, totul este n ordine i nu trebuie luate msuri suplimentare.
b) Cnd cel puin o persoan dorete s fac modificri asupra unor date care, n
acelai timp, sunt vizualizate de alte persoane, atunci SGBD trebuie s realizeze i
s stocheze mai multe copii ale datelor i s transfere toate modificrile copiilor
ntr-o singur versiune atunci cnd ntreaga operaiune este terminat.
c) n cazul cnd mai multe persoane ncearc s modifice aceleai date n acelai
timp SGBD utilizeaz metoda blocrii (locking). Utilizatorul care a efectuat
primul modificarea datelor le blocheaz, ceilali utilizatori neputndu-le modifica

pn ce operaia efectuat de acesta nu este ncheiat. n Oracle blocarea se poate


face la nivel de tabel sau la nivel de rnd. Cu ct unitatea de date este mai mic
cu att concurena este mai eficient i utilizatorii ateapt mai puin. Oracle
blocheaz n mod implicit orice rnd asupra cruia se execut o operaie de
modificare.
1.3.5. Tranzacii
ntregul mecanism care gestioneaz concurena ntr-o baz de date are la baz conceptul de
tranzacie. Tranzacia este cea mai mic unitate de lucru. Nu poate exista o operaie mai mic
dect o tranzacie. Toate tranzaciile trebuie s fie atomice adic fiecare tranzacie, fie este
complet executat, fie nu este executat deloc. Cnd o tranzacie este ncheiat se spune c
este permanentizat (commited); cnd nu poate fi ncheiat i trebuie anulat se spune c este
derulat napoi (rolled back). Derularea napoi poate fi fcut explicit, printr-o comand a
utilizatorului sau poate fi executat n mod automat, n cazul unei probleme n funcionarea
sistemului. n Oracle, o tranzacie poate cuprinde una sau mai multe operaii de interogare
sau manipulare a datelor i doar cel mult o operaie de definire a datelor. Un SGBD dispune
de un administrator de tranzacii (transaction manager).
1.3.6. Baze de date distribuite
Baza de date distribuit reprezint o mulime de date corelate logic, dar distribuite pe mai
multe maini interconectate printr-o reea de comunicaie. Din punct de vedere al
utilizatorului o baz de date distribuit reprezint o singur baz de date. Acesta are acces la
nite date fr s cunoasc localizarea lor. Avantajele unei baze de date distribuite sunt:
- administrare distribuit, descentralizat a bazei de date,
- uurin n administrare,
- eficien n exploatare,
- localizarea mai rapid a defeciunilor.
1.3.7. Tipuri de utilizatori ai bazei de date
a)
b)
c)
-

Administratorul BD (Data Base Administrator DBA)


definete BD,
asigur buna funcionare a BD.
Programatorul (dezvoltatorul de aplicaii)
creeaz programe pentru manipularea i interogarea datelor din BD,
se ocup de accesul concurent (integritatea i consistena datelor),
urmrete performana, mentenana i portabilitatea codului.
Utilizatorul final
interogheaz i manipuleaz datele fr s in cont de modul lor de organizare, de
pstrarea integritii i de accesul concurent.
1.4. Sisteme de Gestiune a Bazelor de Date Relaionale (SGBDR)
1.4.1. Noiuni generale

Un SGBDR este un SGBD care utilizeaz modelul relaional ca i concepie de


organizare a datelor. n 1985 Codd a publicat un set de 13 reguli n raport cu care un SGBD

poate fi considerat relaional. n prezent niciun SGBD nu respect ntreg setul de reguli care
are rolul de a stabili gradul n care unul sau altul dintre SGBD-uri este relaional.
1.4.2. Regulile lui Codd
Rg. 1: Regula reprezentrii logice a datelor
ntr-o baz de date relaional toate datele sunt reprezentate la nivel logic ntrun singur mod, i anume sub form de valori atomice n tabele.
Valoarea stocat la intersecia dintre un rnd i o coloan ale unui tabel trebuie s fie
atomic, adic s nu se mai poat descompune din punct de vedere logic. De exemplu, codul
numeric personal nu este o valoare atomic deoarece se poate descompune n sex, dat
natere etc. La fel codul referitor la un automobil obinut prin concatenarea mai multor
coduri referitoare la marc, culoare, serie motor, an de fabricaie, fabricant.
Valoarea de atomicitate depinde uneori de cerinele referitoare la informaiile
coninute n datele stocate. n unele cazuri, data naterii, adresa pot fi considerate atomice, in
altele, nu.
Regula este de baz. Cnd este nclcat creaz probleme de integritate a datelor,
demonstreaz o proiectare deficient a BD, iar SGBD-ul i pierde calitatea de relaional.
Rg. 2: Regula accesului la date
Toate datele individuale din tabele trebuie s fie accesibile prin furnizarea numelui
tabelului, numelui coloanei i valorii cheii primare.
Modelul relaional presupune inexistena rndurilor identice, iar fiecare rnd poate fi
identificat prin valoarea cheii primare.
Rg. 3: Regula reprezentrii valorilor necunoscute
Un sistem relaional trebuie s permit declararea i manipularea sistematic a
valorilor Null cu semnificaia unor valori necunoscute sau inaplicabile.
Un SGBDR trebuie s fac diferena ntre valoarea numeric 0 i Null sau ntre irul
de caractere spaiu i valoarea Null. Valoarea Null trebuie s reprezinte absena informaiei
respective i are un rol important n implementarea restriciilor de integritate structural
(integritatea entitii i integritatea referirii).
Rg. 4: Regula dicionarului de date
Descrierea bazei de date (dicionarul de date) trebuie s fie reprezentat la nivel
logic tot sub form de tabele, astfel nct asupra acesteia s se poat aplica aceleai operaii
ca i asupra datelor propriu-zise.
Dicionarul de date trebuie s fie organizat la nivel logic i accesat la fel ca orice tabel
din baza de date. Const din tabele i tabele virtuale (vederi) care pot fi interogate la fel ca
oricare alte tabele sau vederi, folosind comanda SELECT.
Rg. 5: Regula limbajului de acces
ntr-un sistem relaional trebuie s existe cel puin un limbaj de accesare a datelor,
care s asigure urmtoarele operaii: definirea tabelelor de baz i a tabelelor virtuale
(vederilor), manipularea i interogarea datelor (att interactiv ct i prin program),
definirea restriciilor de integritate, autorizarea accesului la date, delimitarea tranzaciilor.

Limbajul SQL permite:


definirea tabelelor (comenzile CREATE TABLE, ALTER TABLE, DROP TABLE);
definirea vederilor (comenzile CREATE VIEW, ALTER VIEW, DROP VIEW);
manipularea datelor (comenzile INSERT, UPDATE, DELETE);
interogarea datelor (comanda SELECT);
definirea restriciilor de integritate (clauza CONSTRAINT folosit la definirea
tabelelor)
autorizarea accesului la date (printr-un set de privilegii de sistem i la nivel de obiect);
delimitarea tranzaciilor (operaiile COMMIT i ROLLBACK).

Rg. 6: Regula de actualizare a tabelelor virtuale (vederilor)


Un SGBD trebuie s poat determina dac o vedere poate fi actualizat sau nu.
Ex.: Fie tabelul salariu:
salariu (cod_salariat, salariu_brut, total_zile, zile_lucrate)
Pe baza acestui tabel se poate defini vederea salariu_r:
salariu_r (cod_salariat, salariu_brut, salariu_realizat)
unde salariu_realizat = salariu_brut * zile_lucrate / total_zile
Dac se dorete actualizarea coloanei salariu_brut din vedere, acest lucru este posibil,
datorit faptului c actualizarea se propag napoi la coloana salariu_brut din tabelul de baz,
producndu-se i actualizarea acesteia. Pe de alt parte, nu este posibil actualizarea coloanei
salariu_realizat, datorit faptului c schimbarea valorii acesteia s-ar putea produce prin
schimbarea valorilor mai multor coloane din tabelul de baz (salariu_brut, zile_lucrate,
total_zile), SGBD netiind care dintre aceste coloane s fie modificat.
Un SGBD trebuie s dispun de un set de reguli care s determine dac o coloan a
unei vederi poate sau nu s fie actualizat.
Rg. 7: Regula manipulrii datelor
Un sistem relaional trebuie s ofere posibilitatea procesrii tabelelor (de baz sau
virtuale) nu numai n operaiile de interogare a datelor ct i n cele de inserare, actualizare
i tergere.
Operaiile de manipulare a datelor (inserare, actualizare i tergere) trebuie s se poat
efectua asupra oricrei mulimi de rnduri dintr-un tabel, pornind de la ntregul tabel i
terminnd cu un rnd sau nici unul. Un SGBD relaional manipuleaz coninutul BD la nivel
de mulime de rnduri. Limbajul SQL asigur aceast facilitate prin instruciunile: INSERT
cu subinterogare, UPDATE i DELETE.
Rg. 8: Regula independenei fizice a datelor
Programele de aplicaie nu trebuie s depind de modul de stocare i accesare fizic
a datelor.
Un SGBDR trebuie s separe complet aspectele de ordin fizic ale datelor (modul de
stocare i modul de acces la date) de cele de ordin logic. De ex., dac un fiier care conine un
tabel de date este mutat pe o alt unitate de disc sau i este schimbat numele, aceast aciune
nu trebuie s aib vreun efect asupra aplicaiilor care folosesc acel tabel.

Rg. 9: Regula independenei logice a datelor


Programele de aplicaie nu trebuie s fie afectate de nici o restructurare logic a
tabelelor bazei de date care conserv datele.
Orice modificare efectuat asupra unui tabel care conserv datele din acesta (de ex., dac un
tabel trebuie divizat n 2 pri din motive de cretere a performanei) nu trebuie s afecteze
funcionarea programelor de aplicaie. Aceast regul este respectat prin posibilitatea
definirii vederilor: dac un tabel este divizat n 2 pri, atunci se poate crea o vedere care
altur cele 2 tabele, astfel nct aceast mprire nu va avea niciun efect asupra aplicaiei.
Rg. 10: Regula independenei datelor din punctul de vedere al integritii
Regulile de integritate a bazei de date trebuie s fie definite n limbajul utilizat de
sistem pentru definirea datelor i nu n cadrul aplicaiilor individuale: n plus, aceste reguli
de integritate trebuie stocate n dicionarul de date.
Aceast regul se refer la faptul c restriciile de integritate trebuie impuse la
definirea tabelelor bazei de date i nu n cadrul aplicaiilor care folosesc aceste tabele. De ex.,
Oracle respect aceast regul la definirea tabelelor (n cadrul comenzii CREATE TABLE)
putndu-se defini att restriciile de integritate structural (NOT NULL, UNIQUE,
PRIMARY KEY, FOREIGN KEY) ct i unele restricii de comportament (CHECK).
Informaiile despre aceste restricii sunt stocate n dicionarul de date.
Rg. 11: Regula independenei datelor din punctul de vedere al distribuirii
Programele de aplicaie nu trebuie s fie afectate de distribuirea pe mai multe
calculatoare a bazei de date.
BD trebuie s funcioneze corect indiferent dac se gsete pe un singur calculator sau
este distribuit n mai multe noduri ale unei reele. Aceast regul este o extensie a regulii 8,
privind independena programelor de aplicaie fa de modul de stocare fizic a datelor.
Un avantaj l prezint posibilitatea replicrii locale a tabelelor aflate n alte noduri ale
reelei, evitndu-se astfel transmiterea n mod repetat a informaiilor prin reea.
Rg. 12: Regula privind prelucrarea datelor de ctre un limbaj de nivel inferior
Orice limbaj nerelaional folosit pentru accesarea datelor trebuie s respecte
aceleai condiii de integritate ca i limbajul relaional de acces.
Dac sistemul posed un limbaj procedural prin care se acceseaz datele la nivel de rnd i
nu, potrivit sistemului relaional, la nivelul mulimilor de rnduri, n acest limbaj nu se pot
evita restriciile de integritate pe care trebuie s le respecte un limbaj relaional de acces la
date.
Rg. 0: Regula de baz
Un SGBD Relaional trebuie s fie capabil s gestioneze BD exclusiv pe baza
caracteristicilor sale relaionale.
Aceast regul are rolul de a rezuma concluziile desprinse din celelalte reguli. n
esen, acesta nseamn c sistemul trebuie s ndeplineasc toate funciile prin manipulri n
care unitatea de procesare s fie tabelul (mulimi de rnduri), asupra cruia s se efectueze
operaiile specifice modelului relaional.

Regulile de mai sus sunt grupate n 5 categorii, i anume:


I.
II.
III.
IV.
V.

Reguli de baz: Rg.0 i Rg.12;


Reguli structurale: Rg.1 i Rg.6;
Reguli privind integritatea datelor: Rg.3 i Rg.10;
Reguli privind manipularea datelor: Rg.2, Rg.4, Rg.5 i Rg.7;
Reguli privind independena datelor: Rg.8, Rg.9, i Rg.11;

Obs.: Nici unul dintre SGBD-urile actuale nu satisface n totalitate toate cele 13 reguli ale
lui Codd. De aceea, in practic, pentru a putea fi considerat relaional, un SGBD trebuie
s ndeplineasc un set minimal de cerine.
Un SGDB se numete minimal relaional dac satisface urmtoarele condiii:
a) Toate datele din cadrul bazei de date sunt reprezentate prin valori n tabele.
b) Nu exist pointeri observabili de ctre utilizator ntre tabele.
c) Sistemul asigur operatorii relaionali de proiecie, selecie i compunere natural,
fr limitri impuse de considerente interne.
Un SGDB se numete complet relaional dac este minimal relaional i satisface n
plus urmtoarele condiii:
d) Sistemul asigur toate operaiile de baz ale algebrei relaionale, fr limitri impuse
de considerente interne.
e) Sistemul asigur restriciile de integritate de baz ale modelului relaional (integritatea
entitii i integritatea referenial).
Un SGDB definit prin regulile lui Codd este un SGDB relaional ideal.

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