Modelarea datelor
Modelarea datelor reprezinta procesul de analiza, reprezentare si vizualizare a entitatior, relatiilor si regulilor de la nivelul unui sistem informational. Sunt descrise astfel tipurile de date utilizate in cadrul sistemului, relatiile dintre aceste tipuri de date, modul in care datele pot fi organizate, dar si formatele si caracteristicile lor. Pentru a reprezenta datele si modul in care acestea sunt puse in legatura, procesul de modelare poate include simboluri, descrieri text sau diagrame.
In urma procesului de modelare a datelor este creat un model de date, adica un sablon care descrie intr-o maniera abstracta modul in care datele sunt distribuite la nivelul sistemului. Prin intermediul unui model de date este asigurata calitatea datelor si coerenta la nivelul denumirilor si valorilor implicite. Un model de date va pune accent pe datele necesare la nivelul sistemului si pe modul de organizare a acestora, si nu pe operatiile care vor fi efectuate cu aceste date.
Orice actor care interactioneaza cu sistemul informational (dezvoltatori de aplicatii, proiectanti de baze de date, analisti de sistem) trebuie sa detina cunostinte de baza cu privire la modelele de date. Aceste cunostinte trebuie sa permita crearea unui model de date, parcurgerea si intelegerea unui model existent, utilizarea adecvata a tehnicilor de modelare a datelor. Prin utilizarea modelelor de date se pot stabili astfel, care sunt datele care trebuie sa fie colectate, cum vor fi ele reprezentate, stocate si utilizate.
Una din principalele provocari in modelarea datelor o reprezinta necesitatea de a asigura un echilibru intre nevoile aplicatiilor, performantele motoarelor de stocare si modul de interogare a datelor.
Modele de date sunt concepute pentru a putea fi intelese cat mai usor. In cele mai multe cazuri este disponibila inclusiv o reprezentare grafica a acestora (o diagrama). Prin intermediul modelelor de date, si in special a diagramelor acestora, toti actorii de la nivelul unei organizatii pot intelege si interactiona cu datele intr-o maniera mult mai eficienta.
De exemplu, pentru a implementa o baza de date a programelor de studii care ruleaza la nivelul unor universitati, este necesara intelegerea datele pe care aceste organizatii le detin la un moment dat, dar si intelegerea modului in care aceste date sunt utilizate. Modelarea datelor ofera astfel o baza pentru intelegerea proceselor de la nivelul organizatiilor si permite imbunatatirea lor.
Tipuri de modele de date
In functie de nivelul de abstactizare, modelele de date pot fi clasificate in trei categorii: modele de date conceptuale, modele de date logice, modele de date fizice. Fiecare tip de model de date are un scop diferit in procesul de modelare a datelor si detine proprile avantaje.
Modele de date conceptuale
Un model de date conceptual ofera o imagine de ansamblu (vizualizare de nivel inalt) cu privire la entitatile unui sistem, modul de organizare a acestora si regulile care guverneaza procesele de la nivelul sistemului. De exemplu, un model de date care descrie programele de studii din universitati va contine facultati, domenii de studiu, programe de studiu. O regula (constrangere) de la nivelul sistemului ar putea fi data de faptul ca intr-un domeniu de studii pot fi propuse mai multe programe de studiu.
Nu exista un format standard pentru modelele conceptuale, dar utilizarea acestora permite partilor interesate sa stabileasca scopul si cerintele unui proiect de date.
Modele de date logice
Un model de date logic reprezinta adesea urmatorul pas dupa crearea unui model de date conceptual. Un model de date logic defineste tipurile de entitati logice, atributele care descriu aceste entitati si relatiile dintre entitati. Pentru exemplul precizat anterior, un model logic precizeaza faptul ca programele de studii sunt identificate printr-un id (idPS), si detin o denumire, un ciclu de studii (licenta sau master), un tip de program (zi, invatamant la distanta sau invatamant cu frecventa redusa) si o limba de studiu (romana, engleza, germana, franceza).
Modele de date logice nu ofera insa cerinte tehnice de sistem. Proiectantii de baze de date utilizeaza modelarea logica pentru a pregati implementarea unei baze de date. Un model de date logic se situeaza intre nivelul fizic si cel conceptual si permite ca reprezentarea logica a datelor sa fie separata de stocarea fizica a acestora.
Modele de date fizice
Un model de date fizic este utilizat pentru a proiecta schema interna a unei baze de date, oferind detalii specifice unui anumit sistem de gestiune a bazelor de date. Un astfel de model precizeaza detalii cu privire la tipurile de date corespunzatoare atributelor, necesitatile de stocare, valorile implicite, redundanta datelor, cheile primare si externe (permit stabilirea si mentinerea asocierilor).
Modele fizice sunt create de administratorii bazelor de date si au ca scop final implementarea efectiva a bazelor de date.
Tehnici de modelare a datelor
Evolutia sistemelor de baze de date este strans legata de evolutia tehnicilor de modelare a datelor si are la baza nevoia de a modela cat mai precis si natural lumea reala.
In proiectarea bazelor de date prezinta interes urmatoarele modele specializate de date:
• modelul ierarhic;
• modelul retea;
• modelul relational;
• modelul entitate-asociere;
• modelul orientat pe obiect.
Modelul ierarhic
Modelul ierarhic permite organizarea datelor prin intermediul unei structuri ierarhice de tip arbore (tree). A fost primul model de date utilizat de catre IBM, in anii ’60, pentru dezvoltarea unui sistem de baze de date comercial, Information Management System (IMS).
Cu ajutorul acestui model structura unei baze de date poate fi reprezentata sub forma unui arbore directionat, in care nodurile reprezinta tipurile de inregistrari, iar legaturile intre noduri specifica relatiile de asociere intre inregistrari.
Desi aceasta tehnica de modelare a datelor nu este la fel de eficienta precum modelele de date dezvoltate ulterior, este inca utilizata in sisteme precum Extensible Markup Language (XML).
Modelul retea
Modelul retea are la baza o structura de reprezentare de tip retea si permite relatii de asociere de tipul 1:1, 1:N si N:M. A fost propus de C.W. Bachman si standardizat de catre Data Base Task Group (DBTG) in anul 1969. Alaturi de modelul de date ierarhic, modelul retea face parte din categoria sistemelor de date de tip navigational. Extinde modelul ierarhic, oferind posibilitatea realizarii de asocieri multiple intre inregistrari.
Modelul retea prezinta datele ca si colectii de inregistrari (noduri), in timp ce relatiile dintre acestea sunt specificate prin directiile sau muchiile unui graf. Acest model introduce o noua structura pentru reprezentarea grupurilor de date interconectate, numita set, care detine trei componente: un nume, o inregistrare de tip proprietar si o inregistrare de tip membru. Un membru poate avea rol in mai multe structuri de tip set, deoarece modelul retea ofera suport pentru conceptul de parinti multipli.
Modelul relational
Modelul relational permite organizarea datele sub forma unor tabele interconectate alcatuite din linii si coloane. Tabelele, cunoscute si sub numele de relatii, sunt formate din seturi de inregistrari (tupluri, randuri, linii), care la randul lor sunt constituite din unul sau mai multe atribute (coloane, campuri).
Modelul relational a fost propus in anul 1970 de catre E.F. Codd si constituie cea mai populara modalitate de reprezentare a datelor. E.F. Codd a construit acest model avand la baza conceptele matematice pe care le-a prezentat in lucrarea A Relational Model of Data for Large Shared Databases.
Modelul relational reprezinta baza pentru cele mai cunoscute sisteme de gestiune a bazelor de date de tip relational (RDBMS): Oracle, MySQL, Microsoft SQL Server, PostgreSQL, IBM DB2, SQLite, Microsoft Access, MariaDB, Informix.
Modelul entitate-asociere
Modelul Entitate-Asociere (Entity-Relationship) este un model logic introdus in anul 1976 de Peter Chen. Conceptele utilizate in cadrul acestui model sunt: entitatea, atributul si asocierea.
O entitate este o colectie logica de elemente, care poate reprezenta orice instanta a lumii reale: individ, lucru, concept. Corespondentul fizic al unei entitati il reprezinta tabelul unei baze de date relationale. Elementele care descriu proprietatile unei entitati se numesc atribute. Un atribut reprezinta o caracteristica descriptiva sau cantitativa a unei entitati. Corespondentul fizic al unui atribut il reprezinta coloana unui tabel. O asociere reprezinta o legatura logica intre doua entitati. Exista trei tipuri de asocieri: unu-la-unu (1:1), unu-la-multi (1:N), respectiv multi-la-multi (M:N).
Modelul orientat pe obiecte
Modelul orientat pe obiect defineste orice entitate din lumea reala prin intermediul unor structuri de date independente, care contin colectii de proprietati. Acest model de date utilizeaza concepte precum: clasa, obiectul, abstractizarea, incapsularea, mostenirea sau polimorfismul. Un obiect poate fi definit si intretinut independent de alte structuri asemanatoare si incapsuleaza atat starea (atributele), cat si comportamentul (ansamblul metodelor pe care le poate realiza).
Conceptele de baza ale modelului orientat pe obiect au fost formulate si standardizate de catre Object Data Management Group, incepand cu anii ‘90. Modelul orientat pe obiect este utilizat si in domeniul bazelor de date, unde reprezinta baza pentru o serie de sisteme de gestiune a bazelor de date orientate pe obiect (OODBMS): Objectivity/DB, ObjectStore, Caché, ZODB, Versant Object Database.