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