Documente Academic
Documente Profesional
Documente Cultură
1.1 Introducere
Consultare:
SELECT VIN, RAFT#, PRODUCATOR
1
FROM VINOTECA
WHERE LANSAT = 2004;
Rezultat (aa cum apare, de exemplu, pe monitorul unui PC):
2
1.2 Sistem de baze de date
ANGAJAT
NUME ADRESA DEPARTAMENT SALARIU
INSCRIERE
NUME CURS
3
sistem de gestiune a bazelor de date (SGBD). Toate cererile de acces ale utilizatorilor la
baza de date sunt tratate de ctre SGBD; facilitile pentru adugarea i tergerea
fiierelor (sau tabelelor), consultarea datelor i actualizarea acestora .a.m.d. sunt puse la
dispoziie de ctre SGBD. Astfel, o funcie general oferit de ctre SGBD const n
ecranarea detaliilor la nivel de hardware fa de utilizatorii bazei de date.
SGBD poate fi considerat cea mai important component software din sistemul
general, dar nu este singura. Celelalte cuprind programele utilitare, instrumentele pentru
dezvoltarea aplicaiilor, programele de asisten n design, editoarele de rapoarte i (cel
mai important), managerul de tranzacii sau monitorul TP.
Utilizatorii
Exist trei clase mari i oarecum suprapuse de utilizatori:
Programatorii de aplicaii, responsabili de scrierea programelor de aplicaii
pentru bazele de date, ntr-un limbaj de programare oarecare (COBOL, C++, Java etc.).
astfel de programe acceseaz baza de date prin lansarea unei cereri adecvate de obicei o
instruciune SQL ctre SGBD. Programele n sine pot fi aplicaii convenionale sau pot
fi aplicaii on-line, al cror scop este de a permite utilizatorului final s acceseze
interactiv baza de date.
Utilizatorii finali, care acceseaz interactiv baza de date. Un utilizator final poate
accesa baza de date prin intermediul uneia dintre aplicaiile on-line sau poate utiliza o
interfa furnizat ca parte component a sistemului. Astfel de interfee oferite de
productori sunt accesate, desigur, i prin intermediul aplicaiilor on-line, dar aceste
aplicaii sunt ncorporate, nu scrise de utilizator.
Administratorul bazei de date (DBA) - Analiza atribuiilor administratorului
bazei de date este amnat pentru paragraful 1.4.
Baza de date este o colecie de date persistente, care sunt folosite de aplicaii ale
unei anumite ntreprinderi.
Spunem c datele din baza de date persist deoarece, dup ce au fost acceptate
prima dat de ctre SGBD pentru introducerea n baza de date, ele pot fi terse din baza
de date numai printr-o cerere explicit adresat SGBD -ului, nu ca un simplu efect
secundar de exemplu, terminarea execuiei unui program.
Entiti i relaii
Termenul de entitate este utilizat n mod curent n domeniul bazelor de date
pentru a desemna orice obiect distinct care va fi reprezentat n baza de date. De exemplu,
o ntreprindere va dori s nregistreze informaii despre proiectele curente, componentele
utilizate n aceste proiecte, furnizorii care au contracte de livrare a componentelor,
depozitele n care sunt plasate componentele, angajaii care lucreaz la aceste proiecte
.a.m.d. Proiectele, componentele, furnizorii, depozitele, angajaii etc. reprezint astfel
entitile de baz despre care ntreprinderea respectiv trebuie s nregistreze informaii.
n afar de entitile de baz, vor exista i relaii, care s coreleze aceste entiti
de baz. De exemplu, exist o relaie (FC sau livrri) ntre furnizori i componente:
fiecare furnizor ofer anumite componente i invers, fiecare component este oferit de
anumii furnizori. Observm c aceast relaie este bidirecional, adic poate fi parcurs
4
n ambele direcii. De exemplu, relaia FC dintre furnizori i componente poate fi utilizat
pentru a rspunde la urmtoarele dou interogri:
fiind dat un furnizor, aflai componentele furnizate de ctre acesta;
fiind dat o component, aflai furnizorii care o ofer.
Relaiile fac parte din date n aceeai msur ca i entitile de baz. Prin urmare,
trebuie reprezentate n baza de date, la fel ca i entitile de baz.
Entitile de baz uneori i relaiile au proprieti (sau atribute),
corespunztoare informaiilor pe care dorim s le nregistrm despre ele. De exemplu,
furnizorii au nume, adrese etc., componentele au nume, culoare , mas etc.
5
a impune diversele decizii luate de DA. De asemenea DBA este responsabil de asigurarea
funcionrii sistemului la performanele adecvate i cu furnizarea unei diversiti de alte
servicii tehnice.
Avantajele ce decurg din noiunea de control centralizat:
Datele pot fi partajate Partajarea nu nseamn doar c aplicaiile pot partaja
datele din baza de date, ci i faptul c este posibil realizarea unor aplicaii noi care s
opereze cu datele respective. Cu alte cuvinte, este posibil s fie satisfcute cerinele
noilor aplicaii privind datele, fr a fi necesar adugarea unor date noi n baza de date.
Redundana poate fi redus n sistemele care nu au baze de date, fiecare
aplicaie are propriile sale fiiere particulare. Adeseori, acest fapt conduce la o redundan
considerabil a datelor stocate, ceea ce duce la o risip a spaiului de stocare. De
exemplu, o aplicaie pentru personal i una pentru nregistrrile din domeniul educaiei ar
putea deine fiecare cte un fiier care s includ informaii departamentale despre
angajai. Totui, aceste dou fiiere pot fi integrate iar redundana poate fi eliminat, cu
condiia ca DA s cunoasc cerinele privind datele pentru ambele aplicaii, adic atta
vreme ct ntreprinderea deine controlul general necesar.
Inconsistenele pot fi evitate (ntr-o anumit msur) - De fapt, acesta este un
corolar al punctului anterior. S presupunem c un anumit fapt despre lumea real s
zicem, faptul c angajatul A3 lucreaz n departamentul D8 este reprezentat prin dou
intrri diferite n baza de date. De asemenea, s presupunem c sistemul SGBD nu
cunoate existena acestui duplicat (adic redundana nu este controlat). Atunci, pot
exista situaii n care cele dou intrri nu vor corespunde, i anume, cnd una dintre ele a
fost actualizat iar cealalt nu. n astfel de situaii se spune c baza de date este
inconsistent. Desigur c dac faptul dat este reprezentat printr-o singur intrare (adic
dac este eliminat redundana) atunci o astfel de inconsisten nu poate aprea. Dac
redundana nu este eliminat dar este controlat (prin semnalarea ei in SGBD), atunci
SGBD-ul poate garanta c baza de date nu este niciodat inconsistent, asigurnd c orice
modificare efectuat n una dintre cele dou intrri este aplicat automat i celeilalte.
Acest proces este cunoscut sub denumirea de propagarea actualizrilor.
Poate fi suport pentru tranzacii
Tranzacia este o unitate de lucru logic (o unitate logic a funcionrii bazei de date)
care, de regul presupune mai multe operaii n baza de date n particular o serie de
operaii de actualizare. Un exemplu standard ar fi transferul unei sume de bani din contul
A n contul B. Este limpede c aici sunt necesare dou actualizri, una pentru a retrage
banii din contul A, iar cealalt pentru a-i depozita n contul B. Dac utilizatorul a stabilit
c cele dou actualizri fac parte din aceeai tranzacie, atunci sistemul poate garanta
efectiv fie c ambele sunt efectuate, fie c nu este efectuat nici una chiar dac, de
exemplu sistemul cade (s zicem, din cauza unei pene de curent) la jumtatea procesului.
Integritatea poate fi meninut
Problema integritii const n a garanta (att ct este posibil) c datele din baza de
date sunt corecte. De exemplu, se poate afia c un angajat a lucrat 400 de ore pe
sptmn, n loc de 40 sau c aparine unui departament care nu exist. Controlul
centralizat al bazei de date poate contribui la evitarea acestui tip de probleme n msura
n care pot fi evitate prin faptul c permite administratorului de date s defineasc, iar
administratorului DBA s implementeze constrngeri de integritate, care vor fi
verificate ori de cte ori este efectuat o operaie de actualizare.
6
Securitatea poate fi ntrit
Administratorul DBA poate garanta c singura modalitate de a accesa baza de date
este prin intermediul canalelor adecvate; poate defini constrngeri de securitate, care
sunt verificate ori de cte ori se ncearc accesarea datelor sensibile. Pot fi definite
constrngeri diferite pentru fiecare tip de acces (consultare, adugare, tergere etc.) la
fiecare informaie din baza de date. Observm totui c, n absena unor astfel de
constrngeri, securitatea datelor poate fi expus, n realitate, unui risc mai mare dect n
cazul unui sistem de fiiere tradiional, adic ntr-un sens natura centralizat a
sistemului de baze de date necesit i existena unui sistem de securitate de calitate.
Cerinele conflictuale pot fi echilibrate
Cunoscnd cerinele generale ale ntreprinderii, administratorul DBA poate structura
sistemul astfel nct s ofere serviciile generale care sunt cele mai bune pentru
ntreprinderea respectiv. De exemplu, poate fi aleas o reprezentare fizic a datelor din
memorie care s permit accesul rapid pentru aplicaiile cele mai importante (posibil, cu
preul unui acces mai lent pentru celelalte).
Standardele pot fi impuse
Deinnd controlul centralizat al bazei de date, DBA poate garanta c, n
reprezentarea datelor, sunt avute n vedere toate standardele aplicabile, printre care
oricare sau toate standardele urmtoare: departamentale, de instalare, generale,
industriale, naionale i internaionale.
Majoritatea avantajelor enumerate mai sus sunt, probabil, destul de evidente.
Totui, mai exist nc un aspect care s-ar putea s nu fie att de evident ce trebuie
adugat n list: realizarea independenei de date.
Exist dou tipuri de independen de date: fizic i logic; pentru moment, ns,
ne vom ocupa doar de cea fizic.
Independena de date poate fi neleas cel mai uor avnd n vedere mai nti
opusul s. Aplicaiile implementate pe sistemele mai vechi tind s fie dependente de date.
Aceasta nseamn c modul n care datele sunt reprezentate fizic n mediile de stocare i
tehnicile de accesare a acestora sunt dictate de ctre cerinele aplicaiei avute n vedere;
mai mult, nseamn c recunoaterea acelei implementri fizice i acelei tehnici de acces
sunt nglobate n codul aplicaiei. Este imposibil s se schimbe reprezentarea fizic
(modul n care datele sunt reprezentate fizic n memorie) i tehnicile de acces (modul n
care datele sunt accesate fizic), fr a afecta - probabil drastic aplicaia.
Administratorul DBA sau, posibil, sistemul SGBD trebuie s beneficieze de
libertatea de a schimba reprezentarea fizic i tehnica de acces, ca rspuns la modificarea
cerinelor, fr a fi necesar s modifice aplicaiile existente. De exemplu, n baza de date
ar putea fi adugate noi tipuri de date, ar putea fi adoptate standarde noi, s-ar putea
schimba prioritile aplicaiilor, ar putea deveni disponibile noi dispozitive de stocare
.a.m.d. Dac aplicaiile sunt dependente de date, atunci aceste modificri vor necesita, de
regul, modificri corespunztoare n codurile programelor, prin aceasta oblignd
programatorul la un efort care, altfel, ar fi consumat pentru crearea unor aplicaii noi.
Realizarea independenei de date constituie un obiectiv major al sistemelor de
baze de date. Independena de date poate fi definit ca imunitatea aplicaiilor fa de
7
schimbarea reprezentrii fizice i tehnicii de acces ceea ce implic, desigur, c
aplicaiile respective nu depind de vreo anumit reprezentare fizic sau tehnic de acces.
Vom analiza mai detaliat cteva exemple de tipuri de modificri pe care ar putea
dori s le fac administratorul DBA i fa de care am dori ca aplicaiile s fie imune.
Vom ncepe prin a defini trei termeni: cmp stocat, nregistrare stocat i fiier stocat.
ntr-un sens larg, cmpul stocat este cea mai mic unitate de date stocate. Baza
de date conine multe apariii (sau instane) ale fiecruia dintre tipurile de cmpuri
stocate. De exemplu, o baz de date care conine informaii despre diverse tipuri de
componente ar putea cuprinde un cmp stocat numit numrul componentei i, astfel, va
exista cte o apariie a acestui cmp stocat pentru fiecare fel de component (urub,
balama etc.).
O nregistrare stocat este o colecie de cmpuri stocate corelate. Din nou,
putem face diferena ntre tip i apariie. Apariia (sau instana) unei nregistrri stocate
este format dintr-un grup de apariii corelate ale cmpului stocat.
8
Un fiier stocat reprezint colecia tuturor apariiilor unui tip de nregistrare
stocat, existente n mod curent.
n sistemele fr baze de date, este normal situaia n care orice nregistrare logic,
aa cum este vzut de o aplicaie oarecare, este identic cu o nregistrare stocat
corespunztoare. Dar nu aceasta este neaprat situaia n cazul unui sistem de baze de
date, deoarece s-ar putea s fie necesar ca DBA s poat efectua modificri n
reprezentarea stocat a datelor adic n cmpurile, nregistrrile i fiierele stocate n
timp ce datele, aa cum sunt vzute de aplicaie, nu se modific. De exemplu, cmpul
SALARIU din fiierul ANGAJAT poate fi stocat n reprezentare binar, pentru a
economisi spaiul de stocare, n timp ce o aplicaie scris n limbajul COBOL ar putea
sa-l vad ca un ir de caractere. Ulterior, dintr-un motiv oarecare, DBA ar putea decide s
schimbe reprezentarea nregistrrilor din cmpul respectiv de exemplu, din binar n
zecimal permind n continuare ca aplicaia n limbajul COBOL s o vad sub forma
unor caractere.
VIN AN STICLE
a. Tabela dat: VINOTECA
Zinfandel 1999 2
Fum Blanc 2000 2
Pinot Noir 1997 3
Zinfandel 1998 9
9
SELECT VIN, AN, STICLE
FROM VINOTECA
WHERE AN> 1998;
ntr-un sistem relaional, utilizatorul vede datele sub forma unor tabele, i nimic
altceva dect tabele. Spre deosebire de acesta, ntr-un sistem nerelaional utilizatorul vede
alte structuri de date. La rndul lor, aceste structuri necesit ali operatori care s le
manipuleze. De exemplu, ntr-un sistem ierarhic, datele i sunt prezentate utilizatorului
sub forma unor arbori iar operatorii pui la dispoziie pentru manipularea acestor arbori
includ operatorii pentru pointerii de traversare (adic pointerii care implementeaz cile
ierarhice n susul i n josul arborilor). Spre deosebire de acestea, o important
caracteristic distinctiv a sistemelor relaionale este faptul c nu presupun nici un fel de
pointeri.
Sistemele de baze de date pot fi clasificate convenabil dup structurile de date i
operatorii pe care i prezint utilizatorilor. Conform acestei scheme, sistemele cele mai
vechi (pre - relaionale) pot fi clasificate n trei categorii mari, i anume: sisteme de liste
inversate, ierarhice i de tip reea. Nu vom analiza detaliat aceste categorii deoarece cel
puin d.p.d.v. tehnologic ele pot fi considerate nvechite.
Primele produse relaionale au nceput s apar la sfritul anilor 1970 i
nceputul anilor 1980. n prezent, marea majoritate a sistemelor de baze de date sunt
relaionale i pot fi rulate pe aproape orice tip de platform hardware i software
existent. n ordine alfabetic, exemplele cele mai importante sunt: DB2 (diverse
versiuni) de la IBM Corp., Ingress II, de la Computer Associates International Inc.,
Informix Dynamic Server, realizat de Informix Software Inc., Microsoft SQL Server, de
la Microsoft Corp., Oracle 9i realizat de Oracle Corp., i SybaseAdaptive Server, de la
Sybase Inc.
Mai recent au devenit disponibile anumite produse bazate pe obiecte sau obiect
relaionale; sistemele bazate pe obiecte au aprut la sfritul anilor 1980 i nceputul
anilor 1990, iar cele obiect relaionale la sfritul anilor 1990.
10