Sunteți pe pagina 1din 19

CAPITOLUL 1.

TEORIA BAZELOR DE DATE RELAIONALE


1.1. MODELUL RELAIONAL Modelul relaional a fost propus de ctre IBM i a revoluionat reprezentarea datelor fcnd trecerea la generaia a doua de baze de date. Modelul este simplu, are o solid fundamentare teoretic fiind bazat pe teoria seturilor (ansamblurilor) i pe logica matematic. Pot fi reprezentate toate tipurile de structuri de date de mare complexitate, din diferite domenii de activitate. Modelul relaional este definit prin: structura de date, operatorii care acioneaz asupra structurii i restriciile de integritate. 1) Conceptele utilizate pentru definirea structurii de date sunt: domeniul, tabela (relaia), atributul, tuplul, cheia i schema tabelei. Domeniu este un ansamblu de valori caracterizat printr-un nume. El poate fi explicit sau implicit. Tabela/relaia este un subansamblu al produsului cartezian al mai multor domenii, caracterizat printr-un nume, prin care se definesc atributele ce aparin aceleai clase de entiti. Atributul este coloana unei tabele, caracterizat printr-un nume. Cheia este un atribut sau un ansamblu de atribute care au rolul de a identifica un tuplu dintr-o tabel. Tipuri de chei: primare/alternate, simple/comune, externe. Tuplul este linia dintr-o tabel i nu are nume. Ordinea liniilor (tupluri) i coloanelor (atribute) dintr-o tabel nu trebuie s prezinte nici-o importan. Schema tabelei este format din numele tabelei, urmat ntre paranteze rotunde de lista atributelor, iar pentru fiecare atribut se precizeaz domeniul asociat. Schema bazei de date poate fi reprezentat printr-o diagram de structur n care sunt puse n eviden i legturile dintre tabele. Definirea legturilor dintre tabele se face logic construind asocieri ntre tabele cu ajutorul unor atribute de legtur. Atributele implicate n realizarea legturilor se gsesc fie n tabelele asociate, fie n tabele distincte construite special pentru legturi. Atributul din tabela iniial se numete cheie extern iar cel din tabela final este cheie primar. Legturile posibile sunt 1:1, 1:m, m:n. Potenial, orice tabel se poate lega cu orice tabel, dup orice atribute.

Legturile se stabilesc la momentul descrierii datelor prin limbaje de descriere a datelor (LDD), cu ajutorul restriciilor de integritate. Practic, se stabilesc i legturi dinamice la momentul execuiei. 2) Operatorii modelului relaional sunt operatorii din algebra relaional i operatorii din calculul relaional. Algebra relaional este o colecie de operaii formale aplicate asupra tabelelor (relaiilor), i a fost conceput de E.F.Codd. Operaiile sunt aplicate n expresiile algebrice relaionale care sunt cereri de regsire. Acestea sunt compuse din operatorii relaionali i operanzi. Operanzii sunt ntotdeauna tabele (una sau mai multe). Rezultatul evalurii unei expresii relaionale este format dintr-o singur tabel. Algebra relaional are cel puin puterea de regsire a calcului relaional. O expresie din calculul relaional se poate transforma ntr-una echivalent din algebra relaional i invers. Codd a introdus ase operatori de baz (reuniunea, diferena, produsul cartezian, selecia, proiecia, jonciunea) i doi operatori derivai (intersecia i diviziunea). Ulterior au fost introdui i ali operatori derivai (speciali). n acest context, operatorii din algebra relaional pot fi grupai n dou categorii: pe mulimi i speciali. Operatori pe mulimi (R1, R2, R3 sunt relaii (tabele)) sunt: Reuniunea. R3 = R1 R2, unde R3 va conine tupluri din R1 sau R2 luate o singur dat; Diferena. R3 = R1 \ R2, unde R3 va conine tupluri din R1 care nu se regsesc n R2; Produsul cartezian. R3 = R1 R2, unde R3 va conine tupluri construite din perechi (x1x2), cu x1R1 i x2R2; Intersecia. R3 = R1 R2, unde R3 va conine tupluri care se gsesc n R1 i R2 n acelai timp, etc. Operatori relaionali speciali sunt: Selecia. Din R1 se obine o subtabel R2, care va conine o submulime din tuplurile iniiale din R1 ce satisfac un predicat (o condiie). Numrul de atribute din R2 este egal cu numrul de atribute din R1. Numrul de tupluri din R2 este mai mic dect numrul de tupluri din R1. Proiecia. Din R1 se obine o subtabel R2, care va conine o submulime din atributele iniiale din R1 i fr tupluri duplicate. Numrul de atribute din R2 este mai mic dect numrul de atribute din R1. Jonciunea este o derivaie a produsului cartezian, ce presupune utilizarea unui calificator care s permit compararea valorilor

unor atribute din R1 i R2, iar rezultatul n R3. R1 i R2 trebuie s aib unul sau mai multe atribute comune care au valori comune. Algebra relaional este prin definiie neprocedural (descriptiv), iar calculul relaional permite o manier de cutare mixt (procedural/neprocedural). Calculul relaional se bazeaz pe calculul predicatelor de ordinul nti (domeniu al logicii) i a fost propus de E.F. Codd. Predicatul este o relaie care se stabilete ntre anumite elemente i care poate fi confirmat sau nu. Predicatul de ordinul 1 este o relaie care are drept argumente variabile care nu sunt predicate. Variabila poate fi de tip tuplu (valorile sunt dintr-un tuplu al unei tabele) sau domeniu (valorile sunt dintr-un domeniu al unei tabele). Cuantificatorii (operatorii) utilizai n calculul relaional sunt: universal () i existenial (). Construcia de baz n calculul relaional este expresia relaional de calcul tuplu sau domeniu (funcie de tipul variabilei utilizate). Expresia relaional de calcul este format din: operaia de efectuat, variabile (tuplu respectiv domeniu), condiii (de comparaie, de existen), formule bine definite (operanzi-constante, variabile, funcii, predicate; operatori), cuantificatori. Pentru implementarea acestor operatori exist comenzi specifice n limbajele de manipulare a datelor (LMD) din sistemele de gestiune a bazelor de date relaionale (SGBDR). Aceste comenzi sunt utilizate n operaii de regsire (interogare). Dup tehnica folosit la manipulare, LMD sunt bazate pe: calculul relaional (QUEL n Ingres, ALPHA propus de Codd); algebra relaional (ISBL, RDMS); transformare (SQL, SQUARE); grafic (QBE, QBF). Transformarea ofer o putere de regsire echivalent cu cea din calculul i algebra relaional. Se bazeaz pe transformarea (mapping) unui atribut sau grup de atribute ntr-un atribut dorit prin intermediul unor relaii. Rezultatul este o relaie (tabel) care se poate utiliza ntr-o alt transformare. Grafica ofer interactivitate mare pentru constrirea cererilor de regsire. Utilizatorul specific cerea alegnd sau completnd un ecran structurat grafic. Poate fi folosit de ctre toate categoriile de utilizatori n informatic. 3) Restriciile de integritate ale modelului relaional sunt structurale i comportamentale.

Restriciile structurale sunt: Restricia de unicitate a cheii. ntr-o tabel nu trebuie s existe mai multe tupluri cu aceeai valoare pentru ansamblul cheie; Restricia referenial. Intr-o tabel t1 care refer o tabel t2, valorile cheii externe trebuie s figureze printre valorile cheii primare din t2 sau s ia valoarea null (neprecizat); Restricia entitii. Intr-o tabel, atributele din cheia primar nu trebuie s ia valoarea NULL. Cele trei restricii de mai sus sunt minimale. Pe lng acestea, exist o serie de alte restricii structurale care se refer la dependenele dintre date: funcionale, multivaloare, jonciune etc. (sunt luate n considerare la tehnicile de proiectare a bazelor de date relaionale - BDR). Restriciile de comportament sunt cele care se definesc prin comportamentul datelor i in cont de valorile din BDR: Restricia de domeniu. Domeniul corespunztor unui atribut dintro tabel trebuie s se ncadreze ntre anumite valori; Restricii temporare. Valorile anumitor atribute se compar cu nite valori temporare (rezultate din calcule etc.). Restriciile de comportament fiind foarte generale se gestioneaz fie la momentul descrierii datelor (de exemplu prin clauza CHECK), fie n afara modelului la momentul execuiei. Restriciile de integritate suportate de Oracle sunt: NOT NULL nu permite valori NULL n coloanele unei tabele; UNIQUE nu sunt permise valori duplicat n coloanele unei tabele; PRIMARY KEY nu permite valori duplicate sau NULL n coloana sau coloanele definite astfel; FOREIGN KEY presupune ca fiecare valoare din coloana sau setul de coloane defini astfel s aib o valoare corespondent identic n tabela de legtur, tabel n care coloana corespondent este definit cu restricia UNIQUE sau PRIMARY KEY; CHECK elimin valorile care nu satisfac anumite cerine (condiii) logice. Termenul de chei (keys) este folosit pentru definirea ctorva categorii de constrngeri i sunt: primary key, unique key, foreign key, referenced key. Se consider c modelul relaional are o serie de limite cum ar fi: Simplitatea modelului l face dificil de aplicat pentru noile tipuri

de aplicaii (multimedia, internet etc.); Nu asigur o independen logic total a datelor de aplicaie; Poate crete redundana datelor. 1.2. BAZE DE DATE RELAIONALE Bazele de date relaionale (BDR) utilizeaz modelul de date relaional i noiunile aferente. BDR au o solid fundamentare teoretic, n special prin cercetrile de la IBM conduse de E.F.Codd. BDR este un ansamblu organizat de tabele (relaii) mpreun cu legturile dintre ele. Concepte utilizate la organizarea datelor n BDR i respectiv fiiere sunt prezentate n tabelul 1.1. Concepte utilizate n organizarea datelor
Fiiere BDR fiier tabel(relaie) nregistrare tuplu (linie) cmp atribut(coloan) Tabelul 1.1. valori domeniu valori

Avantajele BDR fa de fiiere sunt prezentate n tabelul 1.2. Avantajele BDR


CRITERIU Independena datelor Niveluri de structurare Deschidere i portabilitate Reprezentarea i utilizarea datelor Structura de date se pstreaz BDR logic i fizic conceptual, logic i fizic mare simplificat prin model n dicionarul BDR Tabelul 1.2. FIIERE fizic logic i fizic mic complicat n programe.

Atunci cnd dorim s realizm o baz de date relaional trebuie s tim clar ce avem de fcut, adic s stabilim obiectivele activitii noastre. n acest sens, cteva dintre cele mai importante obiective, le prezentm n continuare: Partiionarea semnific faptul c aceleai date trebuie s poat fi folosite n moduri diferite de ctre diferii utilizatori; Deschiderea se refer la faptul c datele trebuie s fie uor adaptabile la schimbrile care pot aprea (actualizarea structurii, tipuri noi de date etc.); Eficiena are n vedere stocarea i prelucrarea datelor, care trebuie

s se fac la costuri ct mai sczute, costuri care s fie inferioare beneficiilor obinute; Reutilizarea nseamn faptul c fondul de date existent trebuie s poat fi reutilizat n diferite aplicaii informatice; Regsirea este o actvitate frecvent pe bazele de date i de aceea cererile de regsire trebuie s poat fi adresate uor de ctre toate categoriile de utilizatori, dup diferite criterii; Accesul nseamn modul de localizare a datelor i acest lucru trebuie s poat fi realizat prin diferite moduri de acces, rapid i uor; Modularizarea presupune faptul c realizarea BDR trebuie s se poat face modular pentru generalitate i posibilitatea lucrului n echip; Protecia bazei de date trebuie asigurat sub ambele aspecte: securitatea i integritatea datelor; Redundana se asigur n limite acceptabile prin implementarea unui model de date pentru baze de date i prin utilizarea unei tehnici de proiectare a BDR. Se asigur astfel, o redundan minim i controlat; Independena datelor fa de programe trebuie asigurat att la nivel logic ct i i fizic. Bazele de date relaionale au evoluat ca un tip special de aplicaii informatice, i anume cele care au organizarea datelor n memoria extern conform unui model de date specific. De aceea, n metodologia de realizare a BDR se parcurg, n cea mai mare parte, cam aceleai etape ca la realizarea unei aplicaii informatice, cu o serie de aspecte specifice. Pe de alt parte, n literatura de specialitate, sunt diferite propuneri de metodologii de realizare a bazelor de date. innd cont de cele dou aspecte de mai sus, sunt propuse cteva actviviti care trebuie parcurse la realizarea unei baze de date. Aceste activiti vor fi regsite, sub aceeai denumire sau sub denumiri diferite, n majoritatea metodologiilor de realizare a bazelor de date, din literatura de specialitate. Activitile (etapele) parcurse pentru realizarea unei BDR sunt: analiza de sistem, proiectarea noului sistem, realizarea componentelor logice, punerea n funciune, dezvoltarea. 1) Scopul analizei de sistem este de a evidenia cerinele aplicaiei i resursele utilizate (studiul), precum i de a evalua aceste cerine prin modelare (analiza).

Studiul situaiei existente se realizeaz prin: definirea caracteristicilor generale ale unitii, identificarea activitilor desfurate, identificarea resurselor existente (informaionale, umane, energetice, echipamente, financiare etc.), identificarea necesitilor de prelucrare. Analiza este o activitate de modelare (conceptual) i se realizeaz sub trei aspecte: structural, dinamic i funcional. a) Analiza structural evideniaz, la nivel conceptual, modul de structurare a datelor i a legturilor dintre ele. Cea mai utilizat tehnic este entitate-asociere. Aceasta conine: Identificarea entitilor: fenomene, procese, obiecte concrete sau abstracte (substantivele din prezentarea activitii descrise) (exemple de entiti: Persoane, Produse, Beneficiari). Identificarea asocierilor dintre entiti ca fiind legturile semnificative de un anumit tip (verbele din prezentarea activitii descrise). Identificarea atributelor ce caracterizeaz fiecare entitate n parte (exemple de atribute: Marca, Nume, Adres). Stabilirea atributelor de identificare unic a realizrilor entitii, drept chei. Rezultatul analizei structurale este modelul static (structural) numit i diagrama entitate-asociere. Diagrama entitate-asociere (EntityRelationship) poate fi generat cu produse software tip CASE (Computer Aided Software Engineering), ca de exemplu Oracle Designer. Pornind de la o astfel de diagram, se pot construi, n actvitatea de proiectare, schemele relaiilor (tabelelor). b) Analiza dinamic evideniaz comportamentul elementelor sistemului la anumite evenimente. Una din tehnicile utilizate este diagrama stare-tranziie. Aceasta presupune: Identificarea strilor n care se pot afla componentele sistemului. Identificarea evenimentelor care determin trecerea unei componente dintr-o stare n alta. Stabilirea tranziiilor admise ntre stri. Construirea diagramei stare-tranziie. Rezultatul analizei dinamice este modelul dinamic. c) Analiza funcional evideniaz modul de asigurare a cerinelor informaionale (fluxul prelucrrilor) din cadrul sistemului, prin care intrrile sunt transformate n ieiri. Cea mai utilizat tehnic este diagrama de flux al datelor. Conform acestei tehnici se delimiteaz: Aria de cuprindere a sistemului. Se identific sursele de date.

Se identific modul de circulaie i prelucrare a datelor. Se identific apoi rezultatele obinute. Rezultatul analizei funcionale este modelul funcional. 2) Proiectarea structurii bazei de date se face pe baza modelelor realizate n activitatea de analiz. Inainte de proiectarea bazei de date se alege tipul de sistem de gestiune a bazei de date. Alegerea SBGD-ului se face innd cont de dou aspecte: cerinele aplicaiei (utilizatorului) i performanele tehnice ale SGBD-ului. Cerinele aplicaiei se refer la: volumul de date estimat a fi memorat i prelucrat n BDR; complexitatea problemei de rezolvat; ponderea i frecvena operaiilor de intrare/ieire; condiiile privind protecia datelor; operaiile necesare (ncrcare/validare, actualizare, regsire etc.); particularitile activitii pentru care se realizeaz baza de date. Performanele tehnice ale SGBD-ului se refer la: modelul de date pe care-l implementeaz; ponderea utilizrii SGBD-ului pe pia i tendina; configuraia de calcul minim cerut; limbajele de programare din SGBD; facilitile de utilizare oferite pentru diferite categorii de utilizatori; limitele SGBD-ului; optimizrile realizate de SGBD; facilitile tehnice; lucrul cu mediul distribuit i concurena de date; elementele multimedia; instrumentele CASE; interfeele de comunicare; posibilitatea de autodocumentare; instrumentele specifice oferite. Proiectarea BDR se realizeaz prin proiectarea schemelor BDR i proiectarea modulelor funcionale specializate. Schemele bazei de date sunt: conceptual, extern i intern. a) Proiectarea schemei conceptuale pornete de la identificarea setului de date necesar sistemului. Aceste date sunt apoi integrate i structurate ntr-o schem (exemplu: pentru BDR relaionale cea mai utilizat tehnic este normalizarea). Pentru acest lucru se parcurg paii: Stabilirea schemei conceptuale iniiale care se deduce din modelul entitate-asociere (vezi analiza structural). Pentru acest lucru, se transform fiecare entitate din model ntr-o colecie de date (fiier), iar pentru fiecare asociere se definesc cheile aferente. Dac rezult colecii izolate, acestea se vor lega de alte colecii prin chei rezultnd asocieri (1:1, 1:m, m:n). Ameliorarea progresiv a schemei conceptuale prin eliminarea unor anomalii (exemplu: cele cinci forme normale pentru BDR relaionale). Stabilirea schemei conceptuale finale trebuie s asigure un echilibru ntre cerinele de actualizare i performanele de exploatare (exemplu: o form normal superioar asigur

performane de actualizare, dar timpul de rspuns va fi mai mare). Tehnica de normalizare este utilizat n activitatea de proiectare a structurii BDR i const n eliminarea unor anomalii (neajunsuri) de actualizare din structur. Anomaliile de actualizare sunt situaii nedorite care pot fi generate de anumite tabele n procesul proiectrii lor: Anomalia de tergere semnific faptul c stergnd un tuplu dintro tabel, pe lng informaiile care trebuie terse, se pierd i informaiile utile existente n tuplul respectiv; Anomaliile de adugare semnific faptul c nu pot fi incluse noi informaii necesare ntr-o tabel, deoarece nu se cunosc i alte informaii utile (de exemplu valorile pentru cheie); Anomalia de modificare semnific faptul c este dificil de modificat o valoare a unui atribut atunci cnd ea apare n mai multe tupluri. Normalizarea este o teorie construit n jurul conceptului de forme normale (FN), care amelioreaz structura BDR prin nlturarea treptat a unor neajunsuri i prin imprimarea unor faciliti sporite privind manipularea datelor. Normalizarea utilizeaz ca metod descompunerea (top-down) unei tabele n dou sau mai multe tabele, pstrnd informaii (atribute) de legtur. FN1. O tabel este n FN1 dac toate atributele ei conin valori elementare (nedecompozabile), adic fiecare tuplu nu trebuie s aib date la nivel de grup sau repetitiv. Structurile de tip arborescent i reea se transform n tabele cu atribute elemntare. O tabel n FN1 prezint nc o serie de anomalii de actualizare datorit eventualelor dependene funcionale incomplete. Fiecare structur repetitiv genereaz (prin descompunere) o nou tabel, iar atributele la nivel de grup se nltur, rmnnd doar cele elemntare. FN2. O tabel este n FN2 dac i numai dac este n FN1 i fiecare atribut noncheie al tabelei este dependent funcional complet de cheie. Un atribut B al unei tabele depinde funcional de atributul A al aceleiai tabele, dac fiecrei valori a lui A i corespunde o singur valoare a lui B, care i este asociat n tabel. Un atribut B este dependent funcional complet de un ansamblu de atribute A n cadrul aceleiai tabele, dac B este dependent funcional de ntreg ansamblul A (nu numai de un atribut din ansamblu). O tabel n FN2 prezint nc o serie de anomalii de actualizare, datorit eventualelor dependene tranzitive.

Eliminarea dependenelor incomplete se face prin descompunerea tabelei iniiale n dou tabele, ambele coninnd atributul intermediar (B). FN3. O tabel este n FN3 dac i numai dac este n FN2 i fiecare atribut noncheie depinde n mod netranzitiv de cheia tabelei. ntr-o tabel T, fie A,B,C trei atribute cu A cheie. Dac B depinde de A (A B) i C depinde de B (B C) atunci C depinde de A n mod tranzitiv. Eliminarea dependenelor tranzitive se face prin descompunerea tabelei iniiale n dou tabele, ambele coninnd atributul intermediar (B). O tabel n FN3 prezint nc o serie de anomalii de actualizare, datorate eventualelor dependene multivaloare. O definiie mai riguroas pentru FN3 a fost dat prin forma intermediar BCNF (Boyce Codd Normal Form): o tabel este n BCNF dac fiecare determinant este un candidat cheie.Determinantul este un atribut elementar sau compus fa de care alte atribute sunt complet dependente funcional. FN4. O tabel este n FN4 dac i numai dac este n FN3 i nu conine dou sau mai multe dependene multivaloare. ntr-o tabel T, fie A,B,C trei atribute. n tabela T se menine dependena multivaloare A dac i numai dac mulimea valorilor lui B ce corespunde unei perechi de date (A,C), depinde numai de o valoare a lui A i este independent de valorile lui C. FN5. O tabel este n FN5 dac i numai dac este n FN4 i fiecare dependen jonciune este generat printr-un candidat cheie al tabelei. n tabela T (A,B,C) se menine dependena jonciune (AB, AC) dac i numai dac T menine dependena multivaloare A -->> B sau C. Dependena multivaloare este caz particular al dependenei jonciune. Dependena funcional este caz particular al dependenei multivaloare. b) Proiectare schemei externe are rolul de a specifica viziunea fiecrui utilizator asupra BDR. Pentru acest lucru, din schema conceptual se identific datele necesare fiecrei viziuni. Datele obinute se structureaz logic n subscheme innd cont de facilitile de utilizare i de cerinele utilizator. Schema extern devine operaional prin construirea unor viziuni (view) cu SGBD-ul i acordarea drepturilor de acces. Datele ntr-o viziune pot proveni din una sau mai multe colecii i nu ocup spaiul fizic. c) Proiectarea schemei interne presupune stabilirea structurilor de memorare fizic a datelor i definirea cilor de acces la date. Acestea sunt specifice fie SGBD-ului (scheme de alocare), fie sistemului de operare. Proiectarea schemei interne nseamn estimarea spaiului fizic pentru BDR, definirea unui model fizic de alocare (a se vedea dac SGBD-ul permite explicit acest lucru) i definirea unor indeci pentru accesul direct, dup

cheie, la date. Proiectarea modulelor funcionale ine cont de concepia general a BDR, precum i de schemele proiectate anterior. n acest sens, se proiecteaz fluxul informaional, modulele de ncrcare i manipulare a datelor, interfeele specializate, integrarea elementelor proiectate cu organizarea i funcionarea BDR. 3) Realizarea componentelor logice. Componentele logice ale unei BD sunt programele de aplicaie dezvoltate, n cea mai mare parte, n SGBD-ul ales. Programele se realizeaz conform modulelor funcionale proiectate n etapa anterioar. Componentele logice in cont de ieiri, intrri, prelucrri i coleciile de date. n paralel cu dezvoltarea programelor de aplicaii se ntocmesc i documentaiile diferite (tehnic, de exploatare, de prezentare). 4) Punerea n funciune i exploatarea. Se testeaz funciile BDR mai nti cu date de test, apoi cu date reale. Se ncarc datele n BDR i se efectueaz procedurile de manipulare, de ctre beneficiar cu asistena proiectantului. Se definitiveaz documentaiile aplicaiei. Se intr n exploatare curent de ctre beneficiar conform documentaiiei. 5) Dezvoltarea sistemului. Imediat dup darea n exploatare a BDR, n mod continuu, pot exista factori perturbatori care genereaz schimbri n BDR. Factorii pot fi: organizatorici, datorai progresului tehnic, rezultai din cerinele noi ale beneficiarului, din schimbarea metodologiilor etc. 1.3. DEFINIREA SISTEMULUI DE GESTIUNE A BAZELOR DE DATE RELAIONALE (SGBDR) Teoria relaional, foarte bine pus la punct ntr-un domeniu de cercetare distinct, a dat o fundamentare solid realizrii de SGBD-uri performante. La sfritul anilor 80 i apoi n anii 90 au aprut, n special o dat cu ptrunderea n mas a microcalculatoarelor, numeroase SGBDR-uri. Aceasta a nsemnat o evoluie de la SGBD-urile de generaia nti (arborescente i reea) spre cele de generaia a doua (relaionale). Aceast evoluie s-a materializat, n principal n: oferirea de limbaje de interogare neprocedurale, mbuntirea integritii i securitii datelor, optimizarea i simplificarea acceselor. Teoria relaional este un ansamblu de concepte, metode i instrumente care a dat o fundamentare riguroas realizrii de SGBDR performante. Paralela ntre conceptele utilizate n evoluia organizrii datelor n memoria extern pn la sistemele relaionale este prezentata in tabelul 1.3:

Tabelul 1.3 FIIERE Fiier nregistrare Cmp Valoare TEORIA BD Colecie de date Familie de caracteristici Caracteristic Domeniu de valori TEORIA RELAIONAL Relaie Tuplu Atribut Domeniu SGBDR Tabela Linie Coloan Domeniu

Regulile lui Codd E.F. Codd (cercettor la IBM) a formulat 13 reguli care exprim cerinele maximale pentru ca un SGBD s fie relaional. Regulile sunt utile pentru evoluarea performanelor unui SGBDR. Acestea sunt: R0. Gestionarea datelor la nivel de relaie: limbajele utilizate trebuie s opereze cu relaii (unitatea de informaie). R1. Reprezentarea logic a datelor: toate informaiile din BDR trebuie stocate i prelucrate ca tabele. R2. Garantarea accesului la date: LMD trebuie s permit accesul la fiecare valoare atomic din BDR (tabel, coloan, cheie). R3. Valoarea NULL: trebuie s se permit declararea i prelucrarea valorii NULL ca date lips sau inaplicabile. R4. Metadatele: informaiile despre descrierea BDR se stocheaz n dicionar i trateaz ca tabele ,la fel ca datele propiu-zise. R5. Limbajele utilizate: SGBDR trebuie s permit utilizarea mai multor limbaje, dintre care cel puin unul s permit definirea tabelelor (de baz i virtuale), definirea restriciilor de integritate, manipularea datelor, autorizarea accesului, tratarea tranzaciilor. R6. Actualizarea tabelelor virtuale: trebuie s se permit ca tabelele virtuale s fie i efectiv actualizabile, nu numai teoretic actualizabile (exemplu atributul valoare dintr-o tabel virtual nu poate fi actualizat). R7. Actualizrile n baza de date: manipularea unei tabele trebuie s se fac prin operaii de regsire dar i de actulizare. R8. Independena fizic a datelor: schimbarea stucturii fizice a datelor (modul de reprezentare (organizare) i modul de acces) nu afecteaz programele. R9. Independena logic a datelor: schimbarea structurii de date (logice) a tabelelor nu afecteaz programele. R10. Restriciile de integritate: acestea, trebuie s fie definite prin LDD i stocate n dicionarul (catalogul) BDR. R11. Distribuirea geografic a datelor: LMD trebuie s permit ca

programele de aplicaie s fie aceleai att pentru date distribuite ct i petru date centralizate (alocarea i localizarea datelor vor fi n sarcina SGBDRului). R12. Prelucrarea datelor la nivel de baz (sczut): dac SGBDR posed un limbaj de nivel sczut (prelucrarea datelor se face la nivel de nregistrare), acesta nu trebuie utilizat pentru a evita restriciile de integritate. Regulile lui Codd pot fi grupate, conform cerinelor exprimate n cinci categorii, conform tabelului 1.4.

Tabelul 1.4. Gruparea regulilor lui Codd R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 1.Reguli de baz (funda- da da mentale) 2.Reguli da da structurale 3.Reguli privind da da integritatea datelor 4.Reguli privind da da da da manipularea datelor 5.Reguli privind da da da independena datelor Regulile lui Codd sunt greu de indeplinit n totalitate de ctre SGBDR. Pornind de la cele 13 reguli de mai sus, au fost formulate o serie de criterii (cerine) pe care trebuie s le ndeplineasc un SGBD pentru a putea fi considerat relaional ntr-un anumit grad. S-a ajuns astfel, la mai multe grade de relaional pentru SGBDR: cu interfa relaional (toate datele se reprezint n tabele, exist operatorii de selecie, proiecie i jonciune doar pentru interogare), pseudorelaional (toate datele se reprezint n tabele, exist operatorii de selecie, proiecie i jonciune fr limitri), minimal relaional (este pseudorelaional i n plus, operaiile cu tabele nu fac apel la pointeri observabili de utilizatori), complet relaional (este minimal relaional i n plus, exist operatorii de reuniune, intersecie i diferen, precum i restriciile de integritate privind unicitatea cheii i restricia referenial). n concluzie, SGBDR este un sistem software complet care implementez modelul de date relaional i respect cerinele impuse de acest model. El este o interfa ntre utilizatori i baza de date.

1.4. CARACTERIZAREA SGBDR Sistemele relaionale ndeplinesc funciile unui SGBD cu o serie de aspecte specifice care rezult din definirea unui SGBDR. Caracterizarea SGBDR se poate face pe dou niveluri: global (sistemele relaionale sunt privite ca o categorie distinct de SGBD) i particular (fiecare SGBDR are aspecte individuale comparativ cu altele similare). A. Mecanismele i instrumentele care ajut la caracterizarea global a SGBDR-urilor sunt: limbajele relaionale, protecia datelor, optimizarea cererilor de regsire, utilitarele specializate. 1) Limbajele relaional SGBDR ofer seturi de comenzi pentru descrierea i manipularea datelor. Acestea pot fi incluse ntr-un singur limbaj relaional (SQL, QUEL, QBE, SQUARE, ALPHA, ISBL) sau separate n LDD i LMD. n ambele situaii, comenzile pentru definirea datelor sunt distincte de cele pentru manipularea datelor. Limbajele relaionale de definire a datelor (LDD) sunt simplificate, cu puine comenzi. Descrierea datelor este memorat n BDR, sub form de tabele, n dicionarul (metabaza) bazei de date. Faciliti de descriere sunt prezente n SGBDR prin comenzi, care definesc anumite operaii, la nivelurile: conceptual, logic, fizic. Limbajele relaionale de manipulare a datelor (LMD) pot fi caracterizate dup criterii generale, funcionale i calitative. a) Caracterizarea general a LMD se face dup modul de tratare a datelor, operatorii relaionali, realizatorii i utilizatorii limbajului. Modul de tratare a datelor. Toate LMD relaionale realizeaz o tratare la nivel de ansamblu a datelor: unitatea de informative pentru lucru este tabela. Avantajele sunt date de posibilitatea gestionrii automat a tuplurilor duplicate i prelucrarea paralel a ansamblurilor. La comunicarea unui LMD relational cu un limbaj universal, avantajele se pierd deoarece comunicarea se poate face doar tuplu cu tuplu i nu la nivel de ansamblu. Deoarece limbajele universale ofer alte avantaje legate de proceduralitate, soluia este de a integra n acestea un limbaj relaional. Cursorul este soluia n SGBDR pentru a face trecerea de la tratarea la nivel de ansamblu la cea la nivel de nregistrare (tuplu). Operatorii relaionali implementai. SGBDR s-au dezvoltat, din punct de vedere relaional, avnd la baz calculul relaional orientat pe tuplu (ALPHA, QUEL), calculul relaional orientat pe domeniu (QBE), algebra relaional (ISBL), transformarea (mapping) (SQL, SQUARE). Limbajele bazate pe calculul relaional sunt neprocedurale, cele bazate pe algebra

relaional sunt procedurale, celelalte sunt combinaii. Realizatorii limbajelor relaionale s-au orientat pe domenii precise din teoria relaional. Astfel, au rezultat: limbaje relaionale standardizate internaional (exemplu SQL - ANSI), limbaje cu standard de utilizare impus de constructor (exemplu QUEL), limbaje nestandardizate (celelalte limbaje relaionale). Utilizatorii limbajelor relaionale sunt mult diversificai. SGBDR ofer att elemente procedurale (pentru specialiti) ct i neprocedurale (pentru nespecialilti). b) Caracterizarea funcional a LMD se face dup facilitile de interogare, actualizare a datelor, etc. Facilitile de interogare a datelor. Acestea sunt puternice i oferite prin comenzi pentru interogarea tabelelor de baz (exemplu SELECT) i interogarea tabelelor virtuale (exemplu SELECT). Facilitile de actualizare a datelor. Acestea se refer la actualizarea tabelelor de baz i a tabelelor virtuale prin comenzile: INSERT INTO (adaug rnduri la sfritul unei tabele); UPDATE ( modific rnduri dintr-o tabel); DELETE FROM (terge rnduri dintr-o tabel). Unele SGBDR nu permit actualizarea tabelelor virtuale (exemplu Foxpro), altele permit acces lucru cu o serie de restricii pentru ca operaia s se propage spre tabelele de baz fr ambiguiti (exemplu DB2, Oracle). Alte faciliti funcionale. La facilitile relaionale de mai sus, SGBDR-urile ofer i alte faciliti pe care le au toate limbajele de programare procedurale cum sunt: calculul aritmetic prin operatorii specifici (+, -, *, /, **); agregarea prin funcii standard (SUM) i prin comenzi (COMPUTE OF expr ); comenzi de intrare/ieire standard (ACCEPTPROMPT). c) Caracterizarea calitativ a LMD se face dup puterea selectiv, uurina de nvare, utlizare i eficiena limbajului. Puterea selectiv a LMD relaionale este dat de posibilitatea selectrii datelor dup criterii (filtre) complexe (exemplu comanda SELECT). Uurina de nvare i utilizare este nuanat n funcie de tipul LMD-ului relaional. Cele bazate pe calculul relaional sunt neprocedurale (descriptive), deci uor de nvat i utilizat (apropiat, ca stil, de limbajul natural) (exemplu QUEL) iar cele bazate pe algebra relaional sunt procedurale (algoritmice), deci mai greu de nvat i utilizat (exemplu ISBL). Cele intermediare promoveaz stilul neprocedural dar accept i elemente de control procedural (exemplu SQL) iar cele bazate pe grafic ofer primitive grafice pentru machetarea cererilor de regsire, deci uor de utilizat (exemplu QBE).

Eficiena utilizrii este determinat de posibilitatea optimizrii cererilor de regsire. LMD bazate pe calculul relaional las compilatorul s aleag ordinea de execuie a operaiilor, deci rezult o eficiena mare. LMD bazate pe algebra relaional au o ordine impus pentru execuia operaiilor, deci rezult o eficien mica. 2) Protecia datelor Aspectele privind protecia datelor sunt foarte importante pentru un sistem de baz de date i ele trebuie implementate de ctre SGBDR. Protecia bazei de date se refer la integritatea datelor (integritatea semantic, concurena la date, salvarea/restaurarea) i securitatea datelor (autorizarea accesului, viziunile, procedurile speciale, criptarea). a) Integritatea semantic. Definirea restriciilor de integritate se face, conform cerinelor modelului relaional, n LDD (exemplu CREATE TABLE, ALTER TABLE). Utilizarea restriciilor de integritate se face cu ajutorul unor mecanisme care controleaz validitatea regulilor pentru fiecare nou stare a BD. Aceste mecanisme sunt metode de detectare a inconsistenei datelor (se verific restrciiile de integritate) la sfritul tranzaciilor, care se realizeaz automat de SGBDR i puncte de verificare a integritii fixate de utilizator, acolo unde dorete el n program. b) Concurena la date (coerena). Unitatea de lucru pentru asigurarea coerenei datelor este tranzacia. Aceasta este un ansamblu de comenzi tratate unitar. Tranzacia se execut n totalitate sau deloc. Coerena poate fi afectat la actualizarea concurent sau la incidente. Mecanismele utilizate de SGBDR pentru asigurarea coerenei datelor (controlul accesului concurent) sunt: Blocarea la diferite niveluri: baz de date, tabel, tuplu, atribut; Definirea unor puncte de salvare n interiorul tranzaciilor (exemplu comanda savepoint); Tranzacii explicite (begin i end transaction) i implicite (comenzile de actualizare); Fiiere jurnal. 3) Optimizarea regsirii Cererile de regsire se exprim n SGBDR n diferite limbaje relaionale. Pentru a se obine un rezultat optim, se utilizeaz interfee automate de rescriere a cererilor de regsire, prin parcurgerea a doi pai: Exprimarea cererilor de regsire sub forma unor expresii algebrice relaionale, care are la baz echivalena dintre calculul i algebra relaional . Aplicarea unor transformri algebrice relaionale asupra expresiilor construite n pasul anterior, pentru a se obine expresii

relaionale echivalente i eficiente. Transformarea se poate realiza prin doua strategii de optimizare: generale, specifice. Strategiile generale sunt independente de modul de memorare a datelor. Ele se bazeaz pe propietile operaiilor din algebra relaional (comutativitatea, asociativitatea, compunerea ). Astfel de strategii sunt: selecia naintea jonciunii, proiecia naintea jonciunii, selecia naintea proieciei, combinarea seleciei multiple. Strategiile specifice in cont de modul de memorare a datelor i ele sunt caracteristice unui SGBDR. Elementele care influeneaz executarea operaiilor ce intervin la o cerere de regsire sunt: accesul direct, reguli de ordonare a expresiilor algebrice specifice unui SGBDR. 4) Utilitarele specializate Posibilitatile de utilizare ale unui SGBDR sunt influenate de utilitarele specializate pe care le are, pentru diferitele categorii de utilizatori (n Oracle: Developer pentru dezvoltatori, Designer pentru analiti, Administration Tools i Utilities pentru administrator etc.). B. Pentru a face o caracterizare particular,un anumit SGBDR vom lua n considerare o serie de criterii de comparaie. Aceste criterii se vor urmri, grupate pe anumite categorii, pentru cteva SGBDR-uri care ne intereseaz. Dup aceast analiz vom avea un argument serios pentru a putea alege un SGBDR n scopul dezvoltrii unei aplicaii cu baze de date. Gruparea caracteristicilor particulare de comparaie a SGBDR-urilor o vom face n funcie de facilitile de descriere, manipulare, utilizare i administrare a datelor. Caracteristicile n funcie de facilitile de descriere sunt: modul de implementare a modelului relaional; conceptul de baz de date utilizat n schem; definirea metadatelor; definirea relaiilor virtuale; actualizarea schemei relaiei; restriciile de integritate ce pot fi declarate. Caracteristicile n funcie de facilitile de manipulare sunt: LMD relaional implementat; funciile de calcul aritmetic i funciile agregate; modurile de acces la date; programarea orientat-obiect; tratarea valorii NULL; optimizarea cererilor de regsire; actualizarea relaiilor de baz i virtuale. Caracteristicile n funcie de facilitile de utilizare i administrare sunt: instrumentele de dezvoltare; instrumentele CASE; instrumentele analize statistice; software-ul pentru acces de la distan; utilitarele de ntreinere; mecanismele pentru autorizarea accesului la date.

1.5. EXEMPLE DE SISTEME DE GESTIUNE A BAZELOR DE DATE RELAIONALE

Oracle. Este realizat de firma Oracle Corporation USA. Sistemul este complet relaional, robust, se bazeaz pe SQL standard extins. Arhitectura sistemului este client/server, permnd lucrul, cu obiecte i distribuit. Are BD Internet i modul de optimizare a regsirii. Ultima versiune este Oracle 10g. DB2. Este realizat de firma IBM. Sistemul respect teoria relaional, este robust i se bazeaz pe SQL standard. Permite lucrul distribuit i are modul de optimizare a regsirii. Informix. Este realizat de firma Informix, respect teoria relaional i permite lucru distribuit. Progress. Este realizat de firma Progress Software. Are limbaj propriu (Progress 4GL) dar suport i SQL. Ruleaz pe o gam larg de calculatoare sub diferite sisteme de operare. SQL Server. Este realizat de firma Microsoft. Se bazeaz pe SQL i ruleaz n arhitectura client/server. Ingress II. Este realizat de firma Computer Associates. Este un SGBDR complet, implementeaz dou limbaje relaionale (nti QUEL i apoi SQL) i este suportat de diferite sisteme de operare (Windows, UNIX). Lucreaz distribuit n arhitectura client/server, are extensie cu faciliti orientate obiect i permite aplicaii de tip Internet. Organizarea fizic a tabelelor se face prin sistemul de operare. Visual FoxPro. Este realizat de firma Microsoft. Are un limbaj procedural propiu foarte puternic, o extensie orientat obiect, programare vizual i nucleu extins de SQL. Access. Este realizat de firma Microsoft. Se bazeaz pe SQL, are limbajul procedural gazd (Basic Access) i instrumente de dezvoltare. Paradox. Este realizat de firma Borland. Are limbaj procedural propiu (PAL) i suport SQL.