Baze de date - concepte fundamentale





Elemente de fond
Istoria cercetărilor în domeniul bazelor de date din ultimii 30 de ani s-a dovedit a fi de o productivitate excepţională, ceea ce a făcut ca sistemele de baze de date să reprezinte, după cum se poate demonstra, cea mai importantă dezvoltare în domeniul ingineriei programării. Baza de date reprezintă acum cadrul fundamental al unui sistem informaţional şi a modificat radical modul de operare al multor organizaţii. În particular, dezvoltarea acestei tehnologii de-a lungul ultimilor ani a dus la crearea unor sisteme mai puternice, ce pot fi utilizate într-un mod mai intuitiv. Rezultatul a fost că sistemele de baze de date au devenit din ce în ce mai accesibile pentru o mai largă varietate de utilizatori.
Metodologia sistemelor de gestionare a bazelor de date (SGBD) (În limba engelză Database Management System) relaţionale predomina în prezent în aplicaţiile din domeniul afacerilor . Metodologia constă în trei faze principale ale proiectării: conceptuală, logică şi fizică. Prima fază începe cu realizarea unui model de date conceptual, care să fie independent de toate consideraţiile fizice. Apoi, acest model este perfecţionat în decursul celei de-a doua faze şi transformat într-un model de date logic, prin eliminarea construcţiilor ce nu pot fi reprezentate în sistemele relaţionale. În cea de-a treia fază, modelul de date logic este implementat într-un proiect fizic pentru sistemul SGBD avut în vedere. În faza proiectării fizice se iau în considerare structurile de stocare şi metodele eficiente de acces al bazei de date de pe capacităţile de stocare secundare.



Caracteristica principala a aplicatiilor de baze de date consta in faptul ca accentul este pus pe operatiile de memorare si regasire , efectuate asupra unor volume mari de date, si mai putin asupra operatiilor de prelucrare a acestora asa cum este cazul in alte domenii de aplicare a informaticii (calule tehnico-stiintifice, proiectare, comanda - control samd). Principala operatie care apare in orice aplicatie de baze de date este cea de regasire a datelor, in scopul obtinerii de informatii din baza de date. Alaturi de aceasta apar operatii de memorare, pentru intorducerea de noi date in baza, operatii de stergere, cat si operatii de actualizare a unor date deja existente. Organizarea datelor se realizeaza intr-o forma centralizata care prezinta o serie de avantaje:
1. reducerea redondantei datelor memorate;
2. evitarea inconsistentei datelor memorate;
3. posibilitatea partajarii datelor;
4. incurajarea introducerii standardelor
5. posibilitatea aplicarii restrictiilor de securitate;
6. mentinerea integritatii datelor.

Independenta datelor este o problema a carei rezolvare constituie un scop in sine in conceptia si organizarea oricarei baze de date. Independenta datelor inseamna ca exista o delimitare neta intre reprezentarea fizica a datelor si imaginea pe care o are utilizatorul asupra acestor date (memorarea si organizarea datelor este transparenta pentru utilizator).




Problema independentei datelor prezinata doua aspecte:

- independenta fizica a datelor: este o masura a imunitatii aplicatiilor fata de modificarile in structura fizica de memorare a datelor. O modificare a acestei structuri nu va afecta aplicatia si reciproc, modificari ale aplicatiei vor lasa structua fizica de date nealterata.

- independenta logica a datelor: se refera la imunitatea modelului prpriu al fiecaruiutilizator fata de modificari in structura logica globala a bazei de date. Independenta logica este legata in primul rand de problema adaugarii de noi uniati logice (campuri, inregistrari) la structura bazei de date si/sau de modificarea relatiilor existente intre ele. De asemenea independenta logica permite reorganizarea bazei de date pentru a face fata cerintelor unor utilizatori noi fara a afecta utilizatorii deja existenti.


Arhitectura unei baze de date


Asigurarea independentei fizice si logice a datelor impune adoptarea unei arhitecturi de baze de date organizate pe cel putin trei nivele:

- nivelul intern: colectie de fisiere continand datele fizice, la care se adauga diverse structuri auxiliare menite sa asigure accesul operativ la aceste date. Structurile auxiliare pot fi: directoare, indecsi, pointeri, tabele de dispersie samd. Baza de date fizica este rezidenta in memoria secundara a calculatorului,in general pe discuri optice.

- nivelul conceptual: abstractizare a unei parti din lumea reala si consta in descrierea structurii logice a datelor dintr-o baza de date, integrand viziunile tuturor utilizatorilor asupra aceteia. Acest model specicifica ce poate face din baza de date, iar aceasta rezulta prin specificarea unor constrangeri explicite asupra datelor. Acestea sunt proprietati ale datelor care nu pot fi exprimate prin descrieri de structura.

- nivelul extern: descriere a unei "baze de date virtuale" corespunzatoare viziunii unui utilizator sau a unui grup de utilizatori. Aceasta descriere este facuta in termenii unitatilor logice din modelul conceptual. Este modelul cel mai apropiat de utilizator, fiind derivat din modelul conceptual, dar poate prezenta deosebiri substantiale fata de acesta. Termenul tehnic adesea folosit pentru modelul extern este acela de vedere.vederile au mai multe utilizari in cadrul bazelor de date, cum ar fi asigurarea securitatii bazei de date, prin limitarea accesului la date a anumitor categorii de utilizatori. Vederile se evidentiaza ca un nivel de abstractizare mai ridicat decat modelul conceptual.

Nivel extern
(viziune utilizator
individual)


Nivel conceptual
(viziune comunitate de
utilizatori)


Nivel intern
(punct de vedere memorare)



Fig. 1. Nivelele arhitecturii bazei de date

O altă arhitectutrăm care s-a impus în ultimul deceniu este arhitectura client/server: sistemul bazei de date poate fi considerat ca alcătuit dintr-un server (backend) şi mai mulţi clienţi (frontends). Serverul este sistemul de gestiune a bazei de date (SGBD) în sine. Clienţii sunt diferitele aplicaţii care sunt executate.



End-users




Clienţi




Server




Baza de date


Fig. 2. Arhitectura client-server




Un sistem de gestiune a unei baze de date (SGBD) este o colecţie de programe care permit crearea şi întreţinerea bazei de date. Un SGBD are trei componente importante:

1. un subsistem de memorare care inregistrează şi regăseşte datele din fişiere
2. un subsistem de modelare şi manipulare a datelor care conţine procedurile de organizare a datelor şi de operare asupra lor (adăugare, modificare, ştergere) şi de control la partajarea datelor şi access concurent (tranzacţii multi-user).
3. interfaţa dintre SGBD şi utilizatori.

Structura detailată şi informaţiile despre organizarea fiecărui fişier din baza de date sunt înregistrate într-un catalog.

Un model de date descrie o manieră de structurare şi manipulare a datelor dintr-o bază de date. Partea de structură se referă la cum sunt reprezentate datele: tabele, structuri ierarhice etc. Partea de manipulare a unui model specifică operaţiile ce se pot aplica datelor pentru a realiza adăugare, inserare , modificare, ştergere, sortare, selecţie et5c. Comenzile pentru realizarea unor astfel de operaţii sunt specificate într-un limbaj de interogare. Comenzile din limbajul de interogare sunt traduse în secvenţe de isnstrucţiuni maşină pe care subsitemul de memorare le foloseşte pentru manipularea datelor. Există diferite limbaje de interogare, unele fiind specializate pentru realizarea unor funcţii anume.

Sistemul de gestiune al bazei de date
SGBD

Sistemul de gestiune albazei de date (SGBD) este intregul ansamblu sofware care trateaza toate cererile de acces la baza de date.
O cerere de acces la baza de date, o interogare, este formulata de catre utilizator in termenii conceptelor de la nivelul uneia din vederile definite in sistem. Aceasta este interpretata de catre SGBD si interpretata de catre o componenta a acestuia, intrepretorul LMD. Rezultatul este o interpretare in format intern a interogarii. In etapele succesive de transformare, SGBD foloseste informatiile de descriere de la toate nivelele bazei de date (modelul, extern, intern, conceptual), impreuna cu descrierile interfetelor model extern - intern conceptual si model conceptual - nivel intern. De asemenea, SGBD poate consulta o serie de tabele cum ar fi: tabele de autorizare a accesuluila date, tabele continand informatii de control al accesului concurent, samd.
Cererile de acces la fisiere fizice, rezultate din transformarea interogarii sunt preluate si rezolvate de catre sistemul de gestiune al fisierelor.aceasta poate fi un sistem general, parte a sitemului de operare care gazduieste baza de date, sau un sistem specializat, adaptat cerintelor speciale ale sistemului de gestiune al bazei de date.
Datele extrase din fisierele fizice, sub forma unor siruri de biti, parcurg apoi calea inversa, rezultatul transformarii succesive fiind un raspun formulat in termenii cunoscuti de utilizator (sub forma de tabele, rapoarte, etc).
SGBD cuprinde doua facilitati importante pentru proiectarea si exploatarea bazelor de date:

- facilitati de descriere a datelor: prin limbajul de descriere a datelor - LDD, care serveste pentru descrierea modelelor externe, al modelului conceptual si a inerfetelor dintre cele trei nivele de organizare a bazei de date.

- facilitati de manipulare a datelor: prin limbajele de manipulare a datelor - LMD, acestea constituind interfata dintre SGBD si utilizatori.un LMD consta dintr-un set de comenzi primitive care corespund operatiilor vizuale in exploatarea bazei de date cum sunt: formularea cererilor de acces la date (interogari), adaugarea, stergerea si actualizarea datelor.









Administratorul bazei de date (ABD)

Acesta e ste persoana care raspunde de ansamblul activitatilor legate de baza de date.
Atributii:
- de proiectare;
- administrative;
- operative;
- de coordonare.




Modele de date



Utilitatea oricarei colectii de date in obtinerea de informatii depinde in mare masura de modul de organizare al acestor date. Reguluile dupa care sunt organizate si manipulate datele depind de modelul de date utilizat. Acestea sunt:

- modelul ierarhic;
- modelul retea;
- modelul relational.






Modelul ierarhic. Primele SGBD-uri foloseau un model ierarhic, articolele (înregistrările) fiind aranjate într-o structură arborescentă. Modelul a fost dezvoltat deoarece în aplicaţiile comerciale relaţiile ierarhice sunt frecvente. Structura unei organizaţii poate fi şi ea ierarhică(structura piramidală). In modelul ierarhic unele articole sunt articole rădăcină, iar celelalte au articole părinte unice. Structura arborelui coincide cu ordinea de utilizare a datelor: întâi se accesează articolul din rădăcină iar apoi cele de pe următorul nivel etc. SGBD-urile ierarhice utilizează un limbaj de interogare de tip navigator. Pentru a manipula anumite date se navighează pe structura de arbore până se ajunge la datele dorite. Comenzile de navigare sunt proceduri care trebuie scrise de programatori.





Segment
rădăcină


Segmente
subordonate






Fig. 3. Modelul ierarhic





Modelul reţea aranjează articolele într-o listă cu legături de tip graf orientat. Un articol din baza vde date poate avea mai mulţi părinţi. Ca şi modelul ierarhic, modelul de tip reţea foloseşte un limbsaj de interogare bazat pe navigare. Modelul a fost folosit în procese tranzacţionale în timp real cum sunt reţelele ATM.



















. . .


Fig. 4. Modelul reţea



Atât în modelul ierarhic cât şi în modelul de tip reţea bazele de date dezvoltate sunt specifice aplicaţiei. dacă se dezvoltă o nouă aplicaţie treebuie să se dezvolte şi o nouă bază de date. Acest lucru este dezavantajos deoarece păstrarea consistenţei bazei de date în diferite aplicaţii este foarte dificil.

Modelul relaţional a fost introdus de E.F. Codd în 1970 şi a constituit un moment de răscruce în managementul datelor. Abordarea propusă de Codd era complet diferită de cele anterioare. În modelul relaţional structura de date era reprezentată de o tabelă, de tip spreadsheet, constituită din linii şi coloane. Fiecare linie identifică un articol şi fiecare coloană un câmp din articol.

În limbajul relaţional tabela este realaţia, linia este tuplul iar coloana atributul. Astfel modelul relaţional este perfect fundamentat matematic de algebra relaţiilor. O tabelă este unic identificată de o cheie primară, respectiv o coloană (câmp, atribut) sau o combinaţie de coloane cu proprietatea că nu există două linii din tabelă care să aibe aceeaşi valoare pentru cheia primară. Un domeniu este o mulţime de valori posibile pentru atribute specifice relaţiei.

Cheia primară este un caz special de cheie candidată (candidate key). O cheie candidată pentru o relaţie R este o submulţime K de atribute ale lui R cu proprietatea de unicitate şi de ireductibilitate. Proprietatea de unicitate spune că nu există două tuple din R care să aibe aceaşi valoare pentru K, iar proprietatea deireductibilitate constă în faptul că nici un subset propriu al lui K nu are proprietatea de unicitate.

Cheia străină (foreign key) FK pentru o relaţie de bază R2 este o submulţime a mulţimii atributelor lui R2 astfel încât există o relaţie de bază R1 (R1 şi R2 pot coincide) cu cheie candidată CK şi în orice moment valoarea actuală a lui FK pe R2 este identică cu valoarea lui CK pe un tupludin valoarea curentă a lui R1.

Structured Query Language (SQL) este limbajul de manipulare a datelor SQL este nonprocedural şi nedeclarativ. Utilizatorul trebuie să specifice numai o descriere în engleză a operaţiei dorite şi a articolelor implicate. Un modul de optimizare a interogării traduce descrierea într-o procedură care realizează manipularea cerută.

Bazele de date relaţionale nu trebuie să fie specifice aplicaţiei. Modelul relaţional asigură independenţa datelor, respectiv abilitatea bazei de date de a exista independent de aplicaţie.

Modelul orientat-obiect reprezintă cea mai recentă abordare, în care articolele sunt reprezentate de obiecte. Un obiect este o combinaţie de cod (funcţie) şi date (variabile) asociate într-o singură entitate. Funcţiile unui obiect sunt numite metode sau funcţii membru, iar datele se numesc proprietăţi sau date membru. Apelarea unei metode într-un obiect este deobicei denumită transmitere de mesaj (send). Un obiect aparţine unei clase de obiecte similare. Clasa este o descriere a modului de construcţie a unui obiect. Obiectele sunt încapsulate, adică utilizatorii obiectelor nu văd reprezentarea lor internă dar ştiu căle pot manipula prin metode. Se spune uneori despre obiecte că au memorie particulară şi interfaţă publică.


Pachete software pentru baze de date. Cele mai cunoscutre software-uri pentru baze de date sunt:
. pentru baze de date de dimensiuni mici şi medii: FoxPro, Access, Excel, Delphi
. pentru baze de date complexe: Oracle, Informix, SyBase