Cauta rapid aici ↑

TEORIA BAZELOR DE DATE RELATIONALE

1.1. MODELUL RELATIONAL

Modelul relational a fost propus de catre IBM si a revolutionat reprezentarea datelor facand trecerea la generatia a doua de baze de date. Modelul este simplu, are o solida fundamentare teoretica fiind bazat pe teoria seturilor (ansamblurilor) si pe logica matematica. Pot fi reprezentate toate tipurile de structuri de date de mare complexitate, din diferite domenii de activitate. Modelul relational este definit prin: structura de date, operatorii care actioneaza asupra structurii si restrictiile de integritate.

1) Conceptele utilizate pentru definirea structurii de date sunt: domeniul, tabela (relatia), atributul, tuplul, cheia si schema tabelei. Domeniu este un ansamblu de valori caracterizat printr-un nume. El poate fi explicit sau implicit. Tabela / relatia este un subansamblu al produsului cartezian al mai multor domenii, caracterizat printr-un nume, prin care se definesc atributele ce apartin aceleasi clase de entitati.

Atributul este coloana unei tabele, caracterizata printr-un nume. Cheia este un atribut sau un ansamblu de atribute care au rolul de a identifica un tuplu dintr-o tabela. Tipuri de chei: primare/alternate, simple/comune, externe. Tuplul este linia dintr-o tabela si nu are nume. Ordinea liniilor (tupluri) si coloanelor (atribute) dintr-o tabela nu trebuie sa prezinte nici-o importanta.

Schema tabelei este formata din numele tabelei, urmat intre paranteze rotunde de lista atributelor, iar pentru fiecare atribut se precizeaza domeniul asociat. Schema bazei de date poate fi reprezentata printr-o diagrama de structura in care sunt puse in evidenta si legaturile dintre tabele. Definirea legaturilor dintre tabele se face logic construind asocieri intre tabele cu ajutorul unor atribute de legatura. Atributele implicate in realizarea legaturilor se gasesc fie in tabelele asociate, fie in tabele distincte construite special pentru legaturi. Atributul din tabela initiala se numeste cheie externa iar cel din tabela finala este cheie primara. Legaturile posibile sunt 1:1, 1:m, m:n. Potential, orice tabela se poate lega cu orice tabela, dupa orice atribute.

Legaturile se stabilesc la momentul descrierii datelor prin limbaje de descriere a datelor (LDD), cu ajutorul restrictiilor de integritate. Practic, se stabilesc si legaturi dinamice la momentul executiei.

2) Operatorii modelului relational sunt operatorii din algebra relationala si operatorii din calculul relational.

Algebra relationala este o colectie de operatii formale aplicate asupra tabelelor (relatiilor), si a fost conceputa de E.F.Codd. Operatiile sunt aplicate in expresiile algebrice relationale care sunt cereri de regasire. Acestea sunt compuse din operatorii relationali si operanzi. Operanzii sunt intotdeauna tabele (una sau mai multe). Rezultatul evaluarii unei expresii relationale este format dintr-o singura tabela.

Algebra relationala are cel putin puterea de regasire a calcului relational. O expresie din calculul relational se poate transforma intr-una echivalenta din algebra relationala si invers.

Codd a introdus sase operatori de baza (reuniunea, diferenta, produsul cartezian, selectia, proiectia, jonctiunea) si doi operatori derivati (intersectia si diviziunea). Ulterior au fost introdusi si alti operatori derivati (speciali). In acest context, operatorii din algebra relationala pot fi grupati in doua categorii: pe multimi si speciali.

Operatori pe multimi (R1, R2, R3 sunt relatii (tabele)) sunt:

  • Reuniunea. R3 = R1 R2, unde R3 va contine tupluri din R1 sau R2 luate o singura data;

  • Diferenta. R3 = R1 \ R2, unde R3 va contine tupluri din R1 care nu se regasesc in R2;

  • Produsul cartezian. R3 = R1 x R2, unde R3 va contine tupluri construite din perechi (x1x2), cu x1R1 si x2R2;

  • Intersectia. R3 = R1 x R2, unde R3 va contine tupluri care se gasesc in R1 si R2 in acelasi timp, etc.

Operatori relationali speciali sunt:

  • Selectia. Din R1 se obtine o subtabela R2, care va contine o submultime din tuplurile initiale din R1 ce satisfac un predicat (o conditie). Numarul de atribute din R2 este egal cu numarul de atribute din R1. Numarul de tupluri din R2 este mai mic decat numarul de tupluri din R1.

  • Proiectia. Din R1 se obtine o subtabela R2, care va contine o submultime din atributele initiale din R1 si fara tupluri duplicate. Numarul de atribute din R2 este mai mic decat numarul de atribute din R1.

  • Jonctiunea este o derivatie a produsului cartezian, ce presupune utilizarea unui calificator care sa permita compararea valorilor unor atribute din R1 si R2, iar rezultatul in R3. R1 si R2 trebuie sa aiba unul sau mai multe atribute comune care au valori comune.

Algebra relationala este prin definitie neprocedurala (descriptiva), iar calculul relational permite o maniera de cautare mixta (procedurala/neprocedurala).

Calculul relational se bazeaza pe calculul predicatelor de ordinul intai (domeniu al logicii) si a fost propus de E.F. Codd. Predicatul este o relatie care se stabileste intre anumite elemente si care poate fi confirmata sau nu. Predicatul de ordinul 1 este o relatie 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) utilizati in calculul relational sunt: universal si existential.

Constructia de baza in calculul relational este expresia relationala de calcul tuplu sau domeniu (functie de tipul variabilei utilizate).

Expresia relationala de calcul este formata din: operatia de efectuat, variabile (tuplu respectiv domeniu), conditii (de comparatie, de existenta), formule bine definite (operanzi-constante, variabile, functii, predicate; operatori), cuantificatori.

Pentru implementarea acestor operatori exista comenzi specifice in limbajele de manipulare a datelor (LMD) din sistemele de gestiune a bazelor de date relationale (SGBDR). Aceste comenzi sunt utilizate in operatii de regasire (interogare).

Dupa tehnica folosita la manipulare, LMD sunt bazate pe:

  • calculul relational (QUEL in Ingres, ALPHA propus de Codd);

  • algebra relationala (ISBL, RDMS);

  • transformare (SQL, SQUARE);

  • grafica (QBE, QBF).

Transformarea ofera o putere de regasire echivalenta cu cea din calculul si algebra relationala. Se bazeaza pe transformarea (mapping) unui atribut sau grup de atribute intr-un atribut dorit prin intermediul unor relatii. Rezultatul este o relatie (tabela) care se poate utiliza intr-o alta transformare.

Grafica ofera interactivitate mare pentru constrirea cererilor de regasire. Utilizatorul specifica cerea alegand sau completand un ecran structurat grafic. Poate fi folosit de catre toate categoriile de utilizatori in informatica.

3) Restrictiile de integritate ale modelului relational sunt structurale si comportamentale.

Restrictiile structurale sunt:

  • Restrictia de unicitate a cheii. Intr-o tabela nu trebuie sa existe mai multe tupluri cu aceeasi valoare pentru ansamblul cheie;

  • Restrictia referentiala. Intr-o tabela t1 care refera o tabela t2, valorile cheii externe trebuie sa figureze printre valorile cheii primare din t2 sau sa ia valoarea null (neprecizat);

  • Restrictia entitatii. Intr-o tabela, atributele din cheia primara nu trebuie sa ia valoarea NULL.

Cele trei restrictii de mai sus sunt minimale.

Pe langa acestea, exista o serie de alte restrictii structurale care se refera la dependentele dintre date: functionale, multivaloare, jonctiune etc. (sunt luate in considerare la tehnicile de proiectare a bazelor de date relationale - BDR).

Restrictiile de comportament sunt cele care se definesc prin comportamentul datelor si tin cont de valorile din BDR:

  • Restrictia de domeniu. Domeniul corespunzator unui atribut dintr-o tabela trebuie sa se incadreze intre anumite valori;

  • Restrictii temporare. Valorile anumitor atribute se compara cu niste valori temporare (rezultate din calcule etc.).

  • Restrictiile de comportament fiind foarte generale se gestioneaza fie la momentul descrierii datelor (de exemplu prin clauza CHECK), fie in afara modelului la momentul executiei.

Restrictiile de integritate suportate de Oracle sunt:

  • NOT NULL nu permite valori NULL in coloanele unei tabele;

  • UNIQUE nu sunt permise valori duplicat in coloanele unei tabele;

  • PRIMARY KEY nu permite valori duplicate sau NULL in coloana sau coloanele definite astfel;

  • FOREIGN KEY presupune ca fiecare valoare din coloana sau setul de coloane defini astfel sa aiba o valoare corespondenta identica in tabela de legatura, tabela in care coloana corespondenta este definita cu restrictia UNIQUE sau PRIMARY KEY;

  • CHECK elimina valorile care nu satisfac anumite cerinte (conditii) logice.

Termenul de chei (keys) este folosit pentru definirea catorva categorii de constrangeri si sunt: primary key, unique key, foreign key, referenced key.

Se considera ca modelul relational are o serie de limite cum ar fi:

  • Simplitatea modelului il face dificil de aplicat pentru noile tipuri de aplicatii (multimedia, internet etc.);

  • Nu asigura o independenta logica totala a datelor de aplicatie;

  • Poate creste redundanta datelor.

1.2. BAZE DE DATE RELATIONALE

Bazele de date relationale (BDR) utilizeaza modelul de date relational si notiunile aferente. BDR au o solida fundamentare teoretica, in special prin cercetarile de la IBM conduse de E.F.Codd. BDR este un ansamblu organizat de tabele (relatii) impreuna cu legaturile dintre ele. Concepte utilizate la organizarea datelor in BDR si respectiv fisiere sunt prezentate in tabelul urmator.

Concepte utilizate in organizarea datelor.

FISIERE

FISIER

INREGISTRARE

CAMP

VALORI

BDR

TABELA (relatie)

TUPLU (linie)

ATRIBUT (coloana)

DOMENIU VALORI

Avantajele BDR fata de fisiere sunt prezentate in tabelul

CRITERIU

BDR

FISIERE

Independenta datelor

logica si fizica

fizica

Niveluri de structurare

conceptual, logic si fizic

logic si fizic

Deschidere si portabilitate

mare

mica

Reprezentarea si utilizarea datelor

simplificat prin model

complicat

Structura de date se pastreaza

in dictionarul BDR

in programe

Atunci cand dorim sa realizam o baza de date relationala trebuie sa stim clar ce avem de facut, adica sa stabilim obiectivele activitatii noastre. In acest sens, cateva dintre cele mai importante obiective, le prezentam in continuare:

  • Partitionarea semnifica faptul ca aceleasi date trebuie sa poata fi folosite in moduri diferite de catre diferiti utilizatori;

  • Deschiderea se refera la faptul ca datele trebuie sa fie usor adaptabile la schimbarile care pot aparea (actualizarea structurii, tipuri noi de date etc.);

  • Eficienta are in vedere stocarea si prelucrarea datelor, care trebuie sa se faca la costuri cat mai scazute, costuri care sa fie inferioare beneficiilor obtinute;

  • Reutilizarea inseamna faptul ca fondul de date existent trebuie sa poata fi reutilizat in diferite aplicatii informatice;

  • Regasirea este o actvitate frecventa pe bazele de date si de aceea cererile de regasire trebuie sa poata fi adresate usor de catre toate categoriile de utilizatori, dupa diferite criterii;

  • Accesul inseamna modul de localizare a datelor si acest lucru trebuie sa poata fi realizat prin diferite moduri de acces, rapid si usor;

  • Modularizarea presupune faptul ca realizarea BDR trebuie sa se poata face modular pentru generalitate si posibilitatea lucrului in echipa;

  • Protectia bazei de date trebuie asigurata sub ambele aspecte: securitatea si integritatea datelor;

  • Redundanta se asigura in limite acceptabile prin implementarea unui model de date pentru baze de date si prin utilizarea unei tehnici de proiectare a BDR. Se asigura astfel, o redundanta minima si controlata;

  • Independenta datelor fata de programe trebuie asigurata atat la nivel logic cat si si fizic.

Bazele de date relationale au evoluat ca un tip special de aplicatii informatice, si anume cele care au organizarea datelor in memoria externa conform unui model de date specific. De aceea, in metodologia de realizare a BDR se parcurg, in cea mai mare parte, cam aceleasi etape ca la realizarea unei aplicatii informatice, cu o serie de aspecte specifice. Pe de alta parte, in literatura de specialitate, sunt diferite propuneri de metodologii de realizare a bazelor de date.

Tinand cont de cele doua aspecte de mai sus, sunt propuse cateva actvivitati care trebuie parcurse la realizarea unei baze de date. Aceste activitati vor fi regasite, sub aceeasi denumire sau sub denumiri diferite, in majoritatea metodologiilor de realizare a bazelor de date, din literatura de specialitate. Activitatile (etapele) parcurse pentru realizarea unei BDR sunt: analiza de sistem, proiectarea noului sistem, realizarea componentelor logice, punerea in functiune, dezvoltarea.

1) Scopul analizei de sistem este de a evidentia cerintele aplicatiei si resursele utilizate (studiul), precum si de a evalua aceste cerinte prin modelare (analiza).

Studiul situatiei existente se realizeaza prin: definirea caracteristicilor generale ale unitatii, identificarea activitatilor desfasurate, identificarea resurselor existente (informationale, umane, energetice, echipamente, financiare etc.), identificarea necesitatilor de prelucrare. Analiza este o activitate de modelare (conceptuala) si se realizeaza sub trei aspecte: structural, dinamic si functional.

a) Analiza structurala evidentiaza, la nivel conceptual, modul de structurare a datelor si a legaturilor dintre ele. Cea mai utilizata tehnica este entitate-asociere. Aceasta contine:

  • Identificarea entitatilor: fenomene, procese, obiecte concrete sau abstracte (substantivele din prezentarea activitatii descrise) (exemple de entitati: Persoane, Produse, Beneficiari).

  • Identificarea asocierilor dintre entitati ca fiind legaturile semnificative de un anumit tip (verbele din prezentarea activitatii descrise).

  • Identificarea atributelor ce caracterizeaza fiecare entitate in parte (exemple de atribute: Marca, Nume, Adresa).

  • Stabilirea atributelor de identificare unica a realizarilor entitatii, drept chei.

Rezultatul analizei structurale este modelul static (structural) numit si diagrama entitate-asociere. Diagrama entitate-asociere (Entity-Relationship) poate fi generata cu produse software tip CASE (Computer Aided Software Engineering), ca de exemplu Oracle Designer. Pornind de la o astfel de diagrama, se pot construi, in actvitatea de proiectare, schemele relatiilor (tabelelor).

b) Analiza dinamica evidentiaza comportamentul elementelor sistemului la anumite evenimente. Una din tehnicile utilizate este diagrama stare-tranzitie. Aceasta presupune:

  • Identificarea starilor in care se pot afla componentele sistemului.

  • Identificarea evenimentelor care determina trecerea unei componente dintr-o stare in alta.

  • Stabilirea tranzitiilor admise intre stari.

  • Construirea diagramei stare-tranzitie.

Rezultatul analizei dinamice este modelul dinamic.

c) Analiza functionala evidentiaza modul de asigurare a cerintelor informationale (fluxul prelucrarilor) din cadrul sistemului, prin care intrarile sunt transformate in iesiri. Cea mai utilizata tehnica este diagrama de flux al datelor. Conform acestei tehnici se delimiteaza:

  • Aria de cuprindere a sistemului.

  • Se identifica sursele de date.

  • Se identifica modul de circulatie si prelucrare a datelor.

  • Se identifica apoi rezultatele obtinute.

Rezultatul analizei functionale este modelul functional.

2) Proiectarea structurii bazei de date se face pe baza modelelor realizate in activitatea de analiza. Inainte de proiectarea bazei de date se alege tipul de sistem de gestiune a bazei de date. Alegerea SBGD-ului se face tinand cont de doua aspecte: cerintele aplicatiei (utilizatorului) si performantele tehnice ale SGBD-ului. Cerintele aplicatiei se refera la: volumul de date estimat a fi memorat si prelucrat in BDR; complexitatea problemei de rezolvat; ponderea si frecventa operatiilor de intrare/iesire; conditiile privind protectia datelor; operatiile necesare (incarcare/validare, actualizare, regasire etc.); particularitatile activitatii pentru care se realizeaza baza de date.

Performantele tehnice ale SGBD-ului se refera la: modelul de date pe care-l implementeaza; ponderea utilizarii SGBD-ului pe piata si tendinta; configuratia de calcul minima ceruta; limbajele de programare din SGBD; facilitatile de utilizare oferite pentru diferite categorii de utilizatori; limitele SGBD-ului; optimizarile realizate de SGBD; facilitatile tehnice; lucrul cu mediul distribuit si concurenta de date; elementele multimedia; instrumentele CASE; interfetele de comunicare; posibilitatea de autodocumentare; instrumentele specifice oferite.

Proiectarea BDR se realizeaza prin proiectarea schemelor BDR si proiectarea modulelor functionale specializate.

Schemele bazei de date sunt: conceptuala, externa si interna.

a) Proiectarea schemei conceptuale porneste de la identificarea setului de date necesar sistemului. Aceste date sunt apoi integrate si structurate intr-o schema (exemplu: pentru BDR relationale cea mai utilizata tehnica este normalizarea). Pentru acest lucru se parcurg pasii:

  • Stabilirea schemei conceptuale initiale care se deduce din modelul entitate-asociere (vezi analiza structurala). Pentru acest lucru, se transforma fiecare entitate din model intr-o colectie de date (fisier), iar pentru fiecare asociere se definesc cheile aferente. Daca rezulta colectii izolate, acestea se vor lega de alte colectii prin chei rezultand asocieri (1:1, 1:m, m:n).

  • Ameliorarea progresiva a schemei conceptuale prin eliminarea unor anomalii (exemplu: cele cinci forme normale pentru BDR relationale).

  • Stabilirea schemei conceptuale finale trebuie sa asigure un echilibru intre cerintele de actualizare si performantele de exploatare (exemplu: o forma normala superioara asigura performante de actualizare, dar timpul de raspuns va fi mai mare).

Tehnica de normalizare este utilizata in activitatea de proiectare a structurii BDR si consta in eliminarea unor anomalii (neajunsuri) de actualizare din structura. Anomaliile de actualizare sunt situatii nedorite care pot fi generate de anumite tabele in procesul proiectarii lor:

  • Anomalia de stergere semnifica faptul ca stergand un tuplu dintr-o tabela, pe langa informatiile care trebuie sterse, se pierd si informatiile utile existente in tuplul respectiv;

  • Anomaliile de adaugare semnifica faptul ca nu pot fi incluse noi informatii necesare intr-o tabela, deoarece nu se cunosc si alte informatii utile (de exemplu valorile pentru cheie);

  • Anomalia de modificare semnifica faptul ca este dificil de modificat o valoare a unui atribut atunci cand ea apare in mai multe tupluri.

Normalizarea este o teorie construita in jurul conceptului de forme normale (FN), care amelioreaza structura BDR prin inlaturarea treptata a unor neajunsuri si prin imprimarea unor facilitati sporite privind manipularea datelor.

Normalizarea utilizeaza ca metoda descompunerea (top-down) unei tabele in doua sau mai multe tabele, pastrand informatii (atribute) de legatura.

FN1. O tabela este in FN1 daca toate atributele ei contin valori elementare (nedecompozabile), adica fiecare tuplu nu trebuie sa aiba date la nivel de grup sau repetitiv. Structurile de tip arborescent si retea se transforma in tabele cu atribute elemntare.

O tabela in FN1 prezinta inca o serie de anomalii de actualizare datorita eventualelor dependente functionale incomplete.

Fiecare structura repetitiva genereaza (prin descompunere) o noua tabela, iar atributele la nivel de grup se inlatura, ramanand doar cele elemntare.

FN2. O tabela este in FN2 daca si numai daca este in FN1 si fiecare atribut noncheie al tabelei este dependent functional complet de cheie. Un atribut B al unei tabele depinde functional de atributul A al aceleiasi tabele, daca fiecarei valori a lui A ii corespunde o singura valoare a lui B, care ii este asociata in tabela. Un atribut B este dependent functional complet de un ansamblu de atribute A in cadrul aceleiasi tabele, daca B este dependent functional de intreg ansamblul A (nu numai de un atribut din ansamblu).

O tabela in FN2 prezinta inca o serie de anomalii de actualizare, datorita eventualelor dependente tranzitive.

Eliminarea dependentelor incomplete se face prin descompunerea tabelei initiale in doua tabele, ambele continand atributul intermediar (B).

FN3. O tabela este in FN3 daca si numai daca este in FN2 si fiecare atribut noncheie depinde in mod netranzitiv de cheia tabelei. Intr-o tabela T, fie A,B,C trei atribute cu A cheie. Daca B depinde de A si C depinde de B atunci C depinde de A in mod tranzitiv. Eliminarea dependentelor tranzitive se face prin descompunerea tabelei initiale in doua tabele, ambele continand atributul intermediar (B).

O tabela in FN3 prezinta inca o serie de anomalii de actualizare, datorate eventualelor dependente multivaloare.

O definitie mai riguroasa pentru FN3 a fost data prin forma intermediara BCNF (Boyce Codd Normal Form): o tabela este in BCNF daca fiecare determinant este un candidat cheie.Determinantul este un atribut elementar sau compus fata de care alte atribute sunt complet dependente functional.

FN4. O tabela este in FN4 daca si numai daca este in FN3 si nu contine doua sau mai multe dependente multivaloare. Intr-o tabela T, fie A,B,C trei atribute. In tabela T se mentine dependenta multivaloare A daca si numai daca multimea valorilor lui B ce corespunde unei perechi de date (A,C), depinde numai de o valoare a lui A si este independenta de valorile lui C.

FN5. O tabela este in FN5 daca si numai daca este in FN4 si fiecare dependenta jonctiune este generata printr-un candidat cheie al tabelei. In tabela T (A,B,C) se mentine dependenta jonctiune (AB, AC) daca si numai daca T mentine dependenta multivaloare A -->> B sau C.

Dependenta multivaloare este caz particular al dependentei jonctiune. Dependenta functionala este caz particular al dependentei multivaloare.

b) Proiectare schemei externe are rolul de a specifica viziunea fiecarui utilizator asupra BDR. Pentru acest lucru, din schema conceptuala se identifica datele necesare fiecarei viziuni. Datele obtinute se structureaza logic in subscheme tinand cont de facilitatile de utilizare si de cerintele utilizator. Schema externa devine operationala prin construirea unor viziuni (view) cu SGBD-ul si acordarea drepturilor de acces. Datele intr-o viziune pot proveni din una sau mai multe colectii si nu ocupa spatiul fizic.

c) Proiectarea schemei interne presupune stabilirea structurilor de memorare fizica a datelor si definirea cailor de acces la date. Acestea sunt specifice fie SGBD-ului (scheme de alocare), fie sistemului de operare. Proiectarea schemei interne inseamna estimarea spatiului fizic pentru BDR, definirea unui model fizic de alocare (a se vedea daca SGBD-ul permite explicit acest lucru) si definirea unor indecsi pentru accesul direct, dupa cheie, la date.

Proiectarea modulelor functionale tine cont de conceptia generala a BDR, precum si de schemele proiectate anterior. In acest sens, se proiecteaza fluxul informational, modulele de incarcare si manipulare a datelor, interfetele specializate, integrarea elementelor proiectate cu organizarea si functionarea BDR.

3) Realizarea componentelor logice. Componentele logice ale unei BD sunt programele de aplicatie dezvoltate, in cea mai mare parte, in SGBD-ul ales. Programele se realizeaza conform modulelor functionale proiectate in etapa anterioara. Componentele logice tin cont de iesiri, intrari, prelucrari si colectiile de date. In paralel cu dezvoltarea programelor de aplicatii se intocmesc si documentatiile diferite (tehnica, de exploatare, de prezentare).

4) Punerea in functiune si exploatarea. Se testeaza functiile BDR mai intai cu date de test, apoi cu date reale. Se incarca datele in BDR si se efectueaza procedurile de manipulare, de catre beneficiar cu asistenta proiectantului. Se definitiveaza documentatiile aplicatiei. Se intra in exploatare curenta de catre beneficiar conform documentatiiei.

5) Dezvoltarea sistemului. Imediat dupa darea in exploatare a BDR, in mod continuu, pot exista factori perturbatori care genereaza schimbari in BDR. Factorii pot fi: organizatorici, datorati progresului tehnic, rezultati din cerintele noi ale beneficiarului, din schimbarea metodologiilor etc.

1.3. DEFINIREA SISTEMULUI DE GESTIUNE A BAZELOR DE DATE RELATIONALE (SGBDR)

Teoria relationala, foarte bine pusa la punct intr-un domeniu de cercetare distinct, a dat o fundamentare solida realizarii de SGBD-uri performante. La sfarsitul anilor 80 si apoi in anii 90 au aparut, in special o data cu patrunderea in masa a microcalculatoarelor, numeroase SGBDR-uri. Aceasta a insemnat o evolutie de la SGBD-urile de generatia intai (arborescente si retea) spre cele de generatia a doua (relationale). Aceasta evolutie s-a materializat, in principal in: oferirea de limbaje de interogare neprocedurale, imbunatatirea integritatii si securitatii datelor, optimizarea si simplificarea acceselor.

Teoria relationala este un ansamblu de concepte, metode si instrumente care a dat o fundamentare riguroasa realizarii de SGBDR performante. Paralela intre conceptele utilizate in evolutia organizarii datelor in memoria externa pana la sistemele relationale este prezentata in tabelul urmator.

FISIERE

TEORIA BD

TEORIA RELATIONALA

SGBDR

Fisier

Colectie de date

Relatie

Tabela

Inregistrare

Familie de caracteristici

Tuplu

Linie

Camp

Caracteristica

Atribut

Coloana

Valoare

Domeniu de valori

Domeniu

Domeniu

Regulile lui Codd

E.F. Codd (cercetator la IBM) a formulat 13 reguli care exprima cerintele maximale pentru ca un SGBD sa fie relational. Regulile sunt utile pentru evoluarea performantelor unui SGBDR. Acestea sunt:

  • R0. Gestionarea datelor la nivel de relatie: limbajele utilizate trebuie sa opereze cu relatii (unitatea de informatie).

  • R1. Reprezentarea logica a datelor: toate informatiile din BDR trebuie stocate si prelucrate ca tabele.

  • R2. Garantarea accesului la date: LMD trebuie sa permita accesul la fiecare valoare atomica din BDR (tabela, coloana, cheie).

  • R3. Valoarea NULL: trebuie sa se permita declararea si prelucrarea valorii NULL ca date lipsa sau inaplicabile.

  • R4. Metadatele: informatiile despre descrierea BDR se stocheaza in dictionar si trateaza ca tabele,la fel ca datele propiu-zise.

  • R5. Limbajele utilizate: SGBDR trebuie sa permita utilizarea mai multor limbaje, dintre care cel putin unul sa permita definirea tabelelor (de baza si virtuale), definirea restrictiilor de integritate, manipularea datelor, autorizarea accesului, tratarea tranzactiilor.

  • R6. Actualizarea tabelelor virtuale: trebuie sa se permita ca tabelele virtuale sa fie si efectiv actualizabile, nu numai teoretic actualizabile.

  • R7. Actualizarile in baza de date: manipularea unei tabele trebuie sa se faca prin operatii de regasire dar si de actulizare.

  • R8. Independenta fizica a datelor: schimbarea stucturii fizice a datelor (modul de reprezentare (organizare) si modul de acces) nu afecteaza programele.

  • R9. Independenta logica a datelor: schimbarea structurii de date (logice) a tabelelor nu afecteaza programele.

  • R10. Restrictiile de integritate: acestea, trebuie sa fie definite prin LDD si stocate in dictionarul (catalogul) BDR.

  • R11. Distribuirea geografica a datelor: LMD trebuie sa permita ca programele de aplicatie sa fie aceleasi atat pentru date distribuite cat si petru date centralizate (alocarea si localizarea datelor vor fi in sarcina SGBDR-ului).

  • R12. Prelucrarea datelor la nivel de baza (scazut): daca SGBDR poseda un limbaj de nivel scazut (prelucrarea datelor se face la nivel de inregistrare), acesta nu trebuie utilizat pentru a evita restrictiile de integritate.

Regulile lui Codd sunt greu de indeplinit in totalitate de catre SGBDR. Pornind de la cele 13 reguli de mai sus, au fost formulate o serie de criterii (cerinte) pe care trebuie sa le indeplineasca un SGBD pentru a putea fi considerat relational intr-un anumit grad. S-a ajuns astfel, la mai multe grade de relational pentru SGBDR: cu interfata relationala (toate datele se reprezinta in tabele, exista operatorii de selectie, proiectie si jonctiune doar pentru interogare), pseudorelational (toate datele se reprezinta in tabele, exista operatorii de selectie, proiectie si jonctiune fara limitari), minimal relational (este pseudorelational si in plus, operatiile cu tabele nu fac apel la pointeri observabili de utilizatori), complet relational (este minimal relational si in plus, exista operatorii de reuniune, intersectie si diferenta, precum si restrictiile de integritate privind unicitatea cheii si restrictia referentiala).

In concluzie, SGBDR este un sistem software complet care implementeza modelul de date relational si respecta cerintele impuse de acest model. El este o interfata intre utilizatori si baza de date.

1.4. CARACTERIZAREA SGBDR

Sistemele relationale indeplinesc functiile unui SGBD cu o serie de aspecte specifice care rezulta din definirea unui SGBDR.

Caracterizarea SGBDR se poate face pe doua niveluri: global (sistemele relationale sunt privite ca o categorie distincta de SGBD) si particular (fiecare SGBDR are aspecte individuale comparativ cu altele similare).

A. Mecanismele si instrumentele care ajuta la caracterizarea globala a SGBDR-urilor sunt: limbajele relationale, protectia datelor, optimizarea cererilor de regasire, utilitarele specializate.

1) Limbajele relational

SGBDR ofera seturi de comenzi pentru descrierea si manipularea datelor. Acestea pot fi incluse intr-un singur limbaj relational (SQL, QUEL, QBE, SQUARE, ALPHA, ISBL) sau separate in LDD si LMD. In ambele situatii, comenzile pentru definirea datelor sunt distincte de cele pentru manipularea datelor.

Limbajele relationale de definire a datelor (LDD) sunt simplificate, cu putine comenzi. Descrierea datelor este memorata in BDR, sub forma de tabele, in dictionarul (metabaza) bazei de date. Facilitati de descriere sunt prezente in SGBDR prin comenzi, care definesc anumite operatii, la nivelurile: conceptual, logic, fizic. Limbajele relationale de manipulare a datelor (LMD) pot fi caracterizate dupa criterii generale, functionale si calitative.

a) Caracterizarea generala a LMD se face dupa modul de tratare a datelor, operatorii relationali, realizatorii si utilizatorii limbajului.

Modul de tratare a datelor. Toate LMD relationale realizeaza o tratare la nivel de ansamblu a datelor: unitatea de informative pentru lucru este tabela. Avantajele sunt date de posibilitatea gestionarii automat a tuplurilor duplicate si prelucrarea paralela a ansamblurilor.

La comunicarea unui LMD relational cu un limbaj universal, avantajele se pierd deoarece comunicarea se poate face doar tuplu cu tuplu si nu la nivel de ansamblu. Deoarece limbajele universale ofera alte avantaje legate de proceduralitate, solutia este de a integra in acestea un limbaj relational. Cursorul este solutia in SGBDR pentru a face trecerea de la tratarea la nivel de ansamblu la cea la nivel de inregistrare (tuplu).

Operatorii relationali implementati. SGBDR s-au dezvoltat, din punct de vedere relational, avand la baza calculul relational orientat pe tuplu (ALPHA, QUEL), calculul relational orientat pe domeniu (QBE), algebra relationala (ISBL), transformarea (mapping) (SQL, SQUARE). Limbajele bazate pe calculul relational sunt neprocedurale, cele bazate pe algebra relationala sunt procedurale, celelalte sunt combinatii.

Realizatorii limbajelor relationale s-au orientat pe domenii precise din teoria relationala. Astfel, au rezultat: limbaje relationale standardizate international (exemplu SQL - ANSI), limbaje cu standard de utilizare impus de constructor (exemplu QUEL), limbaje nestandardizate (celelalte limbaje relationale).

Utilizatorii limbajelor relationale sunt mult diversificati. SGBDR ofera atat elemente procedurale (pentru specialisti) cat si neprocedurale (pentru nespecialilsti).

b) Caracterizarea functionala a LMD se face dupa facilitatile de interogare, actualizare a datelor, etc. Facilitatile de interogare a datelor. Acestea sunt puternice si oferite prin comenzi pentru interogarea tabelelor de baza (exemplu SELECT) si interogarea tabelelor virtuale (exemplu SELECT).

Facilitatile de actualizare a datelor. Acestea se refera la actualizarea tabelelor de baza si a tabelelor virtuale prin comenzile: INSERT INTO (adauga randuri la sfarsitul unei tabele); UPDATE ( modifica randuri dintr-o tabela); DELETE FROM (sterge randuri dintr-o tabela). Unele SGBDR nu permit actualizarea tabelelor virtuale (exemplu Foxpro), altele permit acces lucru cu o serie de restrictii pentru ca operatia sa se propage spre tabelele de baza fara ambiguitati (exemplu DB2, Oracle).

Alte facilitati functionale. La facilitatile relationale de mai sus, SGBDR-urile ofera si alte facilitati pe care le au toate limbajele de programare procedurale cum sunt: calculul aritmetic prin operatorii specifici (+, -, *, /, **); agregarea prin functii standard (SUM) si prin comenzi (COMPUTE OF expr ); comenzi de intrare/iesire standard.

c) Caracterizarea calitativa a LMD se face dupa puterea selectiva, usurinta de invatare, utlizare si eficienta limbajului.

Puterea selectiva a LMD relationale este data de posibilitatea selectarii datelor dupa criterii (filtre) complexe (exemplu comanda SELECT).

Usurinta de invatare si utilizare este nuantata in functie de tipul LMD-ului relational. Cele bazate pe calculul relational sunt neprocedurale (descriptive), deci usor de invatat si utilizat (apropiat, ca stil, de limbajul natural) (exemplu QUEL) iar cele bazate pe algebra relationala sunt procedurale (algoritmice), deci mai greu de invatat si utilizat (exemplu ISBL). Cele intermediare promoveaza stilul neprocedural dar accepta si elemente de control procedural (exemplu SQL) iar cele bazate pe grafica ofera primitive grafice pentru machetarea cererilor de regasire, deci usor de utilizat (exemplu QBE).

Eficienta utilizarii este determinata de posibilitatea optimizarii cererilor de regasire. LMD bazate pe calculul relational lasa compilatorul sa aleaga ordinea de executie a operatiilor, deci rezulta o eficienta mare. LMD bazate pe algebra relationala au o ordine impusa pentru executia operatiilor, deci rezulta o eficienta mica.

2) Protectia datelor

Aspectele privind protectia datelor sunt foarte importante pentru un sistem de baza de date si ele trebuie implementate de catre SGBDR. Protectia bazei de date se refera la integritatea datelor (integritatea semantica, concurenta la date, salvarea/restaurarea) si securitatea datelor (autorizarea accesului, viziunile, procedurile speciale, criptarea).

a) Integritatea semantica. Definirea restrictiilor de integritate se face, conform cerintelor modelului relational, in LDD (exemplu CREATE TABLE, ALTER TABLE). Utilizarea restrictiilor de integritate se face cu ajutorul unor mecanisme care controleaza validitatea regulilor pentru fiecare noua stare a BD. Aceste mecanisme sunt metode de detectare a inconsistentei datelor (se verifica restrcitiile de integritate) la sfarsitul tranzactiilor, care se realizeaza automat de SGBDR si puncte de verificare a integritatii fixate de utilizator, acolo unde doreste el in program.

b) Concurenta la date (coerenta). Unitatea de lucru pentru asigurarea coerentei datelor este tranzactia. Aceasta este un ansamblu de comenzi tratate unitar. Tranzactia se executa in totalitate sau deloc. Coerenta poate fi afectata la actualizarea concurenta sau la incidente.

Mecanismele utilizate de SGBDR pentru asigurarea coerentei datelor (controlul accesului concurent) sunt:

  • Blocarea la diferite niveluri: baza de date, tabela, tuplu, atribut;

  • Definirea unor puncte de salvare in interiorul tranzactiilor (exemplu comanda savepoint);

  • Tranzactii explicite (begin si end transaction) si implicite (comenzile de actualizare);

  • Fisiere jurnal.

3) Optimizarea regasirii

Cererile de regasire se exprima in SGBDR in diferite limbaje relationale. Pentru a se obtine un rezultat optim, se utilizeaza interfete automate de rescriere a cererilor de regasire, prin parcurgerea a doi pasi:

  • Exprimarea cererilor de regasire sub forma unor expresii algebrice relationale, care are la baza echivalenta dintre calculul si algebra relationala.

  • Aplicarea unor transformari algebrice relationale asupra expresiilor construite in pasul anterior, pentru a se obtine expresii relationale echivalente si eficiente.

Transformarea se poate realiza prin doua strategii de optimizare: generale, specifice. Strategiile generale sunt independente de modul de memorare a datelor. Ele se bazeaza pe propietatile operatiilor din algebra relationala (comutativitatea, asociativitatea, compunerea ). Astfel de strategii sunt: selectia inaintea jonctiunii, proiectia inaintea jonctiunii, selectia inaintea proiectiei, combinarea selectiei multiple. Strategiile specifice tin cont de modul de memorare a datelor si ele sunt caracteristice unui SGBDR. Elementele care influenteaza executarea operatiilor ce intervin la o cerere de regasire sunt: accesul direct, reguli de ordonare a expresiilor algebrice specifice unui SGBDR.

4) Utilitarele specializate

Posibilitatile de utilizare ale unui SGBDR sunt influentate de utilitarele specializate pe care le are, pentru diferitele categorii de utilizatori (in Oracle: Developer pentru dezvoltatori, Designer pentru analisti, Administration Tools si Utilities pentru administrator etc.).

B. Pentru a face o caracterizare particulara,un anumit SGBDR vom lua in considerare o serie de criterii de comparatie. Aceste criterii se vor urmari, grupate pe anumite categorii, pentru cateva SGBDR-uri care ne intereseaza. Dupa aceasta analiza vom avea un argument serios pentru a putea alege un SGBDR in scopul dezvoltarii unei aplicatii cu baze de date.

Gruparea caracteristicilor particulare de comparatie a SGBDR-urilor o vom face in functie de facilitatile de descriere, manipulare, utilizare si administrare a datelor.

Caracteristicile in functie de facilitatile de descriere sunt: modul de implementare a modelului relational; conceptul de baza de date utilizat in schema; definirea metadatelor; definirea relatiilor virtuale; actualizarea schemei relatiei; restrictiile de integritate ce pot fi declarate.

Caracteristicile in functie de facilitatile de manipulare sunt: LMD relational implementat; functiile de calcul aritmetic si functiile agregate; modurile de acces la date; programarea orientata-obiect; tratarea valorii NULL; optimizarea cererilor de regasire; actualizarea relatiilor de baza si virtuale.

Caracteristicile in functie de facilitatile de utilizare si administrare sunt: instrumentele de dezvoltare; instrumentele CASE; instrumentele analize statistice; software-ul pentru acces de la distanta; utilitarele de intretinere; mecanismele pentru autorizarea accesului la date.

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 si distribuit. Are BD Internet si modul de optimizare a regasirii. Ultima versiune este Oracle 10g.

DB2. Este realizat de firma IBM. Sistemul respecta teoria relationala, este robust si se bazeaza pe SQL standard. Permite lucrul distribuit si are modul de optimizare a regasirii.

Informix. Este realizat de firma Informix, respecta teoria relationala si permite lucru distribuit. Progress. Este realizat de firma Progress Software. Are limbaj propriu (Progress 4GL) dar suporta si SQL. Ruleaza pe o gama larga de calculatoare sub diferite sisteme de operare.

SQL Server. Este realizat de firma Microsoft. Se bazeaza pe SQL si ruleaza in arhitectura client/server. Ingress II. Este realizat de firma Computer Associates. Este un SGBDR complet, implementeaza doua limbaje relationale (intai QUEL si apoi SQL) si este suportat de diferite sisteme de operare (Windows, UNIX). Lucreaza distribuit in arhitectura client/server, are extensie cu facilitati orientate obiect si 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 si nucleu extins de SQL.

Access. Este realizat de firma Microsoft. Se bazeaza pe SQL, are limbajul procedural gazda (Basic Access) si instrumente de dezvoltare.

Paradox. Este realizat de firma Borland. Are limbaj procedural propiu (PAL) si suporta SQL.