Sunteți pe pagina 1din 12

CAPITOLUL 1.

CONCEPTE PRIVIND BAZELE DE DATE I SISTEMUL DE GESTIUNE AL BAZELOR DE DATE


1.1. Conceptul de baz de date Utilizarea calculatoarelor electronice n activitatea practic din organizaii impune elaborarea unor sisteme informatice n conformitate cu cerinele solicitate de utilizatorii lor. Aplicaiile informatice din domeniul economic au de regul un volum relativ mare de date, care se organizeaz cel mai bine n baze de date. De altfel, exist o prere unanim a specialitilor c bazele de date reprezint unul dintre cele mai moderne i mai eficiente mijloace de stocare i gestiune modern a datelor referitoare la un anumit domeniu particular (de exemplu: evidena resurselor umane, evidena livrrilor de mrfuri, evidena mijloacelor fixe etc.). Baza de date poate fi definit ca o colecie de date, referitoare la un domeniu de activitate particular, n care proprietile datelor precum i relaiile semantice dintre date sunt specificate utiliznd concepte propuse de un anumit model. Un model se poate defini ca o reprezentare abstract a informaiei i, eventual, a operatorilor pentru manipularea informaiei. Conceptul de model de date este esenial, opiunea pentru o anume baz de date fiind fcut pornind de la modelul care va sta la baza ei. n literatura de specialitate exist mai multe definiii date bazei de date, fiecare definiie evideniind anumite elemente, astfel: C. Delobel a definit baza de date drept un ansamblu structurat de date nregistrate pe suporturi accesibile calculatorului pentru a satisface simultan mai muli utilizatori de o manier selectiv i ntr-un timp oportun. G. Gardarin precizeaz: pentru ca un ansamblu de date independente s fie o baz de date, trebuie s fie interogabile prin coninut, dup orice criteriu precum i s fie posibil regsirea structurii datelor. n timp au fost definite mai multe modele de date care au reprezentat punctul de pornire n organizarea bazelor de date. Amintim urmtoarele modele: modelul ierarhic; modelul reea; modelul relaional; modelul relaional-obiectual; modelul orientat obiect.

Aceste modele au o serie de particulariti, aa cum rezult din figura 1.1.

Model ierarhic

Model reea

Se particularizeaz prin reprezentarea Este o extensie a modelului ierarhic. datelor sub form arborescent Prezint n plus conexiunea dintre descendent. Una dintre caracteristici elemente (legturi transversale). este imposibilitatea de a separa nivelul logic de cel fizic. Model relaional Model orientat obiect

Reprezentarea datelor se realizeaz prin Reprezentarea datelor se face sub form tabele avnd dou coordonate: linii i de obiecte. Un obiect ncorporeaz att coloane. Fiecare tabel descrie o entitate date ct i comportamente (prelucrri). din lumea real. Modelul permite reprezentarea asocierilor dintre aceste entiti. Figura 1.1 Particularitile modelelor de date Grupul de normalizare ANSI/X3/SPARC a stabilit trei niveluri de descriere a datelor n cazul unei baze de date: Nivelul extern care descrie viziunea particular (view) a unui utilizator sau grup de utilizatori asupra bazei de date (este vorba de acea parte a bazei de date pentru care utilizatorul are acces). n consecin, pot fi definite mai multe scheme externe fiecare reprezentnd un subansamblu de date accesibile unui utilizator; Nivelul conceptual - corespunde unei structurri semantice a datelor descriind lumea real, fr a lua n considerare restricii specifice implementrii bazei de date pe un anumit calculator. Cu alte cuvinte, corespunde unei viziuni a datelor independente de aplicaiile individuale i de modul n care datele sunt stocate; Nivelul fizic (intern) care corespunde unei structuri de stocare a datelor pe suporturi (organizare i mod de acces fizic). Acest nivel este responsabil de organizarea fizic a fiierelor la nivelul memoriei externe precum i de utilizarea unei metode de acces la date ct mai eficiente.

Pentru o baz de date se pot defini mai multe niveluri (scheme) externe, un nivel conceptual i un nivel fizic (intern).

Fiecare nivel de abstractizare este protejat la modificrile n structura din nivelul inferior. Nivelurile de abstractizare menionate asigur independena datelor, autorizeaz manipularea datelor, garanteaz integritatea datelor i optimizeaz accesul la date. Independena datelor poate fi: independen logic - care protejeaz modificrile n structura logic de date; independen fizic - care protejeaz modificrile n structura fizic de date.

Asigurarea independenei datelor este unul dintre beneficiile importante aduse de sistemele de gestiune a bazelor de date. Utilizatorii unei baze de date pot fi: Utilizatorii finali toate persoanele care au acces doar la interfaa oferit de SGBD i/sau execut aplicaii; Programatorii de aplicaii - specialitii care proiecteaz i realizeaz aplicaiile ce interacioneaz cu SGBD-ul; Administratorul bazei de date - este un utilizator privilegiat care: Cunoate schemele logice/fizice; Rspunde de problemele de securitate ale bazei de date, stabilete i acord autorizrile privind accesul i drepturile utilizatorilor n baza de date; Asigur disponibilitatea datelor i, la nevoie, recuperarea datelor; Monitorizeaz parametrii bazei de date i adapteaz baza de date n funcie de cerinele nou aprute.

1.2. Sistemul de Gestiune al Bazei de Date Gestiunea i accesul la baza de date sunt asigurate de un ansamblu de programe care formeaz sistemul de gestiune al bazei de date (SGBD). Sistemul de gestiune al bazei de date se definete ca un instrument de asamblare, codificare, aranjare, protecie i regsire a datelor n bazele de date. In acelai timp, SGBD mai poate fi definit ca un ansamblu de programe speciale cu ajutorul crora se creeaz, actualizeaz, interogheaz i protejeaz o baz de date. Principalele avantaje oferite de SGBD pot fi sintetizate astfel: independena datelor: aplicaiile nu sunt afectate de detalii, i implicit modificrile, de reprezentare i stocare a datelor; coerena datelor prin implementarea unor reguli explicite sau implicite (restricii de integritate) pe care datele trebuie s le respecte de-a lungul evoluiei lor; asigurarea gestiunii tranzaciilor: o tranzacie este o secven atomic de aciuni asupra bazei de date (citire/scriere). O tranzacie executat asigur aducerea bazei de date ntr-o stare consistent. Dup orice modificare n baza de date sunt verificate toate regulile de coeren asupra tuturor datelor; asigurarea confidenialitii datelor: fiecare utilizator cu drept de acces la baza de date are definite anumite drepturi; limitarea redundanei datelor (dublarea memorrii unor date este controlat); acces eficient la date: SGBD-ul utilizeaz metode sofisticate de stocare i acces la date asigurnd optimizarea accesului la date; integritatea i securitatea datelor asigurate prin implementarea restriciilor de integritate i a controalelor de acces la date; acces concurent la date; stocheaz un volum mare de date; ofer faciliti de gestiune a meta-datelor prin intermediul dicionarului de date1. Meta-datele privesc datele referitoare la: schema bazei de date (n cazul SGBDurilor relaionale spre exemplu privesc relaii, atribute, restricii, view-uri), viewuri, utilizatori (identificarea i drepturile utilizatorilor) i sistemul n ansamblu (informaii statistice); timp redus pentru realizarea aplicaiilor; administrarea uniform a datelor asigurat de ctre administratorul bazei de date; recuperarea i restaurarea datelor: SGBD-ul ofer faciliti de restaurare a bazei de date n cazul afectrii pariale sau totale a coninutului acesteia.

SGBD-ul trebuie s asigure dou funcii de baz i anume: descrierea bazei de date i manipularea bazei de date. Descrierea bazei de date se realizeaz prin intermediul limbajului de
1

Meta-datele pot fi definite ca date care descriu date. Tot ceea ce descrie baza de date, prin opoziie cu coninutul bazei de date, sunt meta-date. Spre exemplu: nume de coloane, nume de utilizatori etc.

descriere a datelor (LDD). Manipularea bazei de date se realizeaz prin intermediul limbajului de manipulare a datelor (LMD) care dispune de dou componente: limbajul de interogare i limbajul de actualizare a bazei de date. 1.3. Modelul relaional Modelul relaional a fost elaborat de E. F. Codd n 1970. Este un model simplu i intuitiv bazat pe o viziune tabelar asupra datelor. ntregul model relaional are la baz teoria matematic a relaiilor i algebra relaional. n cele ce urmeaz se prezent n sintez principalele concepte specifice modelului relaional. O relaie (tabel) este un subansamblu al produsului cartezian de n domenii (un domeniu este un ansamblu de valori) conform urmtoarei formule: R (D1 x D2 x D3 x x Dn) Exemplu: Entitii din lumea real numit PRODUSE i va corespunde relaia (tabelul) PRODUSE definit prin produsul cartezian al domeniilor, CODPRODUS, DENUMIREPRODUS, UM, PRET, adic: CODPRODUS x DENUMIREPRODUS x UM x PRET Relaia este reprezentat sub forma unui tablou dezvoltat pe linii i coloane (de unde i denumirea de tabel). Relaia este format dintr-un ansamblu de n-tupluri. Fiecare tuplu reprezint un rnd n cadrul tabelului. Fiecare coloan corespunde unui atribut, descriind o caracteristic a entitii din lumea real, aa cum rezult din figura 1.2. Atribute PRODUSE COD PRODUS DENUMIRE PRODUS UM PRET

100 300 200 150 700

P1 P2 P3 P4 P5

Buc Kg Mc Buc Kg

4 6,5 7 1,5 2

domeniu

tuplu

Figura 1.2. Structura relaiei PRODUSE

Conform modelului relaional, n cadrul unei relaii se utilizeaz urmtoarele concepte: Atributul (cmpul) o variabil care ia valori ntr-un anumit domeniu. Aceste valori corespund unor caracteristici ale lumii reale. Tuplul totalitatea valorilor atributelor de pe o linie dintr-un tabel. Tuplul se mai numete i nregistrare. Cardinalitatea relaiei este egal cu numrul de linii sau tupluri coninute de un tabel. Cheia primar - cmpul (grupul de cmpuri) cu valori unice i nenule ce servete la identificarea nregistrrilor unui tabel. Orice relaie (tabel) are o cheie primar. n exemplul prezentat n figura 1.2., cheia primar este atributul COD PRODUS. Cheia candidat - un cmp (altul dect cheia primar) ce ndeplinete condiiile necesare cheii primare. Dintre cheile candidate se va alege, de fapt, cheia primar. Cheia extern - cmpul (grup de cmpuri) ce servete la realizarea legturii cu alt tabel n care acesta este cheie primar. Valorile asociate atributului cu rol de cheie extern pot fi duplicate sau nule. Exemplu: Se consider o baz de date format din tabelele Furnizori i Facturi, a cror structur este reprezentat n modelul de mai jos:

Furnizori (CodFz, NumeFz, Localitate, Telefon, ContBancar) cheia primar cheia candidat Facturi (NrFact, DataFact, DataScad, CodFz) cheia primar cheie extern

Figura 1.3. Reprezentarea modelului relaional detaliat La baza definirii legturilor dintre tabele st conceptul de restricie de integritate referenial (Referential Integrity), care presupune c valorile unei chei externe trebuie s se regseac

printre valorile cheii primare corespondente sau s fie nule. Aa cum se poate observa n exemplul anterior (figura 1.3) ntre relaiile Furnizori i Facturi s-a definit o legtur pe baza cmpului comun CodFz cu implementarea conceptului de restricie de integritate referenial (valorile atributului cu rol de cheie extern CodFz din tabelul Facturi se regsesc n domeniul cheii primare corespondente CodFz din tabelul Furnizori). Elemente de algebr relaional Algebra relaional ofer un ansamblu de operatori permind operarea asupra conceptelor modelului relaional. Rezultatul obinut prin utilizarea operatorilor algebrei relaionale este un tabel virtual. Avnd n vedere fundamentele matematice ale modelului relaional, algebra relaional utilizeaz operatori clasici de manipulare a ansamblurilor de date (reuniune, intersecie, diferen, produs cartezian) i introduce operatori proprii bazelor de date (selecie, proiecie, compunere, diviziune). Operatorii algebrei relaionale se definesc i utilizeaz dup cum urmeaz: a) Operatori de asamblare Reuniunea

Operatorul de reuniune creaz un nou tabel T plecnd de la dou tabele R (coninnd m tupluri) i S (coninnd n tupluri) prezentnd aceeai structur. Rezultatul, tabelul T prezint aceeai structur cu a tabelelor surs dar conine m+n tupluri: T= R U S Tabelul Studeni (R) Matricola 110 111 Tabelul Transferri (S) Matricola 230 190 Nume Pop Geta Marin Dana Media 9,15 8,25 Nume Dan Ion Denilescu Ana Media 8,75 9,25

Tabelul FinalStudeni (T= R U S) Matricola Nume Media

110 111 230 190

Dan Ion Denilescu Ana Pop Geta Marin Dana

8,75 9,25 9,15 8,25

Intersecia

Intersecia a dou tabele R i S (R S) prezentnd aceeai structur, unde R prezint m tupluri iar S prezint n tupluri genereaz relaia T (cu aceeai structur) coninnd tuplurile identice din R i S. T= (R S) Tabelul Bursieri (R) Matricola 110 111 112 Tabelul Cminiti (S) Matricola 110 111 130 127 Nume Dan Ion Denilescu Ana Ionescu Angela Manea Ion Media 8,75 9,25 8,15 8,30 Nume Dan Ion Denilescu Ana Toma Ene Media 8,75 9,25 8,80

Tabelul BursieriCminiti (T= R S) Matricola 110 Nume Dan Ion Media 8,75

111 Diferena

Denilescu Ana

9,25

Diferena a dou tabele (relaii) R i S prezentnd aceeai structur conduce la obinerea tabelului (relaiei) T coninnd tuplurile lui R care nu se regsesc n S. T= (R S) Tabelul BursieriNecminiti (T= R - S) Matricola 112 Nume Toma Ene Produs Cartezian Media 8,80

Produsul cartezian al tabelelor R i S conduce la obinerea unui tabel T stocnd mulimea perechilor obinute din concatenarea nregistrrilor lui R i S: T= (R x S) Tabelul Cminiti (R) Matricola 110 111 Tabelul Camere (S) Camin C1 C1 C2 Camera 1 2 1 Nume Dan Ion Denilescu Ana Media 8,75 9,25

Tabelul Repartiii T= (R x S) Matricola 110 110 110 111 Nume Dan Ion Dan Ion Dan Ion Denilescu Ana Medie 8,75 8,75 8,75 9,25 Cmin C1 C1 C2 C1 Camera 1 2 1 1

111 111 Operatori unari Proiecia

Denilescu Ana Denilescu Ana

9,25 9,25

C1 C2

2 1

Operatorul de proiecie aplicat asupra tabelului R coninnd m atribute conduce la obinerea rtabelului T cu acelai numr de tupluri ca i R, dar cu un numr redus de atribute. T = (R; A,B) unde A i B sunt atribute aparinnd lui R. Dac se dorete obinerea listei coninnd numele studenilor transferai se aplic operatorul de proiecie astfel: T= (Transferri, Nume) Tabelul Transferri (R) Matricola 230 190 Nume Pop Geta Marin Dana Media 9,15 8,25

T= (Transferri, Nume) Nume Pop Geta Marin Dana Selecia

Aplicarea operatorului de selecie asupra tabelului R genereaz tabelul T prezentnd aceeai structur cu R dar coninnd doar tuplurile ce corespund unei condiii precizate: T= Sel (R; <condiie>) Dac se doresc informaii despre studenii cminiti avnd medii peste 8,50 operatorul de selecie va fi: T = Sel (Cminiti; Media>8,50) Tabelul Cminiti (R)

Matricola 110 111 130 127

Nume Dan Ion Denilescu Ana Ionescu Angela Manea Ion

Media 8,75 9,25 8,15 8,30

T = Sel (Cminiti; Media>8,50) Matricola 110 111 Operatori de extensie Compunerea (Join) Nume Dan Ion Denilescu Ana Media 8,75 9,25

Compunerea a dou tabele R i S, dup valorile egale ale unui atribut comun A, conduce la obinerea unui tabel T ale crei tupluri s-au format prin produsul cartezian al tuplurilor din R i S prezentnd valori egale pe atributul de compunere A. Tabelul Cminiti Matricola 110 111 Tabelul CamereStudeni Camin C1 C2 Camera 1 10 Matricola 110 111 Nume Dan Ion Denilescu Ana Media 8,75 9,25

T= Join (Cminiti, CamereStudeni; Cminiti. Matricola=CamereStudeni.Matricola)

Matricola 110 111

Nume Dan Ion Denilescu Ana

Media 8,75 9,25

Cmin C1 C2

Camera 1 10

Diviziunea

Fiind date tabelele R (cu schema r) i S (cu schema s), aplicarea operatorului de diviziune va genera tabelul (R S) de grad r-s ale crui tupluri concatenate cu tuplurile lui S vor genera tupluri aparinnd lui R. Exemplu: Fie tabelul R din exemplul anterior: Matricola 110 111 Nume Dan Ion Denilescu Ana Media 8,75 9,25 Cmin C1 C2 Camera 1 10

Prin aplicarea operatorului diviziune prin tabelul Cminiti se va genera tabelul Camere: Tabelul Cminiti (S) Matricola 110 111 Nume Dan Ion Denilescu Ana Media 8,75 9,25

Tabelul Camere (R S) Cmin C1 C2 Camera 1 10