Baze de date
În condiřiile exploziei informařionale actuale, unica soluřie de rezolvare a necesităřilor de informare si prelucrare rapidă a unei cantităři mari de date este folosirea calculatorului. Pentru a se putea gestiona volume mari de date sunt necesare nu numai resurse fizice (calculatoare rapide, cu memorie internă si externă de capacitate mare), ci mai ales programe performante si metode eficiente de organizare a colecřiilor de date, care să permită regăsirea rapidă a informařiilor.
Schema generală de operare cu ajutorul calculatorului asupra datelor presupune prelucrarea acestora prin intermediul unor algoritmi astfel încât să se obřina rezultatele dorite. Algoritmii pot fi conřinuři în produse soft consacrate, în programe concepute de utilizatori si/sau în diverse metode de calcul precizate de acestia, cu ajutorul produselor soft.
Studiul bazelor de date este un domeniu al informaticii care oferă modele de organizare a volumelor mari de date si metode de prelucrare a acestora. Metodele teoretice au fost implementate de către informaticieni în produse soft care prelucrează volume mari de date - sisteme de gestiune a bazelor de date. Astfel, la dispoziřia utilizatorilor neprofesionisti, se află produse soft performante si accesibile cu care acestia să îsi poată gestiona colecřiile de date cu un efort minim. În acelasi timp, utilizatorii avizaři sau profesionisti pot folosi mediile de gestiune a bazelor de date pentru a realiza prelucrări mai complexe si chiar pentru a concepe programe proprii.
1. Nořiuni folosite în teoria bazelor de date
O dată este o valoare constantă (număr, caracter, sir de caractere etc.).
Un identificator (atribut) este un nume de dată care diferenřiază datele (nume de variabilă).
Se consideră că o informařie este o pereche (dată, atribut de dată), adică o dată căreia i-a fost asociată o anumită semnificařie.
Un tip de dată se referă la o mulřime de valori posibile si la o mulřime de operařii posibile (întreg, real, complex, dată calendaristică etc.).
O colecřie de date conřine, relativ la un algoritm sau metodă de prelucrare, date iniřiale, interne si finale. Datele din asemenea colecřii pot fi organizate în diverse forme, care influenřează eficienřa algoritmilor de prelucrare a datelor din colecřiile respective.
O structură de date este o colecřie de date cu o anumită organizare (structură). Exemple de structuri de date: date elementare (numere, siruri de caractere, date logice etc.), siruri - succes 919j94j iuni finite de date elementare, matrice, articole (formate din câmpuri sau atribute, fiecare din acestea putând lua câte o valoare), liste, arbori, grafuri etc.
O bază de date conřine o colecřie de date aflate în interdependenřă, memorată în fisiere si o descriere a structurilor de date folosite (memorată în aceleasi fisiere sau în fisiere auxiliare), de obicei sub formă tabelară. Uzual, structura unei baze de date se referă la atributele datelor conřinute în fisierele bazei de date (câmpurile) si caracteristicile acestora (tip, dimensiune etc.).
Un sistem de gestiune a bazelor de date (SGBD) este o mulřime de programe necesare pentru prelucrarea bazelor de date - uzual, aceste programe sunt încorporate într-un produs soft performant si cu o interfařă de utilizare accesibilă. Exemple: Access, FoxPro, dBase etc.
O bancă de date este un sistem de organizare, prelucrare si teleprelucrare a datelor format dintr-o bază de date (sau mai multe) si un sistem de gestiune a bazelor de date ca mijloc operativ de prelucrare a datelor.
2. Funcřionarea unei baze de date
Exploatarea unei baze de date aflate pe un suport specific (magnetic), de către un utilizator, prin intermediul unui sistem de calcul, având la dispoziřie un SGBD, parcurge uzual următoarele etape:
1. Utilizatorul, aflat la un terminal electronic, pune o "întrebare" sau lansează o cerere de date, referitoare la informařiile din baza de date. Întrebarea se poate pune într-un limbaj de cereri specific SGBD-ului cu care se lucrează (dacă utilizatorul este familiarizat cu acest limbaj - de exemplu, SQL, FoxPro, dBase) sau utilizatorul poate fi asistat în adresarea cererii de date de către SGBD (produsul soft pe care îl foloseste) printr-un sistem de meniuri, butoane sau ferestre de dialog (obiecte de control).
2. Întrebarea este analizată de către calculator, de fapt de SGBD, iar dacă este corectă, se încearcă (SGBD) să i se dea răspuns prin accesarea informařiilor din baza de date. Răspunsul va fi constituit din mulřimea datelor cerute de utilizator, care verifică criteriile specificate de acesta.
Acest proces de lansare a unei cereri de date care va fi satisfăcută prin furnizarea datelor care satisfac proprietăřile cerute se numeste interogarea bazei de date.
3. Răspunsul la cererea de date se va afisa pe ecran, se va tipări la imprimantă sau se va memora într-un fisier.
Timpul scurs după lansarea cererii de date si până la satisfacerea acesteia se numeste timp de răspuns.
În contextul prelucrărilor pentru care se proiectează o bază de date, se urmăreste micsorarea timpului de răspuns. Acest obiectiv se poate realiza prin:
- căutarea unor modele cât mai performante de organizare a informařiilor; adeseori aceste modele necesită memorarea unor informařii suplimentare. De exemplu, o ordonare eficientă a datelor după valorile unui atribut (câmp cheie) se poate realiza prin atasarea unui tabel de index (vezi 4.)
- cresterea performanřei algoritmilor de prelucrare.
În general, diminuarea timpului de răspuns sau cresterea vitezei de prelucrare si încercarea de a folosi un spařiu de memorie cât mai mic sunt obiective care nu se pot atinge simultan dincolo de o limită rezonabilă a performanřei, în sensul că un algoritm mai rapid va folosi în general informařii suplimentare (deci mai multă memorie).
3. Câteva principii teoretice de organizare a bazelor de date
Structura si conřinutul unei baze de date complexe pot fi privite din câteva puncte de vedere teoretice, referitoare la aspecte de proiectare si utilizare a ei.
Structura virtuală este totalitatea structurilor de date folosite în modelul de organizare a bazei de date. Ea este cunoscută de către proiectantul bazei de date si se păstrează în tabele sau fisiere ale bazei de date; acestea vor fi consultate de către programele aplicative (structura nu mai trebuie descrisă în programe).
Structura logică este partea din structura virtuală pe care trebuie să o cunoască (de care are nevoie) fiecare utilizator sau program. Evident, există mai multe structuri fizice, care se pot intersecta în funcřie de obiectivele de exploatare a bazei de date de cărte fiecare utilizator. Reuniunea structurilor logice formează structura virtuală.
Structura fizică este formată din fisierele de pe suport (uzual magnetic) pe care s-a memorat colecřia de date.
Acest punct de vedere ierarhic asupra unei baze de date introduce câteva avantaje reflectate în exploatarea bazei de date. Acestea se concretizează în:
- independenřa logică care apare între structurile logice si structura virtuală: în urma schimbării structurilor logice, structura virtuală se poate modifica fără ca programele aplicative să fie influenřate. Metodele de acces la date se pot îmbunătăři periodic iar baza de date se poate dezvolta în etape.
- independenřa fizică care apare între structura virtuală si cea fizică: Structura fizică, respectiv modul de organizare a fisierelor pe suport, se poate modifica fără schimbarea structurii virtuale si deci a programelor de aplicařie.
Programele de aplicařie au acces la date prin prin consultarea tabelelor sau fisierelor care descriu structura virtuală a bazei de date si a procedurilor de acces la date.
4. Modelul relařional al bazelor de date. Moduri de organizare a fisierelor
Vom introduce acest concept printr-un exemplu simplu. Presupunând că avem nevoie de datele personale ale unor studenři pentru diverse prelucrări, cea mai simplă modalitate de a le reřine ar fi un tabel de forma:
NrMatricol |
Nume |
Prenume |
Oras |
Adresa |
DataNasterii |
Georgescu |
George |
Huedin |
str. Mare nr. 3 | ||
Andrei |
Calina |
Cluj |
str. Albini nr 105 | ||
Marian |
Ana |
Dej |
str. Gherlei nr.2 | ||
Ionescu |
Ion |
Cluj |
str. Decebal nr.5 |
Un asemenea tabel este un model de fisier care să conřină o bază de date. Atributele datelor se numesc câmpuri (prima linie din tabel); acestea conřin date de acelasi tip care apar sub forma unei coloane. Totalitatea câmpurilor (o mulřime de atribute) formează un articol. Fiecărui câmp dintr-un articol îi poate corespunde o mulřime de valoari de acelasi tip; în modelul relařional - o date elementare (conform tabelului). Fiecare set de valori ale cîmpurilor formează o înregistrare (linii în tabel).
Un câmp cu rol de identificare se numeste cheie. Numele câmpurilor, împreună cu caracteristicile lor (tip, dimensiune etc.) alcătuiesc structura fisierului de tip bază de date; ea se reřine pe suport alături de datele din înregistrări (sub forma unui antet al fisierului).
Elementaritatea datelor din asemenea baze de date simplifică stabilirea de relařii între tabele. De exemplu, dacă există prelucrări în care sunt necesare notele si mediile studenřilor (pentru simplificarea exemplului, vom lua în considerare doar media), avem două alternative de reřinere a noilor informařii: în acelasi fisier sau într-unul nou. Dacă numărul de înregistrări si de câmpuri ale unui tabel este mare si noile date sunt prelucrate preponderent separat de cele deja introduse, este recomandabilă crearea unui noi fisier pentru a-i asigura o viteză de acces mai mare. Studenřii sunt identificaři prin numărul matricol, deci nu mai este necesară reřinerea numelui.
NrMatricol |
Media |
Se observă că între cele două tabele se realizează simplu o relařie, făcând o corespondenřă între înregistrările care au aceeasi valoare a câmpului NrMatricol.
Modelul relařional al bazelor de date a fost introdus de E. F: Codd în 1970 si dezvoltat ulterior. Prezentăm în continuare definiřia matematică riguroasă a nořiunii de relařie.
Fie A1, A2, ..., An atribute iar Di - domeniul de valori pentru atributul Ai, i=1,...,n. O relařie R este o mulřime de elemente care sunt tupluri de valori atribute, adică o mulřime R D1 D2 Dn. Relařia se notează R[A1,A2,...,An].
Elementele relařiei R |
A1 |
Aj |
An |
||
r1 |
d11 |
d1j |
|
d1n |
|
ri |
di1 |
dij |
din |
||
rm |
dm1 |
dmj |
dmn |
Modelul relařional al unei baze de date constă dintr-o colecřie de relařii ce variază în timp (prin operařii de adăugare, stergere, actualizare).
Accesul la înregistrările unui fisier poate fi secvenřial dacă se parcurg consecutiv toate înregistrările situate înaintea celei căutate sau direct, la o anumită înregistrare. Operařia de căutare presupune găsirea înregistrărilor cu o anumită valoare a cheii (după care se face căutarea).
Există câteva moduri de organizare a fisierelor baze de date care, desi nu sunt totdeauna evidente pentru utilizator, pot influenřa realizarea anumitor operařii. Organizările secvenřială si secvenřial indexată apar frecvent în fisierele baze de date, fără să fie însă numite explicit.
Organizarea secvenřială presupune reřinerea înregistrărilor consecutive pe suport.
Organizarea secvenřial-indexată realizează o ordonare logică a înregistrărilor - mult mai eficientă decât cea fizică, efectivă - prin atasarea unui tabel de index (fisier) care conřine valorile ordonate ale unei chei (câmpul după care se face ordonarea) si adresele înregistrărilor pe suport. De exemplu, fisierul cu studenři se poate ordona fără a aplica un algoritm complex care să schimbe înregistrările între ele, prin atasarea tabelului
NrMatricol |
Nr.Inregistrare |
Căutarea unei persoane după numărul matricol va fi mai rapidă într-o asemenea structură fiindcă numerele matricole sunt ordonate iar apoi se poate face un acces direct.
Organizarea directă presupune distribuirea înregistrărilor în clase cărora să le corespundă adrese pe suport pe baza valorilor unei chei, astfel încât poziřia să se poată regăsi direct în funcřie de valoarea cheii.
5. Funcřiile sistemelor de gestiune a bazelor de date
Orice SGBD, ca ansamblu de programe (proceduri) care gestionează colecřiile de date, trebuie să ofere mecanisme de realizare a următoarelor operařii:
definirea bazei de date se realizează într-un limbaj specializat de definire a datelor si se referă la:
stabilirea structurii virtuale, respectiv a structurilor de date necesare în funcřie de modelul de organizare a bazei de date si a tehnicilor de validare a datelor (stabilirea proprietăřilor pe care trebuie să le aibă datele care vor fi introduse în baza de date astfel încât să fie interzisă încărcarea bazei cu date incorecte)
definirea structurii logice, adică a modului de grupare pe structuri logice a celei virtuale
stabilirea datelor auxiliare, cu rol în exploatare (de exemplu, data ultimei actualizari a bazei de date)
informařii necesare pentru definirea structurii fizice
manipularea informařiilor din baza de date se realizează într-un limbaj specializat de manipulare a datelor (comenzi specifice fiecărui SGBD) sau sub asistenřa SGBD (meniuri, ferestre de dialog etc.) si se referă la operařii de:
regăsire a datelor (operařii de căutare)
actualizare (introducere, stergere, modificare de date)
administrarea bazei de date se referă la controlul informařiilor din baza de date si al programelor de acces de către o persoană (grup de persoane) numită administratorul bazei de date. Sarcinile administratorului sunt:
organizarea bazei de date (definirea structurilor logice, virtuală si fizică si încărcarea bazei de date)
urmărirea funcřionării corecte a bazei de date prin:
păstrarea informařiilor corecte si la zi (actualizate)
asigurarea integrităřii si confidenřialităřii datelor
urmărirea performanřelor bazei de date
punerea la dispoziřia utilizatorilor a unor programe de exploatare performante
reorganizarea bazei de date prin modificarea structurilor virtuală si fizică în scopul optimizarii bazei de date sau a introducerii de noi informařii
protecřia bazei de date este foarte importantă mai ales dacă un număr mare de persoane accesează baza de date, care poate avea o importanřă strategică sau economică (bănci, burse etc.). Aspectele la care se referă protecřia bazelor de date sunt:
confidenřialitatea, adică protecřia împotriva accesului neautorizat
integritatea, adică protecřia împotriva alterării conřinutului prin erori de programare, defecte de echipament sau chiar rea intenřie.
Metode de acces neautorizat pot fi:
înregistrarea comunicařiilor dintre calculator si terminal
copieri ilegale de fisiere prin acces la suportul fizic
obřinere neautorizată de parole de acces
folosirea unor drepturi restrânse de acces în încercarea de a pătrunde în zone neautorizate
încercarea de a evita programele sau metodele de control ale sistemului prin specularea unor erori de programare, ale sistemului de operare sau prin folosirea unor terminale ilegale la care să continue lucrul după încheierea sesiunii normale.
Dintre metodele de asigurare a confidenřialităřii amintim:
etichetarea informařiilor, adică asocierea unui nume unui grup de informařii (la care ulterior să se poată adăuga un drept de acces)
folosirea de parole si drepturi de acces pentru diferite operařii
păstrarea codificată a datelor
introducerea unor dialoguri specifice la începutul, sfârsitul si eventual în timpul sesiunii de lucru
protecřia terminalelor si liniilor de teletransmisie
folosirea unor dispozitive hardware de identificare personală
6. Evoluřia sistemelor de gestiune a bazelor de date
Într-un mod analog cu evoluřia calculatoarelor sau a sistemelor de operare, si evoluřia SGBD poate fi structurată pe câteva generařii:
Generařia 1 Colecřiile de date au forma unor fisiere secvenřiale (pe bandă magnetică) în care operařiile de intrare-iesire erau programate la nivel fizic. Fiecărei probleme i se asociau fisierele necesare.
Generařia 2 Apar tipurile clasice de organizare a fisierelor de date: secvenřială, secvenřial indexată si directă.
Avantaje: se separă modul în care utilizatorul priveste fisierele (nivelul logic) de modul de memorare a lor pe suport (nivelul fizic) iar tabelele se generează automat.
Dezavantaje: bazele de date nu se pot dezvolta în etape si nu există mecanisme de protecřie.
Generařia 3 Colecřiile de date iau forma unui sistem integrat de fisiere în care o dată (informařie) se memorează o singură dată. Structura fisierelor trebuie încă să fie descrisă în programe (Pascal, C etc.).
Generařia 4 este generařia bazelor de date: se separă definirea bazei de date (structura se păstrează în tabele) de utilizarea bazei de date; proiectantul bazei se detasează de utilizatori. Programele nu mai definesc structurile de date pe care le prelucrează, ci acestea se păstrează în tabele speciale. Apar de independenřele fizică si logică, conform principiilor teoretice enunřate la 2. Programele vor avea acces la date folosind o metodă de acces (program al SGBD) care face apel la structura fizică a fisierelor.
Introducere in baze de date
|