Sunteți pe pagina 1din 28

1.

Ce este o baz de date distribuit


(BDD) - un set de baze de date distribuite pe reeaua de calculatoare, logic interlegate
ntre ele, conceput pentru a rula aplicaii de gestionare a activitii organizaiilor cu o
structur distribuit complex de producie.
O baz de date distribuit (BDD) este o colecie de date partajate, intercorelate logic,
distribuite geografic ntr-o reea de calculatoare. Aceste calculatoare pot ori s se afle
fizic n aceeai locaie (sal, cldire etc.), ori s fie dispersate ntr-o reea de
calculatoare interconectate.
2. Numii condiii de baz necesare pentru dezvoltarea bazelor de date
distribuite
innd cont c de obicei volum i complexita datelor, pentru dezvolt BDD, treb sa se
tina cont de urmat aspect:
- nu trebuie niciodat pierdut din vedere dezideratul vitezei;
- limita de stocare i puterea calculatoarelor gazda;
- limita de transfer a reelei;
- preferabil ca fiecare aplicaie s acceseze uzual un singur depozit al bazei de
date (fr a mpiedica accesarea cu frecven redusa a celorlalte noduri ale reelei);
- folosirea funciilor two-phase-commit existente pentru a asigura integritatea
datelor actualizate distribuit;
- planificarea, controlul i minimizarea duplicrii de obiecte ale bazei de date;
- corelarea organizrii cu facilitile de optimizare distribuit ale SGBD-ului.
Cercetatorul Chris Date a enunat cele 12 cerine ideale crora trebuie s li se supun
BDD, dintre acestea 9 sunt urmtoarele:
Autonomia local: datele locale sunt deinute i administrate local - nici un post
nu depinde de altele pentru a funciona.
Toate posturile sunt egale: nici un post nu se bazeaz pe o staie central.
Funcionare nentrerupt: nu trebuie s fie necesar o oprire planificat
(instalrile/tergerile efectuate la un post nu afecteaz funcionarea celorlalte).
Transparena amplasrii: utilizatorii nu sunt obligai s tie unde sunt amplasate
datele pentru a le extrage. Transparena fragmentrii: relaiile dintre
componentele bazei de date pot fi fragmentate pentru stocare, dar acest lucru
rmne transparent pentru utilizator.
Transparena duplicrii: relaiile i fragmentele pot fi reprezentate fizic prin
copii multiple stocate separat, dar transparent pentru utilizator.
Prelucrarea interogrilor distribuite: operaiile de citire/scriere se pot desfura
la mai multe posturi, permind optimizarea locala i global a interogrilor.
Actualizrile distribuite: tranzaciile singulare pot executa codul la mai multe
posturi.
Independena de hardware: toate calculatoarele particip ca membri egali.
Independena de sistemul de operare: sunt suportate mai multe sisteme de
operare conectabile la reea. Independena de reea: sunt suportate mai multe
reele prin protocoale comune.
Independena de bazele de date: se asigur accesul uniform (interfaare unic)
pentru datele provenind din SGBD-uri diferite.
3. Numii principiile de baz a bazei de date distribuite
Lucrul utilizatorului intr-o sistema distribuita trebuie de organizat in asa fel incit, ca si
cum ea nu ar fi distribuita. Tote problemele legate de particularitatile sistemelelor
distribuite trebuie sa fie interne, si trebuie sa apara numai la un nivel intern, la nivelul
elaborarii, dar nu la un nivel extern sau la nivelul utilizatorului.
Principiul fundamental al BDD duce la un set de reguli ajutatoare si scopuri proprii
unei BDD:
a. Autonomie locala. b. Independenta fata de nodul central
c. Functionare continua d. Independenta de amplasare
e. Independenta de fragmentatie f. Independenta de replicatie
g. Prelucrarea adresarilor distribuite h. Manajarea tranzactiilor distribuite
i. Independenta de dotarea tehnica j. Independenta de sistema de operare
k. Independenta de retea l. Independenta de SGDB
Aceste douasprezece scopuri sint foarte utile la intelegerea conceptului de baze de
date relationale si pentru functionarea generala a unui sistem de baze de date
distribuite.
4. Ce este o baz de date ditribuit omogen
Un sistem de baze de date distribuite omogen este o retea de dou sau mai multe
baze de date ce ruleaz sub acelasi sistem de gestiune a bazelor de date care se afl
pe una sau mai multe masini fizice. Figura 1 ilustreaz un sistem distribuit care

conecteaz trei baze de date Oracle: hq, mfg si sales. O aplicatie poate accesa sau
modifica date simultan din cteva baze de date ntr-un singur mediu distribuit. Pentru
o aplicatie client locatia si platforma bazelor de date sunt transparente. Se pot crea si
sinonime pentru obiecte aflate la distant ntr-un sistem distribuit, astfel nct
utilizatorii le pot accesa cu aceeasi sintax ca obiectele locale.
5. Ce este o baz de date ditribuit eterogen
ntr-un sistem de baze de date distribuit eterogen (figura 2) exist cel putin dou
sisteme diferite de gestiune a bazelor de date care ruleaz n diferitele noduri ale
retelei. n cazul pe care l considerm, cel putin un nod este non-Oracle. Pentru
aplicatie sistemul de baze de date distribuit eterogen apare ca o baz de date Oracle
singular. Baza de date Oracle local ascunde distributia si
eterogenitatea datelor.
6. Care este diferena dintre o baz de date distribuit
omogen i una eterogen

Baza de date distribuita omogena poate fi :


- autonoma
- Fiecare DBMS lucreza independent
- Transmit mesaje pentru a se pastra consistenta
Baza de date heterogena :
- Suporta unele sau toate functionalitatile unei baze de date logice
- Functionalitate totala a DBMS
- Functionalitate tpartiala a DBMS
- Are si aceasta un DBMS central care coordoneaza accesul la restul de date
distribuite in retea.
7. Ce este o interogare distribuit
Transparenta performantelor se asigura prin cerinta ca sistemul considerat sa aiba
performante comparabile cu ale unui sistem centralizat. n aceasta situatie trebuie ca
SGBDD sa determine strategia cea mai eficienta de a executa fiecare interogare n
parte. n acest scop un DQP (Distributed Query Processor) mapeaza o cerere de date
ntr-o secventa ordonata de operatii asupra bazei de date. DQP decide ce fragment se
acceseaza, ce copie se utilizeaza, care locatie se utilizeaza. DQP produce o strategie
de executie care este optimizata relativ la o functie de cost. Costul asociat cu o
interogare distribuita include:
-timp de acces (input/output) la accesarea datelor fizice pe suportul respectiv,
-timp CPU la executatrea operatiilor asupra datelor in memoria principala,
-costuri de comunicatii asociate cu transmiterea datelor prin retea.
8. Ce este o tranzacie distribuit
o tranzacie const dintr-o secven de operaii de citire i scriere a bazei de date,
la care se adaug o serie de operaii de calcul.
n cadrul unei baze de date distribuite n nodurile unei reele, accesul la
multitudinea de obiecte de date se realizeaz de obicei prin intermediul tranzaciilor.
Se nelege c tranzaciile trebuie s respecte regulile ACID.
Deoarece tranzaciile care sunt executate ntr-un sistem distribuit pot prelucra fie
date rezidente ntr-un singur loc, fie date amplasate n sisteme distincte, se disting
tranzacii locale i tranzacii globale. Primele au acces la informaiile coninute n o
singur baz de date local i pot prelucra aceste informaii. Tranzaciile globale
realizeaz accesul la informaii amplasate n mai multe baze de date locale i, desigur,
pot prelucra aceste informaii.
Sistemul Oracle gestioneaza finalizarile si derularile napoi ale tranzactiilor
distribuite si mentine integritatea tuturor bazelor de date distribuite care participa la
tranzactia distribuita. Oracle efectueaza aceste sarcini printr-un mecanism cunoscut
sub numele de finalizare n doua faze.
ntr-un mediu nedistribuit, toate tranzactiile sunt fie finalizate, fie derulate napoi
ca un ntreg, n schimb, ntr-un mediu distribuit, finalizarea si derularea napoi a unei
tranzactii trebuie coordonata n ntreaga retea astfel nct bazele de date fie sa salveze
n bloc, fie sa deruleze napoi, n bloc, tranzactia. Acest lucru trebuie sa fie adevarat
chiar si atunci cnd reteaua cade n timpul unei tranzactii distribuite. Finalizarea in
doua faze garanteaza faptul ca nodurile participante la tranzactie fie salveaza, fie
deruleaza napoi tranzactia, acest lucru ducnd la mentinerea nemodificata a
integritatii datelor bazei de date globale.

Respectarea proprietilor ACID n procesul execuiei tranzaciilor locale


reclam, practic, participarea tuturor componentelor sistemului de gestiune a bazei
de date implicate n gestiunea tranzaciilor. Asigurarea consistenei unei tranzacii
oarecare trebuie dat de programatorul de aplicaie, care codific tranzacia. Pentru
respectarea atomicitii tranzaciei, chiar dac apar defeciuni, se poate folosi
tehnica de modificare amnat, sau tehnica modificrii imediate a bazei de date.
n primul caz, modificrile aduse bazei de date sunt nregistrate ntr-un jurnal,
ns execuia tuturor operaiunilor de nregistrare din tranzacie este amnat pn
la comiterea parial a tranzaciei (reamintim c prin comitere parial nelegem
situaia n care aciunea final a tranzaciei a fost executat). Modificarea imediat a
bazei de date const n efectuarea schimbrilor bazei de date atunci cnd tranzacia
este nc n stare activ; schimbrile aduse de tranzacii ce se gsesc n stare activ
se numesc modificri ne-comise. Responsabilitatea operaiunilor de mai sus revine
controlorului (sau manager-ului) de tranzacii. n fapt, acest controlor, prin
observarea memoriei secundare (disc), urmrete valorile vechi ale tuturor obiectelor
de date asupra crora tranzacia a efectuat nregistrri, iar dac tranzacia nu a
completat execuia sa, restaureaz vechile valori astfel nct aparent tranzacia nu ar
fi fost niciodat executat. Durabilitatea este n sarcina controlorului de revenire
(sau de recuparare). Prin grja acestui sub-sistem, modificrile aduse bazei de date de
ctre o tranzacie sunt nregistrate pe disc naintea completrii tranzaciei. De
asemenea, este asigurat disponibilitatea unei informaii suficiente privind
modificrile efectuate i nregistrate pe disc, astfel nct actualizrile fcute s poat
fi reconstruite atunci cnd sistemul de baze de date este repornit dup o defeciune. n
sfrit, controlorul concurenei este sub-sistemul care, printre altele, asigur
respectarea proprietii de izolare. Printre tipurile de planificare ce contribue la
sigurarea acestei proprieti menionm serializabilitatea de conflict i
serializabilitate de vedere.
n cazul tranzaciilor globale, meninerea proprietilor ACID este sensibil mai
complicat, avnd n vedere faptul c la execuia unei planificri de tranzacii iau
parte mai multe noduri ale unei reele. Defeciunile aprute n unul sau mai multe din
noduri, ca i defeciunile canalelor de comunicaie, vor conduce aproape sigur la
prelucrri incorecte ale informaiilor.

Din arhitecura unei baze de date distribuite fac parte dou componente
principale: controlorul de tranzacii i coordonatorul tranzaciilor. Aceste sub-
sisteme sunt amplasate n nodurile reelei de calculatoare.

Funcia controlorului de tranzacii const n respectarea proprietilor ACID


ale tranzaciilor care prelucreaz informaii memorate n nodul cu care controlorul
este asociat. Deoarece avem n vedere o baz de date distribuit, se nelege c n
reea vor fi executate i tranzacii globale, care efectueaz operaiuni asupra datelor
depuse n mai multe noduri. n acest proces vor colabora controloare de tranzacii
amplasate n nodurile corespunztoare. ntr-un nod dat al reelei, n care se
desfoar prelucrarea concurent a unui numr de tranzacii, controlorul de
tranzacii ocup un loc specific n activitatea algoritmului de control al concurenei.
De asemenea, acest sub-sistem are responsabilitatea coninutului jurnalului meninut
n vederea revenirii dup defeciuni.

La rndul su, coordonatorul de tranzacii asociat unui nod, dirijeaz execuia


tranzaciilor locale i globale ce sunt iniiate i funcioneaz n nodul respectiv.
Funcia de coordonare menionat este specific numai mediului distribuit. n sarcina
coordonatorului intr iniierea execuiei fiecrei tranzacii, segmentarea tranzaciilor
n scopul distribuirii sub-tranzaciilor obinute n noduri adecvate, precum i
coordonarea ncheierii activitii fiecrei tranzacii. Se subliniaz faptul c
tranzaciile globale fie comit n toate nodurile n care sunt executate sub-tranzaciile
din care sunt formate, fie sunt abandonate n toate nodurile.

n legtur cu defectele ce apar uneori n sistemele centralizate, inclusiv n cele


care prelucreaz baze de date, trebuie menionate erorile de echipament
(hardware), erorile programelor, deterioararea sistemelor de discuri magnetice.
Tema defeciunilor posibile ntr-un sistem distribuit care gzduete o baz de date are
particulariti evidente. Deterioarea componentelor unui nod, defeciuni ale liniilor
de comunicaie, perturbarea manierei iniiale de partiionare a reelei, coruperea
mesajelor prin erori sunt tipurile principale de defecte ce au loc n mediu distribuit.
Atunci cnd se defecteaz mediul de comunicaie, mesajele transmise ntre noduri
sunt de obicei re-rutate. n ipoteza dispariiei conexiunii ntre dou noduri, reeaua
va fi partiionat din nou. Erorile care apar n mesaje sunt tratate de protocoalele de
control al procesului de comunicaie, de exemplu TCP/IP.
Procesarea tranzaciilor are ca scop pstrarea integritii bazei de date. Trebuie
ns precizat c mecanismele tranzacionale nu sunt singurele care se ocup de
pstrarea integritii. Mai precis, procesarea tranzaciilor se refer doar la dou
aspecte:

Recuperarea bazei de date dup un incident (database recovery) - se


bazeaz pe inducerea unui anumit nivel de redundan prin memorarea
istoriei tranzaciilor ntr-un aa-numit "jurnal" (log). Desi acest aspect nu
face subiectul lucrrii de fa, anumite elemente tehnice privind
jurnalizarea vor fi utilizate n coninuare.

Controlul interferenelor care pot avea loc ntre tranzaciile care se execut
n mod concurent (concurrency control) - este un aspect critic n sistemele
de aplicaii OLTP (On-Line Transaction Processing). Este vorba despre
"controlul" (i nu neaprat "evitarea") interferenelor deoarece, dei
ntotdeauna nedorite, aceste interferene pot fi permise - n anumite forme
bine precizate - pentru a crete performanele sistemului.

Pentru a echilibra ct mai bine performana i sigurana, constructorii de sisteme


de gestiune a bazelor de date au dezvoltat mai multe procedee prin care interferenele
ntre tranzaciile concurente s poat fi controlate. Cel mai rspndit este
mecanismul bazat pe blocarea (locking) unor poriuni ale bazei de date pentru a
interzice altor tranzacii accesul la datele respective pe durat unor operaiuni critice
efectuate de o tranzacie. O alt metod este cea bazat pe aplicarea unor "mrci de
timp" (timestamping) asupra tranzaciilor i a obiectelor implicate n tranzacii.
Ambele procedee (precum i procedeele "hibride") pornesc de la premisa pesimist
c interferenele nedorite sunt oricnd posibile i chiar probabile, deci se bazeaz pe
prevenirea lor. Exist ns i o abordare optimist, care pleac de "prezumia de
nevinovie" i care ncearc doar s depisteze i s rezolve conflictele n cazul n
care acestea apar. Toate metodele au avantaje i dezavantaje, fiecare dntre ele se
preteaz la anumite aplicaii i sunt inacceptabile n cazul altora.
9. Unde se aplic i ce nseamn abrevierea ACID
Se consider c principalele idei unificatoare din domeniul calculului distribuit,
respectiv atomicitatea, consistena, izolarea i durabilitatea, care mpreun poart
numele de proprieti ACID ale tranzaciilor, au aprut n procesul de evoluie a
sistemelor de prelucrare a tranzaciilor:
Atomicitate: schimbrile strii unei tranzacii sunt atomice, n sensul c acestea
au loc toate, sau nu are loc nicio schimbare. Schimbrile sunt modificri ale
bazei de date, mesaje i aciuni asupra subsistemelor din mediul extern.
Consisten: o tranzacie constitue o transformare corect a strii bazei de date.
Aciunile ntreprinse n grup nu ncalc niciuna din restriciile de integritate
specifice strii menionate. De aici rezult c tranzaciei trebuie s i
corespund un program corect.
Izolare: chiar dac tranzaciile sunt executate n mod concurent, fiecare
tranzacie T vede execuia celorlalte tranzacii ca fiind produs fie anterior
fa de T, fie dup T, dar nu ambele.
Durabilitate: odat ce o tranzacie a fost executat cu succes (deci a fost
completat sau a comis), schimbrile pe care ea le-a produs n starea bazei
de date nu vor fi afectate de defeciuni.
Evoluia global a unei tranzacii, cu respectarea proprietilor ACID, poate fi descris
dup cum urmeaz. Programul de aplicaie declar debutul unei tranzacii noi prin
comanda Begin-Work(). n continuare, toate operaiile efectuate de program vor face
parte din aceast tranzacie. n acelai timp, toate operaiunile executate de alte
programe n legtur cu programul de aplicaie sunt parte a tranzaciei de baz. Prin
iniierea comenzii Commit_Work, programul declar c tranzacia constitue o
transformare complet i corect. Rezultatele execuiei tranzaciei sau efectele
acesteia- devin durabile, de ndat ce tranzacia comite. Pe de alt parte, este posibil
ca pe parcursul execuiei tranzaciei unele operaiuni s fie eronate. n acest caz,
aplicaia poate distruge toate operaiunile, prin comanda Rollback_Work(). Mai
observm c atunci cnd n timpul execuiei unei tranzacii are loc o defeciune de
natur tehnic, sistemul de gestiune poate trimite napoi, sau returna tranzacia.
Pentru ncadrarea transformrilor ACID se folosesc comenzile Begin-Commit sau
Begin-Rollback. Elementele de mai sus reprezint o abordare convenabil pentru
realizarea aplicaiilor distribuite. Fiecare modul al aplicaiei va fi o tranzacie sau o
sub-tranzacie. Atunci cnd execuia se desfoar cu succes, tranzacia comite i toate
modulele trec n o stare durabil nou.. n situaia n care apar erori sau alte incidente,
modulele tranzaciei vor fi readuse automat n starea iniial, cea de la nceputul
execuiei tranzaciei. ntruct operaiunile de comitere i de revenire se bazeaz pe o
logic automat, realizarea modulelor reclam folosirea de metode cu semantic
elementar pentru descrierea defeciunilor.
10. Explicai proprietatea de izolare (isolation) a tranzaciei
Izolarea (isolation), este proprietatea unei tranzacii de a face vizibile modificrile
efectuate numai dup ce a fost validat (committed). Dac n acest timp sunt
executate alte tranzacii concurente, acestea nu vd modificrile pariale efectuate
de tranzacia respectiv pn n momentul validrii tranzaciei. (despre niveluri
intrebarea 5B)
11. Care este diferena dintre tranzacia implicit i tranzacia explicit
Finalizarea (committing) unei tranzactii reprezinta salvarea permanenta explicita sau
implicita a modificarilor tranzactiei n baza de date.
Fiecare tranzactie necesita un segment de revenire asociat. Acest segment de revenire
pastreaza informatiile necesare pentru anularea modificarilor efectuate de tranzactie,
n mod implicit, Oracle asociaza un segment de revenire fiecarei tranzactii. Puteti
totusi sa asociati n mod explicit un segment de revenire unei tranzactii, folosind
comanda set transaction. Tranzactiilor li se asociaza n mod explicit segmente de
revenire pentru urmatoarele motive:
Necesitatile de stocare ale segmentului de revenire pot fi gestionate mai eficient
pentru a asigura o capacitate de stocare suficienta n extinderile existente.
Performantele sistemului sunt afectate foarte putin de segmentele de revenire
deoarece nu se aloca dinamic extinderi suplimentare. Ulterior, aceste extinderi pentru
segmentele de revenire trebuie sa fie si ele trunchiate.
Comanda set transaction va permite sa asociati n mod explicit un anumit segment de
revenire unei tranzactii read-write. Acest segment de revenire este utilizat pentru
anularea modificarilor efectuate de tranzactia curenta atunci cnd se executa o
derulare napoi. Daca nu specificati un segment de revenire, sistemul Oracle asociaza
unul tranzactiei.
Pentru a face n mod explicit permanente toate modificarile efectuate de o tranzactie,
folositi instructiunea comiti it.
Pentru a efectua o finalizare explicita, trebuie sa posedati privilegiul de sistem f orce
transaction.
12. Numii i explicai oricare patru reguli a lui C.J. Date a unei baze de date
distribuit
C.J. Date a ntocmit 12 reguli conform crora se poate stabili dac un SGBD este
distribuit sau nu. Ca o sintez a regulilor, se poate afirma c distribuirea datelor nu
trebuie s afecteze n nici un fel utilizatorii (SGBD-ul va asigura o transparen
total a distribuirii datelor).
R1. Autonomia local: fiecare nod are control local asupra datelor i este
independent de celelalte noduri din punct de vedere al funciilor de baz: securitate,
controlul concurenei, backup i recuperare.
R2. Independena fa serverul central: fiecare nod trebuie s acioneze
independent, fr s depind de un server central sau un alt nod.
R3. Continuitatea: activitatea ntr-un sistem distribuit se desfoar fr ntreruperi
pentru ntreineri sau reparaii.;
R4. Transparena localizrii: nici un utilizator/program are nevoie s tie unde i
cum sunt amplasate datele folosite.
R5. Independena fragmentrii: SGBDD va trebui s poat reconstrui automat, n
orice moment, o colecie de date din fragmentele sale.
R6. Independena replicrii: utilizatorii/programele nu trebuie s tie dac datele au
fost replicate i cum anume.
R7. Interogri distribuite: o interogare poate fi executat pe orice nod din reea care
conine date utile execuiei cererii. La rspunsul interogrii pot s participe mai
multe noduri, fr ca beneficiarul s fie contient de acest lucru.
R8. Tranzacii distribuite: o tranzacie poate s acceseze i s modifice date din mai
multe noduri, fr ca beneficiarul s fie contient de acest lucru.
R9. Independena fa de hardware: nodurile pe care se gsesc datele pot fi
calculatoare de diferite tipuri i puteri.
R10. Independena fa de software: nu trebuie s aib importan sistemele de
operare care exist pe noduri (eterogene).
R11. Independena fa de reea: BDD i SGBDD trebuie s poat fi implementate
pe orice platform de reea corespunztoare, iar diferitele protocoale utilizate n
reea, nu trebuie s afecteze funcionarea BDD.
R12. Independena fa de SGBD: la nivel de nod local pot rula diferite SGBD-
uri.

Tehnicile prin care un SGBDD, asigur distribuirea datelor de baz sunt:


fragmentarea, replicarea, tehnica mixt, ncrcarea.

a) Distribuirea prin fragmentare este operaia de descompunere logic a coleciilor


globale n pri disjuncte numite fragmente, utiliznd operatori speciali.
13. Numii tipuri de fragmentare n sistemul de baz de date distribuit
Pentru a realiza fragmentarea SGBDD respect anumite reguli i metode.
REGULILE ce trebuie respectate la fragmentare:
completitudinea semnific faptul c ntreaga colecie global trebuie
descompus n fragmente. Rezult c orice nregistrare dintr-o colecie global
trebuie s se regseasc ntr-un fragment;
reconstrucia semnific faptul c orice colecie global trebuie s poat fi
recompus, oricnd, din fragmentele sale;
disjuncia semnific faptul c fragmentele n care se descompune o colecie
global trebuie s fie exclusive. Rezult c o nregistrare din colecia global nu
poate s se regseasc n dou sau mai multe fragmente ale sale.
METODELE ce pot fi utilizate la fragmentare:
orizontal, conform creia descompunerea coleciei globale n fragmente se
face prin extragerea unui set de nregistrri, pstrndu-se toate cmpurile
coleciei iniiale. Rezult c fiecare fragment are un numr de nregistrri mai
mic dect al coleciei globale din care provine, dar aceeai structur de date;
vertical, conform creia descompunerea coleciei globale n fragmente se face
prin extragerea unui set de cmpuri, pstrndu-se toate nregistrrile coleciei
iniiale. Rezult c fiecare fragment are o structur de date subset din cea a
coleciei globale din care provine, dar acelai numr de nregistrri;
mixt, conform creia descompunerea coleciei globale n fragmente se face
prin aplicarea succesiv a metodelor orizontal i vertical.

b) Distribuirea prin replicare este operaia de stocare a unor poriuni dintr-o


baz de date, sub form de copii, pe mai multe calculatoare (noduri) dintr-o reea.
Dac un utilizator actualizeaz o copie local atunci SGBDD actualizeaz
automat toate copiile acelor date.
Pentru a putea realiza distribuirea prin replicare un SGBDD utilizeaz anumite
metode: date nereplicate, date replicate parial, date replicate total.

METODELE ce pot fi utilizate la replicare:


date nereplicate nseamn c SGBDD aloc spaiu pentru anumite date, pe o
singur copie, pe un anumit calculator din reea. Caracteristicile acestei
metode sunt: redundana este minim, concurena accesului la date este
maxim, timpul de actualizare este mic i timpul de regsire este mare;
date replicate parial nseamn c SGBDD aloc pentru o parte din date o
singur copie pe un calculator, iar pentru o alt parte din date mai multe copii
pe mai multe calculatoare din reea. Caracteristicile acestei metode sunt:
redundana crete, concurena accesului la date scade, timpul de actualizare
este mediu i timpul de regsire este mediu;
date replicate total, nseamn faptul c SGBDD aloc pentru ntreaga BD mai
multe copii pe diversele calculatoare din reea. Caracteristicile acestei metode
sunt: redundana este maxim, concurena accesului la date este minim,
timpul de actualizare este mare i timpul de regsire este mic.

c) Distribuirea mixt este operaia de aplicare succesiv a fragmentrii i


replicrii pentru aceeai colecie global de date. Aceast tehnic preia avantajele
celorlalte dou, dar este mai greu de implementat.

d) Distribuirea prin ncrcare este operaia de copiere periodic a ntregii baze


de date centralizate sau a unei poriuni din ea pe noduri locale. Este cea mai simpl
tehnic i se folosete atunci cnd datele sunt stabile sau atunci cnd nu toi
utilizatorii trebuie s aib acces la datele de ultim or.
14. Ce nseamn fragmentarea orizontal
Fragmentarea orizontala consta n partitionarea tuplurilor unei colectii globale n
subseturi, pe baza unor predicate de selectie. Predicatul de selectie denumit si
calificare este asociat fiecarui fragment si defineste proprietatea care a stat la baza
gruparii tuplurilor n cadrul fragmentului. Ratiunea fragmentarii orizontale este de a
produce fragmente cu potential maxim de procesare locala, fiecare fragment obtinut
fiind alocat la statia unde este cel mai utilizat. Alegerea predicatelor de selectie nu
este att de simpla cum ar putea sa para la prima vedere. Trebuie luate n considerare
att de proprietatile logice ale datelor ct si de caracteristicile aplicatiilor care le
exploateaza (cum ar fi numarul de accese de regasire, respectiv de actualizare a
seturilor de date). Corelarea aspectelor logice ale datelor cu caracteristicile aplicatiilor
este adesea dificil de realizat.

Fiecare tuplu din relaia R apare ntr-un anume fragment, o singura data. Daca se
dorete reconstrucia relaiei, se utilizeaz reuniunea pentru a obine relaia R iniial.
R=R 1 R2 .. Rn

15. Ce nseamn fragmentarea vertical


Fragmentarea verticala se realizeaza prin mpartirea atributelor unei relatii globale n
seturi astfel nct mai multe aplicatii sa poata fi executate utiliznd un singur
fragment. Ratiunea pentru fragmentarea verticala este aceea de a grupa mpreuna
atributele frecvent utilizate mpreuna. O buna fragmentare verticala se realizeaza cnd
fiecare aplicatie utilizeaza un singur fragment, altfel aplicatiile care necesita accesarea
mai multor fragmente verticale vor avea performante mai scazute, deoarece trebuie sa
realizeze una sau mai multe jonctiuni si, implicit, nu-meroase accese la distanta. n
aceste conditii, trebuie asigurat un echilibru ntre beneficiul potential datorat
posibilitatii de plasare a fiecarui fragment n apropierea aplicatiilor care l utilizeaza
cel mai frecvent si pierderile potentiale datorate faptului ca exista aplicatii care
utilizeaza doua sau mai multe fragmente aflate pe statii diferite.

Reconstrucia relaiei iniilale se realizeaz prin jonciune natural.

16. Ce nseamn fragmentarea mixt


Fragmentarea mixta se realizeaza prin aplicarea succesiva a operatiilor de fragmentare
orizontala si verticala. Astfel, fragmentele mixte pot fi obtinute prin aplicarea
fragmen-tarii orizontale la un fragment vertical, respectiv prin aplicarea fragmentarii
verti-cale la un fragment orizontal. Aceste operatii pot fi repetate recursiv genernd
arbori de fragmentare de orice complexitate. n prac-tica este recomandat sa existe cel
mult doua niveluri de fragmentare.
Fragmente verticale fragmentate orizontal:

Fragmente orizontale fragmentate vertical:


17. Ce nseamn replicarea datelor
Replicarea este un proces care const n realizarea i distribuirea de copii ale datelor
i, n plus, permite ca modificrile efectuate s fie propagate n mod consistent la
copiile corespunztoare. Distribuirea acestor replici are ca scop procesarea datelor la
nivel local. Procesul de replicare sporete securitatea sistemului i mbuntete
viteza operaiunilor de procesare de date [10].
Exista dou tipuri de replicare:
Replicare sincron - n replicarea sincron, replicile sunt sincronizate n orice
moment. n aceast abordare, o tranzacie poate accesa orice copie deoarece datele
accesate sunt aceleai n toate celelalte copii.
Replicarea asincron - n replicarea asincron, spre deosebire de replicarea
sincron, replicile nu sunt inute n sincronizare tot timpul. Dou sau mai multe replici
ale acelorai date pot avea valori diferite uneori i ntr-o tranzacie se pot vedea aceste
valori diferite. Aceste lucru este acceptabil pentru unele aplicaii care nu necesit o
updatare n timp real, cum ar fi cele pentru depozit.
18. Explicai noiunea de autonomie local n sistemul de baz de date
distribuit
19. Explicai ce nseamn independena nodurilor n baza de date distribuit
(no reliance on central site, independena nodurilor, absena
nodului central)
(lipsa de sprigin pe nodul/site-ul central) .
,
.

.
,
.
-
(Baza
de date pe fiecare nod este de sine stttoare - aceasta include propriul dicionar
complet de date i este complet protejat mpotriva accesului neautorizat este pe deplin
protejate mpotriva accesului neautorizat).
Translate:
Lipsa de sprijin (de sprigin pe Lipsa nodul / sit-ul central) la unitatea central.
independen local presupune c toate nodurile dintr-un sistem distribuit trebuie
considerate ca fiind egale. Prin urmare, nu ar trebui s fie nici o referire la nodul sau
"central" "maestru", pentru a obine un serviciu centralizat. ntr-un sistem ideal, toate
nodurile sunt egale i independente, i situat pe baza lor sunt egale cu furnizorii de
date totalul de date spaiale. Baza de date pe fiecare nod este autosuficient - aceasta
include proprietatea deplin a dicionarului de date i este complet protejat mpotriva
accesului neautorizat
20. Explicai ce nseamn transparena localizrii sau amplasrii datelor n
baza de date distribuit
21. Explicai ce nseamn transparena fragmentrii n baza de date
distribuit

22. Explicai ce nseamn transparena replicrii n baza de date distribuit


23. Explicai ce nseamn prelucrarea tranzaciilor distribuite n baza de date
distribuit
Gestiunea tranzactiilor are ca obiect de studiu controlul accesului concurent si
problematica tolerantei la defecte. Fata de abordarea cu un singur nod central, in
cazul sistemelor distribuite lucrurile devin mult mai complicate. O tranzactie lansata
in sistemul distribuit are nevoie de agenti, care sa verifice rezultatul finalizarii
tranzactiei in fiecare din locatiile implicate. Evident ca si in mediul distribuit
proprietatile tranzactiilor (ACID - Atomicitate, Coerenta, Izolare, Durabilitate) trebuie
sa fie respectate. Pentru ca o tranzactie sa corespunda pretentiilor de atomicitate
trebuie ca fiecare agent al tranzactiei sa-si indeplineasca sarcina, in caz contrar toti
sunt nevoiti sa execute o tranzactie in compensare pentru a pastra consistenta bazei.
Similar cu bazele de date centralizate metoda cea mai raspandita de control al
accesului concurent se bazeaza pe blocare. Gestionarea distribuita a tranzactiilor este
strans legata de problematica transparentei tranzactiilor. Fara a lua in considerare
aspectele privitoare la controlul concurentei si a rezistentei la defecte, intr-un mediu
distribuit, descompunerea unei tranzactii in subtranzactii duce la cresterea
performantelor atat la nivelul vitezei de executie, cat si din punctul de vedere al
concurentei. Referitor la transparenta la defectare si capacitatea de refacere, trebuie sa
se tina cont de atomicitatea tranzactiilor si de caracterul durabil al modificarilor
facute. Un SGBD distribuit trebuie sa garanteze ca tranzactia globala este atomica,
adica toate tranzactiile locale pe care le implica fie s-au terminat cu succes, fie au fost
toate anulate. Nu putem avea situatii de compromis, deoarece datorita caracterului
durabil al subtranzactiilor se poate ajunge la inconsistente. Pe langa problemele cu
care se confrunta sistemele centralizate (caderea sistemului, pene de comunicatie,
erori software, neglijenta, dezastre fizice, naturale sau sabotajul) un sistem distribuit
trebuie sa tina cont si de: pierderea unui mesaj, defectarea legaturilor de comunicatie,
defectarea unui nod sau de partitionarea retelei. Un sistem distribuit trebuie sa
furnizeze un mecanism de refacere, care indiferent de aparitia unor posibile accidente,
de genul celor enumerate, trebuie sa sustina atomicitatea tranzactiei globale. In
general, aceasta cerinta este asigurata prin protocolul commit in doua faze (two phase
commit).
24. Explicai ce nseamn independen de aparataj/hard n baza de date
distribuit
Independenta de hardware. De mai mult timp aplicatiile software trebuie sa satisfaca
criteriul transparentei fata de hardwareul utilizat. Nici sistemele distribuite nu trebuie
sa faca rabat de la aceasta caracteristica. Infrastructura hardware poate fi compusa din
echipamente de la diferiti producatori in configuratii si cu performante diferite.
Utilizatorul nu trebuie sa sesiseze vreo diferenta in functionarea sistemului nici chiar
daca lucreaza alternativ pe masini cu tehnologii de fabricatie diferite. Multe baze de
date opereaza pe o varietate de platforme.
25. Explicai ce nseamn independen de sistem de operare n baza de date
distribuit
Independenta de sistemul de operare. Un sistem distribuit trebuie sa poate functiona
atat pe masini diferite din punct de vedere al tehnologiei hardware, cat si pe
calculatoare pe care sunt instalate sisteme de operare diferite. Utilizatorul nu trebuie
sa resimta amprenta sistemelor de operare diferite, instalate pe masini diferite, sau
chiar pe acelasi echipament. Indiferent ca e vorba de sistemul de operare Unix,
Windows, OS/2, de versiuni diferite, sistemul distribuit trebuie sa poata rula pe
oricare dintre acestea, fara ca operatorul sa sesiseze diferente de utilizare intre masini
cu sisteme de operare diferite.
26. Explicai ce nseamn transparen de reea n baza de date distribuit
Independenta de infrastructura de comunicatie. Nodurile sistemului distribuit sunt
conectate logic la aceeasi retea de comunicatie. Chiar daca topologiile, vitezele de
transfer, dimensiunile pachetelor, metodele de acces la mediu sau tehnologia
subretelelor, peste care acesta se intinde, sunt diferite, acestea nu trebuie sa devina un
impediment in buna functionare a sistemului.
27. Explicai ce nseamn independen de tip de SGBD n baza de date
distribuit
Independenta de sistemul de gestiune al bazei de date. Acest deziderat este unul dintre
cel mai greu de atins. Ideal ar fi ca pe toate masinile sistemului distribuit sa ruleze
acelasi SGBD. Nu intotdeauna acest lucru poate fi pus in practica datorita
eterogenitatii echipamentelor si a sistemelor de operare, fara a ne putea detasa si de
latura financiara. Chiar daca SGBD-urile sunt diferite, ar fi cel putin recomandat ca sa
nu existe problema incompatibilitatii canalelor de comunicare intre locatiile avand
SGBD-uri diferite. Pentru acessta, fiecare locatie ar trebui sa recunoasca acelasi
standard SQL. Sistemul distribuit ideal ar fi acela care ar putea asigura transparenta
fata de orice SGBD utilizat. In general, cerinta este asigurata prin instalare
28. Ce sunt link-uri
Link-ul este un pointer care defineste o cale de comunicatie unidirectional de la un
server de baz de date Oracle ctre un alt server de baz de date. Link-ul este
unidirectional n sensul c un client conectat la o baz de date local A, poate folosi
un link stocat n baza de date A s acceseze informatii ntr-o baz de date B aflat la
distant, dar utilizatorii conectati la baza de date B nu pot folosi acelasi link pentru a
accesa date din A.
Link-ul este o schem obiect ntr-o baz de date care permite accesarea obiectelor pe
o alt baz de date. Dup ce a fost creat link-ul de baz de date, pot fi accesate
obiectele de la distan prin alturarea @dblink la numele tabelului.
O conexiune prin intemediul link-ului de baze de date, permite utilizatorilor locali s
acceseze date de pe o baz de date la distan. Pentru ca aceast conexiune s aib loc,
fiecare baz de date n sistemul distribuit trebuie s aib un nume unic de baz de date
la nivel global n domeniul reelei. Numele bazei de date la nivel global identific n
mod unic un server de baze de date ntr-un sistem distribuit.
CREATE DATABASE LINK 193.226.64.221/Adminer.php?
mssql=193.226.64.221%5CMSS1 CONNECT TO userdd04 IDENTIFIED BY
04dduser USING 'Dbtest04';
29. Ce sunt sinonime
Sinonimele sunt o caracteristica importanta a bazei de date relationale Oracle; ele
reprezinta o modalitate sigura si eficienta de accesare a obiectelor bazei de date.
Un sinonim este un alias pentru un obiect Oracle. Sinonimul nu este obiectul Oracle
propriu-zis, ci mai degraba o referinta directa la un obiect. Acest obiect poate fi un
tabel, o vedere, o secventa, o procedura, o functie, un pachet sau un alt sinonim.
Sinonimele sunt create pentru a indica (folosind adresa exacta) aceste obiecte, astfel
nct utilizatorii sa trebuiasca sa cunoasca numai numele sinonimului.
Oracle Database permite crearea sinonimelor, astfel nct s se poat ascunde numele
link-ul bazei de date de utilizator. Un sinonim permite accesul la o tabel ntr-o baz
de date la distan folosind aceeai sintax pe care le-ar folosi pentru a avea acces la
un tabel de pe o baz de date local.
De exemplu, dorim afisarea datelor din tabelul Marfa de pe serverul 193.226.64.221/
Adminer.php, lansm interogarea:
SELECT * FROM Marfa@ 193.226.64.221/Adminer.php?mssql
=193.226.64.221%5CMSS1;
Putem crea sinonimul pentru Marfa@193.226.64.221/Adminer.php?mssql
=193.226.64.221 %5CMSS1, astfel nct sa putem lansa urmtoarea interogare, care
afieaz aceleai date:
SELECT * FROM Marfa;
30. Ce este un SNAPSHOT
Snapshot-ul este una dintre cele mai simple metode de replicare. Acest tip de replicare
se poate folosi pentru date care se schimb rar. Acet tip de replicare poate fi folosit n
soluiile n care conexiunea dintre noduri este instabila.
Replicarea snapshot, este singurul tip de replicare care poate fi folosit pentru date care
sunt organizate n tabele fr cheie primar. Se copie datele integral de pe un server
pe altul, sau dintr-o baz de date n alta.
Exemplu Snapshot pentru baza de date:
CREATE SNAPSHOT Vanzari_Marfa AS SELECT * FROM
193.226.64.221/Adminer.php?mssql=193.226.64.221%5CMSS1;
31. Ce este ADO.NET
ADO.NET- tehnologie de acces la date, a platformei .NET Framework, ce const ntr-
un set de clase prin intermediul crora aplicaiile .NET se pot conecta la bazele de
date sau surse de date (baze de date aflate pe servere sau fiiere locale), pot executa
comenzi (n regim normal sau tranzacional) sau gestiona i procesa date n mod
deconectat (local n aplicaie).
32. Ce este ASP.NET
Tehnologia ASP (Active Server Pages), dezvoltat de Microsoft, permite realizarea de
scripturi pentru server i este folosit pentru crearea i rularea n mod dinamic a
aplicaiilor Web server interactive.
Cu ASP se pot combina pagini HTML, comenzi de script i controale ActiveX pentru
crearea de pagini Web interactive sau aplicaii Web complexe.
ASP ofer totodat posibilitatea de a stoca informaia dintr-un formular HTML ntr-o
baz de date, de a personaliza site-uri Web, oferind diverse opiuni pentru vizitatorii
site-ului sau de a folosi diferite caracteristici HTML bazate pe navigator. Cu ASP se
poate prelua informaia dintr-un formular HTML care va fi stocat ntr-o baz de date,
folosind numai scripturi simple nglobate n documente HTML.
33. Ce este TCP/IP
TCP/IP (Transmission Control Protocol/Internet Protocol) este cel mai utilizat
protocol folosit n reelele locale ct i pe Internet datorit disponibilitii i
flexibiliti lui avnd cel mai mare grad de corecie al erorilor. TCP/IP permite
comunicarea ntre calculatoarele din ntreaga lume indiferent de sistemul de operare
instalat.
Protocolul TCP/IP este compus din patru niveluri: Aplicaie, Transport, Reea i Acces
la reea.
34. Ce este TCP/UDP
este un protocol de comunicaie pentru calculatoare ce aparine nivelului Transport
(nivelul 4 ) al modelului standard OSI.
UDP (User Datagram Protocol) este un protocol nesigur, destinat pentru aplicaii care
trebuie s interogheze rapid, far retrimiterea pachetelor eronate.UDP este folosit in
aplicaiile de transmisii video sau audio i aplicaii client-server.
UDP (User Datagram Protocol), este un protocol nesigur, fr conexiuni, destinat
aplicaiilor care doresc s utilizeze propria lor secveniere i control al fluxului.
Protocolul UDP este de asemenea mult folosit pentru interogri rapide ntrebare-
rspuns, client-server i pentru aplicaii n care comunicarea prompt este mai
important dect comunicarea cu acuratee, aa cum sunt aplicaiile de transmisie a
vorbirii i a imaginilor video.
35. Care este diferena dintre protocoalele TCP/IP i TCP/UDP
Transmission Control Protocol - TCP
Funcionez la nivelul de transport al modelului TCP/IP
Protocol orientat pe conexiune, ceea ce nseamn c, nainte ca TCP s transmit date,
conexiunea trebuie s fie stabilit
Este un protocol sigur, compensnd astfel lipsa conexiunii i sigurana redus
din protocolul IP
User Datagram Protocol UDP
Protocol fr conexiune nu este garantat livrarea datelor
Header minim
Rapid i eficient
Comparaie ntre TCP i UDP pe modelul transmiterii potei:
o scrisoarea trimis nu se tie dac a ajuns sau nu la destinaie =
UDP
o scrisoarea, cu confirmare de primire trimis la recepie confirmare de
primire = TCP
La prima vedere nu exist diferene foarte clare ntre nivelul reea i cel de transport
respectiv ntre protocoalele IP i TCP (UDP). La o analiz mai atent descoperim c
IP se ocup cu distribuirea datelor ntre calculatoarele reelei, pe cnd TCP distribuie
datele ntre aplicaii.
n comunicaia dintre dou aplicaii, de pe hosturi diferire, protocolul IP are sarcina s
memoreze adresele IP ale celor dou calculatoare, pe cnd protocolul de transport
(TCP sau UDP) trebuie s rein numerele porturilor surs i destinaie.
Protocoalele TCP i UDP utilizeaz porturile n mod diferit. UDP fiind un protocol
fr conexiune, las pur i simplu datele pe port. n schimb TCP se concentreaz pe
conexiune - nu pe port. Prin urmare, aplicaiile care folosesc TCP pot s deschid pe
acelai port mai multe conexiuni fr s apar probleme de transmisie.
TCP este considerat un protocol fiabil, asigurnd integritatea datelor transmise.
Utiliznd acest protocol, programatorul, nu trebuie s se mai ocupe de aspecte de
corectitudine a transmisiei pachetelor, lucru asigurat de protocolul nsui. Din acest
motiv scade, ntr-o oarecare msur, viteza de transfer.
36. Numii modele client/server n arhitectura bazelor de date distribuite
Un server de baze de date este software-ul care administreaz baza de date; un client
de baze de date este o aplicaie care cere servicii de la server, de exemplu transmite
date la, sau cere date de la baza de date. De obicei pentru un server i baza de date
corespunztoare exist concomitent mai muli clieni. Fiecare calculator din reeaua
de calculatoare a bazei de date distribuite se numete un nod. Un nod al sistemului
unei baze de date distribuite se poate comporta drept server, drept client, sau chiar
drept ambele, n funcie de situaie.
Clientul are doar o interfa grafic cu care poate accesa baza de date de pe server,
folosind aplicaii pentru a transmite comenzi SQL serverului bazei de date, rezultatele
fiind primite sub form de tabele. Exemple de astfel de produse sunt: ORACLE, SQL
Server, DB2, Sybase i Informix.
37. Numii componentele modelului client/server pe 3 niveluri n arhitectura
sistemului de baz de date distribuit
1.Client; 2.Server de aplicatii; 3.Server de baze de date
Primul nivel (clientul) al arhitecturii client/server pe trei niveluri este reprezentat de
interfaasistemului cu utilizatorul (sesiuni de lucru, ferestre de dialog, ferestre pentru
introducer datelor,administrarea afirii etc.), adic logica prezentrii.
Al treilea nivel (server-ul de baze de date) furnizeaz funcionalitatea gestiunii bazei
de date i estededicat serviciilor de fiiere i date, respectiv logica accesului la baza
de date i validarea din partea server-ului. Componenta de gestiune a datelor
garanteaz c datele sunt consistente de-alungul mediului distribuit prin utilizarea
unor caracteristici precum blocarea datelor, consistena ireplicarea acestora.
Conectivitatea ntre niveluri poate fi modificat n mod dinamic n funcie decererile
utilizatorilor pentru date i servicii.
Nivelul de mijloc (server-ul de aplicaii) furnizeaz servicii de administrare a regulilor
afacerii i a prelucrrii datelor care sunt partajate de mai multe aplicaii. Acest nivel
de mijloc asigur performan, flexibilitate, mentenabilitate, reutilizabilitate i
scalabilitate prin centralizarea logic a proceselor. Aceast centralizare face ca
administrarea i gestiunea modificrilor s fie mai uoar prin localizarea
funcionalitii sistemului astfel nct modificrile sunt executate o singur dat i
plasate pe server-ul nivelului de mijloc pentru a fi disponibile de-a lungul ntregului
sistem. n plus,acest nivel controleaz tranzaciile i interogrile asincrone pentru a se
asigura c acestea suntefectuate complet.
38. Explicai menirea serverului de aplicaii n arhitectura sistemului de baz de
date distribuit
Un server de baze de date este software-ul care administreaz baza de date; un client
de baze de date este o aplicaie care cere servicii de la server, de exemplu transmite
date la, sau cere date de la baza de date. De obicei pentru un server i baza de date
corespunztoare exist concomitent mai muli clieni. Fiecare calculator din reeaua
de calculatoare a bazei de date distribuite se numete un nod. Un nod al sistemului
unei baze de date distribuite se poate comporta drept server, drept client, sau chiar
drept ambele, n funcie de situaie.
Rolul serverului de aplicatii este de a gestiona integritatea bazelor de date distribuite
prin intermediul unui proces numit actualizarea n dou faze a bazei de date care
furnizeaz accesul la resurse bazat pe nume n loc de locaii, mbuntind astfel
scalabilitatea i flexibilitatea pe msur ce componentele sistemului sunt adugate sau
mutate.
Serverul de aplicaii permite deservirea unui numr mare de utilizatori (peste 100),
prin furnizarea unor funcii precum: organizarea prin ateptare, interogri, execuia
aplicaiei i coordonarea bazei de date (database staging).
39. Numii clasele principale ale ADO.NET
Modelul obiectual al ADO.NET este compus din 2 grupuri distincte de clase: content
components si managed provider components.
Content components include clasa DataSet si alte clase de suport, cum ar fi
DataTable, DataRow, DataColumn si DataRelation. Aceste clase pastreaza continutul
unui schimb de date.
Managed provider components ajuta la obtinerea si actualizarea datelor:
Connection - Creeaz conexiunea cu sursa de date.
Command - Este utilizat pentru operaii asupra sursei de date: citire, modificare,
tergere de date.
Parameter - Descrie un singur parametru al unei comenzi. De pild, parametrul unei
proceduri stocate.
DataAdapter - Este un adaptor pentru transferul datelor ntre sursa de date i
dataset.
DataReader - Este folosit pentru accesarea i citirea rapid a a datelor ntr-o surs de
date.
Clasele furnizorilor de date:
Clasele OLE Clasele SQL
DB .NET Server
OleDbConnectio SqlConnectio
n n
OleDbComman
SqlCommand
d
OleDbDataRead SqlDataRead
er er
OleDbDataAdap SqlDataAdap
ter ter

40. Care este diferena dintre obiectele Recordset i Record ale ADO.NET
Obiectul ADO Recordset este utilizat pentru a pstra un set de nregistrri dintr-un
tabel de baze de date. Un obiect Recordset constau din nregistrri i coloane
(cmpuri).
n ADO, acest obiect este cel mai important i cel mai des utilizate pentru a manipula
datele dintr-o baz de date.Obiectul Recordset este utilizat pentru aflarea unor date,
examinarea rezultatelor i efectuarea de modificri n bazele de date. El are i alte
facilitai care permit obinerea si vizualizarea seturilor de linii sau articole din baza de
date.
Obiectul Record este utilizat pentru a pastra un rnd ntr-un Recordset, un director sau
un fiier dintr-un sistem de fiiere.
Intr-o baz de date structurat, fiecare tabel are exact acelai numr de coloane in
fiecare rnd i fiecare coloan este alctuit din acelai tip de date.Obiectul Record
permite accesul la seturi de date n cazul n care numrul de coloane i / sau tipul de
date pot fi diferite de la rnd la rnd.
41. Explicai fragmentul de cod: Set objConn =
CreateObject("ADODB.Connection")
Fragmentul de cod instaniaz obiectul Connection pentru deschiderea unei conexiuni
catre o baza de date sau alte surse, adic se creaza obiectul de conectare.
42. Explicai fragmentul de cod: Set objComm =
CreateObject("ADODB.Command")
In fragmentul dat se instantiaza obiectul Command, cu ajutorul caruia pot fi efectuate
comenzi si interogari asupra bazei de date, este necesar atunci cind utilizam interogari
cu parametru si cind se doreste salvarea textul comenzii pentru reutilizarea acestuia.
43. Explicai fragmentul de cod: Set objConn =
CreateObject("ADODB.Recordset")
Se instantiaza obiectul Recordset, utilizat pentru aflarea unor date, examinarea
rezultatelor i efectuarea de modificri n bazele de date. El are i alte facilitai care
permit obinerea si vizualizarea seturilor de linii sau articole din baza de date.
Blocul B: (15 puncte/ntrebare)
1. Descriei metodele prin care se realizea transparen localiz datelor ntr-un
sistem de BDD
Transparena localizrii: nici un utilizator/program are nevoie s tie unde i cum sunt
amplasate datele folosite. Realizarea transparentei localizarii datelor poate fi efectuata
creaind link-uri si synonym-uri.
(intrebarea 28-29 despre linkuri si synonymuri)
2. Descriei metodele de replicare a datelor ntr-un sistem de baz de date
distribuit
Replicarea este un proces care const n realizarea i distribuirea de copii ale datelor
i, n plus, permite ca modificrile efectuate s fie propagate n mod consistent la
copiile corespunztoare. Distribuirea acestor replici are ca scop procesarea datelor la
nivel local. Procesul de replicare sporete securitatea sistemului i mbuntete
viteza operaiunilor de procesare de date.
Pot fi urmtoarele tipuri de replicare:
Replicarea snapshot Se copie datele integral de pe un server pe altul, sau
dintr-o baz de date n alta.
Replicarea prin mbinarea datelor datele din mai multe baze de date sunt
mbinate i compiate ntr-o baz de date.
Replicarea tranzacional este creat o replic iniial de tip snapshot dup
care se primesc update-uri periodice n funcie de schimbarile survenite.
Replicarea Snapshot este una dintre cele mai simple metode de replicare. Acest tip de
replicare se poate folosi pentru date care se schimb rar. Acet tip de replicare poate fi
folosit n soluiile n care conexiunea dintre noduri este instabila.
Replicarea snapshot, este singurul tip de replicare care poate fi folosit pentru date care
sunt organizate n tabele fr cheie primar.
Exemplu Snapshot pentru baza de date:
CREATE SNAPSHOT Vanzari_Marfa AS SELECT * FROM
193.226.64.221/Adminer.php?mssql=193.226.64.221%5CMSS1

3. Implementarea tehnologiilor web n realizarea modelului client/server pe


trei nivele n arhitectura sistemului de baz de date distribuit
(inrebarea 37 A)
Software-ul bazelor de date implementate prin arhitectura client/server se prezint
generic astfel: SGBD-urile asigur partea de server, iar aplicaiile de exploatare a
datelor se afl uzual la nivelul client (sculele de editare a aplicaiilor utilizator aparin
de productorii SGBD-urilor implementate sau pot fi din familia celor bazate pe
specificaii deschise: ODBC, JDBC, Embeded SQL, DCOM, OLE etc.).
Majoritatea serviciilor Internetului se desfoar n regim client/server (banala
navigare nseamn un utilizator accesnd datele dintr-un site-server prin intermediul
unei aplicaii client, care este browserul de Web), astfel c devine natural implicarea
SGBDR-urilor n aplicaii Internet (de genul e-business sau e-commerce).
Nivelul Client al aplicaiei este responsabil de prezentarea datelor, captarea
evenimentelor de la utilizator i controlul interfeei cu utilizatorul. Eventualii
algoritmi prezeni aici au fost mutai n mare parte pe urmtorul nivel: cel al
serverului aplicaiei. Un mod de implementare a acestui nivel const n utilizarea
appleturilor sau scripturilor client. Programatorul poate alege una dintre abordri
funcie de specificul aplicaiei i de avantajele / dezavantajele fiecrei abordri.
Nivelul client, prezent i n arhitectura Client / Server, a fost redus la situaia unui
thin-client.
Nivelul Server Aplicaie, nou adugat la arhitectur, nu este prezent ntr-o form
explicit n modelul C/S. Acest nivel este cheia sistemului. Obiectele care
implementeaz algoritmi sunt stocate aici. Nivelul protejeaz datele de a fi accesate
direct de ctre clieni. De asemenea, conine componente care pot fi accesate de
clieni, la nivelul Client. Dup cum se observ n diagrama de mai sus CORBA, ca
tehnologie de integrare a aplicaiilor tinde s fie tot mai folosit la acest nivel.
Nivelul Stocare Date, responsabil cu stocarea datelor. Se pot folosi diverse tipuri de
sisteme de la bazele de date relaionale la cele ne-relaionale.
Un server de baze de date este software-ul care administreaz baza de date; un client
de baze de date este o aplicaie care cere servicii de la server, de exemplu transmite
date la, sau cere date de la baza de date. De obicei pentru un server i baza de date
corespunztoare exist concomitent mai muli clieni. Fiecare calculator din reeaua
de calculatoare a bazei de date distribuite se nume te un nod. Un nod al sistemului
unei baze de date distribuite se poate comporta drept server, drept client, sau chiar
drept ambele, n funcie de situaie.
,
, web- .
MySQL-; :
ADO.NET, ASP.NET web- IIS; web-
.
4. Descriei proprietile ACID a tranzaciilor
n cadrul unei baze de date distribuite n nodurile unei reele, accesul la multitudinea
de obiecte de date se realizeaz de obicei prin intermediul tranzaciilor. Se nelege c
tranzaciile trebuie srespecte proprietatile ACID:
Atomicitate: (atomicity), este proprietatea unei tranzacii de a reprezenta o unitate de
execuie indivizibil, adic de a executa totul sau nimic. Dac o tranzacie este
ntrerupt dintr-o cauz oarecare, atunci SGBD va asigura, dup eliminarea cauzei
care a ntrerupt executarea tranzaciei, fie completarea i validarea tranzaciei, fie
abandonarea tranzaciei i anularea tuturor efectelor aciunilor efectuate de tranzacie
pn n momentul ntreruperii.
Consisten: (consistency) unei tranzacii nseamn proprietatea acesteia de a efectua
modificri corecte ale bazei de date. Cu alte cuvinte, o tranzacie transform baza de
date dintr-o stare consistent n alt stare consistent.
Izolare: (isolation), este proprietatea unei tranzacii de a face vizibile modificrile
efectuate numai dup ce a fost validat (committed). Dac n acest timp sunt
executate alte tranzacii concurente, acestea nu vd modificrile pariale efectuate
de tranzacia respectiv pn n momentul validrii tranzaciei.
Durabilitate: (durability, sau permanena - permanency), este proprietatea prin care,
dup validarea unei tranzacii, modificrile efectuate de aceasta n baza de date nu vor
mai fi pierdute datorit unor defectri ulterioare a sistemului. Proprietatea de
durabilitate este asigurat prin metode de
refacere (recovery) ale SGBD.
5. Descriei nivelele de izolare a tranzaciilor
Nivelul de izolare a tranzaciilor (ISOLATION LEVEL) cu valorile posibile: READ
UNCOMMITTED, READ COMMITTED, REPETABLE READS, SERIALIZABLE.
Nivelurile de izolare determin modul n care sistemul de gestiune a bazei de date
introduce diferitele mecanisme de control al concurenei (cel mai frecvent zvoare cu
stri multiple). De exemplu, pe nivelul READ COMMITTED, sunt prevzute zvoare
partajate pentru toate articolele citite, ceea ce mpiedic apariia citirilor improprii, dar
aceste zvoare sunt eliberate nainte de terminarea tranzaciei i de aceea, pot rezulta
citiri nerepetabile i citiri fantom.
Pe orice nivel de izolare, inclusiv pe cel mai slab (READ UNCOMMITTED), se
folosesc mecanisme de control al concurenei tranzaciilor care previn pierderea
actualizrilor. Astfel de anomalii sunt foarte grave, baza de date nu reflect operaiile
care s-au efectuat asupra datelor i nici nu exist vreo posibilitate de refacere a acestor
pierderi. De aceea nu este prevzut nici un nivel de izolare care s permit pierderea
actualizrii datelor.
Pe toate nivelurile de izolare, cu excepia nivelului SERIALIZABLE, pot s apar
diferite anomalii (cele date n tabelul de mai sus), dar aceste anomalii sunt anomalii
de citire, care pot fi gestionate de tranzacii i nu anomalii memorate permanent n
baza de date. Cu ct nivelul de izolare a tranzaciilor este mai sczut, cu att pot s
apar mai multe anomalii de actualizare, dar crete gradul de concuren a execuiei i
scade probabilitatea de apariie a impasului. De aceea, pentru proiectarea unor
tranzacii eficiente se recomand utilizarea unor niveluri de izolare ct mai scazute,
att ct este posibil pentru ca tranzaciile respective s se execute totui corect.
Nivelul de izolare a tranzaciilor se stabilete cu instruciunea: SET TRANSACTION
ISOLATION LEVEL {READ COMMITTED | READ UNCOMMITTED |
REPEATABLE READ | SERIALIZABLE}

6. Replicarea datelor. Protocoale de replicare pe baza copiei primare


Prin replicare se nelege procesul prin care se copie i se sincronizeaz datele ntre
diferite noduri peste care este distribuit baza de date. Principalul scop al replicrii
este de a asigura consistena datelor dintre noduri.
Toate protocoalele bazate pe copia primar presupune existena pentru fiecare element
de date X, elementul asociat de date primare, care este responsabil de coordonarea
operaiunilor de scriere.
Sunt cunoscute urmatoarele protocoale de replicare:
-Arhivarea primara cu inregistrare la distanta
La realizarea acestui protocol este necesar de a garanta c, n orice moment dat, numai
un singur nod are acces la copia primar, fiind astfel n msur s modifice datele.
Exist o versiune asincron, n care confirmarea nregistrrii de execuie este trimis
imediat dup actualizarea copiei primare (fr a atepta actualizarea tuturor copiilor).
Acest lucru mbuntete performana de scriere, dar este nevoie de msuri
suplimentare pentru a se asigura c: o actualizare garantat toate replicile (protec ie
mpotriva eecurilor n propagarea) i citire consistent pentru nodul care a ini iat
actualizarea (nu ar trebui s poat citi valoarea acelui element de date a trebuit s
scrie).
-Arhivarea primara cu inregistrare locala
Protocolul prevede actualizarea asincron a copiilor ramase. De asemenea, este necesar
s se ia msuri suplimentare pentru a asigura actualizarea replicilor rmase. n lipsa
unor msuri suplimentare, protocolul pune n aplicare coerena FIFO. Deoarece
protocolul permite micarea copiei primare este necesare de a gsi nodul care con ine
copia primar i schimbarea proprietrului.
7. Descriei obiectele principale ADO.NET de acces la surse de date
Un data provider reprezint un set clase ADO.NET ce permit accesul la un anumit tip
de baz de date, conectarea la o baz de date, execuia de comenzi SQL i preluarea
rezultatelor comenzilor. Cu alte cuvinte, un provider ofer o interfa ntre sursa de
date i aplicaia client. Tipurile de obiectele ce descriu un provider sunt:
Connection - Acest obiect este folosit pentru a stabili o conexiune la baza sau sursa
de date. Clasa obiectului trebuie s implementeze IDbConnection.
Command - Se utilizeaz pentru a executa comenzi SQL i proceduri stocate. Baza
acestui obiect o reprezint interfaa IDbCommand.
DataReader - Acest obiect ofer acces rapid la datele provenite dintr-o interogare.
Clasa acestuia implementeaz IDataReader.
DataAdapter - Prin intermediul acestui obiect se pot executa dou operaii: popularea
unui DataSet de la o surs de date i aplicarea modificrilor fcute n obiectul
DataSet. Clasa implementeaz interfaa IDataAdapter.

8. Modelul serveru de aplicaii n arhitec client-server pe trei niveluri i


realizarea lui utiliznd tehnologii web
(intrebarea 27A si 3B)
n principiu, o aplicaie pe mai multe nivele las clientul n situaia de thin client,
astfel nct acest nivel, cel mai dependent de platform, este uor de implementat, de
exemplu printr-un web browser, scris pentru o anume platform.
Cum costul i complexitatea aplicaiilor client-server pe 2 niveluri a crescut,
majoritatea aplicaiilor mari au trecut la modelul client-server multinivel. n modelul
multinivel, rolul nivelului baz de date rmne neschimbat. Nivelul client este ns
suplimentat cu unul sau dou niveluri intermediare; de obicei se folosete unul
singur .
n modelul pe 3 niveluri, clientul se ocup de tratarea interaciunilor utilizatorului i
nu conine vreo logic de activitate. Nivelul de mijloc const dintr-unul sau mai multe
servere de aplicaii. Obiectivul serverului de aplicaii este acela de a furniza o
implementare robust, eficient din punct de vedere al costului logicii din spatele
proceselor i regulilor de activitate. Ca i n cazul modelului pe 2 niveluri,
implementarea regulilor de activitate este adesea suplimentat prin folosirea
procedurilor memorate pentru a mbunti performana.
Deoarece staiile de lucru client nu mai implementeaz logica aplicaiei i se ocup
doar de tratarea interaciunilor de utilizator, cererile de resurse pentru nivelul client
sunt mai reduse. De fapt, nivelul client din modelul pe 3 niveluri este adesea numit
client subire. n plus, deoarece un server de aplicaii centralizat trateaz cererile de la
toi clienii, acesta are capacitatea de a partaja resurse, cum ar fi conexiunile la baza
de date, ntre toi clienii. Ca rezultat, serverul de baz de date nu mai trebuie s
menin conexiuni dedicate pentru fiecare utilizator de aplicaie.
Aproape toi furnizorii Enterprise Resource Planning (ERP) i implementeaz
aplicaiile folosind modelul pe 3 niveluri, cum ar fi aplicaiile SAP R/3 i PeopleSoft
V7. Alte exemple sunt principalii furnizori Enterprise Relationship Management, cum
ar fi Siebel i Vantive.
Servere de aplicaii i DB2 Connect
Produsele server DB2 Connect furnizeaz suport de nelegere pentru implementarea
aplicaiilor multinivel. Suportul furnizat de DB2 Connect include o varietate de API-
uri care pot fi folosite pentru a dezvolta logic de aplicaii (ODBC, ADO.NET, DB2
CLI, SQL nglobat, JDBC, SQLJ, Perl, PHP i OLE DB), precum i o infrastructur
complet de comunicaii pentru interacionarea cu servere de baz de date din familia
DB2.
DB2 Connect suport de asemenea implementri n care un nivel (tier) de baz de
date conine mai multe servere de baz de date din familia DB2. Aceasta permite
serverelor de aplicaii s implementeze tranzacii ce actualizeaz date ce se afl pe
mai multe servere de baz de date ntr-o singur tranzacie.
Suportul protocol comitere n dou faze furnizat de DB2 Connect se asigur de
integritatea unor asemenea tranzacii distribuite. De exemplu, o aplicaie poate
actualiza date dintr-o baz de date DB2 pentru OS/390 i z/OS i DB2 Database for
Linux, UNIX, and Windows n aceeai tranzacie. Dac suportul cerere distribuit este
instalat i activat, aplicaia poate citi o actualizare baz de date Oracle o baz de date
din familia DB2 n aceeai tranzacie.
DB2 Connect i configuraiile serverului de aplicaii
Un produs server DB2 Connect este necesar pentru folosirea cu servere de aplicaii
Sunt dou metode de implementare pentru DB2 Connect n mediul server de aplicaii.
Un produs server DB2 Connect poate fi instalat pe oricare din:
Maina server de aplicaii
main server de comunicaii separat
n majoritatea situaiilor, instalarea unei copii de DB2 Connect pe acelai server cu
serverul de aplicaii este soluia preferat. Instalarea DB2 Connect pe serverul
aplicaie v permite s participai la orice schem de preluare la eroare i echilibrarea
ncrcrii de lucru pe care o poate implementa un server de aplicaii. Aceast setare
poate oferi un nivel mai bun de performan, deoarece elimin un salt de reea
suplimentar, necesar cnd se instaleaz DB2 Connect pe un server separat. Mai mult,
administrarea poate fi simplificat, deoarece nu este nevoie de instalarea i
ntreinerea unui server suplimentar.
Instalarea DB2 Connect pe un server separat este o opiune bun n situaiile n care
produsul dumneavoastr de server DB2 Connect nu este disponibil pentru sistemul de
operare sau platforma hardware unde ruleaz serverul de aplicaii.
***
Apariia aplicaiilor client-server a permis proiectanilor de aplicaii s mbunteasc
gradul de folosire i s scad costurile de instruire furniznd aplicaii cu interfee
grafice de utilizator pe platforme cum ar fi Windows. n acelai timp, a permis
flexibilitatea delegrii funciei de gestionare a bazei de date serverelor robuste de baz
de date de pe o varietate de sisteme de operare i platforme hardware.
Modelul client-server, n care aplicaia logic este distribuit la staiile de lucru client
este numit de obicei client-server pe 2 niveluri. n modelul pe 2 niveluri, aplicaia este
implementat pe nivelul client, iar serverul bazei de date implementeaz serverul
(nivelul back-end). DB2 Connect ofer suport complet pentru aplicaii client-server pe
dou niveluri, n care serverele de baz de date sunt DB2 Universal Database (UDB)
for OS/390 and z/OS, DB2 for z/OS, DB2 UDB for iSeries, DB2 for i5/OS sau DB2
for VM and VSE.
Odat cu creterea n mrime a aplicaiilor client-server, devine evident c modelul pe
2 niveluri client-server are limitri semnificative. Distribuirea cantitilor mari de
informaii logice la sute sau chiar mii de staii de lucru client a fcut ca gestionarea
schimbrilor s fie o sarcin complex i costisitoare. Orice schimbare n regulile de
activitate necesit nlocuirea prii client a aplicaiei. Adesea, trebuia ca aceste
modificri ale aplicaiei s fie fcute pe toate staiile de lucru client din ntreprindere
n acelai timp, pentru a se asigura c regulile de activitate sunt aplicate identic.
Alt dezavantaj al modelului client-server pe 2 niveluri care devine evident odat cu
creterea dimensiunii este cantitatea resurselor consumate de asemenea aplicaii.
Implementarea de sute sau mii de clieni grai, aa cum sunt numii adesea clienii pe
2 niveluri, a dus la creterea cerinelor de putere de procesare i de capacitate pentru
fiecare staie de lucru client. n plus, au crescut mult i cerinele privind serverul de
baz de date, deoarece fiecare client necesit o conexiune dedicat la baza de date i
resursele pe care le implic meninerea unei astfel de conexiuni. n timp ce
dependena modelului client-server pe 2 niveluri de distribuirea logicii de activitate
poate fi oarecum redus prin folosirea extensiv a procedurilor memorate, celelalte
dezavantaje nu pot fi rezolvate cu uurin fr a modifica modelul.