Sunteți pe pagina 1din 3

Prof. univ. dr. mat. Alexandru A.

Popovici
10 STRUCTURA ŞI PROBLEMELE SGBD-urilor OBIECTUALE

10.1 Structura şi arhitectura SGBD-urilor obiectuale


SGBDO: —schema conceptuală şi internă (nu şi externă), din modelul ANSI/SPARC;
— structură cu 6 componente ierarhice:
1) interfaţa de programare, interfaţa de interogare şi exploratorul de obiecte — programarea şi
interogarea obiectelor, navigarea prin BDO;
2) gestionarul obiectelor — furnizarea obiectelor şi a unui mediu pt. executarea metodelor;
3) optimizatorul interogărilor— integrare cu limbaj OQL - tehnici de optimizare a execuţiei interogării;
4) gestionarul încuierilor — controlul concurenţei (al accesului prin tranzacţii);
5) gestionarul stocărilor — evidenţa păstrării datelor şi metodelor în memoria auxiliară (HD);
6) gestionarul zonei-tampon pt. pagini — controlul zonei de citire a paginilor (sectoarelor) de pe disc.
Gestionarul obiectelor (GO) — implementarea identificatorilor de obiecte (OIDs) şi colectarea gunoaielor.
Arhitectura locală — toate cele 6 componente sunt pe acelaşi calculator.
Arhitectura nelocală, pe două nivele — se mai adaugă câte o componentă de comunicare prin reţea.
— două variante de furnizor (server):
— de pagini (de sectoare de disc);
— de obiecte (sau de grupări de obiecte).
Utilizator
Utilizator
Utilizator

Aplicaţie
Aplicaţie
Aplicaţie Interfaţă de
interogare Interfaţă de Interfaţă de Explorator
Interfaţă de Interfaţă Explorator Interfaţă de Explorator
programare interogare de obiecte
programare de de obiecte programare de obiecte
Optimizatorul
interogare interogărilor Gestionarul obiectelor
Interogare
Gestionarul fişierelor şi indecşilor Obiecte
Rezultat Reţea
Gestionarul paginilor şi zonei-tampon
Gestionarul obiectelor
Pagini Obiecte
Optimizatorul interogărilor Reţea
Gestionarul obiectelor
Gestionarul încuierilor
Pagini Optimizatorul interogărilor
Gestionarul stocărilor
Gestionarul încuierilor Gestionarul încuierilor
Gestionarul zonei-tampon pt. pagini
Gestionarul stocărilor Gestionarul stocărilor

Gestionarul zonei-tampon pt. pagini Gestionarul zonei-tampon pt. pagini


BDO

BDO BDO

Furnizorul de pagini — gestiunea stocării valorilor (nu prelucrează obiectele)


— permite aceeaşi reprezentare a obiectelor la client şi la furnizor;
— actualizarea datelor se face în zonele-tampon ale clienţilor ⇒ poate servi un număr mai mare de clienţi;
— la client se adaugă: a) gestionarul fişierelor şi indecşilor, b) gestionarul paginilor şi zonei-tampon RAM.
Furnizorul de obiecte — execută majoritatea serviciilor SGBD-ului;
— clientul execută aplicaţia şi unele funcţiuni de gestiune a obiectelor.
Partea din GO de la furnizor înţelege limbajul obiectual şi oferă suport pt.:
— gruparea obiectelor,
— metodele de acces la obiect,
— controlul concurenţei,
— filtrarea datelor (înainte de livrarea către clienţi)
— încuierea la nivel de obiect (creşte accesul la pagină al clienţilor, pt. pagini cu mai multe obiecte).
Partea din GO de la client execută accesul la obiecte, prin 3 tipuri de zone-tampon de memorie:
— pt. pagini (cu citirea/scrierea unei pagini întregi de la furnizor);
— pt. obiecte (cu citirea/scrierea obiectelor individuale;
— pt. pagini şi obiecte (cu copierea obiectelor din zona pt. pagini în zona pt. obiecte şi invers).
Furnizor de pagini — mai potrivit pt. un acces asemănător modului de grupare al obiectelor pe HD.
1
10.2 Problemele specifice ale SGBD-urilor obiectuale centralizate
10.2.1 Prelucrarea interogărilor în SGBD-urile obiectuale
Utilizatorul client: — navighează prin BDO cu exploratorul de obiecte (pt. determinarea obiectelor),
— trece la execuţia aplicaţiilor sau formulează o interogare asupra obiectelor.
Prelucrarea interogării unei BDO — problemă complexă (de decizie într-un sistem multinivel),
— se descompune în mai multe etaje, atribuite pt. execuţie eşaloanelor (cf. competenţelor).
— 3 etape de prelucrare (pt. SGBD local sau furnizor de obiecte):
1) Faza de analiză utilizează componentele ierarhice 2+3:
— gestionarul obiectelor determină locaţia lor (RAM/HD) şi căile de acces la ea;
— optimizatorul interogărilor determină cele mai bune metode de acces (transform. în expresii algebrice).
2) Faza de ordonanţare: — cu optimizatorul interogărilor (algoritmi pt. explorarea sp. stărilor posibile);
— generează planul de execuţie (proiecţia expr. algebrice optimizate pe mulţimea metodelor de execuţie).
3) Faza de execuţie propriu-zisă: — cu toate componentele SGBD-ului, în afară de optimizator;
— gestionarul încuierilor acordă utilizatorului accesul la obiecte sau îl trece în aşteptare;
— gestionarul stocărilor determină paginile (sectoarele) din HD de stocare pt. obiecte şi execută metodele;
— gestionarul zonei-tampon de pagină citeşte obiectele în zona-tampon de pagină a BDO;
— gestionarul de obiecte le preia (poate adăuga informaţii la date şi modifica reprezentările lor) şi le
transferă în zona-tampon a interogării sau aplicaţiei utilizatorului;
— aplicaţia execută aici citirile, operările sau actualizările datelor, cu ajutorul metodelor obiectelor.
Dacă modificările asupra obiectelor trebuie păstrate prin persistenţă, etapele 1-3 se mai parcurg o dată
(cu o înscriere pe disc, în locul citirii efectuate de către gestionarul zonei-tampon).
Dificultăţile suplimentare ale interogărilor BDO (faţă de cele ale BDR):
— diferenţele între nivelele de abstracţie ale obiectelor (def. prin comportament) şi stocarea lor pe HD;
— ascunderea metodelor prin încapsulare şi prin stocarea lor împreună cu datele;
— complexitatea colecţiilor de obiecte obţinute ca rezultate, fiecare tip având operaţii specifice.
Corectitudinea şi eficienţa interogării — dependente de 6 factori:
a) Invarianţii schemei — set de reguli pt. SGBD, în operaţiile care modifică schema conceptuală (ex. —
extensibilitatea mulţimi de tipuri a cărei descriere formează schema conceptuală a BDO).
b) Gestionarea identităţii obiectelor — prin tabel de corespondenţă.între două mulţimi de identificatori,
unul logic (indep. de locul de stocare şi invariabil), iar altul fizic (adresa fizică variabilă a obiectului).
c) Persistenţa versiunilor — pt. versiunea (starea) actuală şi cele trecute ale obiectelor: de tranziţie
(instabile — pot fi actualizate şi şterse), de lucru (stabile — nu pot fi actualizate, dar pot fi şterse), de
circulaţie/publice (stabile — nu pot fi actualizate şi nici şterse).
d) Prelucrarea colecţiilor de obiecte (prin operaţiile tipurilor şi implementările în metodele obiectelor):
— parcurgerea secvenţială a colecţiilor (conform ordonării admise de ele);
— parcurgerea indexată (folosind drept chei unele atribute ale obiectelor, valorile unor metode ale
acestora, sau chiar căile rezultate prin compunerea obiectelor);
— identificarea mulţimilor de obiecte (obţinute prin agregarea, după un criteriu, a colecţiilor rezultate).
e) Stocarea obiectelor — prin modelul de stocare pe un singur nivel (datele din memoria centrală/
/virtuală sunt înscrise direct, fără conversie, pe HD;
— cu operaţii auxiliare (invizibile pentru utilizator şi greu de
implementat).
Containerizarea fizică — stocarea grupată a obiectelor (pt. acces mai
rapid), după proprietăţile lor comune, prin: Conversia şi
— proiecţia modelului logic/conceptual în modelul fizic/intern; verificarea tipurilor

— folosirea legăturilor de sub/supra-tipizare sau de compunere.


Stocarea metodelor: — în fişiere externe (ca la bibliotecile de funcţii);
— împreună cu datele, cu legarea ulterioară la aplicaţia-client;
— în tabele diferite, dar în aceeaşi BD (la BD relaţional-obiectuale).
f) Algoritmii de optimizare a interogărilor — enumerare completă 1 nivel (BDO) 2 nivele (BDR)
sau (mai ales) ramifică-şi-mărgineşte;
— cu complexitatea de calcul )evaluată greu, datorită încapsularea metodelor ( ⇒ afişarea complexităţii
în interfaţă sau spargerea încapsulării).
Implementarea: — statică (prin reoptimizare periodică);
— hibridă (calcularea mai multor soluţii, la compilare, şi alegerea celei mai adecvate, la execuţie).
2
10.2.2 Securitatea SGBD-urilor obiectuale
— prin controlul autorizărilor şi prin încapsularea datelor;
— cu probleme deosebite (inexistenţa nivelului subschemelor externe şi existenţa operaţiilor abstracte);
— se pot defini perspective prin interogări denumite (dar neataşabile exclusiv la anumiţi utilizatori);
— obiectele sunt încapsulate;există nivele de vizibilitate pt. atribute şi metode (dar pt. toţi utilizatorii);
— pt. autorizarea utilizatorilor, se pot utiliza gradele de granularitate ale obiectelor.
Coduri de programe ale utilizatorilor — pot fi adăugate în BDO şi pot produce deteriorări ale BDO.
Securitatea BDO faţă de metode — prin 2 strategii de scriere a lor:
— în limbaj interpretat (cu limitarea puterii limbajului şi controlarea corectitudinii la fiecare pas executat);
— în limbaj compilat, prin medii de programare cu: — executarea în alt spaţiu de adrese decât al SGBD,
— interacţiunea prin comunicare inter-procesuală,
— realizarea transparenţei prin împachetare,
— depăşirea protecţiei la dezvoltarea BDO.

10.2.3 Controlul concurenţei în SGBD-urile obiectuale


— prin uneltele (încuierea sau marcarea temporală) şi metode (optimiste sau pesimiste);
— complicat de: a) durata mare a execuţiei tranzacţiilor (ore şi chiar zile, nu sec. sau min.);
b) complexitatea structurilor obiectuale (tipuri abstracte de date, operaţii abstracte) ⇒
— clasificare ierarhică a obiectelor din BDO:
1) obiecte simple (înregistrări, pagini/sectoare, fişiere),
2) obiecte instanţe ale tipurilor de date abstracte (ADT-uri),
3) obiecte compuse sau complexe.
— ordonare ierarhică a nivelelor de execuţie a tranzacţiilor:
1) citiri/scrieri simple ale datelor,
2) operaţii abstracte (definite de tipurile abstracte de clase),
3) tranzacţiile originare (definite de aplicaţii).
c) capacitatea diferită de reacţie a obiectelor ⇒
— obiecte pasive (nu reacţionează la evenimente),
— obiecte active (pot reacţiona la evenimente, dacă sunt îndeplinite anumite condiţii).
Abordări principale ale controlului concurenţei:
a) Controlul prin multigranularitate — ierarhia granularităţii: 1) înregistrări (tupluri sau obiecte),
2) fişiere (relaţii/tabele sau clase),
3) zone-tampon de memorie,
4) bază de date (BDR/BDO).
— moduri de încuiere: 1) efective: partajate (P), exclusive (X),
2) intenţionale: intenţional partajat (IP),
intenţional exclusiv (IX),
intenţional partajat sau exclusiv (IPX).
Încuierile partajate (P/IP) — precedate de încuieri intenţionale (IP/IX) pt. superiorii din ierarhie.
Încuierile de citire a obiectelor şi de modificare a obiectelor componente — precedate de încuieri IPX.
Încuierile exclusive (X/IX) — precedate de încuieri IX ale superiorilor.
Încuierile unor nivele mai înalte încuie implicit şi nivelele inferioare.
Încuierile intenţionale de la un nivel nu pot fi anulate dacă nivelele inferioare sunt încuiate.
Încuierile la nivel înalt scad spaţiul de memorie pt. cele de nivel scăzut, dar şi nivelul concurenţei.
Încuierile la nivel scăzut cresc spaţiul, dar şi concurenţa.
b) Controlul prin îmbricare defineşte atributele ca date ale BDO, iar metodele — ca tranzacţii.
Execuţia metodelor: — paşi locali (execuţia locală a operaţiilor atomice; afectează doar atributele obiectului);
— paşi metodici (invocări ale metodelor).
Sincronizarea operărilor în obiecte compuse/complexe:
— se acordă obiectelor o relativă libertate (restricţionată doar de corectitudinea execuţiei);
— controlul concurenţei se ocupă doar cu sincronizarea operărilor între obiecte.
Controlul prin îmbricare — mai mare flexibilitate a execuţiei şi, adesea, un grad de concurenţă mai ridicat.
Controlul concurenţei la zonele-tampon:— detecţia (permite actualizarea şi citirea, urmate de validare);
— prevenirea (fără simultaneitatea actualizării cu citirea).
3