CATEGORII DOCUMENTE |
Utilitatea oricarei colectii de date in obtinerea de informatii depinde in mare masura de modul de organizare al acestor date. Regulile dupa care sunt organizate si manipulate datele depind de modelul de date utilizat. In continuare sunt prezentate cateva notiuni de baza legate de modelarea datelor precum si o scurta trecere in revista a principalelor modele de date utilizate in proiectarea SGBD-urilor: ierarhic, retea si relational.
Prin modelarea datelor se urmareste organizarea acestora astfel incat sa fie indeplinite cerintele de reprezentare cat mai fidela a situatiei din lumea reala si ca datele sa fie adaptate reprezentarii si prelucrarii pe calculator. Aceste doua cerinte sunt foarte adesea conflictuale. Modelarea datelor, in vederea organizarii lor pentru a fi utilizate in aplicatii, presupune identificarea celor mai importante caracteristici ale datelor. Generalizarea si formalizarea acestor caracteristici a condus la definirea conceptului de model de date.
Un model de date este o colectie integrata de concepte, necesare descrierii datelor, relatiilor dintre date si constrangerilor asupra datelor dintr-o organizatie. El constituie o abstractie care se concentreaza asupra aspectelor esentiale si inerente ale unei organizatii si ignora proprietatile accidentale. Un model de date reprezinta organizatia insasi. El trebuie sa asigure conceptele de baza si notatiile, care vor permite proiectantilor de baze de date si utilizatorilor finali sa comunice fara ambiguitati si corect cunostintele lor privind datele organizatiei. Un model de date este compus din trei componente:
o parte structurala, constand dintr-un set de reguli conform carora sunt construite bazele de date;
o parte de manipulare, definind tipurile de operatii care sunt permise asupra datelor (aici sunt incluse operatiile utilizate pentru reactualizarea sau regasirea datelor din baza de date si pentru modificarea structurii bazei de date);
posibil, un set de reguli de integritate care sa garanteze ca datele sunt corecte.
Un model de date permite intelegerea mai usoara a semnificatiei datelor; prin urmare, modelam datele pentru a garanta faptul ca intelegem:
perspectiva fiecarui utilizator asupra datelor;
natura datelor, independent de natura lor fizica;
utilizarea datelor in cadrul domeniilor de aplicatie.
Modelele de date pot fi utilizate pentru a comunica punctul de vedere a proiectantului asupra nevoilor informationale ale intreprinderii. Modelul va sustine comunicarea dintre utilizatori si proiectanti, cu conditia ca ambele parti sa fie familiarizate cu notatiile utilizate in cadrul acestuia. Intreprinderile standardizeaza din ce in ce mai mult modul de modelare a datelor, prin selectarea unei anumite tratari a acesteia si utilizarea ei in proiectele de dezvoltare de baze de date.
Un model de date trebuie sa satisfaca anumite criterii, cum ar fi:
validitate structurata - consecventa fata de modul in care intreprinderea defineste si organizeaza informatiile;
simplitate - usurinta de intelegere a profesionistilor IT si a utilizatorilor tehnici;
expresivitate - abilitatea de a face distinctie intre diferite date, relatii intre date si constrangeri;
nonredundanta - excluderea informatiilor neesentiale; in particular, reprezentarea unei informatii exact o singura o data;
posibilitate de partajare - a nu fi specific unei anumite aplicatii sau tehnologii, si prin urmare, a fi utilizabil de mai multi;
extensibilitate - abilitatea de a evolua pentru a accepta noi cerinte, afectand la minimum utilizatorii existenti;
integritate - consecventa fata de modul in care intreprinderea utilizeaza si administreaza informatiile;
reprezentare schematica - abilitatea de a reprezenta un model utilizand notatii schematice, usor de inteles.
Scopul unui model este sa reprezinte datele si sa le faca intelese. Daca acest lucru s-a realizat, atunci modelul poate fi utilizat cu usurinta pentru a proiecta o baza de date. Pentru a reflecta arhitectura ANSI-SPARC, putem identifica trei modele de date, legate intre ele:
un model de date extern, pentru a reprezenta vederea fiecarui utilizator asupra organizatiei, denumit uneori universul discursului;
un model conceptual, pentru a reprezenta vederea logica (sau generala), care este independenta de SGBD;
un model de date intern, pentru a reprezenta schema conceptuala astfel incat sa poata fi "inteleasa" de SGBD.
In literatura de specialitate au fost propuse multe modele de date. Ele pot fi clasifificate in trei categorii principale: modele de date bazate pe obiecte, modele de date bazate pe inregistrari si modele de date fizice. Primele doua sunt utilizate pentru a descrie datele la nivel conceptual, respectiv extern, iar ultimul pentru descrierea datelor la nivel intern.
In modelele de date bazate pe obiecte se utilizeaza concepte cum ar fi entitatile, atributele si relatiile. O entitate este un obiect distinct (o persoana, loc sau lucru, concept sau eveniment) din organizatie, care va fi reprezentat in baza de date. Un atribut este o proprietate care descrie un anumit aspect al obiectului pe care dorim sa-l inregistram, iar o relatie este o asociere intre entitati. Mai jos sunt enumerate cateva dintre cele mai obisnuite tipuri de modele de date bazate pe obiecte:
Entitate-Relatie;
semantic;
functional;
orientat spre obiecte.
Modelul Entitate-Relatie constituie una dintre tehnicile principale de proiectare conceptuala a bazelor de date. Modelul de date orientat spre obiecte extinde definitia unei entitati, pentru a include nu numai atributele care descriu starea obiectului, ci si actiunile asociate acestuia, respectiv comportamentul. Se spune ca obiectul incapsuleaza atat starea, cat si comportamentul.
Intr-un model bazat pe inregistrari, baza de date consta intr-un numar de inregistrari cu format fix, posibil de tipuri diferite. Fiecare tip de inregistrare defineste un numar fix de campuri, fiecare avand, de obicei, o lungime fixa. Exista trei tipuri principale de modele de date logice bazate pe inregistrari: modelul de date relational, cel in retea si cel ierarhic.Modelul de date ierarhic si cel in retea au fost realizate cu aproape o decada inaintea celui relational, astfel incat legaturile lor cu conceptele traditionale de prelucrare a fisierelor sunt mai evidente.
Modelul de date relational
Modelul de date relational se bazeaza pe conceptul de relatii matematice. In modelul relational, datele si relatiile sunt reprezentate sub forma de tabele, fiecare avand un numar de coloane cu o denumire unica. Modelul de date relational necesita numai ca utilizatorul sa perceapa baza de date ca fiind formata din tabele. Totusi, aceasta perceptie se aplica numai la structura logica a bazei de date, adica la nivelul extern si la cel conceptual al arhitecturii ANSI-SPARC. Ea nu se aplica structurii fizice a bazei de date, care poate fi implementata utilizand o varietate de structuri de stocare.
Modelul de date in retea
In modelul in retea, datele sunt reprezentate printr-o colectie de inregistrari, iar relatiile sunt reprezentate prin directii. Spre deosebire de modelul relational, aici relatille sunt modelate explicit prin directii, care devin pointeri in implementarea propriu-zisa. Inregistrarile sunt organizate ca structuri generalizate de grafuri, cu inregistrarile reprezentate ca noduri si directiile ca muchii.
Modelul de date ierarhic
Modelul ierarhic constituie un tip restrans de model in retea. Si aici, datele sunt reprezentate printr-o colectie de inregistrari, iar relatiile prin directii. Totusi, modelul ierarhic permite ca un nod sa posede doar un singur parinte. Un model ierarhic poate fi reprezentat cu ajutorul unui graf de tip arbore, cu inregistrarile aparand ca noduri - denumite si segmente - iar directiile ca muchii.
Modelele de date bazate pe inregistrari (logice) sunt utilizate pentru a specifica structura generala a bazei de date si o descriere de nivel superior a implementarii acesteia. Principalul lor dezavantaj consta in faptul ca nu pun la dispozitie facilitati adecvate pentru specificarea exp1icita a constrangerilor asupra datelor, in timp ce modelelor de date bazate pe obiecte le 1ipsesc mijloacele de specificare logica a structurii, dar prezinta calitati semantice superioare, prin faptul ca permit utilizatorului sa specifice constrangerile asupra datelor.
Majoritatea sistemelor comerciale moderne sunt bazate pe paradigma relationala, in timp ce sistemele de baze de date de inceput se bazau fie pe modelele de baze de date in retea, fie pe cele ierarhice. Ultimele doua modele impun inca utilizatorului sa posede cunostinte despre baza de date fizica accesata, in timp ce primul asigura un grad inalt de independenta de date. Prin urmare, in timp ce sistemele relationale adopta o abordare declarativa pentru procesarea bazei de date (adica specifica ce date vor fi regasite), sistemele in retea si ierarhice adopta o abordare navigationala (specificand cum vor fi regasite datele).
Comparatia modelelor de date
Modelul de date ierarhic este, cronologic, primul model de date utilizat in construirea SGBD-urilor. Foloseste doua forme de structurare a datelor: tipurile de inregistrari si legaturile explicite. Legaturile sunt restrictionate astfel incat sa se incadreze intr-o structura de arbore ordonat. Astfel de structuri au proprietatea ca sunt linearizabile, de exemplu ordonand inregistrarile prin parcurgerea in preordine a arborelui de definitie ierarhic. 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 mare eficienta. Modelul de date ierarhic esueaza insa, atunci cand se pune problema modelarii unei realitati care nu poate fi incadrata intr-o ierarhie. Totodata, nu exista o solutie satisfacatoare pentru reprezentarea legaturilor de tip m:n, iar rezolvarea unor interogari care nu se "potrivesc" structurii ierarhice predefinite, este, practic, imposibila (sau in cel mai bun caz prohibita).
Modelul de date retea este mai general decat modelul ierarhic, structura legaturilor explicite fiind arbitrara si reprezentata printr-un graf. Singura restrictie se refera la natura legaturilor care trebuie sa fie de tip functional, ceea ce face ca nici in modelul retea sa nu poata fi reprezentate direct legaturile de tip 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 interigare poate fi rezolvata eficient daca s-au prevazut pentru aceasta legaturile explicite necesare. Marele dezavantaj al modelului retea este acela ca pentru ap1icatiile 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, fiind accesibila doar unei categorii restranse de persoane, avand o anumita calificare profesionala.
O caracteristica comuna modelelor de date ierarhic si retea este folosirea limbajelor navigationale pentru formularea interogarilor. Limbajele navigationale se bazeaza pe utilizarea conceptului de cursor (sau pointer). Pointerul indica pozitia curenta in baza de date. Utilizatorul poate modifica pozitia pointerului 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, in general, "navigatia" pointerului pe lanturile de legaturi, ceea ce justifica numele generic al acestei clase de limbaje. De asemenea, in ambele modele sunt permise duplicatele, iar doua obiecte similare pot fi distinse, obiectele avand indentitate 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 ierarhic si retea, in modelul relational nu este valabil principiul identitatii obiectelor. Se mai spune ca modelul relational este orientat pe valoare, distinctia dintre doua inregistrari fiind facuta exclusiv pe baza valorilor atributelor componente.
Intre diferitele relatii nu exista legaturi explicite. Totusi, in timpul tratarii interogarilor, apare necesitatea de a realiza conexiuni intre diferite relatii. Acest lucru se realizeaza prin cuplarea dinamica a acestor relatii. Implementarea operatiilor de cuplare este destul de costisitoare din punctul de vedere al volumului de calcul si al necesarului de memorie. Din acest motiv realizarea unei implementari eficiente, care sa poata concura cu succes implementarile corespunzatoare celorlalte modele, s-a dovedit a fi destul de dificila. Este una din explicatiile aparitiei si extinderii relativ tarzii a modelului relational. A fost nevoie pentru aceasta atat de dezvoltarea echipamentelor de calcul si a dispozitivelor de memorare, cat si a tehnicilor de programare si de structurare a datelor.
Relativa (la ora actuala mai degraba aparenta) ineficienta a modelului relational este in schimb compensata de o serie de avantaje.
Simplitatea structurii 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. Caracteristic acestor limbaje este faptul 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 cazul celorlalte 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 cazul celorlalte modele. Intr-adevar limbajele de manipulare date, corespunzatoare modelelor retea prevad 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, cu toate ca, in esenta, semnificatia reala a operatiilor este aceeasi.
Flexibilitate: in bazele de date relationale nu exista legaturi explicite, dar toate legaturile posibile intre multimile de entitati sunt realizabile prin cuplarea dinamica a relatiilor. Inseamna ca utilizatorul poate formula interogari pe care proiectantul bazei de date nu le-a prevazut in mod explicit. Descrierea unei baze relationale consta in principal din descrierea relatiilor (domenii, atribute s.a.m.d.), 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 bazei de date, iar necesitatea de a raspunde unor noi interogari presupune, de cele mai multe ori, adaugarea de noi elemente de structura si/sau modificarea celor existente.
Principalele caracteristici ale celor 3 modele de date prezentate sunt sintetizate comparativ in tabelul de mai jos:
Model ierarhic |
Model retea |
Model relational |
|
Forme de structurare a datelor |
Tipuri de inregistrari + Legaturi explicite |
Tipuri de inregistrari + Legaturi explicite |
Relatii |
Model conceptual |
Arbore de definitie ierarhic |
Diagrama structurii de date |
Schema relationala |
Reprezentare legaturi 1:N |
Conexiuni de tip functional |
Conexiuni de tip functional |
Propagarea cheilor |
Reprezentare legaturi M:N |
Multiplicarea inregistrarilor |
Tipuri de legatura |
Scheme de relatie separate |
Identitatea proprie a obiectelor |
DA |
DA |
NU |
Formularea interogarilor |
Limbaj navigational |
Limbaj navigational |
Limbaj relational |
Incercarile de a furniza un model de date care sa reprezinte mult mai fidel "lumea reala" au fost clasificate liber ca modelari de date semantice. Unele dintre cele mai faimoase modele sunt:
modelul de date semantic (Hammer si McLeod, 1981);
modelul de date functional (Shipman, 1981);
modelul de asociere semantica (Su, 1983).
Ca raspuns la cresterea complexitatii aplicatiilor de tip baza de date, au aparut doua modele de date "noi": modelul de date orientat spre obiecte (OODM - Object-Oriented Data Model) si modelul de date relational cu obiecte (ORDM - Object-Relational Data Model), care intr-o etapa precedenta, fusese denumit modelul de date relational extins (ERDM - Extended Relational Data Model). Totusi, spre deosebire de modelele precedente, compozitia reala a acestor modele nu este clara.
Figura Istoricul modelelor de date
Principalele caracteristici ale modelelor de date relationale cu obiecte si orientate spre obiecte sunt sintetizate comparativ in tabelul de mai jos:
Caracteristica |
Modelul de date relational cu obiecte |
Modelul de date orientat spre obiecte |
Identitatea obiectelor (OIDS) |
Sustinuta prin intermediul tipului referinta |
Sustinuta |
Incapsularea |
Sustinuta prin intermediul tipurilor definite de utilizator |
Sustinuta, dar intrerupta de interogari |
Mostenirea |
Sustinuta (ierarhii separate pentru tipurile definite de utilizator si tabele |
Sustinuta |
Polimorfismul |
Sustinut (invocarea functiilor definite de utilizator se bazeaza pe modelul generic al functiilor) |
Sustinut ca intr-un limbaj de programare orientat spre obiecte |
Obiectele complexe |
Sustinute prin intermediul tipurilor definite de utilizator |
Sustinute |
Relatiile |
Suport solid, cu constrangeri de integritate referentiala definite de utilizatori |
Sustinute (de exemplu, utilizand bibliotecile de clasa) |
Modelele de date fizice descriu cum sunt stocate datele pe calculator, ceea ce reprezinta informatii cum ar fi structurile si ordinea inregistrarilor si caile de acces. Nu exista la fel de multe modele de date fizice ca cele logice, cele mai comune fiind modelul unificator si memoria cadru.
Printr-o examinare a arhitecturii cu trei niveluri, se poate observa ca schema conceptuala este 'inima' bazei de date. Ea suporta toate vederile externe si este, la randul ei, suportata de schema interna. Totusi, schema interna este doar o implementare fizica a schemei conceptuale. Schema conceptuala trebuie sa fie o reprezentare completa si corecta a cerintelor intreprinderii privind datele. Daca acest lucru nu este realizat, o serie de informatii despre intreprindere vor lipsi sau vor fi reprezentate incorect, ceea ce va crea dificultati in implementarea completa a uneia sau a mai multor vederi externe.
Modelarea conceptuala sau proiectarea conceptuala a bazei de date este procesul de construire a unui model de informatii utilizate intr-o intreprindere, care este independent de detaliile de implementare, cum ar fi SGBD-ul tinta, programele aplicatie, limbajele de programare sau orice alte tipuri de consideratii fizice. Acest model se numeste model de date conceptual. In literatura de specialitate, modelele conceptuale sunt denumite si modele logice. Totusi, modelul conceptual este independent fata de toate detaliile de implementare, in timp ce modelul logic presupune cunoasterea modelului de date care sta la baza SGBD-ului tinta.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 3147
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved