Documente Academic
Documente Profesional
Documente Cultură
n acest moment termenul de baza de date a intrat n limba ul curent !iind !olosit uneori si n alte acce"tiuni dec#t cea de "ro$enienta% n acest ca"itol sunt de!inite conce"tele de baza de date &BD' si sistem de (estiune a bazelor de date &)GBD' si se !ace o trecere n re$ista a elementelor continute n aceste de!initii% )unt "rezentate a"oi !unctiile "e care trebuie sa le asi(ure un )GBD si cate(oriile de utilizatori ale unui ast!el de sistem% Ca"itolul se inc*eie cu "rezentarea celor trei ni$ele de descriere a unei baze de date si a conce"tului de inde"endenta date+"ro(ram%
nre(istrari% De aceea ele nu se mai !olosesc n realizarea sistemelor de (estiune moderne4 acestea !iind bazate "e modelul relational al datelor% Po"ularitatea acestui model este datorata sim"litatii sale &din "unct de $edere al utilizatorului' si a "osibilitatii de de!inire a unor limba e ne"rocedurale de descriere si mani"ulare a datelor% Termenul de relatie &care da denumirea modelului' "ro$ine din matematica iar re"rezentarea intuiti$a a unei relatii este o tabela% n cazul modelului relational descrierea structurii unei baze de date consta n "rinci"al din descrierea tabelelor com"onente1 denumire4 lista de coloane si ti"ul datelor din acestea% De asemenea descrierea "oate include in!ormatii des"re elementele de identi!icare ale nre(istrarilor dintr+o tabela &c*eie "rimara'4 a coloanelor comune cu alte tabele &c*ei straine' si a altor restrictii si $eri!icari de corectitudine "entru datele stocate% Aceste in!ormatii sunt cunoscute sub numele (eneric de constran(eri de inte(ritate% O"eratiile de "roiectare si descriere a structurii unei baze de date sunt !acute n (eneral cu a utorul modelului entitte+asociere% Acesta este un model (eneric de descriere a datelor sub !orma (ra!ica + dia(rame entitate asociere + din care se "oate trece "e baza unor re(uli de trans!ormare n alte modele de date% ...nregistrat pe suporturi accesibile calculatorului ... Daca ansamblul de date nu este nre(istrat "e su"orturi accesibile calculatorului acesta nu se "oate numi baza de date n acce"tiunea lucrarii de !ata% n limba ul curent se intalnesc e5"resii ca1 6a$em aceasta in!ormatie n baza noastra de date6 si n cazurile n care datele res"ecti$e sunt de e5em"lu stocate sub !orma unor !ise &"e *artie' sortate al!abetic sau du"a alte criterii% n acest caz este $orba des"re o e5tensie a termenului de baza de date% n cazul sistemelor de (estiune a bazelor de date su"orturile "e care sunt stocate datele sunt n "rinci"al ma(netice si o"tice% ... pentru a satisface simultan cerintele mai multor utilizatori ... 7unctiile unui )GBD relati$e la accesul utilizatorilor la baza de date sunt urmatoarele1 8% Gestiunea utilizatorilor% 0n )GBD trebuie sa "ermita crearea4 modi!icarea si ster(erea utilizatorilor% O"eratia este e!ectuata de obicei de administratorul bazei de date% .% Concurenta la date% n cazul accesului simultan al mai multor utilizatori la aceleasi date un )GBD trebuie sa aiba mecanisme "entru a "reintam"ina inconsistenta datelor%Iata un e5em"lu de caz1
7ie o "ortiune a bazei de date4 notata A4 n care se tine numarul de locuri dis"onibile la o cursa aeriana si doua e5ecutii ale unui "ro(ram de rezer$are rulat de doua a(entii de bilete di!erite% Daca "ro(ramul este de ti"ul1
READ A /* se citeste numarul de locuri disponibile din BD */ A = A 1 /* se decrementeaza cu o unitate */ !R"#E A /* se scrie noul numar de locuri disponibile n BD */
atunci este "osibil ca "asii celor doua e5ecutii sa !ie intretesuti n !elul urmator1 3oment de tim" A(entia 8 A(entia . A n BD t8 READ A 89 t. READ A 89 t: A ; A < 8 89 t= A ; A + 8 89 t> ?RITE A @ tA ?RITE A @ )e obser$a ca desi s+au rezer$at . locuri4 A a scazut cu doar o unitate% O ast!el de situatie trebuie "reintam"inata% )unt "rezentate "roblemele le(ate de blocarea &aca"ararea' unor "ortiuni ale BD de catre o e5ecutie a unui "ro(ram4 rezol$area "roblemelor "e care le "oate ridica aste"tarea circulara "entru deblocarea acestor "ortiuni &deadlocB'4 e5ecutia "asilor "ro(ramelor de actualizare a BD ec*i$alenta cu o e5ecutie sec$entiala a "ro(ramelor &serializabilitate' si re(uli de scriere a "ro(ramelor de a"licatie "entru rezol$area "roblemelor de acces concurent% ... intr$un mod selecti% ... Orice )GBD are mecanisme "rin care di$ersilor utilizatori sau cate(orii de utilizatori li se asociaza dre"turi de acces s"eci!ice la obiectele bazei de date% n acest mod !iecarui utilizator i se da dre"tul de a e!ectua doar o"eratiile s"eci!ice acti$itatii sale si doar "e acea "ortiune a bazei de date care este necesara "entru acestea% 3ecanismul de dre"turi de acces are ca obiecti$e "rinci"ale1 Blocarea accesului unor cate(orii de utilizatori la date "e care nu trebuie sa le acceseze% n acest !el este asi(urata una dintre !unctiunile de baza ale unui )GBD si anume con!identialitatea datelor% Blocarea accesului unor cate(orii de utilizatori la date de care nu au ne$oie n acti$itatea lor4 minimiz#ndu+se ast!el riscul distru(erii accidentale a datelor "rin o"eratii necores"unzatoare% 7iecare ti" de )GBD are "ro"riile sale mecanisme de descriere a dre"turilor de acces bazate n "rinci"al "e acordarea sau neacordarea dre"tului
de a citi sau scrie di$erse "ortiuni ale bazei de date% O "rezentare detaliata a acestei "robleme se (aseste n Ca"itolul C% ... si n timp util ... n cazul bazelor de date de dimensiuni mari este e$ident ca orice cautare care s+ar baza "e o "arcur(ere sec$entiala a nre(istrarilor din tabele ar duce la tim"i de ras"uns inadec$at de mari% De asemenea4 o"eratii mai com"licate "rin care se re(asesc date stocate n mai multe tabele le(ate intre ele "rin coloane comune "ot duce n li"sa unor al(oritmi s"eci!ici la tim"i de e5ecutie inacce"tabili% De aceea orice )GBD are mecanisme "rin care minimizeaza tim"ul de ras"uns4 mecanisme bazate n s"ecial "e indecsi si modalitati s"eci!ice de or(anizare !izica a datelor%
Aceasta abordare a !ost necesara "entru a nu a$ea mecanisme di!erite de acces la datele de sistem si la datele stocate n baza de date% Din cele de mai sus rezulta ca nu orice "ro(ram care (estioneaza date este un )GBD% )a luam e5em"lul unui "ro(ram scris n limba ul C care (estioneaza niste !isiere de nre(istrari a caror structura este cablata n "ro(ram% Acesta nu res"ecta !unctia de descriere a datelor necesara unui )GBD deoarece utilizatorul1 2u "oate adau(a noi !isiere de date% 2u "oate modi!ica structura !isierelor de date (estionate &adau(ari sau ster(eri de cam"uri ale nre(istrarilor !isierelor4 sc*imbarea ti"ului acestora'% )tructura bazei de date este cablata n "ro(ram si nu este stocata n baza de date% 0n )GBD trebuie sa "ermita deci de!inirea si modi!icarea de catre utilizatorii autorizati a structurii bazei de date4 limitarile !iind doar de natura te*nica sau "ri$ind ti"urile de obiecte care se "ot nre(istra1 dimensiune ma5ima "entru o tabela4 numar ma5im de coloane sau linii dintr+o tabela4 ti"ul unei coloane ales dintr+o multime "rede!inita de ti"uri "osibile4 etc%
8% Consultarea cataloa(elor de sistem "entru a $eri!ica e5istenta obiectelor im"licate si a a!la structura si "ro"rietatile acestora "recum si "entru a $eri!ica daca utilizatorul care a lansat comanda are dre"tul de a e!ectua o"eratia res"ecti$a .% Crearea unui "lan de e5ecutie o"tim "entru o"eratia res"ecti$a4 lu#nd n consideratie e5istenta unor e$entuale structuri de cautare ra"ida &indecsi'% :% E5ecutia o"eratiei si $eri!icarea !a"tului ca rezultatul nu $ioleaza constran(erile de inte(ritate e5istente =% E5ecutarea altor o"eratii care "ot !i declansate automat de o"eratia de baza &n cazul n care sistemul su"orta ast!el de o"eratii'% )i din "unct de $edere al acestei !unctii nu toate "ro(ramele de (estiune de date sunt )GBD% n cazul "ro(ramului scris n limba ul C descris anterior4 daca o"erarea se !ace "rin intermediul unui arbore de meniuri care "ermite e!ectuarea unui set "restabilit de o"eratii !unctia de utilizare a datelor nu este inde"linita% Adau(area unei noi o"tiuni n "ro(ram descriind o o"eratie care nu a !ost "re$azuta nu se "oate !ace de utilizator ci doar "rin modi!icarea si recom"ilarea "ro(ramului% O situatie s"eciala este aceea a "ro(ramelor dedicate care au insa la baza un sistem de (estiune a bazelor de date% n acest caz )GBD+ul dis"une de toate !acilitatile de descriere si utilizare a datelor dar acestea nu sunt "use la dis"ozitia utilizatorului a"licatiei decat n masura n care au !ost cu"rinse n meniurile acesteia%
Alocarea accidentala a aceluiasi numar matricol "entru mai multi studenti n cazul n care "entru coloana contin#nd acest numar s+ar de!ini o constran(ere de unicitate a $alorilor% Introducerea accidentala a unui student cu un cod incorect al !acultatii la care acesta este inscris% Acest lucru se "oate realiza de!inind o constra(nere de inte(ritate "rin care se $eri!ica e5istenta n tabela de !acultati a $alorii res"ecti$e inainte de scrierea ei n tabela de studenti% De!inirea de constran(eri de inte(ritate nu "re$ine insa total erorile accidentale de o"erare1 de e5em"lu introducerea din (reseala a unei note de = n loc de > nu $a !i semnalata4 ambele $alori !iind n inter$alul admisibil%
E5ista trei ti"uri de "robleme "e care un )GBD trebuie sa le rezol$e "entru a asi(ura accesul concurent corect al mai multor utilizatori la aceeasi baza de date1
n acest caz4 "rima dintre cele doua e5ecutii care $a reusi sa bloc*eze cu succes articolul A isi $a e5ecuta toti "asii inaintea celeilalte4 ne$oita sa aste"te deblocarea lui A1 3oment de tim" A(entia 8 A(entia . A n BD t8 LOCF A 89 t. READ A Aste"tare 89 t: A ; A < 8 Aste"tare 89 t= ?RITE A Aste"tare @ t> 02LOCF A Aste"tare @ tA LOCF A @ tC READ A @ t- A ; A + 8 @ t@ ?RITE A t89 02LOCF A 7iecare ti" de )GBD are "ro"riul sau mecanism de de!inire a dimensiunii articolelor si a ti"urilor de blocari care se "ot e!ectua%
3odalitati de e$itare sau de eliminare a interblocarii% Blocarea articolelor rezol$a o serie de "robleme dar creaza "remisele a"aritiei interbloca ului4 situatie n care doua e5ecutii de "ro(rame astea"ta deblocarea unui articol blocat de cealalta%
)a luam cazul a doua "ro(rame care au urmatoarea structura1
2rogram 21 2rogram 2& $$$$$$$$$$ $$$$$$$$$$ ./,0 A ./,0 B ./,0 B ./,0 A ..... ..... )1./,0 B )1./,0 A
)1./,0 A )1./,0 B
n cazul n care atat P8 cat si P. au e5ecutat "rima instructiune bloc#nd articolele A si res"ecti$ B4 !iecare dintre ele intra n aste"tare1 P8 astea"ta ca P. sa+l debloc*eze "e B iar P. astea"ta ca P8 sa+l debloc*eze "e A% O ast!el de situatie se numeste deadlocB si trebuie !ie e$itata !ie eliminata de catre )GBD%
E5ecutia serializabila% n cazul mai multor e5ecutii simultane care acceseaza baza de date se considera ca e!ectul lor este corect daca rezultatul !inal este identic cu e5ecutia lor succesi$a% Aceasta "ro"rietate se numeste serializabilitate si un )GBD trebuie sa "una la dis"ozitie mecanisme de asi(urare a serializabilitatii e5ecutiilor "ro(ramelor de acces%
Ca"itolul A !ace o "rezentare a bazelor teoretice ale accesului concurent la date n sistemele de (estiune a bazelor de date relationale%
Acestia sunt utilizatorii obisnuiti ai )GBD+ului si dis"un de dre"turile de acces care le+au !ost alocate de administratorul bazei de date% 3a oritatea sistemelor de (estiune "ermit de!inirea de cate(orii (enerice de utilizatori &numite roluri' iar !iecare utilizator indi$idual are asociat unul sau mai multe roluri4mostenind dre"turile de acces ale acestora% Este usurata ast!el o"eratia de creare a unui nou utilizator% E5ista doua ti"uri de utilizatori ne"ri$ile(iati1 0tilizatorul este o "ersoana !izica lucr#nd direct cu )GBD+ul "rin intermediul inter!etelor "e care acesta le "une la dis"ozitie% De e5em"lu n Oracle o ast!el de inter!ata este "ro(ramul sHl"lus "rin care se "ot e5ecuta cereri )DL asu"ra bazei de date% 0tilizatorul este o entitate (enerica a$#nd asociat un nume+utilizator si o "arola "rin intermediul careia o multime de "ro(rame de a"licatie se conecteaza la )GBD "entru a e!ectua di$erse o"eratii% Persoanele care utilizeaza aceste a"licatii nu cunosc numele+utilizator sau "arola !olosite "entru accesul la date4 e5ist#nd e$entual mecanisme "aralele de autenti!icare a utilizatorilor autorizati ai a"licatiei% Din "unct de $edere al relatiei cu una dintre bazele de date (estionate de un )GBD "ersoanele care acceseaza datele se im"art n doua cate(orii1
12
Di!eritele cate(orii de utilizatori ai unei baze de date au ne$oie n acti$itatea lor doar de "ortiuni s"eci!ice ale acesteia% Descrierea acestor "ortiuni "oarta numele de sc*eme e5terne% O baza de date are deci asociata o sin(ura sc*ema !izica si o sin(ura sc*ema conce"tuala dar mai multe sc*eme e5terne% )c*emele e5terne sunt descrise de obicei cu a utorul modelului de date !olosit "entru sc*ema conce"tuala% n "lus se s"eci!ica modul n care se !ace cores"ondenta intre obiectele celor doua descrieri% Daca "entru administratorului bazei de date sc*ema e5terna coincide cu sc*ema conce"tuala4 celelalte cate(orii de utilizatori acceseaza baza de date doar "rin intermediul sc*emelor e5terne s"eci!ice acestora% Din aceasta cauza4 orice "relucrare lansata de un utilizator este translatata de catre )GBD mai intai la ni$el conce"tual si a"oi la ni$el !izic% Aceste o"eratii "ot !i consumatoare de tim"% De aceea nu toate sistemele de (estiune dis"un de mecanisme de descriere "entru !iecare dintre cele trei ni$ele1 n cazul multor "ac*ete de "ro(rame "entru calculatoare "ersonale descrierea sc*emei !izice se !ace cu a utorul LDD4 o data cu sc*ema conce"tuala% De asemenea !acilitatile "entru de!inirea sc*emelor e5terne sunt reduse sau ine5istente% n cazul sistemelor de (estiune a bazelor de date com"le5e4 descrierea sc*emelor e5terne se !ace "rin de!inirea de $ederi utilizator% O ast!el de $edere este n cazul modelului relational o tabela $irtuala care nu e5ista la ni$el !izic si conce"tual n baza de date dar care se "oate calcula "e baza tabelelor continute n aceasta ori de cate ori este !olosita de o"eratiile lansate de utilizator%
Inde"endenta lo(ica re"rezinta "osibilitatea de sc*imbare a sc*emei conce"tuale a bazei de date !ara modi!icarea sc*emelor e5terne% Conditia este ca modi!icarea sa nu elimine nici unul dintre elementele necesare translatiei de la sc*ema e5terna la sc*ema conce"tuala% O"eratii ca1
13
Adau(area de noi tabele n baza de date Adau(area de noi coloane n tabelele e5istente 3odi!icarea numelor tabelelor si coloanelor e5istente Adau(area de noi constran(eri de inte(ritate 3odi!icarea n anumite limite a ti"ului datelor stocate n baza de date Restructurarea bazei de date "rin mutarea unor coloane n alte tabele4 !ra(mentarea unei tabele sau reunirea mai multor tabele% "ot !i su"ortate doar "rin modi!icarea de!initiei sc*emelor e5terne4 !ara ca acestea sa su!ere modi!icari structurale% n acest caz deoarece "ro(ramele de a"licatie si utilizatorii acceseaza baza de date doar "rin intermediul sc*emelor e5terne modi!icarile sc*emei conce"tuale nu $or !i sesizate de catre acestia% E5em"lu1 )a consideram o baza de date contin#nd la ni$el conce"tual o tabela cu date des"re studenti cu urmatoarea structura1
)tudent&Cod)tudent4 2ume4 Cod7acultate4 3edie' si n sc*eme e5terne contin#nd tabelele $irtuale )tudent+84 )tudent+.4 I4 )tudent+n de!inite ast!el1 )tudent+i&Cod)tudent4 2ume4 Cod7acultate4 3edie' ; liniile din tabela )tudent care "e coloana Cod7acultate contin $aloarea i%
n cazul modi!icarii bazei de date "rin adau(area unei noi tabele cu"rinz#nd lista s"ecializarilor din cadrul uni$ersitatii si a unei noi coloane n tabela )tudent "entru a s"eci!ica la ce s"ecializare este inscris !iecare student4 tabelele cu datele studentilor din sc*emele e5terne $or ramane aceleasi daca le sc*imbam de!initia1 Baza de date conce"tuala1
Inde"endenta !izica re"rezinta "osibilitatea de sc*imbare a sc*emei !izice a bazei de date !ara modi!icarea sc*emei conce"tuale si im"licit a sc*emelor e5terne% Aceasta da "osibilitatea reor(anizarii !izice a bazei de date !ara a!ectarea a"licatiilor care o !olosesc%
14
O"eratii ca1 )c*imbarea dis"oziti$elor !izice "e care este stocata baza de date )c*imbarea numelor !isierelor !izice n care este stocata baza de date sau a directoarelor unde acestea sunt "lasate Adau(area de noi structuri de cautare ra"ida &indecsi' "entru cresterea $itezei de e5ecutie a anumitor o"eratii )c*imbarea n anumite conditii a structurii !izice a !isierelor bazei de date )c*imbarea unor "arametri ai sistemului de (estiune care a!ecteaza modul n care datele sunt stocate la ni$el !izic "ot !i su"ortate doar "rin modi!icarea cataloa(elor sau a !isierelor de con!i(uratie "e care )GBD+ul le !oloseste "entru a !ace translatia de la sc*ema conce"tuala la sc*ema !izica% Cum nu toate sistemele de (estiune a bazelor de date im"lementeaza total cele trei ni$ele de descriere4 "osibilitatea de a asi(ura cele doua ti"uri de inde"endenta este conditionata de !acilitatile o!erite de sistem% n cazul "osibilitatii asi(urarii inde"endentei datelor a$anta ul consta n e5istenta "remiselor scrierii de a"licatii care "ot !i usor dez$oltate4 intretinute si actualizate%
15