Sunteți pe pagina 1din 3

Prof. univ. dr. mat. Alexandru A.

Popovici
Curs 7 STRUCTURA ŞI PROBLEMELE SPECIFICE ALE SGBD-URILOR RELAŢIONALE

7.1 Structura SGBD-urilor relaţionale centralizate


Structura (6 nivele): 1) interfaţă — interfeţele şi aplicaţiile utilizatorilor, gestionarea subschemelor;
2) control — controlul integrităţii semantice şi verificarea autorizaţiilor utilizatorilor;
3) prelucrare — descompunerea optimă a interogărilor şi gestionarea planului de acces la date;
4) executare — controlarea executării planului de acces şi interpretarea operatorilor relaţionali;
5) consistenţă — controlul concurenţei, evidenţa tranzacţiilor şi restaurarea informaţiei;
6) accesulla date — gestionarea zonelor-tampon de memorie şi aplicarea metodelor de acces la date.
Modelul ANSI/SPARC ⇒ 1)+2) — schema externă, 3)+4) — schema conceptuală, 5)+6)— schema internă.
Controlului semantic al datelor — gestiunea subschemelor externe, controlul integrităţii semantice şi al
securităţii.
Arhitectura locală — 6 componente ierarhice (corespunzătoare nivelelor structurale):
1) interfaţa sau aplicaţia utilizatorului,
2) controlorul semantic al datelor,
3) optimizatorul interogărilor,
4) gestionarul tranzacţiilor,
5) gestionarul restaurărilor,
6) procesorul de asistare a execuţiei.
Arhitectura generală a SGBD ⇒ 1) — exteriorul interfeţei, 2)-6) — interiorul interfeţei
Arhitecturi nelocale (pe 2 nivele — furnizor de fişiere sau de date): 1’) + 2’) — componente ierarhice de
comunicare prin reţea (între exteriorul şi interiorul interfeţei).
Utilizatori

Interfeţele/aplicaţiile utilizatorilor
Gestionarea subschemelor externe Utilizator
Calculul relaţional Aplicaţie . . . Aplicaţie
Controlul integrităţii semantice
Interfaţa Programe de
Verificarea autorizaţiilor utilizatorului aplicaţie
Calculul relaţional Biblioteca centrală
Interogare (CL)
Descompunerea şi optimizarea SQL Relaţie
rezultată
Gestionarea planului de acces
Algebra relaţională Controlorul semantic al datelor
Programe de interfaţă
Controlul executării planului de acces Optimizatorul interogărilor (DBD)
Verificarea autorizaţiilor Gestionarul tranzacţiilor
Regăsire/actualizare Gestionarul restaurărilor
Controlul concurenţei Procesorul de asistare a execuţiei
Evidenţa tranzacţiilor şi restaurarea BD . . . BD
Regăsire/actualizare
BD
Gestionarea zonelor tampon
Aplicarea metodelor de acces

BD

7.2 Conectivitatea deschisă a bazelor de date relaţionale (ODBC)


Open Database Connectivity — parte a standardului ISO SQL; ODBC 3.0 (1996), coresp. lui SQL2 (+3)
— descrierea implementării SQL printr-o interfaţă de programare a aplicaţiilor (API);
— asigură independenţa de SGBD, de limbajul de programare al aplicaţiilor şi de sistemul de operare.
Implementare — 2 nivele: 1) biblioteca centrală (core library, CL), cu funcţii ODBC;
2) programele de interfaţă cu SGBD-urile (database drivers, DBD-uri).
Funcţionare: 1) aplicaţiile adresează interogările către CL, 2) CL le traduce în limbajul SQL standard şi
le transferă către DBD, 3) DBD le traduce în dialectul SGBD-ului
În arhitectura centralizată: CL — sub interfaţa interioară, DBD-urile — deasupra controlului.
ODBC 3.0 — caractere Unicode pe 16 biţi, tipuri noi de date, manevrabilitate sporită a datelor cu volum
mare (şiruri lungi de caractere, hărţi de biţi), manevrarea tranzacţiilor cu 1 nivel, prelucrarea lor în RAM.
7.3 Probleme specifice SGBD-urilor relaţionale Analiza cerinţelor şi sinteza
7.3.1 Proiectarea bazelor de date relaţionale obiectivelor
Etape: 1) analiza cerinţelor utilizatorului şi sinteza obiectivelor SGBD-ului; Cerinţele
2) construirea modelelor entitate-legătură pt. perspectivele utilizatorilor sistemului

(independent de implementare) şi stabilirea aplicaţiilor; Modelarea perspectivelor


3) transpunerea modelelor entitate-legătură în modelele logice ale schemei şi stabilirea aplicaţiilor

externe, sinteza modelului logic global al bazei de date (corespunzător categoriei Schema
BD — centralizată / distribuită); externă
4) transpunerea modelului logic global într-un model fizic (coresp. anvelopei Sintezarea schemei externe
SGBD-ului şi arhitecturii alese, precum şi necesităţilor (restricţiilor) întreprinderii. şi modelarea logică
7.3.2 Prelucrarea interogărilor în SGBD-urile relaţionale Schema
Instrucţiunile / comenzile SQL parcurg 3 etape de execuţie: conceptuală
1) analiza modelului — analiza sintactică şi semantică, pt. verificarea Modelarea fizică
corectitudinii şi simplificarea căutării; a schemei conceptuale
2) ordonanţarea modelului — descompunerea modelului în operaţii elementare Schema
ale algebrei relaţionale (AR) şi calculului relaţional (CR), transformarea lui internă
algebrică, cf. regulilor de optimizare, obţinându-se planul de execuţie îmbunătăţit;
3) execuţia planului — execuţia secvenţială şi/sau paralelă a operaţiilor elementare din planul de execuţie.
Planul de exec. — aproape optim pt. timpul total de prelucrare (al unităţii centrale şi al comunicării cu HD).
Timpul UC — evaluat prin complexitatea algoritmilor de execuţie a operatorilor AR şi CR.
Principii de prelucrare: — operatorii care reduc cardinalitatea n (ex.: PROJECT) se execută primii;
— operatorul PRODUCT trebuie evitat sau măcar executat cât mai târziu.
Metode algoritmice generale de rezolvare (X — spaţiul complet al soluţiilor):
a) enumerare completă (cu generarea întregului X) ⇒ soluţie optimă (dacă X nu este prea mare);
b) strategii randomizate (generate aleator din X) —se compară după generare ⇒ sol. aproape optimă;
c) algoritmii euristici (de restrângere a lui X) —prin minimizarea mărimii relaţiilor intermediare (se
execută operaţiile unare, apoi cele binare, în ordinea crescătoare a cardinalităţii relaţiilor).
Categorii de optimizări ale interogării (în raport de momentul executării):
a) statice (prin enumerare exhaustivă): — se execută la interpretare/compilare (înaintea execuţiei);
— folosesc studii statistice asupra interogărilor trecute;
— se execută o singură dată pentru toate execuţiile acelei interogări (costul se distribuie între ele),
— nu pot prevedea mărimile curente ale relaţiilor intermediare (pot duce la rezultate suboptimale),
b) dinamice (prin strategii randomizate / algoritmi euristici): — se pot face repetat, în fiecare etapă a exec.;
— se cunosc efectiv mărimile curente ale relaţiilor intermediare;
— pot ajunge prea costisitoare prin repetarea la fiecare execuţie;
— se întrebuinţează mai ales pentru interogările neprevăzute.
c) hibride — îmbină optimizarea statică (de bază) cu cea dinamică (ultima — dacă mărimile curente ale
relaţiilor intermediare sunt mult diferite de cele estimate), deci îmbină avantajele acestora.
Subschemă externă (perspectivă) — relaţie (set de înregistrări) virtuală, obţinută în urma interogării.
Schema externă — mulţime de perspective şi de relaţii de bază.
Categorii de subscheme: a) actualizabile: — numai dacă se obţin printr-un operator relaţional unar
(SELECT / PROJECT) sau de joncţiune JOIN (dar al cărui rezultat include şi cheile relaţiilor de bază).
— dacă actualizările datelor pot fi propagate fără ambiguităţi prin relaţiile de bază),
b) neactualizabile (în caz contrar).
7.3.3 Securitatea SGBD-urilor relaţionale

Autorizarea — triplet <utilizator, operaţie, obiect>; indică dreptul utilizatorului de a efectua o anumită
operaţie, cu o anumită componentă a BD.
Fişiere — autorizare la nivel de fişier.
BD ierarhice / reticulate — autorizări la nivel de tip al componentei (fişier, înregistrare, câmp etc.).
BDR: — autorizări la nivel de tip (relaţie, tuplu, atribut, subschemă/perspectivă etc.) sau de conţinut (prin
condiţii/predicate de selectare);
— anumite atribute sau tupluri pot fi ascunse utilizatorilor neautorizaţi (prin definirea subschemelor);
— autorizări memorate ca matrice de autorizare (relaţie).
7.4 Regulile şi clasificarea SGBD-urilor relaţionale
13 reguli (numerotate de la 0 la 12), date de E.F. Codd, în 1985 (după extinderea MR, pt. tranzacţii, în 1979):
R0 (regula fundamentală). Un SGBDR trebuie să fie capabil să-şi gestioneze BD numai prin
caracteristicile sale relaţionale.
R1 (regula informaţiei). Toată informaţia dintr-o BDR trebuie să fie reprezentată la nivel logic sub
formă de relaţii (tabele).
R2 (regula accesului garantat). Fiecare dată elementară trebuie să fie accesibilă logic printr-o
combinaţie dintre numele relaţiei (tabelei), valoarea cheii primare şi numele atributului (coloanei).
R3 (regula tratării sistematice a valorilor nule). Un SGBDR trebuie să suporte într-un mod sistematic,
independent de tipul datelor, folosirea valorilor nule (null) pentru reprezentarea informaţiei care lipseşte
sau care este inaplicabilă.
R4 (regula descrierii datelor prin dicţionarul datelor). Dicţionarul datelor trebuie să fie reprezentat la
nivel logic în acelaşi fel ca datele obişnuite (adică prin relaţii), şi trebuie să fie accesibil utilizatorilor
autorizaţi prin acelaşi limbaj (de exemplu, SQL).
R5 (regula sublimbajului cuprinzător). Măcar unul din limbajele din SGBDR trebuie să fie exprimabil
prin şiruri de caractere şi să aibă o sintaxă bine definită. El trebuie să fie utilizabil atât interactiv, cât şi din
programele aplicative, şi trebuie să poată asigura: definirea datelor (crearea, ştergerea şi modificarea
relaţiilor), definirea (crearea şi ştergerea) perspectivelor (views), manevrarea datelor, integritatea datelor,
autorizarea utilizatorilor (emiterea şi revocarea permisiei de folosire a BD) şi mărginirea tranzacţiilor.
R6 (regula actualizării perspectivelor). Un SGBDR trebuie să permită actualizarea tuturor
perspectivelor ce sunt teoretic actualizabile.
R7 (regula inserării, actualizării şi ştergerii). Operaţiile de regăsire şi actualizare trebuie să lucreze
asupra relaţiilor de bază sau a perspectivelor, astfel încât să se poată insera, actualiza sau şterge deodată
mulţimi de tupluri (linii), deci să se poată lucra cu tranzacţii.
R8 (regula independenţei fizice a datelor). Programele de aplicaţii şi activităţile de la terminalele
calculatorului nu trebuie să fie afectate din punct de vedere logic de schimbările modurilor de
reprezentare fizică a datelor sau ale metodelor de acces folosite.
R9 (regula independenţei logice a datelor). Programele de aplicaţii şi activităţile de la terminalele
calculatorului nu trebuie să fie afectate de schimbările relaţiilor fundamentale, când aceste schimbări nu
modifică informaţia folosită de aceste programe sau activităţi (de exemplu, ar trebui să fie posibilă fără
repercusiuni adăugarea unui atribut la o relaţie sau crearea unei noi relaţii).
R10 (regula independenţei faţă de integritate). Întărirea integrităţii trebuie să se poată defini prin
limbajul relaţional şi trebuie memorată în dicţionarul datelor, nu în programele de aplicaţii, iar
schimbarea regulilor de integritate nu trebuie să afecteze aplicaţiile existente.
R11 (regula independenţei faţă de distribuire). Aplicaţiile nu trebuie să fie afectate cînd BD devine
distribuită sau este redistribuită prin intermediul unei reţele de calculatoare.
R12 (regula ne-subversivităţii). Dacă un SGBDR suportă un limbaj de nivel scăzut (care poate prelucra
în acelaşi timp doar un tuplu), atunci acest limbaj trebuie totuşi să se supună regulii şi restricţiei de
integritate definite de limbajul relaţional (deci să nu-l submineze pe acesta).

Clasificare simplă a SGBD-urilor:


a) minimal relaţionale (ex.: dBase IV):
— toate datele din BD sunt reprezentate în tabele de valori;
— nu există adrese fizice vizibile de către utilizatori, pentru datele din BD;
— suportă operatorii relaţionali SELECT, PROJECT şi NATURAL JOIN, fără limitări interne.
b) complet relaţionale (MS Access, Oracle):
— sunt minimal relaţional;
— suportă restricţiile de integritate;
— suportă toţi operatorii fundamentali ai algebrei relaţionale.

7.5 Limitele SGBD-urilor relaţionale


— inexistenţa, în relaţiile principale, a informaţiilor despre atributele lor (stocate în relaţiile secundare);
— imposibilitatea stocării informaţiilor compuse (ce trebuie să se găsească în mod natural laolaltă);
— imposibilitatea reprezentării datelor mutual exclusive / opţionale (din MEL), evenimentelor şi proceselor.