Baze de date
Compararea modelelorCompararea modelelor Din punct de vedere cronologic, modelul de date ierarhic este primul model de date utilizat in construirea SGBD-urilor. Acesta foloseste doua forme de structurare a datelor: tipurile de inregistrari legaturile explicite Legaturile sunt restrictionate astfel incat sa se incadreze intr-o structura de arbore ordonat. Astfel de structuri au proprietatea ca sunt liniarizabile. Aceasta permite folosirea unor structuri fizice de reprezentare foarte eficiente care pot fi inregistrate chiar si pe suporturi de memorare cu acces strict secvential, cum ar fi benzile magnetice. Interogarile care presupun exploatarea legaturilor ierarhice pot fi tratate cu eficienta. Modelul de date ierarhic nu mai este utilizabil atunci cand se pune problema modelarii unei realitati care nu poate fi incadrata intr-o ierarhic. De asemene, nu exista o solutie satisfacatoare pentru reprezentarea legaturilor de tip m:n iar rezolvarea unor interogari care nu se potrivesc structurii ierarhice predefinita este imposibila. Modelul de date retea are o generalizare mai mare decat modelul ierarhic, structura legaturilor explicite fiind arbitrara si reprezentata printr-un graf. Singura restrictie se refera la natura legaturilor care trebuie sa fi de tip functional, ceea ce face ca nici in modelul retea sa nu poata fi reprezentata direct legatura m:n. Solutia larg utilizata pentru reprezentarea legaturilor m:n consta in folosirea tipurilor de legatura. Modelul de date retea permite reprezentarea unor structuri mult mai complexe decat modelul ierarhic si orice interogare poate fi rezolvata eficient daca s-au prevazut pentru aceasta legaturile explicite necesare. Marele dejavantaj al modelului retea este acela ca pentru aplicatiile mai complexe structurile de reprezentare devin foarte complicate. Acest aspect se manifesta, in special, in cazul unor legaturi intre trei sau mai multe tipuri de entitati. Din acest motiv, scrierea si mai ales intretinerea programelor de aplicatie pentru bazele de date de tip retea este dificila si costisitoare. O caracteristica comuna a bazelor de date ierarhic si retea este folosirea limbajelor nvigationale pentru formularea interogarilor. Limbajele navigationale se bazeaza pe utilizarea conceptului de cursor. Cursorul indica pozitia curena in baza de date. Utilizatorul poate modifica pozitia pozitia cursorului sau poate efectua operatii asupra datelor care se afla la pozitia curenta. Limbajele navigationale exploateaza direct legaturile explicite existente in baza de date, iar rezolvarea interogarilor presupune navigatia cursorului pe lanturile de legaturi, ceea ce justifica numele generic al acestei clase de limbaje. In ambele modele sunt permise duplicatele, iar doua obiecte similare pot fi distinse oiectele avand identitate proprie.
O baza de date relationala este o colectie de relatii care reprezinta fie cate un tip de entitate, fie o legatura, in general de tip m:n, intre doua sau mai multe tipuri de entitati. In relatii nu sunt permise duplicatele, deci spre deosebire de modelele ierarhie si retea, in modelul relational nu este valabil principiul identitatiilor obiectelor. Se mai spune ca modelul relational este orientat pe valoare, distinctia dintre tuple fiind facuta exclusiv pe baza valorilor atributelor componente. Intre diferitele relatii nu exista legaturi explicite. Totusi, in timpul interogarilor, apare necesitatea de a realiza conexiuni intre diferite relatii. Acest lucru se realizeaza prin cuplarea dinamica a acestor relatii. Implementarea relatiilor de cuplare este destul de costisitoare din punct de vedere al volumului de calcul si al necesarului de memorie. Din acest motiv realizarea unei implementari eficiente, care sa poata concura succes implementarile corespunzatoare celorlalte modele, s-a dovedit a fi destul de dificila. Este una din explicatiile aparitiei si extinderii relativ tarziu a modelului relational. A fost nevoie pentru aceasta atat de dezvoltarea echipamentelor de calcul si a dispozitivelor de memorare, cat si a tehnicilor de programaresi structurare a datelor. Relativa(la ora actuala mai degraba aparenta) a modelului relational este in schimb compensata de o serie de avantaje. Simplitatea structuri bazelor de date relationale, lipsa legaturilor explicite faciliteaza formularea interogarilor prin limbaje de nivel inalt cum este algebra relationala sau orice limbaj echivalent, numite generic limbaje relationale. Caracteristica acestor limbaje este ca opereaza asupra unor relatii, iar rezultatele produse sunt tot relatii. Nu exista notiunea de cursor, se opereaza cu relatiile in intregul lor. Limbajele relationale sunt deosebit de simple si flexibile. Simplitatea limbajelor relationale a deschis calea spre folosirea bazelor de date pentru categorii mult mai largi de utilizatori decat in celelalte modele de date. Popularitatea bazelor de date relationale se datoreaza, in mare masura, usurintei cu care pot fi formulate cele mai diverse interogari cu ajutorul limbajelor relationale. Datorita folosirii unui singur concept pentru reprezentarea asociatiilor in bazele de date relationale, limbajele relationale au un caracter unitar cu un set mai restrans de operatori pentru realizarea accesului la date decat in celelalte modele. Intr-adevar limbajele de manipulare date corespunzatoare modelelor retea prvad un set de operatori de creare, localizare si stergere pentru entitati si alt set de operatori pentru efectuarea unor operatii similare asupra elementelor de legatura. In bazele de date nu exita legaturi explicite, dar toate legaturile posibile intre multimile de entitati sunt realizate prin cuplarea dinamica a relatiilor. Utilizatorul poate formula interogari pe care proiectantul bazei de date nu le-a prevazut in mod explicit. Descrierea unei baze relationale consta din descrierea relatiilor, structura bazei fiind deosebit de simpla. Natura interogarilor ce urmeaza a fi adresate bazei de date relationale nu influenteaza structura acesteia, spre deosebire de modelele ierarhic si retea unde gama interogarilor probabile determina in cea mai mare parte structura de legaturi explicite a bazi de date, iar necesitatea de a raspunde unor interogari presupune, de cele mai multe ori, adaugarea de noi elemente la structura si/sau modificarea celor deja existente.
|