Datele sunt fapte culese din lumea reală pe bază de observaţii şi măsurători. Informaţia este rezultatul interpretării datelor de către un anumit subiect şi conferă acestuia capacitatea de a lua decizii. În acest context, un rol important revine bazelor de date, în calitate de mijloc principal de stocare şi regăsire a datelor, şi, deci, implicit, şi de furnizare a informaţiei.
Bazele de date reprezintă o structură organizată de date, creată astfel încât să asigure accesul la acestea în timp rapid şi în mod eficient.Caracteristica principală a aplicaţiilor de baze de date constă în faptul că accentul este pus pe operatiile de memorare şi regăsire, efectuare asupra unor volume mari de date, şi mai puţin asupra asupra operaţiilor de prelucrare a acestora, cum este în alte domenii.Principala operaţie care apare în orice bază de date este cea de regăsire a datelor în scopul obţienrii de informaţii.
Principala caracteristică a datelor unei aplicaţii de baze de date o constitue independenţa , care se traduce prin delimitarea clară între reprezentarea fizică a datelor şi imaginea pe care o are utilzatorul asupra acestor date. Asigurarea independeţei presupune adoptarea unei arhitecturi de baze de date organizate pe cel puţin trei nivele:
Nivelul intern (bază de date fizică ),
Nivelul conceptual (modelul conceptual, schema conceptuală),
Nivelul extern (modelul extern, subschemă, vedere).
Nivelul intern cunoscut şi sub numele de bază de date fizică, este o colecţie de fişiere, care conţin date fizice, împreună cu diverse structuri auxiliare menite să asigure accesul la aceste date. Baza de date fizică este rezidentă în memoria secundară a calculatorului .
Modelul conceptual constitue o abstractizare a unei părţi din lumea reală şi reprezintă descrierea structurii logice a datelor dintr-o bază de date. Fiecare bază de date are un model conceptual propriu prin care sunt numite şi descrise toate unităţile logice din baza dedate , împreună cu legăturile dintre acestea. Unităţile logice sunt concepte de tipul celor cu care operează utilizatorii bazei de date şi prin care îşi modelează aplicaţiile.
Un model conceptual cuprinde descrierea tuturor entităţilor unei baze de date, împreună cu legăturile existente între ele. O entitate este un conţinut de sine stătător, o realitate obiectivă care există prin ea însăşi. Între două mulţimi de entitîţi pot exista trei tipuri de legături:
1:1 1:N M:N
Fig. Tipuri de legături într-o tabelă
Relaţie 1:1 , când unei entităţi dintr-o mulţime îi corespunde o singură entitate din mulţimea corespondentă şi reciproc(relaţie de tip soţ-soţie).
Relaţie 1:N , când unei entităţi dintr-o mulţime îi corespund una sau mai multe entităţi din mulţimea corespondentă, dar mulţimii corespondente îi corespunde o singură entitate din prima mulţime (relaţie de tip tată-fiu).
Relaţie M:N , când unei entităţi din prima mulţime îi corespund una sau mai multe entităţi din a doua mulţime şi reciproc (relaţie de tip prieten-prieten).
Modelul extern poate fi definit ca o "bază de date virtuală ", care corespunde viziunii unui utilizator, sau a unui grup de utilizatori. De regulă, un model extern cuprinde o parte a unităţilor logice dintr-un model conceptual, dar poate conţine şi unităţi logice care nu sunt cuprinse în modelul conceptual şi care nu au corespondent direct în baza de date fizică.Termenul cel mai adesea folosit pentru modelul extern este acela de vedere. Prin modelul extern se realizează independenţa logică a datelor.Astfel, fiecărei vederi îi corespunde o descriere în termenii unităţilor logice din modelul conceptual.
Fig.1 Schema generală a unei baze de date
Literatura de specialitate sublinează existenţa mai multor modele de baze de date, care fac referire la modul de organizare al datelor şi de regăsire a informaţiei. Astfel, principalele modele utilizate în sistemele de gestiune a bazelor de date sunt :
Modelul de date ierarhic
Modelul de date relaţional
Modelul de date de tip reţea
Modelul de date ierarhic utilizează două forme de structurare a datelor: tipurile de înregistrări şi legăturile explicite. Diagrama structurii de date este un graf orientat, care reprezintă tipurile de înregistrări şi relaţiile dintre acestea.
Facultate
Personal Profesor Sala
Studenti
Modelele de date de tip reţea sunt bazate atât pe tabele cât şi grafuri corespunzătoare celor două forme de structurare a datelor folosite: tipurile de înregistrări şi legăturile explicite.
Modelul de date relaţional este cel care stă la baza celor mai multe dintre sistemele de gestiune ale bazelor de date comerciale moderne.Acest model de baze date are ca si principală caracteristică folosirea unor limbaje relaţionale. Limbajele relaţionale se caracterizează prin definirea de relaţii noi pe baza unor relaţii existente. O abordare mai detaliată a bazelode date relaţionale va fi prezentată un pic mai incolo.
Pornind de la această primă clasificare a bazelor de date , s-au dezvoltat şi alte clasificări ulterioare, în funcţie de noile tendinţe apărute in programare. Astfel , se impune şi prezentarea următoarei abordări a tipurilor de baze de date:
. Baze de date aplatizate;
. Baze de date relaţionale;
. Baze de date obiectuale;
. Baze de date obiectuale şi relaţionale.
Bazele de date aplatizate sunt fişiere simple alcătuite dintr-un tabel în care informaţia poate fi separată prin punct, virgulă sau punct şi virgulă.
Bazele de date relaţionale sunt alcătuite din mai multe tabele conţinând date simple, între care exsită anumite relaţii. Tabelele sunt alcătuite din linii şi coloane.
Bazele de date obiectuale stochează datele într-o formă mai mult obiectuală. Ele păstreză atributele şi informaţiile claselor, iar, uneori chiar şi metode în interiorul bazei de date.
Bazele de date obiectual relaţionale sunt baze de date relaţionale ale căror date sunt stocate în tabele, dar care au un front end(!!!!!) care converteşte obiectele în date şi datele în obiecte , astfel încât din punct de vedere al aplicaţiei , datele sunt stocate sub formă de obiecte.
Bazele de date relaţionale includ un program server care serveşte clienţi la distanţă şi administrează baza de date. Ele pot folosi o metodă standard de comunicare între cleint şi server care permite managementul datelor cum ar fi Structured Querz Language pentru serverele de baze de date relaţionale.
Cele mai utilizate baze de date la momentul actual sunt bazele de date relaţionale (Realational Database Management Systems) . Cu toate acestea, se preconizează că bazele de date obiectuale vor depăşi în viitor bazele de date relaţionale din punct de vedere al utilzării.
Dacă bazele de date relaţionale sunt folosite pentru a stoca obiecte, obiectul trebuie mai întâi descompus în părţi, normalizat şi plasat în tabele. Aceste operaţiuni necesită timp suplimentar pentru a scrie codul. De asemenea, pentru a fi refolosit, obiectul trebuie reasamblat.
Multe baze de date relaţionale rulează pe un singur server şi nu folosesc o arhitectură distribuită.
Bazele de date obiectuale folosesc un limbaj de baze de date obiectual (Object Query Language - OQL) ca si limbaj standard pentru comunicare. Ele pot folosi o aplicaţie de interfaţă (API ) pentru a permite aplicaţiei să controleze datele , sau pot folosi atât API cât şi OQL. Bazele de date orientate obiect sunt numite şi Sisteme de Management a Bazelor de date obiectuale (Object Database Management Systems -ODMS). Ele stocheză datele sub formă de obiecte, care sunt folosite apoi în limbaje cum ar fi Smalltalk, C++, Java şi altele. Obiectele sunt alcătuite din următoarele componente:
Atribute : datele care definesc caracteristicile unui obiect. Aceste date pot fi date simple, cum ar fi întregi, şiruri de caractere sau numere reale, sau pot fi referinţe la obiecte complexe.
Metode: definesc purtarea unui anumit obiect şi reprezintă ceea ce este numit în mod formal procedură sau funcţie.
Din acest motiv obiectele conţin atât cod executabil cât şi date. Un alt termen care trebuie menţionat aici este cel de clase. Clasele sunt folosite în programarea orientată obiect pentru a defini datele şi metodele pe care obiectul le va conţine. Clasa nu conţine ea date şi metode, dar defineşte datele şi metodele pe care le va conţine obiectul. Pentru a pune obiectele în baze de date relaţionale, acestea trebuie descrise în termeni de şiruri de caractere, întregi sau numere reale. De exemplu în cazul unui avion, aripa trebuie descrisă sub forma unui tabel care să conţină informaţii privitoare la dimensiuni şi caracteristici. Fuselajul trebuie introdus în alt tabel, roţile în altul , etc.
În bazele de date tradiţionale, datele manipulate de aplicaţie sunt temporare iar cele din baza efectivă sunt permanente. În bazele de date orientate obiect, aplicaţia poate manipula atât date permanente cât şi date temporare. În acest sens este bine de precizat că se impune folosirea bazelor de date obiectuale atunci când se lucrează cu date complexe sau cu relaţii complexe (aici se includ relaţiile de tip many-to-many). Bazele de date obiectuale nu trebuie folosite atunci când avem câteva tabele sau când avem volume mari de date simple de tranzacţionat. Bazele de date obiectuale se integrează bine cu următoarele tipuri de aplicaţii: aplicaţii CAS (CASE- Computer Aided Software Engineering) , aplicaţii multimedia, proiecte obiectuale care suprotă modificări frecvente, etc.
Referitor la metodele de stocare a datelor, este util de precuzat că acestea sunt în număr de două, în funcţie de producători:
fiecare obiect are un ID unic şi este definit ca o subclasă a clasei de bază, folosind moştenirea pentru a determina atributele.
Prin folosirea mapării memoriei virtuale pentru depozitarea obiectelor şi managementul acestora.
Bazele de date relaţionale sunt cele mai folosite la momentul actual. Cu toate acestea, odată cu modificările apărute în programare în general, anumite caracteristici ale bazelor de date trebuie să se modifice şi ele. Programarea orientată obiect a devenit tot mai utilizată , motiv care o transformă într-o modalitate mult mai practică de stocare a datelor pe termen lung. Acest tool permite interfaţarea facilă cu limbajele de programare obiectuale amintite mai sus. Per ansamblu, se impune o standardizare a limbajelor de programare utilizate, care să permită utilzarea lor facilă în cadrul unor aplicaţii diverse precum şi schimbul de informaţii între respectivele aplicaţii şi baza de date.OQL a fost dezvoltat pentru acest scop, dar se pare că nu este încă pe deplin acceptat de către dezvoltatorii de baze de date orientat obiect. Piaţa bazelor de date obiectuale este încă destul de instabilă, produsele de acest gen fiind deocamdata dificil de acceptat de către producătorii de soft.
Bazele de date relaţionale sunt acele structuri de date care reţin informaţia în tabele bidimensionale. Tabelele sunt alcătuite din linii (care conţin înregistrări sau obiecte) şi coloane (câmpuri sau atribute). Unităţile de date aflate la intersecţia liniilor cu coloanele se numesc celule şi reprezintă valori ale atributelor. Informaţia este stocată sub formă de structuri simple de date cum ar fi întregi, numere reale sau şiruri de caractere. Nu pot fi stocate valori multiple în aceeaşi celulă. Toate coloanele bazei de date sunt normalizate, astfel încât informaţia nu se repetă mai mult decât este necesar. Toate coloanele tabelei depind de o cheie primară, care are valori unice pentru fiecare rând al coloanei. Odată ce coloana specifică este identificată, datele pentru una sau mai multe linii asociate coloanei respective pot fi obţinute sau modificate.
Bazele de date relaţionale sunt seturi de tabele. Un fişier cu un singur tabel nu poate fi considerat o bază de date relaţională. Un server de baze de date relaţional nu reprezintă acelaşi lucru cu o bază de date relaţională. O bază de date relaţională poate fi un fişier cu mai multe seturi de tabele. Un server de baze de date relaţionale include posibilitatea de a servi cereri privtoare la date primite de la clienţi.
Serverele de baze de date relaţionale folosesc un limbaj structurat de interogare .
Noţiune Definiţie
Relaţii Fiind dată o colecţie de mulţimi D1,D2..Dn (nu neapărat distincte), spunem ca R este o relaţie pe aceste n mulţimi dacă există o mulţime de n tuple ordonate (d1,d2,....dn) astfel încât d1 aparţine lui D1, d2 aparţine lui D2,...dn aparţine lui Dn.
Domenii Un domeniu reprezintă un ansamblu de valori admisibile pentru o componentă a unei relaţii.
Două domenii sunt declarate compatibile dacă ele sunt compatibile din punct de vedere semantic, deci dacă mulţimile de valori care le definesc nu sunt disjuncte.
Atribute Un atribut este un domeniu cu nume, sau , mai precis, o utilizare sub un nume oarecare a unui domeniu.
Cheie Numim cheie a unei relaţii R un subset K al atributelor lui R care satisface proprietăţile: identificare unică şi neredondanţă.
Ideea centrală care stă la baza criteriilor de proiectare ale unei baze de date relaţionale este cea de dependenţă a datelor. Aceasta se referă la faptul că între atributele unei relaţii sau între atribute din relaţii pot exista anumite legături logice (numite dependenţe) , iar aceste legături influenţează proprietîţile schemelor de relaţie în raport cu operaţiile curente care intervin în timpul explotării bazei de date.Aceste dependeţe între schemele de relaţie determină anumite anomalii legate de operaţiile de adăugare, ştergere şi actualizare. Aceste anomalii pot fi evitate dacă se înlocuiesc schemele de relaţii date prin anumite scheme de relaţii echivalente care poartă numele de forme normale. Formele normale constitue criteriul de ghidare a proiectantului bazei de date privitor la alegerea schemelor de relaţie.
Forma normală Definiţia
Forma normală I O relaţie R este în prima formă normală, dacă şi numai dacă toate atributele sale iau valori atomice.
Forma normală II O relaţie R este în a doua formă normală dacă este în FN I şi orice atribut neprim este total dependent faţă de orice cheie a relaţiei.
Forma normală III O relaţie R este în a treia formă normală dacă este în FN III dacă este în FN II şi nici un atribut neprim nu este funcţional dependent faţă de un alt atribut neprim al relaţiei.
Forma normală Boyce-Codd O relaţie este în FNBC dacă pentru orice dependenţă funcţională X->a din cadrul relaţiei R , unde A este un atribut care nu face parte din X, atributul(posibil compus) X este o cheie în R sau include o cheie din R.
Prin procesul de normalizare se realizează eliminarea din schemele de relaţie a dependenţelor cu scopul de a produce o schemă relaţională având proprietăţi mai bune din punctul de vedere al redondanţei datelor ţi al posibilellor anomalii care pot sş apară ţn cazul operaţiilor de adăugare, ştergere şi actualizare.