Sunteți pe pagina 1din 21

Curs 1 BAZE DE DATE Bibliografie:

1. Gavin Powell, Beginning Database Design, Wiley Publishing, Inc. , 2006, www.wiley.com.

2. Muscalagiu Ionel, Petras Teodora - Baze de date. SGBD.-ul Visual Foxpro, Editura Mirton, 2003. 3. Octavian Bsc Baze de date, Editura ALL, 1998. 4. Grupul BDASEIG- Baze de date. Fundamente teoretice i practice, Editura Infomega, 2002. 5. MSDN Microsoft Documentaia pentru Microsoft Access, Sql Server. 6. Codd, E.F. A Relational Model of Data for Large Shared Data Banks Communication of ACM, 13,6, 1970.

STRUCTURA CURSULUI : I. II. III. Fundamentele bazelor de date C1-C3. Prezentarea unui SGBD ului Microsoft Access + Visual Basic. Servere pentru baze de date-: SQL Server.

Scop:
- nelegerea principalelor concepte legate de baze de date. - proiectarea, operarea i utilizarea bazelor de date. - proiectarea i realizarea aplicatiilor informatice folosind baze de date.

I . Introducere n baze de date. Concepte ale bazelor de date.


Cea mai important aplicaie a calculatoarelor zilelor noastre o constituie memorarea i Ele

prelucrarea informaiilor . Acest lucru se face folosind sisteme special dedicate prelucrrii datelor numite sisteme de gestiune a bazelor de date , sisteme ce opereaz cu baze de date . reprezint un domeniu de interes foarte important din aria tiinei computerelor . O baz de date este o colecie de date pstrate n memoria extern , date pstrate i accesate prin intermediul computerelor i a sistemelor de gestiune a bazelor de date. Bazele de date sunt pstrate de diverse organizaii sau ntreprinderi n scopul regsirii ct mai rapide a datelor, pentru monitorizare, supervizare sau planificare . O agend de telefon este un bun exemplu de baz de date. Ea conine date relevante pentru o anumit persoan (numele, adresa, numrul de telefon). Culoarea telefonului unei persoane este o informaie irelevant i ea nu este coninut n aceast baz de date. Foarte multe baze de date se axeaz pe domeniul economic, dar exist i baze de date cu scopuri tiinifice, militare, etc. Pentru a rspunde cerinelor actuale, bazele de date conin pe lng date de tip text sau numeric i alte tipuri cum ar fi imaginile, sunetele i elementele multimedia. Operaiile asupra bazelor de date se fac prin intermediul unui pachet de programe numit sistem de gestiune al bazei de date ( SGBD) . Acest SGBD se ocup de modelarea datelor ( alegerea modelelor de memorie folosite) , permire accesarea datelor , regsirea acestora . Din punct de vedere al sistemului de operare baza de date este format din fiiere diverse (datele propriu-zise , fiiere auxiliare ).

Arhitectura unei baze de date


Datele din baza de date sunt pstrate conform unui model de organizare, utilizatorului fiindu-I accesibile i vizibile acele date conform unui model . Pentru a putea fi gestionate, datele unei b.d sunt descrise cu ajutorul unui limbaj specializat ce folosete structuri de date . Astfel se obin mai multe structuri ale bazei de date Un sistem de baze de date poate fi vzut (structurat )din patru puncte de vedere numite nivele: conceptual, extern, logic i fizic.

a. Nivelul conceptual Este un nivel fundamental deoarece descrie ntr-un mod natural i fr ambiguiti sistemul ce urmeaz a fi modelat. Dac o persoan este familiar cu un anumit sistem, atunci ea poate realiza designul acestuia fr a mai comunica cu alte persoane. n caz contrar, trebuie consultate mai multe persoane care sunt familiare cu sistemul respectiv. Aa cum oamenii comunic ntre ei cu ajutorul cuvintelor, figurilor sau exemplelor, cel mai clar mod de a descrie un sistem este utilizarea unui limbaj natural, a unor diagrame intuitive i bineneles a exemplelor. Aceste principii conduc la ideea de a exprima mai nti un sistem la nivel conceptual, folosind concepte cu care oamenii pot lucra foarte uor. Prin urmare la acest nivel va fi realizat schema conceptual ce reprezint designul general al sistemului bazei de date. b.Nivelul extern La nivel extern se specific design-ul bazei de date perceput de un anumit utilizator sau grup de utilizatori precum i modul n care acest design este legat de schema conceptual. Schema extern reprezint specificarea informaiilor care pot fi vzute de ctre un utilizator i modul n care acestea sunt prezentate. n cele mai multe cazuri, un utilizator poate accesa doar o parte din informaii. De exemplu, este mult mai uor ca utilizator s selecteze numai informaii relevante pentru acesta sau din motive de securitate s nu poat obine anumite informaii. Schema extern este realizat astfel nct grupuri diferite de utilizatori s acceseze numai anumite subscheme ale schemei conceptuale globale. Mai mult, utilizatori diferii pot dori ca aceiai informaie s fie reprezentat n moduri diferite (tabele, grafice) sau pot prefera anumite metode de operare sau navigare n funcie de nivelul de experien acumulat. Prin urmare la acest nivel se pot proiecta diferite interfee cu utilizatorul. c. Nivelul logic Aa cum am vzut pn acum, schema conceptual este creat pentru a comunica, adic pentru a reprezenta sistemul ce urmeaz a fi proiectat ntr-un mod ct mai clar. Pentru a realiza o implementare eficient aceast schem conceptual trebuie convertit ntr-o structur de nivel inferior. Prin urmare, pentru o anumit aplicaie dat, se alege un model logic adecvat de organizare a datelor (de exemplu, modelul relaional, ierarhic, reea, etc.). Se mai spune c schema conceptual este transformat ntr-o scem logic exprimat cu ajutorul unor structuri abstracte de date i

operaii furnizate de modelul de date respectiv. De exemplu, pentru modelul relaional faptele sunt depozitate n tabele, constrngerile sunt exprimate cu ajutorul cheilor primare sau strine, etc. d. Nivelul intern Dup ce a fost realizat schema logic, aceasta trebuie proiectat prin intermediul unei scheme interne ntr-un anumit SGBD (Sistem de Gestiune a Bazelor de Date). De exemplu, schema relaional poate fi implementat n Oracle, Access, Visual Foxpro sau DB2. Schema intern include toate detaliile despre stocarea fizic i structurile de acces utilizate n sistemul respectiv (de exemplu, indeci, clustere, etc.). Pentru acelai SGBD pot fi alese diferite structuri de stocare, dup cum i pentru SGBD-uri diferite exist structuri diferite. Prin urmare, pentru aceeai schem logic pot fi alese mai multe scheme interne. n concluzie, unul dintre avantajele nivelului conceptual este acela de a fi cel mai stabil dintre niveluri. El nu este practic afectat de schimbrile interfeelor cu utilizatorii, de structurile fizice de stocare sau de tehnicile de accesare a datelor. Aceste structuri de organizare implic i nivelele de interaciune dintre b.d. i utilizatori : proiectantul b.d. : acesta vede necesitile globale de date ale unei organizaii n acel moment sau n viitor . El este cel care realizeaz structura conceptual a b.d. astfel nct s nu depind de partea de hardware sau de partea software . utilizatorul . Pe acesta nu-l intereseaz dect anumite aplicaii (de exemplu cum s obin o list cu anumite informaii ) . De aceea acesta trebuie s cunoasc structura logic a b.d. inginerul bazei de date : Acesta trebuie s se ocupe de ntreinerea eficient a bazei de date, pe baza hardware- i software-lui existent . Din acest motiv el trebuie s cunoasc structura fizic ( sau intern ) a bazei de date . Structura logic Structura logic Structura logic programatorulul

Structura virtual

administratorul bazei de date

Structura fizic

inginerul de sistem

II. MODELE DE DATE PENTRU BAZE DE DATE - MODELE CONCEPTUALE


Dup cum am vzut , baza de date este descris conceptual de administratorul b.d. Pentru aceasta, el apeleaz la un model de date cu ajutorul cruia poate structura informaia din lumea real pe care dorete s o pstreze . Modelul de date este de fapt un fel de ghid reprezentarea datelor. pentru Acesta se refer doar la structura virtual i cea logic, nicidecum la

structura fizic ( care structur fizic depinde de sistemul de operare i de S.G.B.D.-ul folosit). Modelul de date folosit de un SGBD descrie modul de organizare a datelor n baza de date. Modelul de date reprezint un tipar dup care este organizat din punct de vedere logic baza de date. Modelul de date nu specific datele, implementarea sau organizarea lor fizic, ci doar modul lor de organizare logic. Dup modelul folosit, exist mai multe categorii principale de SGBD-uri. Exist mai multe modele conceptuale principale folosite pentru modelarea conceptual a

datelor, dintre acestea cele mai cunoscute fiind : modelul relaional modelul reea modelul ierarhic modelul obiect pe obiect.

Fiecare model capteaz ntr-un anumit fel proprietile lumii nconjurtoare pe care dorim s o modelm.

1. MODELUL RELAIONAL : introdus de Codd n 1970 .


Este un model simplu ce ofer independena datelor, model folosit astzi n multe din SGBDurile existente pe pia . O baz de date relaional, bazat pe acest model relaional, este format din trei pri principale: structura datelor, prin definirea unor domenii de valori i a relaiilor n are cum ar fi atributele, cheile primare. De fapt aceast parte se refer la tabelele de date, la legturile ntre tabele , etc. reguli de integritate care impun anumite restrici, n scopul de a permite numai valori corecte n relaii . operatori de gestiune a bazei de date folosii pentru prelucrarea datelor .

Modelul relaional se bazeaz pe noiunea matematic de relaie, aa cum este definit n teoria mulimilor, i anume ca o submulime a produsului cartezian a unei liste finite de mulimi numite domenii : Modelul relaional al bazei de date const dintr-o colecie de relaii ce variaz n timp (relaiile se pot schimba prin operaii de adugare, tergere i actualizare ) . De obicei relaiile sunt reprezentate sub forma unor tabele n care fiecare rnd reprezint un tuplu (liniile se vor numi nregistrri ) i fiecare coloan reprezint valorile tuplurilor dintr-un domeniu dat al produsului cartezian ( sunt numite cmpuri, atribute ) . Din acest motiv , n modelele relaionale , bazele de date sunt de fapt tabele cu date , sau altfel zis sunt fiiere fizice ce au datele organizate logic sub form de tabele. Exemplu: S considerm datele despre studeni, date pe care dorim s le stocm n computer . O baz de date relaional este de fapt un tabel de felul urmtor : STUDENT [NRMATRICOL, NUME, ANNASTERE, ANSTUDIU] STUDENT - numele tabelului sau numele bazei de date sau nume de entitate sau nume de relaie
nume coloan = caracteristica sau atributul entitii

NRMATRICOL 1000 1001 1002 Cheie

Nume POPESCU ION GEORGESCU MIHAI IONESCU GEORGE

Annatere 1978 1980 1979

Anstudiu 4 2 2

antetul tabelului= familie de caracteristici linia=realizare de entitate=nregistrare

domeniul caracteristicii anstudiu

Se observ c fiecare atribut ( coloan ) are nu nume . Atributele pot s apar n orice ordine n relaie . Elementele unei relaii sunt liniile din tabel . n reprezentarea sub form de tabel a unei relaii, coloanele i , respectiv domeniile corespunztoare lor li se asociaz nume intitulate atribute . Mulimea numelor atributelor unei relaii se mai numete i schem relaional ( sau familie de caracteristici). De fapt , n S.G.B.D. , schema relaional reprezint aa numita structura logic a bazei de date, structur care se decide de proiectatul bazei de date.

O coloan pentru care valorile corespunztoare din oricare dou tupluri nu coincid se numete cheie . Pot exista mai multe chei . Dintre acestea de obicei se alege o cheie primar, celelalete chei rmnnd chei secundare . Pentru exemplul de mai sus , coloana (cmpul) nrmatricol este o cheie. Mulimea tuturor schemelor relaionale correspunztoare unei aplicaii se numete schema bazei de date relaionale , iar coninutul curent al relaiilor la un moment dat se numete de fapt baz de date relaional . De fapt, cnd vorbim de o baz de date concret , va trebui s definim structura bazei de date (adic capul de tabel) i s depunem date n baza de date ( adic liniile din tabel s le completm). O alt problem important este cea a asocierilor ntre tabelele cu date . Aceste asocieri ntre entiti (dup cum s-a vzut sunt trei tipuri 1-1, 1-n, m-n) sunt de fapt relaii ( toate perechile de realizri de entiti cu valori din cele dou entiti aparin de fapt produsului cartezian) . Mai mult toate asocierile dintre dou entiti pot fi stocate n form tabelar . Exemplu : Entitile Grupe studeni i Studeni sunt n relaia unu-la-mai-muli 1 X - Grupe studeni CodG EM101 UT201 IE605 Nr.studeni 40 20 30 Nume Moriu Ionescu Mihai n Studeni Y Medie 8 9. 5 Relaia Grupe- Studeni CodG EM101 EM101 UT201 Nume Moriu Mihai Ionescu

Se observ c prin asociere se aduce n alt tabel doar cheiele de legtur. SGBD-urile relaionale tiu s creeze legturi sau asocieri ntre bazele de date . Mai mult, se pot crea distinct noi tabele cu asocierile create. Cele mai cunoscute SGBD-uri sunt bazate pe modelul relaional : ORACLE, INGRES, DB2, FoxPro, Paradox , Acces, etc. n concluzie , modelul relaional este caraterizat prin unitatea i simplitatea reprezentrilor , totul se reduce la tabele. De asemenea, modelul pstreaz rigoarea fundamentrii sale matematice, fapt ce a permis definirea unor limbaje de nivel foarte nalt ( cum ar fi SQL) care utilizeaz elemente de algebr relaional. Totui, trebuie precizat faptul c , dac din punct de vedere fizic, coerena modelului relaional este de nezdruncinat, din punct de vedere logic , coerena bazei de date trebuie perfect stpnit. Orice modificare , de exemplu , a cheii primare trebuie nsoit de actualizri n toate tabelel corelate bazei de date .

2. MODELUL IERARHIC SAU ARBORESCENT


A fost primul model utilizat n exploatarea bazelor de date i el presupune gruparea i ierarizarea entitilor ntr-o structur de arbore. Acest lucru presupune c fiecare nod care nu este rdcin are un singur nod superior i unul sau mai muli descendeni. Datele sunt organizate asemntor unui arbore . Utilizatorii vd datele ca i arbori alctuii din tipuri de nregistrri interconectate . Exemplu : - sistemul informatic cu toate datele tuturor facultilor unei universiti poate forma o structur arborescent : Facultatea
Grupe studeni Obiecte de studiu Profesori Laboratoare

Studeni

Stat de funcii (de ncadrare)

Se observ existena legturilor de tipul 1 N . Baza de date presupune rezervarea de spaiu pentru fiecare facultate , apoi pentru fiecare facultate de rein informaiile de identificare ( cum ar fi numele , adresa , telefonul ) i n continuare se reine spaiu de stocare pentru grupele de studeni , etc. Se observ faptul c datele sunt stocate pe mediul extern n ordinea dat de parcurgerea n preordine a arborilor, ceea ce uureaz determinarea informaiilor pentru cererile care se refer la descendenii unor noduri printr-un numr mic de accese la mediul extern . Cu toate c ofer posibilitatea unei cutri rapide , exist cteva dezavantaje : anumite structuri nu sunt supuse ierahizrii; actualizarea este dificil, de exemplu tergerea unui nod implic tergerea tuturor descendenilor si, iar adugarea unui nod implic reorganizarea ntregii baze de date. Cel mai cunoscut sistem de gestiune a bazelor de date, de tip ierahic, este IMS (Information Mangement System ), realizat de IBM pentru prelucrarea datelor din industria spaial . Acest SGBD are i variant mai recent, mbuntit,numit IMS/VS (Information Mangement System/ Virtual Storage) .

3. MODELUL REEA .

Este un model general de organizare a datelor , n care nu exist restricia de la arbori n care un nod trebuia s aib un singur printe (ca n cazul modelului arborescent) Modelul reea este cel mai apropiat de forma de reprezentare a bazelor de date sub forma diagramelor entitate relaie. Baza de date poate fi reprezentat grafic printr-un graf orientat numit de fapt reea. ntr-o reea(adic ntr-un astfel de graf ) nodurile corespund entitilor i relaiile sunt de fapt arcele grafului,arce simple de la tat la fiu sau arce duble,dac relaia este de forma 1-n . n acest model se folosesc noiunile de nregistrare logic i legtur . nregistrarea se aseamn cu noiunea de entitate de la cele relaionale i este de fapt un fiier logic care are drept cmpuri atributele entitii. n plus , apar cmpurile de legtur , o deosebire foarte mare fa de modelul relaional. Mulimea tuturor nregistrrilor de acelai tip au la baz un tip numit articol . Legtura este o asociere ntre dou articole, deci o legtur este de fapt o relaie binar . Exemplu : - acelai sistem informatic cu toate datele tuturor facultilor unei universiti poate fi reprezentat i sub form de reea ( de fapt structura arborescent este un caz particular al celei reea ) : Faculti

Grupe studeni

Obiecte de studiu

Profesori

Se observ relaiile 1 n ( cele cu sgeat simpl ) i relaiile mn ( cel cu sgeat dubl ) Ca i modelul ierarhic , modelul reea se bazeaz pe folosirea pointerilor pentru pstrarea legturilor. Dintre SGBD care folosesc modelul reea amintim SGBD DBTG al firmei Data Base Task Group i SGBD Socrate, produs n Romnia de firma ICL. 4. Modelul obiect pe obiect. Acesta este cel mai nou tip de modelare, ncercnd s integreze principiile programrii orientate pe obiect (Actor, Smalltalk, C++)i ale bazelor de date. Bazele de date relaionale, cele mai populare n ultimul deceniu, ofereau prea puin suport pentru tipurile neconvenionale de date. Necesitatea gestiunii obiectelor complexe (texte, grafice, hri, imagini, sunete) i a gestiunii obiectelor dinamice (programe, simulri) care nu pot fi realizate cu ajutorul sistemelor relaionale a condus la introducerea conceptului de obiect n cadrul sistemelor de gestiune a bazelor de date

Ca o concluzie general legat de cele trei modele de baze de date , modelul relaional se impune prin simplitate, ceea ce permite folosirea lui i de ctre nespecialiti cu un randament bun. Trebuie s evideniem avantajele modelului relaional fa de celelalte modele : - structuri de date simple, operatori simpli, independena fizic i logic a datelor , uurina dezvoltrii aplicaiilor, definirea dinamic a datelor , posibilitatea dezvoltrii bazelor de date distribuite. Mai mult, singura structur folosit la bazele relaionale este structura de tip tablou, structur foarte cunoscut n viaa obinuit spre deosebire de structura de tip arbore sau de tip reea (graf ) . Trebuie s remarcm c toate sistemele de baze de date distribuite sunt construite dup principiul modelului relaional .

SISTEME DE GESTIUNE A BAZELOR DE DATE (SGBD) .


1. DEFINIRE. FUNCII. Accesul la baza de date se face cu ajutorul unui pachet de programe numit SGBD. Acesta este un pachet de programe realizat de firme specializate, care realizeaz gestiunea i prelucrarea complex a datelor , asigurnd independena programelor de aplicaie fa de modul de structurare a datelori un timp optim de rspuns la solicitrile utilizatorilor n condiii de multiacces. S.G.B.D. trebuie s conine rutine care s permit mai multe funcii grupate , simplu , n patru clase : definire, manipulare , administrare , protecie . Comunicarea cu bazele de date Un SGBD nu este util dac nu se poate comunica cu el, deci o prim funcie a unui SGBD este de a asigura accesul utilizatorului la baza de date. Prin aceasta se nelege att definirea structurilor din baza de date ct i manipularea i interogarea (extragerea i prelucrarea) datelor din baza de date. n plus, utilizatorul trebuie s aib la dispoziie modaliti de a controla integritatea i securitatea datelor. Cu alte cuvinte, comunicarea cu baza de date presupune urmtoarele patru funciuni principale: -Definirea structurilor de date. Un SGBD trebuie s furnizeze un Limbaj de Definire a Datelor (Data Definition Language, DDL) care permite definirea (crearea, modificarea i distrugerea) schemei bazei de date, adic a structurilor de date folosite i a legturilor dintre acestea. Not: Schema bazei de date, numit i metadata, nu trebuie confundat cu datele propriu-zise. Schema descrie modul de structurare al bazei da date, este definit de la nceput

i se schimb destul de puin n timp. Datele, pe de alt parte, reprezint instane ale schemei bazei de date i se modific frecvent n timp. Aceste dou concepte sunt analoage conceptelor de tip i variabil dintr-un limbaj de programare. Un SGBD trebuie s cuprind un dicionar de date (data dictionary) cteodat referit sub denumirea de catalog al sistemului, care stocheaz date despre toate obiectele pe care le deine, cum ar fi numele obiectului, tipul, structura i locaia sa. Ciclul de via al unei structuri de date, de la crearea pn la distrugerea ei, este nregistrat n dicionarul de date, precum i toate informaiile logice i fizice despre aceasta. -Manipularea datelor. Odat create structurile din baza de date, trebuie permis inserarea de date n aceasta, precum i actualizarea sau tergerea celor existente. Aceste operaii sunt efectuate de ctre Limbajul de Manipulare a Datelor (Data Manipulation Language, DML). -Interogarea datelor. Un SGBD trebuie s permit extragerea, vizualizarea i prelucrarea (filtrarea, stocarea, etc.) datelor existente. Aceste operaii se fac cu ajutorul unui limbaj numit limbaj de interogare sau acces (Data Query Language, DQL). -Controlul datelor. Limbajul de Control al Datelor (Data Control Language, DCL) permite asigurarea securitii i confidenialitii datelor, salvarea datelor i realizarea fizic a modificrilor n baza de date, garantarea integritii i consistenei datelor n cazul manipulrii concurente. Securitate datelor Securitatea este o preocupare constant n proiectarea i dezvoltarea bazelor de date. n mod uzual, nu se pun probleme legate de existena securitii, ci mai de grab de ct de mare va fi aceasta. Un SGBD are n mod caracteristic mai multe nivele de securitate, pe lng cele oferite de sistemul de operare sau de reea. De obicei, un SGBD deine conturi pentru utilizatori, care necesit o parol de conectare ce trebuie autentificat pentru a accesa datele. Un SGBD ofer de asemenea i alte mecanisme cum ar fi grupurile, rolurile, privilegiile i profilurile care dau securitii mai mult rafinament. Aceste nivele de securitate nu prevd numai constrngeri, ci i stabilirea politicii de securitate. De exemplu, ntr-un sistem de electronic banking o companie i poate deschide un cont la o banc, iar accesul persoanelor din cadrul companiei pentru consultarea contului va fi autorizat printr-un nume i cel puin o parol. n plus, accesul poate fi difereniat ntre diferii membri ai companiei, numai unora dintre ei fiindu-le permis s fac i tranzacii asupra contului. Meninerea i constrngerea integritii

Integritatea datelor se refer la consistena i corectitudinea acestora. Pentru ca datele s fie consistente, ele trebuie modelate i implementate n acelai mod pentru toate circumstanele. Pentru ca datele s fie corecte, ele trebuie s fie exacte, precise i s aib neles. Prin integritate datele devin informaii. Condiiile de integritate pe care trebuie s le satisfac o baz de date pot fi att condiii structurale, comune tuturor SGBD-urilor care folosesc un anumit model de date(de exemplu, orice SGBD relaional trebuie s impun respectarea integritii refereniale), ct i condiii de comportament, specifice fiecrei baze de date particulare (de exemplu, o coloan culoare dintr-un tabel nu poate avea dect valorile rou, albastru, verde, etc.). Asigurarea accesului concurent la date n plus, n cazul existenei mai multor utilizatori, un SGBD trebuie s gestioneze accesul concurent al acestora, meninnd n acelai timp integritatea bazei de date. Vom spune n acest caz c SGBD-ul gestioneaz concurena bazei de date. Concurena poate fi definit ca simultaneitate n sensul c doi sau mai muli utilizatori acceseaz aceleai date n aceiai perioad de timp. Gestionarea de ctre SGBD a concurenei o ntlnim atunci cnd mai mult de o persoan trebuie s acceseze aceiai baz de date, i n mod special aceleai date, iar SGBD-ul trebuie s asigure ntr-un fel sau altul c acest acces concurent este posibil. n plus, fiecare utilizator trebuie s aib o vedere consistent asupra bazei de date, incluznd modificrile vizibile fcute de ctre ali utilizatori, iar pe de alt parte SGBD-ul trebuie s mpiedice modificri incorecte ale datelor, care ar compromite integritatea acestora. Metodele pe care un SGBD le folosete pentru a realiza acest lucru sunt n principiu destul de simple, implementarea lor fiind ns destul de complex. n esen, un SGBD asigur concurena in modul urmtor. Cnd dou sau mai multe persoane vor s vizualizeze aceleai date fr a le modifica ns, totul este n ordine i nu trebuie luate msuri suplimentare. Cnd ns cel puin o persoan dorete s fac modificri asupra unor date care n acelai timp sunt vizualizate de ctre alte persoane, atunci SGBD-ul trebuie s stocheze mai multe copii ale datelor i s transfere toate modificrile copiilor ntr-o singur versiune atunci cnd ntreaga operaiune este terminat. Problema este ceva mai complicat n momentul cnd mai muli utilizatori ncearc s fac modificri asupra acelorai date. Un SGBD rezolv problema folosind blocarea (locking). Utilizatorul care a efectuat primul modificarea datelor le blocheaz, ceilali utilizatori neputndu-le modifica pn cnd operaia efectuat de acesta nu este ncheiat. Tranzacii

ntregul mecanism care gestioneaz concurena ntr-o baz de date are la baz conceptul de tranzacie. Tranzacia este cea mai mic unitate de lucru. Aceasta nseamn c nu poate exista nici o operaie mai mic dect o tranzacie. Toate tranzaciile trebuie s fie atomice, adic orice tranzacie individual fie este complet executat, fie nu se execut deloc. Cu alte cuvinte, o tranzacie nu poate fi executat parial. Cnd o tranzacie este ncheiat se spune c este permanentizat (commited); cnd o tranzacie nu poate fi ncheiat i este anulat se spune c este derulat napoi (rolled back).
Derularea napoi a unei tranzacii poate fi fcut explicit printr-o comand a utilizatorului sau poate surveni n mod neateptat, n cazul unei probleme n funcionarea sistemului.

Un SGBD realizeaz recuperarea datelor (data recovery) utiliznd tranzaciile ca uniti de recuperare. n funcie de modul n care se deruleaz o tranzacie (este ncheiat normal), fie pentru a anula modificrile fcute (dac tranzacia a fost abandonat la cerere sau ntrerupt neateptat). SGBD-ul pstreaz o istorie a tranzaciilor (transaction log) cu scopul de a derula nainte sau napoi. Derularea napoi (roll back) a unei tranzacii nseamn anularea efectelor acesteia asupra datelor. Derularea nainte (roll forward) a unei tranzacii nseamn operarea modificrilor tranzaciei asupra datelor. Atunci cnd efectele unei tranzacii finalizate nu sunt transmise din memorie pe disc, de exemplu din cauza unei probleme hardware sau software, SGBD-ul repet tranzacia respectiv. Prin urmare, cheia pentru modul de recuperare a tranzaciilor ntr-un SGBD este faptul c tranzacia trebuie s fie atomic i poate fi efectuat, anulat sau repetat atunci cnd este necesar. Baze de date de distribuie Avnd n vedere rolul din ce n ce mai important al reelelor i proceselor distribuite n informatic, sistemele de gestiune a bazelor de date trebuie s poat beneficia de avantajele procesrii i stocrii distribuite. Intuitiv, o baz de date distribuit este o mulime de date corelate logic, dar distribuite pe mai multe maini interconectate printr-o reea de comunicaie. Din punct de vedere al utilizatorului, o baz de date distribuit reprezint o singur baz de date. Programul de aplicaie care manipuleaz baza de date poate avea acces la date rezidente pe mai multe maini, fr ca programatorul s cunoasc localizarea acestor date (distribuirea lor fizic). Bazele de date distribuite ofer utilizatorului o flexibilitate i o securitate sporit fa de o singur baz de date. S lum, de exemplu, o companie care are sedii n mai multe orae ale lumii. Dac se opteaz pentru o arhitectur distribuit, fiecare dintre aceste locaii i administreaz propria baz de date, pe care o acceseaz n mod frecvent, putnd s aib n acelai timp acces i la

bazele de date ale celorlalte locaii. Astfel distribuirea bazei de date duce la exploatarea mai eficient a bazei de date i uureaz administrarea acesteia, care se face local. n plus, defectarea unei baze de date locale nu afecteaz celelalte baze de date din reea, cu alte cuvinte bazele de date locale sunt protejate mpotriva defeciunilor din celelalte noduri ale reelei. n ce constau operaiile asupra bazelor de date ? a. Definirea bazei de date , care cuprinde : stabilirea structurii virtuale , precizndu-se structurile de date necesare ( n funcie de modelul de date ce se alege ) definirea structurilor logice informaii necesare pentru stabilirea structurii fizice ( fiierele necesare , care date se include n acestea ) Aceste lucruri se realizeaz cu ajutorul acelui Limbaj de Definire a Datelor, prin diferite comenzi sau printr-o interfa cu utilizatorul ( pentru exemplele de la laborator comanda a fost comanda Create ) . b. Manipularea datelor din b.d. care cuprinde : introducerea ( adugarea datelor ) n baza de date regsirea ( extragerea ) datelor din baza de date . actualizarea ( tergerea , modificarea ) datelor din baza de date .

i aceast funcie este realizat fie cu ajutorul unui Limbaj de Manipulare a datelor sau cu ajutorul unor comenzi . Comenzile i programele pot s fi i din alte medii diferite . De exemplu am creat baza de date cu ajutorul mediului Visual Foxpro dar o accesm cu ajutorul mediului Delphi Pascal, Visual C , Builder C sau Visual Basic. . c. Administrarea bazei de date . Dup crearea bd. aceasta trebuie folosit o anumit perioad. Prin urmare , trebuie s se fac un control al datelor i al programelor care aceseaz baza de date . Acest lucru cade n sarcina unei persoane numit administratorul bazei de date fiind cele de administrare a bazei de date : 1. organizarea bazei de date : - definirea structurii b.d. i a structurilor logice . - stabilirea structurilor fizice a bazei de date . - introducerea de date n b.d. funciile lui

2. urmrirea funcionrii b.d. : pstrarea datelor corecte i la zi asigurarea integritii i confidenialitii datelor punerea la dispoziia utilizatorilor a unor programe sau proceduri modificarea structurii virtuale i a structurii fizice pentru optimizarea diferitelor funcii sau pentru a include noi date modificarea unor programe de acces

3. reorganizarea b.d. : -

4. Protecia datelor : confidenialitatea adic protecia mpotriva accesului neautorizat asupra b.d. integritatea programare . controlul redundanei datelor, adic acelai date s fie pstrat de mai multe ori (se ajunge i la inconsistena datelor ) Ex.O b.d cu datele despre personalul unei instituii . Nu toate persoanele din reeaua de calculatoare a instituiei au dreptul s acceseze acele date . Pentru aceasta se folosesc parole pentru diferenierea utilizatorilor care au drept de acces , datele se pstrez codificat , se folosesc firewall-uri pentru filtrarea utilizatorilor . Trebuie s remarcm i utilizatorii care intervin n contact cu SGBD : utilizatorii informaticieni programatorii , ei folosesc limbajul de manipulare i cunosc structura logic a datelor de care au nevoie ct i toate facilitile oferite de un anumit SGBD. utilizatorii obinuii , care fie folosesc produse program, fie folosesc comenzi simple pentru accesarea i folosirea datelor din b.d. administratorul bazei de date , aceea persoan care se ocup de controlul i ntreinerea bazei de date ( mai ales pe sistemele mari ). datelor mpotriva alterrii coninutului datorit unor defeciuni , erori de

2. STRUCTURA I FUNCIONAREA UNUI SGBD.


Complexitatea unui SGBD rezid n dimensiunea sa , reflectat nu numai n multitudinea instruciunilor sale dar i n mulimea componentelor, fiind prin complexitatea apropiat de un

sistem de operare . SGBD lucreaz de fapt sub controlul sistemului de operare al calculatorului, S.O. care se ocup de suportul hard al bazei de date. n mod obinuit, un SGBD conine urmtoarele module : monitor : cuprinde modul specializate pentru gestionarea bazei de date , a zonelor de memorie intern, a reelei de transmisie i a mesajelor cu terminalele care acceseaz bazele de date ct i module pentru activarea proceselor, operare . compilatoare : sunt module asociate limbajelor de descriere i manipulare , avnd rol de verificare i translatare a comenzilor ctre sistemul de operare. monitoare de nlnuire : asigur succesiunea fazelor distincte de prelucrare (execuia programelor sau execuia direct a comenzilor). programe utilitare: editoare de texte pentru a putea scrie codul programelor, generatoare de rapoarte, module de securitate(fiiere de urrmrire) , etc. Din punct de vedere schematic, funcionarea unui SGBD se poate reprezenta astfel :
BAZ BAZ DE DE DATE DATE BAZ BAZ DE DE DATE DATE DATE, STRUCTURI, BIBLIOTECI

asigurarea legturii cu sistemul

de

ADMINISTRATOR BAZE DE DATE

S.G.B.D

S.O

PROGRAME COMENZI

BUFFERELE SISTEMULUI

Utilizator 1

Imprimant

Utilizator 2

Cum decurge de fapt o sesiune a unui SGBD ? Utilizatorul cere SO. s lanseze n execuie SGBDul respectiv. Apoi, SO ncarc de pe disc programul monitoral SGBD ului, care mai departe preia cererile de la utilizatori.

3. CLASIFICAREA SGBD-URILOR I A BAZELOR DE DATE .


n funcie de modelul de date al bazei de date exist SGBD-uri ierarhice, relaionale (cele mai multe ) i reea. SGBD ierarhic. Modelul ierarhic stocheaz datele n structuri de tip arbore. El pornete de la ideea c intre date exist o relaie de tip printe-copil. Nivelul cel mai de sus al arborelui, cunoscut sub numele de rdcin, poate avea orice numr de dependeni. La rndul lor, acetia pot avea dependenii lor i aa mai departe. n prezent, modelul ierarhic este depit i nu se mai folosete aproape deloc. SGBD reea. Modelul reea stocheaz datele sub form de nregistrri i legturi ntre acestea. Acest model poate fi vzut ca o extindere a celui ierarhic, diferena ntre cele dou fiind c, n timp ce n modelul ierarhic o nregistrare copil are exact un printe, n modelul reea el poate avea mai muli prini, eventual chiar nici unul. Modelul reea permite reprezentarea de structuri de date complexe dar este extrem de complicat. Din aceast cauz, el este n prezent puin folosit. SGBD relaional (SGBDR). Modelul relaional reprezint probabil cea mai simpl structur pe care o poate avea o baz de date. ntr-un SGBD relaional, datele sunt organizate n tabele. Tabelele sunt formate din nregistrri care, la rndul lor sunt formate din cmpuri. Dou sau mai multe tabele pot fi legate prin intermediul unuia sau mai multor cmpuri. Bazele de date relaionale sunt foarte flexibile i uor de folosit, astfel nct au cunoscut o dezvoltare intens n ultimii douzeci de ani i sunt n prezent cele mai rspndite. Prezentm mai departe cele mai cunoscute SGBDR-uri relaionale. Oracle. Este realizat de firma Oracle Corporation USA. Sistemul este complet relational, robust, se bazeaza pe SQL standard extins. Arhitectura sistemului este client/server, permtand lucrul, cu obiecte i distribuit. Are BD Internet i modul de optimizare a regasirii. Ultima versiune este Oracle lOg. DB2. Este realizat de firma IBM. Sistemul respecta teoria relationala, este robust i se bazeaza pe SQL standard. Permite lucrul distribuit i are modul de optimizare a regasirii. Informix. Este realizat de firma Informix, respecta teoria relationala i permite lucru distribuit. Progress. Este realizat de firma Progress Software. Are limbaj propriu (Progress 4GL) dar suporta i SQL. Ruleaza pe o gama larga de calculatoare sub diferite sisteme de operare. SQL Server. Este realizat de firma Microsoft. Se bazeaza pe SQL i ruleaza in arhitectura client/server. Ingress II. Este realizat de firma Computer Associates. Este un SGBDR complet, implementeaza doua limbaj e relational e (ntai QUEL i apoi SQL) i este suportat de diferite sisteme de operare (Windows, UNIX). Lucreaza distribuit in arhitectura client/server, are extensie cu facilitati orientate obiect i permite aplicatii de tip Internet. Organizarea fizica a tabelelor se face prin sistemul de operare.

Visual FoxPro. Este realizat de firma Microsoft. Are un limbaj procedural propiu foarte puternic, o extensie orientata obiect, programare vizuala i nucleu extins de SQL. Access. Este realizat de firma Microsoft. Se bazeaza pe SQL, are limbajul procedural gazda (Basic Access) i instrumente de dezvoltare. Paradox. Este realizat de firma Borland. Are limbaj procedural propiu (PAL) i suporta SQL.

SGBD obiect pe obiect. Acesta este cel mai nou tip de SGBD, ncercnd s integreze principiile programrii orientate pe obiect (Actor, Smalltalk, C++)i ale bazelor de date. Bazele de date relaionale, cele mai populare n ultimul deceniu, ofereau prea puin suport pentru tipurile neconvenionale de date. Necesitatea gestiunii obiectelor complexe (texte, grafice, hri, imagini, sunete) i a gestiunii obiectelor dinamice (programe, simulri) care nu pot fi realizate cu ajutorul sistemelor relaionale a condus la introducerea conceptului de obiect n cadrul sistemelor de gestiune a bazelor de date. n prezent tehnologia bazelor de date orientate pe obiect este nc la nceput, neexistnd un mod general de SGBD orientat pe obiect, astfel nct productorii diferii folosesc moduri de organizare oarecum diferite. O soluie n acest sens este i crearea unui model relaional care s suporte i majoritatea principiilor modelrii orientate pe obiect. n funcie de distribuirea resurselor soft i hard SGBD-urile pot fi integrate i distribuite . SGBD-urile integrate sunt cele n care baza de date propriu-zis i suprafaa utilizator alctuiesc un tot unitar . n baza de date numit BACK END sunt stocate fizic datele, n timp ce prin intermediul suprafeei utilizator (mai nou suprafaa grafic utilizator) numit FONT END datele sunt definite, manipulate i controlate. Acest tip de organizare implic existena bazei de date pe un singur calculator, datele fiind accesibile doar utilizatorului acelui PC. Acesta era modul de lucru pentru SGBD-urile rulabil sub vechiul MS-DOS. Bazele de date clientserver (deci i SGBD urile client server) sunt disponibile n reelele clientserver ( serverulcalculatorul central al reelei i clienii sunt staiile de lucru). SGBD-ul lucreaz astfel ntr-o reea ( este vorba despre SGBD-urile actuale cum este i Visual Foxpro ) . n mod tipic , pe server se gsesc bazele de date iar pe clieni se gsesc pachete de programe ce comunic cu baza de date de pe server, pachete ce dispun de o interfa bazat pe un limbaj de interogare numit SQL Structured Query Language) . De exemplu , ntr-un supermarket avem un server central n care sunt stocate bazele de date cu stocurile de produse. Pe fiecare staie de lucru din magazin ( unde se gsesc gestionarele ) exist un program de stocuri ce examineaz de fiecare dat baza de date de pe server pentru a vedea dac mai exits un produs sau pentru a actualiza stocul existent ( n urma vnzrii produsului respectiv) .

Aceste tipuri de SGBD ofer un mare avantaj i a anume faptul c programele i baza de date pot fi folosite simultan . sau pe rnd de mai muli utilizatori , fr a fi nevoie ca ei s posede pe computerele lor o copie a bazei de date. Bazele de date distribuite . Sunt folosite pentru organizaiile economice mari care necesit manipularea de baze de date mari sau multe. n astfel de situaii baza de date este distribuit n baze de date mai mici astfel nct aplicaiile s aib controlul doar a ctorva baze de date mici. O baz de date distribuit este de fapt o colecie de tabele i relaii stocate n nodurile reelei. De fapt, baza de date este integrat , dar fizic este distribuit pe mai multe sisteme de calcul. Cel mai cunoscut dintre SGBD urile ce lucreaz cu baze de date distribuite este Oracle , folosit foarte mult pentru gestionarea datelor din organizaiile economice mari, pentrui bnci, etc. .

STRUCTURA FIZIC A BAZELOR DE DATE


Bazele de date sunt n general prea mari pentru a fi memorate n memoria intern a unui calculator. Din aceast cauz, ele sunt rezidente ( stocate ) n memoria extern a computerului ( de obicei pe discuri sau benzi magnetice ) . Baza de date fizic este o colecie de fiiere care implementeaz un anumit model de date logice ( structura logic ) . Fiierele sunt integrate de ctre structura logic a bazei de date i ele pot comunica ntre ele. Baza de date este organizat sub form de colecii de nregistrri . la memoria nregistrarea este unitatea de baz de transfer de date ntre memoria extern i memoria intern ( n care are loc prelucrarea ) . Mai mult, pentru reducerea numrului de accese extern, multe nregistrri n blocuri ). Fiierele care formeaz baza de date sunt de 2 tipuri : fiiere de date : acestea conin datele efective . fiere index : acestea precizeaz modul de acces la fiiere (pstreaz anumite date din b. d. pentru a putea regsi mai uor datele ) . Exist ma multe tipuri de organizare a fiierelor : secvenial : accesul la componentele fiierului se face n ordinea fizic a nregistrrilor (banda magnetic este un exemplu de suport pentru memoria extern n care fiierele de acolo nu pot fi accesate dect secvenial ) mai multe nregistrri sunt citite sau scrise printr-un singur acces ( se grupeaz mai

direct : accesul la nregistrri se poate face n orice ordine , ne putem poziiona pe orice nregistrare ( discul ofer un astfel de acces ) . secvenial indexat : nregistrrile se acceseaz n ordinea dat de fiierul index (acesta este parcurs secvenial) . Acest mod de organizare permite parcurgerea ntr-o anumit ordine a nregistrrilor ( nu chiar oricare ) .

Fiierele de date au trei structuri principale

bazate pe faptul c nregistrrile

au pointeri

intrafiiere, pointeri interfiiere sau nu au pointeri. Un pointer este o adres memorat ntr-o nregistrare astfel nct se pot accesa ( regsi ) nregistrrile cu ajutorul acelor adrese . Valoarea pointerului poate fi o adres absolut din memorie sau o adres relativ . Adresa absolut (fizic) depinde de memoria fizic, pe cnd o adres relativ indic locaia nregistrrii n cadrul fiierului ( totui aceast adres relativ trebuie s se traduc i ea n final n adresa absolut pentru a putea accesa nregistrarea fizic . Obs. S.G.B.D. ul FoxPro folosete baze de date care pot fi cu acces secvenial sau cu acces secvenial indexate . Trebuie subliniat faptul c SGBD. trebuie s ofere un serviciu de acces la structurile de date fizice . Programatorul sau utilizatorul nu trebuie s-i bat capul cu structura fizic , acest lucru se realizeaz de SGBD. mpreun cu sistemul de operare. n funcie de organizare se determin operaiile necesare pentru a gsi nregistrrile . Evident, putem avea acces direct la nregistrri sau acces secvenial la nregistrri . nregistrrile se pot aduga ntr-o ordine oarecare fie ntr-o ordine sortat n concordan cu valorile dintr-un anumit cmp . Cel mai simplu i cel mai folosit mod de organizare al coleciei de nregistrri este fiierul secvenial . nregistrrile sunt scrise consecutiv n fiierul de date , n ordinea crerii . Organizarea ca fiier secvenial indexat combin tipurile de acces secvenial i relativ. nregistrrile pot fi accesate n ambele moduri ( acesta exist i n FoxPro) . Bazele de date indexate sunt de fapt formate din dou fiiere : unul cu date i unul index, cu pointeri la cel de date. Putem avea mai multe fiiere index ( mai multe moduri de ordonare, de parcurgere ) sau putem avea fiiere index multichei care conin mai multe chei de indexare (mai multe criterii de parcurgere ) . n mod particular, SGBD-un Foxpro (Visual Foxpro-pentru platforme Windows) este unul relaional. Tabelele bazei de date poate fi organizat secvenial sau secvenialindexat.

Baza de date este format din mai multe tabele n care nregistrrile sunt reprezentate de linii, iar coloanele sunt cmpurile bazei de date . Capul de tabel fomeaz tabelului . Structura tabel. Exemplu o baz de date cursani : Nume Popes cu Georgescu Avrom Prenume Ion Mihai DataN 11:11:1976 02:12:1973 Cmpurile tabel. structura logic a

Studii SUPERIOARE SUPERIOARE

Venit 12000000 23400000

nregistrrile

Mihai

08:23:1964

MEDII

23000000

Acest tabel formeaz fiierul de date, fiier ce se salveaz sub numele de cursani.dbf (acesta va fi fiierul fizic care va conine efectiv datele ) . Structura tabelului dintr-o baz de date presupune precizarea fiecrui cmp component al bazei de date mpreun cu caracteristicile sale. Specificarea unui cmp presupune precizarea numelui de identificare al cmpului ( n Foxpro numele simbolic este format din litere sau cifre de lungime variabil ), a tipului de date ( ce fel de date se vor stoca acolo ) i a lungimii acestuia ( datele care se vor stoca n acel cmp ct de lungi vor fi ele) .

S-ar putea să vă placă și