You are on page 1of 71

Cristian Georgescu

Mihaela Georgescu

BAZE DE DATE

1
CUPRINS

1. Date, informaţii, cunoştinţe.................................................3


1.1. Locul şi rolul datelor în sistemul informatic .................................. 3
1.2. Locul şi importanţa informaţiei în sistemul informaţional ............ 4
1.3. Evoluţia organizării datelor în sistemul informatic........................ 6
1.4. Probleme rezolvate şi propuse ..................................................... 10
2. Organizarea datelor în fişiere ...........................................11
2.1. Noţiunea de fişier ......................................................................... 11
3. Organizarea datelor în baze de date ................................13
3.1. Conceptul de bază de date............................................................ 13
3.2. Sistemul de gestiune a bazelor de date......................................... 24
3.3. Baze de date relaţionale ............................................................... 32
3.3.1. Conceptele folosite pentru bazele de date relaţionale .......... 32
3.3.2. Operatorii relaţionali ............................................................ 43
3.3.3. Normalizarea bazelor de date relaţionale............................. 53
3.3.3.1. Formele normale ale unei baze de date relaţionale ...... 55
3.4. Modelele pentru proiectarea unei baze de date ............................ 56
3.5. Caracteristici ale sistemelor cu baze de date................................ 58
3.6. Probleme rezolvate şi propuse ..................................................... 61
4. Bibliografie..........................................................................70

2
1. Date, informaţii, cunoştinţe

1.1. Locul şi rolul datelor în sistemul informatic

Preluarea datelor în sistemul informatic poate începe din momentul şi de la


locul generării lor şi este condiţionată direct de cerinţele de informare a sistemului
deservit de sistemul informatic, de necesităţile de valorificare a informaţiei preluate
din mediul extern sistemului informatic. Datele preluate în sistemul informatic din
mediul extern trebuie să fie: reprezentative, reale, complete şi actuale. În utilizarea
unui sistem informatic se aplică regula GIGO (Garbage In Garbage Out), care este
echivalentă cu enunţul: pentru a furniza informaţii utile, sistemul informatic trebuie
alimentat cu date de bună calitate.
Sistemul informatic se defineşte în raport cu sistemul informaţional al
organizaţiei care cuprinde totalitatea informaţiilor vehiculate în întreprindere, la un
moment dat, alături de suporţii de informaţie corespunzători, circuitul
informaţional şi prelucrările efectuate asupra informaţiilor. Atunci când gestionarea
informaţiilor în sistemul informaţional se face utilizând tehnologia informatică,
sistemul se numeşte sistem informatic.
Într-un sistem informatic datele au un dublu rol. În primul rând ele sunt obiect
al prelucrării (materie primă). Prelucrarea datelor într-un sistem informatic este un
proces creator de valoare, care cuprinde:
- preluarea datelor din mediul exterior şi memorarea lor în memoria
externă a sistemului de calcul;
- manevrarea şi reorganizarea datelor, prin ordonare, grupare,
interclasare, selecţie (filtrare), modificarea suportului de memorare,
etc.
- procesarea datelor, ce poate avea ca rezultat generarea de noi date, cu
noi semnificaţii informaţionale;
- analiza şi evaluarea conţinutului informaţional al datelor;
- prezentarea datelor într-o formă care să satisfacă necesităţile
informaţionale ale utilizatorului.
Din acest punct de vedere, datele se caracterizează prin volum şi prin dinamică;
atât volumul datelor cât şi volumul modificărilor asupra lor sunt factori
determinanţi pentru alegerea modului de organizare a datelor.
În al doilea rând, datele sunt principala resursă a sistemului informatic, alături
de celelalte resurse: personalul specializat, echipamentele electronice de calcul şi
instrumentele logice (programele utilizate, metodele de analiză şi proiectare,
metodele şi tehnicile de organizare şi prelucrare a datelor). Altfel spus, principalele
resurse sunt reprezentate de: hardware, software şi dataware.

3
Valorificarea resursei de date se realizează prin prelucrările efectuate cu
ajutorul programelor şi cu sprijinul factorului uman şi al componentei hardware.
Este recunoscut că celelalte trei resurse ale sistemului informatic nu au valoare
efectivă, în lipsa resursei de date.
Prelucrarea electronică a datelor nu trebuie să constituie un scop în sine.
Înlocuirea sau, uneori, dublarea activităţii de înregistrare manuală a datelor prin
înregistrarea lor folosind tehnologia informatică este inutilă dacă, în urma
prelucrării electronice a datelor, nu se obţin efecte suplimentare, cum ar fi:
- înlăturarea unor operaţii manuale de prelucrare;
- realizarea de prelucrări complexe în timp mai scurt sau pentru volume
de date atât de mari încât nu pot fi prelucrate manual;
- creşterea gradului de accesibilitate şi de acurateţe;
- reducerea volumului suporţilor de arhivare a datelor şi creşterea
siguranţei în stocarea şi prelucrarea lor, etc.
Introducerea prelucrării automate a datelor adaugă timpi noi necesari
operaţiilor specifice de prelucrare: proiectarea şi întreţinerea sistemului informatic,
preluarea datelor, validarea şi corectarea erorilor apărute la preluare, prelucrări
suplimentare pentru întreţinerea şi asigurarea datelor.
Un sistem informatic este eficient atunci când asigură, în aceste condiţii:
- diminuarea timpilor necesari operării asupra datelor;
- diminuarea semnificativă a operaţiilor manuale, slab productive;
- un nivel de prelucrare a datelor performat;
- înlăturarea barierelor generate de distanţele fizice, în cadrul sistemului;
- reducerea costurilor implicate de gestionarea datelor;
- o mai bună valorificare a datelor, în sprijinul activităţii întregii
organizaţii.

1.2. Locul şi importanţa informaţiei în sistemul informaţional

Nu orice prelucrare de date generează informaţii. O trăsătură a informaţiei este


caracterul ei relativ: ceea ce poate constitui o informaţie pentru o persoană, poate
să nu aibă nici o semnificaţie pentru alta. Mai mult, pornind de la acelaşi set de
date, persoane diferite, prin prelucrări diferite, pot desprinde informaţii diferite.
Se consideră că sistemul informaţional al unei organizaţii cuprinde ansamblul
mijloacelor şi procedurilor de identificare, preluare, memorare, prelucrare şi
difuzare a informaţiei şi are ca obiectiv furnizarea de informaţii membrilor
organizaţiei, într-o formă direct utilizabilă şi în timp util, asigurând suportul
informaţional al activităţii acestora1.

1
Georgescu C. - "Analiza şi proiectarea sistemelor informatice", Editura Radical, Galaţi,
1999

4
Obiectivul general al dezvoltării sistemului informaţional şi al perfecţionării
acestuia cu ajutorul unui sistem informatic este ridicarea eficienţei activităţii de
bază. Realizarea unui sistem informatic poate determina reorganizarea sistemului
informaţional care-l conţine, putând avea ca efecte:
- integrarea firească, naturală, a sistemului informatic în sistemul
informaţional;
- perfecţionarea sistemului informaţional, prin ameliorarea naturii şi
conţinutului informaţiei vehiculate în sistemul informaţional,
îmbunătăţirea fluxurilor de informaţii, perfecţionarea prelucrărilor
efectuate asupra informaţiei, prin modificarea naturii, locului sau a
periodicităţii acestora, înlăturarea prelucrărilor repetate sau paralele
asupra informaţiilor, etc.
Efectele perfecţionării sistemului informaţional pot fi:
- reducerea caracterului birocratic al sistemul informaţional;
- o mai bună alimentare cu informaţii la toate nivelurile organizatorice,
inclusiv la nivelul conducerii;
- optimizarea prelucrărilor prin înlăturarea redundanţelor operaţionale
sau informaţionale;
- evitarea situaţiilor de alterare, pierdere sau chiar distrugere a
informaţiei, etc.
Obiectivul specific este asigurarea la timp a informaţiilor de calitate necesare
pentru activitatea de bază.
Dacă datele sunt informaţii codificate pentru a fi memorate sau prelucrate într-
un sistem de calcul, informaţia este rezultatul prelucrării datelor în sistemul de
calcul şi exprimării lor într-o formă inteligibilă pentru receptorul uman. Se poate
spune că sistemul informaţional lucrează cu informaţii în timp ce sistemul
informatic lucrează cu date.
Mai general, informaţia poate fi definită ca ansamblul de date care constituie
suportul unui comportament, este comprehensibilă şi este utilizabilă pentru
îndeplinirea unei activităţi, inclusiv un proces decizional1.
Informaţiile sunt destinate nivelurilor şi punctelor de informare sau de decizie,
pentru sistemul dat şi, în cazul sistemelor ierarhizate, pentru nivelurile ierarhic
superioare (ca suport pentru decizie) şi pentru cele inferioare (în cazul
descentralizării procesului informaţional-decizional). Pentru nivelurile superioare
ale ierarhiei, informaţia trebuie supusă unui proces de rafinare, prin concentrare şi
sistematizare, pentru a fi furnizată într-o formă cât mai concisă şi cât mai
expresivă. Circulaţia informaţiei către nivelurile inferioare ale ierarhiei este
practicată în organizaţiile care au în vedere accesul liber la informaţie pentru
membrii lor. În acest caz trebuie folosite metode cât mai eficiente de diseminare a
informaţiei, pentru a se evita alterarea informaţiei transmise, prin învechire,
trunchiere, modificare, etc. O bună soluţie este utilizarea reţelei de calculatoare, ca
suport fizic al sistemului informatic, şi folosirea unui intranet de întreprindere, ca
mediu de comunicare şi gestionare a informaţiei în timp real în cadrul organizaţiei.
1
Fotache M. - "Baze de date relaţionale", Editura Junimea, Iaşi, 1997

5
Informaţia furnizată de un sistem informatic este utilizată în cadrul activităţii
unei organizaţii în scopul cunoaşterii, ca suport pentru decizie. Din acest punct de
vedere, informaţia poate fi definită ca volumul de date necesar pentru a reduce
incertitudinea, în vederea luării unei decizii.
În societatea contemporană, informaţia a devenit una dintre principalele resurse
ale organizaţiilor economice, sociale, culturale, politice, etc. De exemplu în
economie, conform afirmaţiei lui Peter Drucker, "resursa economică de bază nu
mai este capitalul şi nici resursele naturale, nici munca. Ea este şi va fi
cunoaşterea.[…] Valoarea este creată acum de productivitate şi inovaţie, amândouă
fiind aplicări ale cunoaşterii în cadrul muncii."1
Dar cunoştinţele nu sunt altceva decât informaţii dobândite prin experienţă sau
însuşite prin educaţie. La rândul lor, informaţiile sunt reflectări ale lumii reale în
conştiinţa colectivă, în urma unui proces de acumulare şi prelucrare a unor date
elementare.
Alvin Toffler demonstrează importanţa cunoaşterii în cadrul proceselor
economice, concluzionând: "întrucât reduce nevoia de materii prime, muncă, timp,
spaţiu şi capital, cunoaşterea devine resursa centrală a economiei avansate."2
Cunoaşterea se bazează pe informaţii. Corelat cu dezvoltarea explozivă a
tehnologiei informatice din ultimele decenii, este de neconceput, astăzi, gestionarea
informaţiilor fără a utiliza metodele şi instrumentele oferite de aceasta. Pentru a fi
utilizate eficient, volumele mari de informaţii vehiculate în economie, societate,
etc. trebuie gestionate corespunzător, păstrate atâta timp cât sunt necesare,
prelucrate şi furnizate la locul unde sunt necesare şi în momentul când sunt
solicitate.

1.3. Evoluţia organizării datelor în sistemul informatic

Organizarea datelor în cadrul unui sistem informatic se referă la modul de


agregare a datelor în structuri specifice şi la legăturile logice care se definesc în
interiorul şi între aceste structuri, în funcţie de necesităţile de prelucrare şi de
stocare, în scopul utilizării eficiente a informaţiei care alimentează sistemul
informatic.
Concret, organizarea datelor defineşte modul de structurare a datelor în
colecţii, precum şi stabilirea legăturilor între elementele unei colecţii şi între
colecţii3. În general, metodelor de organizare a datelor le sunt asociate tehnici
specifice de prelucrare a acestor date, care se descriu odată cu metoda de
organizare.

1
Peter Drucker - "Societatea postcapitalistă" , Editura Image, 1999
2
Alvin Toffler - "Powershift - puterea în mişcare", Editura Antet, 1995
3
Velicanu M.,Bodea C.,Lungu I.,Ioniţă C.,Bădescu G. - "Sisteme de gestiune a bazelor de
date", Editura Petrion, Bucureşti, 2000

6
Un model de date tratează datele în ansamblu, având în vedere modul de
organizare a lor şi modul în care vor fi utilizate în cadrul sistemului informatic.
Obiectivul unui model de date este să reflecte cât mai bine lumea reală, într-o
manieră adecvată reprezentării şi prelucrării datelor folosind tehnologia
informatică, astfel încât să permită sistemului informatic să furnizeze informaţiile
dorite. În consecinţă, pentru a proiecta un bun sistem informatic trebuie să se
pornească de la un bun model de date iar modelele de date nu au valoare în lipsa
unor modele de prelucrări corecte.
Organizarea datelor poate fi abordată sub două aspecte: organizarea fizică a
datelor şi organizarea logică a datelor.
Organizarea fizică a datelor defineşte modul de utilizare a memoriei externe
pentru memorarea datelor şi modalitatea de realizare a accesului la date, în
memoria externă; organizarea fizică a datelor se referă la modul de organizare
fizică a fişierelor în care se memorează datele.
Organizarea logică a datelor defineşte modul de agregare a datelor, în funcţie
de conţinutul lor informaţional şi de legăturile logice dintre ele, precum şi în
funcţie de necesităţile de prelucrare a lor. Organizarea logică a datelor vizează
criteriile de grupare a datelor şi legăturile logice dintre date.
Modul de organizare a datelor în cadrul sistemelor informatice diferă, în
funcţie de complexitatea acestor sisteme şi este influenţat de diferiţi factori:
- volumul şi dinamica datelor gestionate în sistemul informatic;
- tipul de date gestionate de sistem: date statice (numerice, de tip text,
elemente grafice), date multimedia (imagini, imagini animate,
elemente sonore), date interconectate (hipertext sau hipermedia), etc.
- complexitatea prelucrărilor efectuate asupra datelor în sistem;
- gradul de împrăştiere teritorială a componentelor sistemului
informatic: sursele de date, resursele de prelucrare, utilizatorii
informaţiilor furnizate de sistem;
- timpul de răspuns al sistemului informatic, siguranţa în funcţionare,
gradul de accesibilitate al sistemului, ca indicatori ai calităţii şi
eficienţei sale, etc.
În timp, s-a înregistrat o evoluţie a metodelor de organizare şi a tehnicilor de
prelucrare a datelor datorată dezvoltării şi diversificării mijloacelor tehnice ce pot
fi utilizate într-un sistem informatic, cum ar fi dispozitivele de stocare a datelor
(prin creşterea capacităţii de stocare şi a vitezei de transfer, ca şi prin diversificarea
dispozitivelor de stocare direct adresabile) şi echipamentele de preluare şi de
generare a datelor în diverse moduri de reprezentare (date multimedia). Un
exemplu în acest sens îl constituie creşterea capacităţii şi vitezei de prelucrare a
sistemului de calcul şi creşterea capacităţii memoriei interne (operative) şi a
memoriei externe (de arhivare) a sistemului de calcul.
Alte influenţe au apărut prin dezvoltarea componentelor software de bază
(dezvoltarea componentei SGF a sistemelor de operare, sisteme de operare în timp
real, sisteme de operare pentru reţele de calculatoare, etc.), dezvoltarea
componentelor software dedicate gestionării automate a datelor (sistemele de
gestiune a bazelor de date, aplicaţiile pentru gestionarea foilor de calcul

7
electronice, etc.) şi dezvoltarea şi perfecţionarea metodelor de realizare a unui
sistem informatic prin utilizarea unor instrumente performante de proiectare (medii
integrate de proiectare şi dezvoltare, utilizarea unor noi metode de proiectare:
proiectarea obiectuală, proiectarea vizuală, proiectarea distribuită).
Evoluţia modurilor de organizare a datelor în sistemele informatice poate fi
analizată în funcţie de principalii factori care au determinat-o.
1. Dezvoltarea dispozitivelor de memorie externă.
Prin trecerea de la dispozitive care nu permit adresarea directă la dispozitive direct
adresabile a fost posibilă diversificarea modurilor de organizare fizică a fişierelor,
prin trecerea de la organizarea secvenţială la organizarea aleatorie, cu diferitele ei
variante.
2. Evoluţia componentelor software care realizează gestionarea datelor în
fişiere.
Într-o primă etapă, organizarea datelor în fişiere era gestionată, în mare
măsură, în cadrul programului de aplicaţie; pentru definirea şi utilizarea unui fişier,
era necesară atât descrierea structurii logice de organizare a datelor în fişier cât şi a
structurii fizice de memorare a datelor pe suport; în aceste condiţii, modificarea
structurii datelor sau a suporţilor de memorare impunea modificări în program şi
recompilarea acestuia.
Prin dezvoltarea componentei SGF a sistemului de operare, gestionarea la
nivelul fizic, al suportului de memorie externă, a datelor din fişier se realizează, în
mare măsură, de către aceasta, în mod transparent pentru utilizator. Comenzile care
se adresează SGF-ului pentru realizarea operaţiilor cu fişierele sunt generate în
cadrul programului executabil de către compilatorul limbajului de programare
utilizat pentru definirea aplicaţiei utilizator. În aceste condiţii, în programul de
aplicaţie nu mai este necesară descrierea modului de organizare fizică a datelor pe
suportul de memorie externă, ci este definită numai structura logică a datelor din
fişier.
Prin scoaterea descrierii nivelului fizic de organizare a fişierelor în afara
codului aplicaţiilor se realizează o independenţă a programelor faţă de
caracteristicile fizice ale organizării datelor în fişiere (unitatea de memorie externă
folosită pentru memorare, modul de realizare a alocării suportului, modul de
realizare efectivă a accesului la date, etc.); această independenţă este numită
independenţa fizică a datelor şi permite ca modificări ale configuraţiei hardware de
memorare a datelor să nu influenţeze asupra programelor de aplicaţie ce lucrează
cu datele respective.
3. Evoluţia cerinţelor de utilizare a aplicaţiilor informatice.
Dacă aplicaţiile informatice nu fac decât să transpună procedurile manuale de
prelucrare a datelor în proceduri automate, executate cu ajutorul tehnicii de calcul,
modul de organizare a datelor copie, practic, metodele de organizare a informaţiei
caracteristice sistemelor de prelucrare manuală şi mecanografică a datelor,
adaptându-le, fără prea multe modificări conceptuale, la noul specific al prelucrării
datelor cu ajutorul calculatorului electronic. Principalul element de organizare a
datelor folosit, în acest caz, este fişierul. Modelul corespunzător prelucrării
manuale a informaţiei este cel al fişelor cu înregistrări de aceeaşi natură, grupate în

8
dosare sau dulapuri cu documente de acelaşi tip sau al registrului de evidenţă cu
acelaşi tip de informaţii, ordonate după un anumit criteriu.
Odată cu creşterea complexităţii aplicaţiilor şi a volumelor de date prelucrate,
apare ca o necesitate abordarea unitară a datelor de către mai multe aplicaţii din
cadrul unui sistem informatic. Chiar dacă aplicaţiile sunt proiectate independent,
este preferabil ca mai mulţi utilizatori, prin intermediul unor aplicaţii diferite, să
poată folosi în comun aceeaşi colecţie de date. Pentru aceasta, datele trebuie
organizate astfel încât să poată satisface cerinţele de prelucrare ale fiecărui
utilizator, respectiv ale fiecărei aplicaţii, fără să apară o redundanţă a informaţiei.
Acest deziderat se poate realiza prin înlocuirea grupurilor de fişiere destinate unor
aplicaţii particulare cu un sistem complex de elemente de date a căror organizare
este determinată de legăturile logice intrinseci existente între acestea şi mai puţin
de modul de prelucrare din cadrul fiecărei aplicaţii1.
Cerinţa de control şi minimizare a redundanţei în reprezentarea datelor, este
numită cerinţă de integrare a fişierelor de date care se poate rezolva prin definirea
unor legături între înregistrările fişierelor ale căror date sunt corelate logic între ele.
Dacă aceste legături dintre date sunt definite în interiorul fişierelor, rezultă fişiere
cu înregistrări înlănţuite, numite fişiere înlănţuite sau integrate. Fişierele integrate
permit realizarea mai multor fişiere logice pe baza aceloraşi date fizice2.
Acest mod de organizare a datelor permite obţinerea unor imagini diferite ale
datelor memorate în fişierele integrate şi reducerea riscului privind inconsistenţa
datelor, ca urmare a reducerii redundanţei lor. Se poate realiza astfel o primă formă
de abordare unitară a datelor în cadrul unui sistem informatic.
Pentru conceperea unui model unitar al datelor, pentru întregul sistem
informatic, model care să permită satisfacerea nevoilor informaţionale ale tuturor
aplicaţiilor din sistem, este însă necesară abordarea globală a proiectării sistemului
informatic, începând cu proiectarea structurilor de date şi construind, în jurul
acestor structuri, aplicaţiile particulare. Pentru a fi posibilă o astfel de abordare
trebuie îndeplinite o serie de cerinţe.
Organizarea logică a datelor trebuie definită pornind de la conţinutul logic al
datelor şi de la raporturile obiective care se stabilesc între aceste date, în cadrul
sistemului informaţional, şi nu pornind de la necesităţile de prelucrare a datelor,
care pot fi limitate la un anumit obiectiv, un anumit orizont de timp, sau un anumit
grup de utilizatori.
În realizarea sistermelor informatice nu mai este posibilă proiectarea empirică
a aplicaţiilor, ci este necesară utilizarea unor metode de proiectare, care să
furnizeze instrumente de lucru care să permită abordarea globală a proiectării
sistemului informatic. În acest scop au fost dezvoltate metode de proiectare a
sistemelor informatice care folosesc ca instrument de lucru modele pentru
descrierea realităţii de la care se porneşte şi a rezultatelor dorite (modele ale

1
Dollinger R. - "Baze de date şi gestiunea tranzacţiilor", Editura Albastră, Cluj-Napoca,
1998
2
Dollinger R. – op. cit.

9
fluxurilor informaţionale şi ale prelucrărilor din cadrul sistemului informaţional sau
modele ale organizării datelor în cadrul sistemului informatic).
Pentru obţinerea unor performanţe reale este necesară realizarea unei
dependenţe minime a aplicaţiilor faţă de modul de organizare logică a datelor,
astfel încât o modificare în structura datelor să nu necesite modificarea tuturor
aplicaţiilor construite în jurul acestor structuri de date. În acest scop a fost scoasă în
afara programelor de aplicaţie şi descrierea organizării logice a datelor din fişiere,
aceasta fiind memorată solidar cu datele la care se referă, într-o structură de date
numită bază de date.

1.4. Probleme rezolvate şi propuse

A. Indicaţi varianta corectă de răspuns, pentru întrebările următoare:

1. Reprezintă, în acelaşi timp, obiect al prelucrărilor şi principala resursă într-un


sistem informatic:
a) informaţiile
b) datele
c) programele.
2. Totalitatea informaţiilor vehiculate în întreprindere, alături de suporţii de
informaţie corespunzători, de circuitul informaţional şi de prelucrările efectuate
asupra informaţiilor desemnează:
a) sistemul de calcul
b) sistemul informatic
c) sistemul informaţional.
3. Într-un sistem informatic:
a) orice prelucrare de date generează informaţii;
b) datele reprezintă singura resursă a acestuia;
c) este suficient ca datele preluate din mediul extern să fie complete şi reale;
d) datele reprezintă principala resursă a acestuia.
4. Regula GIGO, aplicabilă în utilizarea unui sistem informatic, este echivalentă
cu enunţul:
a) pentru a furniza date utile, sistemul informatic trebuie alimentat cu
informaţii de bună calitate;
b) dacă datele de intrare pentru un proces sunt incorecte, informaţiile furnizate
vor fi şi ele incorecte;
c) pentru a proiecta un bun model de date, trebuie să se pornească de la un bun
sistem informatic;
d) pentru a furniza informaţii utile, datele din sistem trebuie tratate în
ansamblu.

Răspunsuri: 1.b, 2.c, 3.d, 4.a, 4.b

10
2. Organizarea datelor în fişiere

2.1. Noţiunea de fişier

Principalul instrument de stocare şi manevrare a datelor în memoria externă


este fişierul. Fişierul reprezintă o colecţie de date, unitară din punct de vedere
structural, logic şi funcţional, organizată în scopul memorării datelor în memoria
externă şi pentru manevrarea acestor date între diferiţi suporţi de memorie externă.
Fişierul este unitatea de bază pentru organizarea datelor pe un suport de
memorie externă, din punctul de vedere al sistemului de operare. Din punctul de
vedere al utilizatorului, fişierul este o grupare de informaţii omogene ca
semnificaţie şi ca cerinţe de prelucrare. Pornind de la această definiţie, se poate
face analogia dintre înregistrările unui fişier şi fişele cu înregistrări sau rândurile
din registrul de evidenţă, fişierului găsindu-i corespondent dosarul, dulapul cu fişe
sau registrul din sistemul de evidenţă manuală a informaţiei.
Un fişier este alcătuit din înregistrări, care reprezintă unitatea repetabilă din
cadrul fişierului, în primul rând din punctul de vedere al prelucrării datelor. În
funcţie de nivelul la care sunt gestionate înregistrările, acestea sunt de două tipuri:
înregistrări fizice, numite şi blocuri de date, gestionate de SGF şi înregistrări
logice, numite şi articole sau, simplu, înregistrări, gestionate de utilizator.
Înregistrarea fizică reprezintă unitatea de schimb între suportul de memorie
externă pe care este memorat fişierul şi memoria internă. În timp ce stocarea
datelor se realizează în memoria externă, prelucrarea lor are loc în memoria internă
a sistemului de calcul. Din acest motiv, în timpul prelucrării datelor dintr-un fişier,
au loc permanente schimburi de date între memoria internă şi memoria externă, în
ambele sensuri. Aceste schimburi de date sunt gestionate de componenta
specializată a sistemului de operare numită Sistem de Gestiune a Fişierelor (SGF).
Dimensiunea înregistrării fizice depinde de tipul de memorie externă utilizat, de
caracteristicile sistemului şi este controlată tot de SGF.
Înregistrarea logică sau articolul reprezintă nivelul de organizare a datelor în
fişier, din punctul de vedere al utilizatorului. Criteriul de grupare a datelor în
înregistrări logice, în cadrul fişierului, este determinat de conţinutul logic al datelor
şi de formatul lor de memorare. Din această cauză, din punctul de vedere al
utilizatorului, prelucrările efectuate asupra fişierului au caracter repetitiv la nivelul
înregistrărilor logice. Înregistrările logice ale unui fişier pot fi considerate unităţile
elementare de prelucrare ale unui fişier, din punctul de vedere al utilizatorului.
Articolele conţin, la rândul lor, date elementare, numite câmpuri ale articolului.
Câmpurile sunt definite prin: tipul datei, domeniul valorilor posibile, lungimea
reprezentării în memorie, poziţia în cadrul articolului. Toate aceste informaţii sunt
identice la nivelul tuturor articolelor din fişier şi definesc formatul articolului din
fişier. În funcţie de lungimea articolelor, fişierele se clasifică în :

11
- fişiere cu format fix: acele fişiere care au toate articolele de aceeaşi
lungime;
- fişiere cu format variabil, care au articole de lungimi diferite; pentru a
putea fi prelucrate articolele acestor fişiere de către SGF, trebuie
cunoscută lungimea fiecărui articol; aceste informaţii se memorează în
antetul articolului;
- fişiere cu format nedeterminat, pentru care lungimea articolelor nu este
precizată, articolele fiind separate între ele prin caractere speciale,
numite delimitatori de articol.

12
3. Organizarea datelor în baze de date

3.1. Conceptul de bază de date

O bază de date este un ansamblu unitar de date, structurate, corelate logic între
ele şi memorate împreună cu descrierea formală a structurii lor şi a legăturilor
logice dintre ele, a cărui gestionare este realizată de un sistem software unitar şi
specializat, numit sistem de gestiune a bazei de date.
Termenul de bază de date a apărut în anii ’60, dar momentul consacrării
termenului se consideră a fi în 1969, când se publică în raportul CODASYL
(Conference On Data System Language) prezentarea conceptului de bază de date.
O bază de date poate fi privită ca o colecţie de date memorate în fişiere
intercorelate şi definite logic sub formă de tabele, alcătuite din linii ce corespund
înregistrărilor din fişiere şi din coloane ce corespund câmpurilor din înregistrări.
Într-o bază de date, datele sunt structurate, neredundante, corelate logic,
consistente, independente de orice program de aplicaţie, şi pot fi direct accesibile
după mai multe criterii.
Într-o bază de date se memorează atât datele propriu-zise, cât şi informaţii ce
conţin descrierea modului de memorare a acestor date: formatele de descriere a
datelor, modul de organizare a lor, legăturile dintre date, etc. Datele despre datele
unei baze de date se numesc metadate iar descrierea formală referitoare la structura
datelor şi la legăturile dintre date se memorează în dicţionarul de date organizat tot
sub formă de fişier. Pe baza informaţiilor memorate în dicţionarul de date se
realizează independenţa logică a datelor, care înseamnă limitarea influenţei pe care
modificarea organizării logice a datelor o poate avea asupra aplicaţiilor care
utilizează aceste date.
Importanţa dicţionarului de date este dată de conţinutul şi rolul său în
exploatarea datelor din baza de date. El cuprinde informaţii despre structura
datelor, restricţiile la care se supun datele şi raporturile logice dintre date. Lucrul
cu fişierele de date se derulează exclusiv prin consultarea acestui dicţionar de date.
O altă cerinţă la care răspunde o bază de date se referă la necesitatea de a putea
gestiona datele astfel organizate independent de orice program de aplicaţie şi în
mod unitar pentru întreaga bază de date. În acest scop s-au dezvoltat aplicaţii
specializate în gestionarea bazelor de date numite Sisteme de Gestiune a Bazelor de
Date (SGBD). Un SGBD este o componentă software complexă care, pe lângă
serviciile de definire, generare şi exploatare a unei baze de date, prin consultare sau
prin prelucrări asupra datelor, asigură gestionarea automată a accesului unitar la
datele din baza de date, precum şi protecţia acestora faţă de accese nepermise sau
faţă de alterări accidentale.

13
Student-Nume
Student 4 26 Marca Struct. Student Ion A.
Ionescu P.
Materie 3 24 Cod Marca N 3
Matei V.
Nume C 20 Student
Oprea N.
Student - 2 67 Cod -s Varsta N 2
Popescu C. 205 Ionescu P. 20 B
Marca Sex C 1
Vasilache I. 170 Vasilache I. 22 B
Student - 2 24 Nume -s Struct. Materie Student-Marca
223 Popescu C. 19 F
Nume Cod C 2 103
291 Matei V. 21 F
Materie - 2 6 Cod -m Den C 20 111
Cod Ore N 2 170 111 Oprea N. 22 B

205 103 Ion A. 20 F


Materie - 2 6 Cod -o Struct. Student-Marca
Ore 223
Cod -s N 3 291
Struct. 3 23 Cheie -s Adr -s N 15
Student Materie-Cod
Struct. 3 23 Cheie -m Struct. Student-Nume 17
Materie Nume -s C 20 14
Struct. 3 23 Cheie -sm Adr -n N 15 10 Materie
Student - 07
07 Informatica 56
Materie Struct. Materie-Cod 03
Struct. 3 23 Cheie -sn 17 Economie 42
Cod -m C 2 Materie-Ore
Student - 14 Matematica 56
Nume Adr -c N 15 28
03 Contabilitate 70
Struct. 3 23 Cheie -mc 42
10 Filosofie 28
Materie - Struct. Materie-Ore 56
Cod 56
Cod -o N 2
Struct. 3 23 Cheie - 70
Adr -o N 15
Materie - mo
Ore Tabele de descriere
Tabela tabelelor a stucturii Tabele de index Tabele de date

Figura 3-1. Exemplu de organizare într-o bază de date FoxPro

Conţinutul unei baze de date poate fi împărţit în patru categorii de date (figura 4-1).
1. Datele utilizatorilor sunt memorate fizic în fişiere şi descrise logic sub
formă de tabele, cu câmpurile pe coloane şi înregistrările pe linii.
Pentru fiecare tabelă de date se defineşte structura tabelei, care
reprezintă o descriere completă a tuturor câmpurilor din tabelă, şi a
proprietăţilor fiecărui câmp. Generarea unei noi tabele în baza de date
se face întotdeauna prin definirea, mai întâi, a structurii tabelei, după
care pot fi memorate datele propriu-zise din tabelă. Pentru fiecare
tabelă de date se poate defini o tabelă de index, care permite accesul
direct la înregistrările tabelei de date sau parcurgerea tabelei de date
într-o anumită ordine. În acest caz, accesul la o înregistrare se face pe
baza valorii unei combinaţii de câmpuri din tabela de date, numită
cheie de indexare. Majoritatea SGBD-urilor permit definirea mai
multor chei de indexare pentru o singură tabelă de date.
2. Metadatele bazei de date (dicţionarul de date) conţin descrierea
structurii tabelelor de date ale bazei de date şi a legăturilor logice
dintre date. Această descriere este memorată în tabele, numite tabele
sistem. Exemple de metadate ale bazei de date, incluse în tabelele
bazei de date sunt:

14
- tabelul tabelelor bazei de date care conţine, pentru fiecare
tabelă de date a bazei de date, câte o linie cu câmpurile: nume
tabelă, număr câmpuri din tabelă, lungimea totală a unei
înregistrări din tabelă, numele cheii primare de indexare din
tabelă, etc.;
- descrierea structurii unei tabele de date a bazei de date care
conţine, pentru fiecare câmp al tabelei, câte o înregistrare cu:
numele câmpului, tipul datei memorate în câmp, lungimea
câmpului, valoarea implicită, etc.
3. Tabelele de index sunt definite cu rolul de a mări accesibilitatea datelor
şi pentru a îmbunătăţi performanţele de exploatare ale bazei de date.
Sunt structuri de date specializate, folosite pentru accelerarea accesului
la date şi pentru a permite parcurgerea şi prelucrarea bazei de date într-
o ordine dorită a înregistrărilor. Tabelele de index asociate unei tabele
de date se memorează în fişiere numite fişiere de index, conform
modului de organizare indexată a fişierelor. În funcţie de SGBD, pot fi
definite:
- fişiere de index simplu, în care se memorează o singură tabelă
de index asociată fişierului de date
- fişiere de index multiplu, în care se memorează mai multe
tabele de index asociate aceluiaşi fişier de date. O tabelă de
index conţine, pentru fiecare înregistrare a tabelei de date la
care se referă, valoarea cheii de indexare şi adresa înregistrării
(determinată de valoarea cheii primare, locaţia fizică pe suport,
etc).
Tabelele de index sunt gestionate de SGBD (de exemplu, SGBD
asigură actualizarea automată a tuturor tabelelor de index deschise
odată cu tabelele de date, în cazul actualizării tabelelor de date).
4. Metadatele aplicaţiilor sunt descrieri structurate ale unor prelucrări
asupra datelor din baza de date care se memorează solidar cu datele, în
baza de date. Astfel de prelucrări pot avea în vedere controlul asupra
datelor memorate în baza de date prin: calcularea automată a valorii
unor câmpuri din baza de date, validarea datelor memorate în baza de
date, verificarea şi asigurarea corectitudinii corelaţiilor logice dintre
datele memorate în baza de date, etc. O altă categorie de prelucrări
descrise prin metadatele aplicaţiilor memorate în baza de date au ca
scop obţinerea unor imagini particulare a datelor din baza de date,
imagini numite vederi ale bazei de date. Vederile definesc viziuni
parţiale asupra bazei de date, conforme cu necesităţi particulare de
prelucrare, prin intermediul unei cereri de interogare a bazei de date
care realizează o descriere specifică a rezultatului dorit. Accesul la
metadatele aplicaţiilor se face numai prin intermediul SGBD.

15
Figura 3-2. Componenţa unei baze de date

Caracteristic organizării datelor în baze de date este faptul că proiectarea unei


baze de date trebuie abordată global, pentru reflectarea întregului univers real
modelat. Datele memorate într-o bază de date au ca scop reflectarea realităţii, a
activităţii întregii organizaţii, prin prisma informaţiilor vehiculate în sistemul
informaţional al organizaţiei.
Pentru a realiza o reprezentare completă şi cât mai corectă a realităţii pe care
trebuie să o reflecte baza de date, se folosesc drept instrumente de lucru, pentru
proiectarea bazei de date, modele ale bazei de date. Un model al bazei de date este
o reprezentare schematică şi sintetică a conţinutului bazei de date. Pentru
descrierea modului de organizare a datelor din baza de date, proiectarea unei baze
de date trebuie să abordeze atât organizarea fizică a datelor cât şi organizarea
logică a datelor. În perioada de definire şi dezvoltare a metodelor de organizare a
datelor în baze de date şi de proiectare a primelor SGBD (anii '70), grupul ANSI-
SPARC (grupul de normalizare Nord-American pentru sisteme informatice -
Standard Planning And Requirement Committee) a fost însărcinat să studieze
impactul utilizării bazelor de date asupra sistemelor informatice şi să definească un
standard de proiectare pentru un SGBD. Rezultatul acestei cercetări este modelul
de arhitectură funcţională a unui SGBD structurat pe trei niveluri funcţionale ale
bazei de date (figura 4-3). Fiecărui nivel funcţional îi corespunde o schemă a
structurii de date, un model privind prelucrările care se fac asupra datelor şi o
componentă funcţională a SGBD care realizează prelucrările la acest nivel. Aceste
niveluri funcţionale sunt:
- nivelul conceptual care reprezintă depozitarul semantic al bazei de
date, caracterizat prin faptul că realizează o abstracţie a universului
modelat, servind ca model de referire globală pentru viziunile
particulare ale utilizatorilor, respectiv aplicaţiilor pe baza de date şi
care furnizează cel mai bun model pentru organizaţie;
- nivelul extern, care cuprinde viziuni specifice, definite pentru
manevrarea datelor în funcţie de necesităţile fiecărui grup de utilizatori
ai bazei de date;
- nivelul intern, ce reflectă reprezentarea datelor pe suportul de memorie
externă, modul de realizare a acestui nivel contribuind la eficacitatea
transpunerii şi implementării nivelului conceptual, determinând astfel
performanţele de utilizare a bazei de date.
În metodologia de proiectare a bazelor de date cele trei planuri de analiză a
unei baze de date, care definesc trei modalităţi de abordare a realităţii pentru a
realiza modelul bazei de date, sunt numite niveluri de abstractizare a datelor din

16
baza de date. Corespunzător celor trei niveluri de abstractizare, sunt definite cele
trei modele ale bazei de date numite scheme: schema conceptuală (globală),
schema externă (utilizator) şi schema internă (fizică). Aceste trei modele realizează
descrierea bazei de date din trei puncte de vedere diferite, conform celor trei
niveluri de abstractizare a datelor din baza de date.
Nivelul conceptual sau nivelul global de abstractizare a datelor reflectă
imaginea globală a datelor din baza de date, prin prisma organizării logice a acestor
date. Schema conceptuală rezultată trebuie să asigure satisfacerea tuturor cerinţelor
informaţionale asupra bazei de date. Ea defineşte modul de organizare a datelor în
baza de date din punct de vedere logic (organizarea datelor în entităţi logice,
caracterizate de anumite proprietăţi şi corelări logice) şi realizează modelarea
realităţii considerate, asigurând independenţa descrierii datelor faţă de
echipamentul şi tehnologia de memorare folosite. Baza de date este descrisă prin
intermediul unor structuri care alcătuiesc schema conceptuală. În definirea schemei
conceptuale se porneşte de la baza de cunoştinţe a sistemului informaţional, care
cuprinde: datele ce pot fi colectate din sistem şi restricţiile ce se aplică acestor date,
cerinţele de integrare a datelor (corelaţiile logice dintre date), regulile de gestiune a
datelor (metode şi algoritmi de prelucrare a datelor). Schema conceptuală
integrează viziunile tuturor utilizatorilor asupra bazei de date, pentru a face posibilă
utilizarea în comun a bazei de date de către aceştia. Odată definită, schema
conceptuală trebuie confruntată cu universul real pentru sesizarea şi rezolvarea
eventualelor lipsuri şi neconcordanţe. Datorită caracterului său global şi unitar,
schema conceptuală trebuie gestionată de o singură persoană.
Nivelul extern (nivelul utilizator) de abstractizare a datelor defineşte logic
segmente ale bazei de date, care reprezintă viziuni parţiale asupra ei, caracteristice
unor anumiţi utilizatori, respectiv unor anumite aplicaţii care exploatează baza de
date. Nivelul extern evidenţiază necesităţile informaţionale ale unui utilizator sau
grup de utilizatori referitoare la un segment din baza de date prin intermediul unei
sub-scheme sau scheme externe a bazei de date. Prin intermediul schemei externe,
utilizatorul are o viziune (vedere) parţială asupra bazei de date (o viziune de
ansamblu asupra întregii baze de date se asigură numai la nivelul schemei
conceptuale). Schemele externe trebuie corelate cu schema conceptuală iar
cerinţele informaţionale ale nivelului extern care nu sunt satisfăcute de schema
conceptuală trebuie să determine o reconsiderare a schemei conceptuale.
Informaţiile din schemele externe pot fi preluate ca atare din schema conceptuală
sau pot fi obţinute din aceste informaţii, prin prelucrări specifice (calcule,
combinări, ordonări, selecţii) generând imagini virtuale ale bazei de date, numite
vederi. Vederile reprezintă unităţi logice virtuale ale bazei de date care au rolul de
a oferi utilizatorilor, selectiv, anumite date ale bazei de date şi de a ascunde restul
datelor din baza de date, pentru aceşti utilizatori.
Nivelul intern de abstractizare a datelor (nivelul fizic) reflectă modul de
organizare a datelor pe suportul de memorie externă. Nivelul intern priveşte baza
de date ca pe o colecţie de fişiere memorate pe diferite medii de memorie externă şi
defineşte modalitatea prin care datele din baza de date sunt organizate în fişiere ale
bazei de date. Structura bazei de date este definită, la acest nivel, prin schema

17
internă a bazei de date, care descrie fişierele utilizate şi modul lor de operare. Ea
este gestionată de SGBD, prin motorul său. Definirea schemei interne a bazei de
date se face automat, de componentele SGBD, în momentul generării bazei de date.
Pentru definirea schemei interne, se precizează fişierele bazei de date, fişierele de
index, tipurile de înregistrări utilizate, modul de acces la fişiere, unităţile de
memorie externă folosite, etc. Interacţiunea utilizatorului cu nivelul intern se face
prin intermediul SGBD, prin componenta sa (gestionarul BD) care colaborează cu
sistemul de operare (SGF) pentru a asigura gestionarea fişierelor bazei de date.

Administrator
de
intreprindrere

Elaborarea
Administrator Administrator
schemei
baza de date de aplicatie
conceptuale

Elaborarea Elaborarea
schemei schemei
interne externe

Corespondenta Corespondenta Corespondenta


stocaj intern intern conceptual conceptual extern

Program de Program de
aplicatie la aplicatie la
nivel intern nivel extern

Programator Programator
de sistem de aplicatie

Figura 3-3. Arhitectura ANSI-SPARC

Conform metodologiei ANSI-SPARC, sunt delimitate 3 categorii de


administratori pentru baza de date.
1. Administratorul de întreprindere, care este responsabil de proiectarea
globală a bazei de date şi are o imagine de ansamblu a aplicaţiilor prezente
şi a perspectivelor de dezvoltare a bazei de date. El este cel care defineşte
schema conceptuală a bazei de date, schemă care este independentă de
aplicaţiile particulare şi care trebuie să includă toate schemele externe,

18
definite pentru a deservi toţi utilizatorii şi pentru a satisface toate aplicaţiile
existente.
2. Administratorii de aplicaţie sunt responsabili cu dezvoltarea schemelor
externe pentru diverse aplicaţii care lucrează cu baza de date şi pentru a
oferi grupurilor de utilizatori diferite vederi asupra bazei de date.
3. Administratorul bazei de date este cel care defineşte schema internă a bazei
de date, care implementează şi întreţine baza de date din punctul de vedere
al organizării ei pe nivelul fizic.
Metodologia de concepere a unei baze de date porneşte de la necesitatea
realizării, mai întâi, a schemei conceptuale, care se confruntă cu schemele externe
şi din care, în final, derivă schema internă.
Un alt model al arhitecturii funcţionale a unui SGBD este modelul CODASYL,
elaborat cu ocazia Conferinţei de normalizare a limbajelor pentru baze de date
(Conference on Data Systems Language) din 1971.

NIVELUL
COMPONENTA FUNCŢIA SCHEMA GESTIONARUL
FUNCŢIONAL
SGBD SGBD DE DATE SCHEMEI
AL SGBD
asigură nivelul
NIVEL administratorul
subsistemul de de descriere a schema
aplicaţiei
EXTERN programare aplicaţiilor şi a externă
bazei de date
implementează
NIVEL subsistemul nivelul logic schema administratorul
CONCEPTUAL run-time de descriere a conceptuală întreprinderii
datelor
implementează
NIVEL nivelul fizic de schema administratorul
motorul SGBD
INTERN descriere a internă datelor din BD
datelor
Figura 3-4. Modelul CODASYL

Acest model descrie funcţionarea unui SGBD printr-o schemă care pune în
evidenţă cele trei niveluri de abstractizare a datelor în baza de date, cele trei
scheme care modelează baza de date precum şi cele trei componente funcţionale
ale SGBD care operează asupra bazei de date, utilizând cele trei categorii de
informaţii codificate în baza de date: datele, metadatele şi programele, cu care
operează pe rând, ca de exemplu în următorul model de prelucrări pentru
consultarea bazei de date:
1. Utilizatorul formulează cererea de acces la datele din baza de date cu
ajutorul instrumentelor oferite de subsistemul de programare, pornind de la
o schemă externă proprie.

19
2. Subsistemul run-time consultă dicţionarul de date pentru a identifica datele
cerute, conform schemei conceptuale, determină coordonatele logice ale
datelor: tabelul, linia şi coloanele dorite, după care transmite comanda de
acces la date către gestionarul bazei de date inclus în motorul SGBD.
3. Gestionarul bazei de date analizează comanda, consultă structura fizică a
bazei de date şi generează comanda adresată gestionarului fişierelor, pentru
accesul fizic la date; accesul la date se face conform regulilor de integritate
a bazei de date memorate în dicţionarul de date şi a drepturilor de acces ale
utilizatorului la date, verificate de această componentă a motorului SGBD.
4. Schimbul de date între memoria externă şi memoria internă se face sub
controlul sistemului de operare, la nivel de bloc, în memoria tampon
(buffer) a bazei de date.
5. Gestionarul bazei de date selectează din buffer numai datele solicitate
(operaţia de deblocare) şi face transformările definite prin corespondenţa
dintre schema conceptuală şi schema externă, furnizând utilizatorului
numai rezultatele solicitate, prin intermediul subsistemului run_time.
6. În orice fază a execuţiei, SGBD avertizează utilizatorul în cazul derulării
anormale a operaţiilor.

Pe parcursul utilizării ei, conţinutul bazei de date suferă modificări permanente,


în timp ce schema bazei de date rămâne relativ constantă. Ansamblul datelor
stocate în baza de date, la un moment dat, reprezintă o realizare a bazei de date. În
timp, baza de date înregistrează diferite realizări succesive.
Trecerea de la o realizare la alta a unei baze de date poartă numele de tranziţie.
O tranziţie poate să fie produsă de modificarea conţinutului unei tabele a bazei de
date, de modificarea structurii unei tabele a bazei de date, de adăugarea unei noi
tabele în baza de date, etc. Oricare dintre aceste operaţii se realizează sub controlul
SGBD, în conformitate cu descrierea datelor din dicţionarul de date, respectând
restricţiile şi corelările logice dintre date. Acest mod de realizare a tranziţiilor
garantează integritatea şi consistenţa bazei de date, conform restricţiilor impuse şi
memorate în baza de date.
Realizarea unei tranziţii înseamnă, deci, executarea unei secvenţe de operaţii
elementare cu datele din baza de date, operaţii concretizate fizic prin citiri şi scrieri
în tabelele bazei de date şi prelucrări ale acestor date în memoria internă. De
exemplu, adăugarea unei noi înregistrări într-o tabelă de date trebuie să fie urmată
imediat (şi transparent pentru utilizator) de actualizarea tabelelor de index
corespunzătoare fiecărei chei de indexare definite pentru tabela respectivă.
Se consideră asigurată consistenţa bazei de date atunci când s-a executat
complet întregul set de operaţii elementare necesar pentru realizarea unei tranziţii.
În caz contrar, pentru a evita pierderea consistenţei bazei de date, SGBD dispune
de mijloace prin care să refacă imaginea iniţială a bazei de date, corespunzătoare
realizării de la care a pornit tranziţia, sau măcar să semnaleze apariţia unei
inconsistenţe în baza de date. Se consideră că o bază de date este consistentă atunci
când ea reflectă corect universul real pe care îl modelează. Consistenţa unei baze
de date este garantată de respectarea tuturor constrângerilor semantice impuse

20
asupra datelor, numite restricţii de integritate şi memorate în baza de date.
Siguranţa unei baze de date se referă la toleranţa acesteia faţă de defecte şi la
capacitatea de recuperare după apariţia unui defect1.
Se numeşte tranzacţie unitatea logică de prelucrare asupra unei baze de date
care include setul complet de operaţii elementare care trebuie executat în vederea
realizării unei tranziţii, pentru asigurarea consistenţei şi siguranţei bazei de date.
Derularea unei tranzacţii se poate realiza cu succes sau cu incident. În cazul în care
tranzacţia se derulează cu succes, de la prima la ultima operaţie, atunci ea se
încheie printr-o operaţie de validare a tranzacţiei (commit). Validarea tranzacţiei
are un dublu efect: indică SGBD faptul că rezultatele tranzacţiei sunt corecte, deci
pot fi reflectate în baza de date, devenind vizibile altor tranzacţii şi indică faptul că
efectele tranzacţiei sunt ireversibile în baza de date (ele nu mai pot fi anulate prin
operaţia de rollback). În cazul apariţiei unor incidente în timpul tranzacţiei (de
exemplu nu poate fi accesată o tabelă a bazei de date), efectul tranzacţiei poate fi
anulat printr-o operaţie de abandonare a tranzacţiei. La abandonare, execuţia
tranzacţiei este oprită şi se reface imaginea iniţială a bazei de date (rollback).
Pentru a asigura consistenţa şi siguranţa bazei de date, o tranzacţie trebuie să
satisfacă cele patru condiţii definite prin acronimul ACID (Atomicitate,
Consistenţă, Izolare, Durabilitate)2.
Atomicitatea unei tranzacţii se referă la caracterul unitar al operaţiilor cu baza
de date pe care le presupune tranzacţia; condiţia de atomicitate impune ca o
tranzacţie să fie validată numai după executarea completă a operaţiilor pe care le
presupune. O tranzacţie întreruptă prematur trebuie tratată de SGBD pentru a fi
încheiată, fie prin continuare, dacă este posibil, fie prin abandonare, cu anularea
efectelor execuţiei sale.
Consistenţa unei tranzacţii se referă la necesitatea ca modificările efectuate în
baza de date să fie făcute cu respectarea regulilor de integritate a bazei de date,
pentru a garanta consistenţa bazei de date. Asigurarea consistenţei unei tranzacţii
prin verificarea respectării regulilor de integritate nu poate fi realizată integral, în
mod automat, numai de către SGBD. O parte dintre verificări trebuie să fie
proiectate în mod explicit în aplicaţia care a generat tranzacţia.
Izolarea unei tranzacţii se referă la principiul de execuţie a tranzacţiei prin care
rezultatele unei tranzacţii devin accesibile în baza de date pentru alte tranzacţii
numai după validarea tranzacţiei respective. În caz contrar, dacă o altă tranzacţie ar
putea utiliza rezultatele modificărilor parţiale realizate de tranzacţie şi dacă această
tranzacţie ar fi abandonată, cu refacerea imaginii iniţiale a bazei de date, atunci şi
tranzacţia care a folosit rezultatele parţiale ar trebui abandonată. Un astfel de
proces ar putea genera un lanţ de abandonuri (efectul domino), de o lungime
nedeterminată, greu de controlat şi care ar putea conduce la pierderea consistenţei
bazei de date.
Durabilitatea tranzacţiei este proprietatea prin care se garantează că o tranzacţie
validată este ireversibilă. După validarea tranzacţiei, SGBD permite reflectarea

1
Dollinger R. - op. cit.
2
idem.

21
rezultatelor tranzacţiei în baza de date, pentru a deveni accesibile şi altor tranzacţii.
Dacă după validarea tranzacţiei apare un incident care să împiedice consemnarea în
baza de date a rezultatelor tranzacţiei validate, SGBD dispune de mijloace pentru a
relua procesul de scriere în baza de date a rezultatelor tranzacţiei, după înlăturarea
incidentului. De obicei, SGBD foloseşte, în acest scop, metoda jurnalizării tuturor
operaţiilor efectuate în timpul unei tranzacţii; jurnalul este folosit de procedurile
SGBD de refacere a imaginii bazei de date, în caz de incident.
Respectarea proprietăţilor de atomicitate şi de consistenţă asigură caracteristica
definitorie a tranzacţiei, faptul că generează o realizare consistentă a bazei de date.
Respectarea proprietăţilor de izolare şi de durabilitate ale tranzacţiilor garantează
imposibilitatea apariţiei efectului domino în cazul desfăşurării unor tranzacţii
concurente asupra bazei de date.
Siguranţa bazei de date este realizată prin operaţia de rollback, dacă defectul în
baza de date apare în timpul desfăşurării unei tranzacţii. Pentru a contracara
incidentele care pot altera baza de date între două tranzacţii succesive se foloseşte
metoda jurnalizării tranzacţiilor efectuate asupra bazei de date; în acest fel se poate
restabili în orice moment imaginea bazei de date anterioară producerii defectului,
pornind de la o imagine de siguranţă a bazei de date şi refăcând asupra acestei
imagini toate tranzacţiile efectuate până în momentul apariţiei incidentului care a
alterat baza de date.
Consistenţa bazei de date este asigurată de respectarea restricţiilor de
integritate. Restricţiile de integritate ale unei baze de date sunt definite prin
intermediul unor reguli de integritate a bazei de date. Regulile de integritate pot fi:
implicite (restricţiile privind valorile admisibile ale datelor sunt determinate
implicit de tipul de dată care le este asociat) sau explicite (liste de valori sau
intervale în care poate lua valori un câmp din baza de date). Regulile explicite pot
fi definite şi prin intermediul unor secvenţe de cod care pot fi generate de
proiectantul aplicaţiei (de exemplu rutinele de validare, definite pentru un câmp
din baza de date sau pentru o întreagă linie dintr-o tabelă a bazei de date) sau de
componenta de proiectare a SGBD, în mod automat (de exemplu regulile de
integritate referenţială implicit generate de SGBD la definirea unei baze de date
relaţionale, în funcţie de opţiunile proiectantului bazei de date).
Un exemplu de rutine de validare generate automat de SGBD pentru
implementarea unor restricţii de integritate sunt cele care asigură respectarea
regulii de integritate referenţială pentru o bază de date relaţională. Într-o bază de
date relaţională se stabilesc legături logice între perechi de înregistrări din tabele
diferite care au în comun seturi de câmpuri ce formează perechi de forma (cheie
primară, cheie străină). Tabela care conţine cheia străină se numeşte tabelă fiu, iar
tabela în care cheia respectivă este cheie primară se numeşte tabelă părinte. Regula
de integritate referenţială impune condiţia ca fiecare valoare a cheii străine să se
regăsească printre valorile cheii primare. Pentru asigurarea respectării regulii de
integritate referenţială, SGBD oferă următoarele variante de validare automată a
actualizării unei înregistrări în una din cele două tabele:

22
- în cazul adăugării unei noi înregistrări în tabela fiu, adăugarea poate fi
interzisă (restrict) dacă în tabela părinte nu există o înregistrare a cărei
cheie primară să aibă valoarea cheii străine din înregistrarea care se
adaugă;
- în cazul ştergerii unei înregistrări din tabela părinte, dacă există înregistrări
în tabela fiu a căror cheie străină are aceeaşi valoare cu cheia primară a
înregistrării care se şterge, ştergerea este interzisă (restrict) sau se
realizează ştergerea în cascadă (cascade), adică se şterge înregistrarea din
tabela părinte şi toate înregistrările corespunzătoare din tabela fiu;
- în cazul modificării cheii primare a unei înregistrări din tabela părinte, dacă
există înregistrări în tabela fiu a căror cheie străină are aceeaşi valoare cu
cheia primară care se modifică, modificarea este interzisă (restrict) sau se
realizează modificarea în cascadă (cascade), adică se modifică înregistrarea
din tabela părinte şi toate înregistrările corespunzătoare din tabela fiu.
Unul dintre avantajele gestionării datelor prin intermediul unui SGBD este
faptul că se poate asigura un anumit nivel de libertate în realizarea modificărilor
asupra modului de organizare a datelor care să nu afecteze modul de utilizare a lor.
Acest lucru este posibil datorită modelului de organizare a SGBD pe trei niveluri
de abstractizare a datelor. Posibilitatea modificării descrierii datelor pe un nivel de
abstractizare, fără a afecta descrierile de pe celelalte niveluri defineşte gradul de
autonomie a datelor din baza de date. Se delimitează două niveluri de autonomie a
datelor în baza de date:
1. Autonomia fizică asigură faptul că se poate modifica schema internă fără a
afecta celelalte niveluri (nivelurile logice de descriere a bazei de date).
Autonomia fizică are următoarele caracteristici:
- se foloseşte pentru ameliorarea performanţelor de lucru cu baza de date
(dimensiunea fişierelor, viteza de acces la date) prin modificarea suportului
de memorie externă folosit, a organizării fizice a datelor pe suport, a
platformei de calcul utilizate, etc.;
- este necesară pentru a asigura portabilitatea1 bazei de date de la o
platformă la alta;
- este asigurată prin interacţiunea SGBD cu sistemul de operare, în primul
rând cu sistemul de gestiune a fişierelor;
2. Autonomia logică permite modificarea schemei conceptuale sau a schemei
externe a bazei de date fără a fi necesară rescrierea programelor de aplicaţie
care lucrează cu baza de date. Autonomia logică are următoarele trăsături:
- este necesară când se extinde sfera informaţională acoperită de sistemul
informatic, se dezvoltă o nouă aplicaţie sau apar noi informaţii ce trebuie
prelucrate în aplicaţiile existente;
- deşi în general noi categorii de date presupun şi noi prelucrări, nu este
obligatorie modificarea aplicaţiilor existente pentru implementarea noilor

1
Portabilitatea unei componente software reprezintă posibilitatea de a utiliza acea
componentă pe sisteme de calcul diferite sau sub sisteme de operare diferite

23
categorii de date pentru că prelucrări noi referitoare la aceste date pot fi
memorate şi în baza de date, în componenta de metadate ale aplicaţiilor;
- este asigurată prin intermediul dicţionarului de date care este
consultat de SGBD în vederea accesării bazei de date.

3.2. Sistemul de gestiune a bazelor de date

SGBD este un sistem de programe care permit interacţiunea cu baza de date


pentru creare, actualizare şi consultare, asigurând gestionarea unitară a datelor din
baza de date şi acţionând ca o interfaţă între baza de date şi utilizatorii ei. În
cealaltă direcţie, SGBD colaborează cu sistemul de operare pentru realizarea
funcţiilor sale, de exemplu intracţiunea cu sistemul de gestiune a fişierelor.
O bază de date nu poate fi utilizată decât prin intermediul unui SGBD. În plus,
un SGBD este proiectat în concordanţă cu modul de organizare a datelor specific
unui anumit model de bază de date. În consecinţă, orice SGBD trebuie să
îndeplinească un set de funcţii minimale, la care se adaugă funcţii specifice tipului
de bază de date pe care o gestionează:
1. SGBD permite generarea bazei de date prin oferirea limbajului de descriere a
structurii bazei de date (limbajul de descriere a datelor - LDD) şi prin
generarea automată a schemei interne a bazei de date, pe baza acestei descrieri.
2. SGBD realizează actualizarea datelor din baza de date, cu respectarea
restricţiilor de integritate memorate în baza de date, asigurând astfel
menţinerea consistenţei bazei de date.
3. Utilizând dicţionarul de date pentru accesul la baza de date, SGBD asigură
autonomia logică a datelor faţă de programele de aplicaţie.
4. SGBD asigură posibilitatea accesului multicriterial la datele din baza de date
prin intermediul cheilor de indexare, a filtrelor, a operaţiei de ordonare a
datelor, a memorării legăturilor dintre date, etc. În felul acesta se asigură
proprietatea bazei de date de a oferi utilizatorilor imagini multiple ale datelor
pe care le memorează.
5. Un SGBD proiectat pentru a funcţiona în regim multiutilizator trebuie să
asigure protecţia datelor faţă de accesele concurente la baza de date. În acest
scop, actualizările bazei de date se realizează prin intermediul tranzacţiilor.
6. Cum bazele de date sunt concepute pentru a permite prelucrarea unui volum
mare de date, gestiunea datelor impune nu numai structurarea lor riguroasă, ci
şi optimizarea procedurilor de acces la date şi de prelucrare a lor, asigurată tot
de SGBD, în scopul creşterii performanţelor de acces la date.
7. SGBD oferă instrumente cât mai accesibile pentru consultarea bazei de date.
Aceste instrumente se adresează, în primul rând, utilizatorilor neprofesionişti şi
constau în limbaje de interogare a bazei de date, limbaje neprocedurale,
descriptive şi cât mai apropiate de limbajul uman, susţinute, eventual, şi de
elemente de interfaţă prietenoasă, de tipul interfeţelor grafice sau ale
generatoarelor automate de cereri de interogare.

24
8. Pentru actualizarea bazei de date şi pentru definirea aplicaţiilor cu baza de date,
SGBD oferă utilizatorilor profesionişti instrumente de proiectare (limbaje de
manevrare a datelor din baza de date - LMD), generatoare automate de cod sau
chiar medii de proiectare a sistemului informatic ce utilizează baza de date.
9. SGBD poate asigura confidenţialitatea datelor din baza de date prin atribuirea
de drepturi de acces utilizatorilor şi identificarea acestora prin intermediul unui
sistem de parole, prin implementarea unor mecanisme de criptare a datelor din
baza de date şi prin intermediul vederilor asupra bazei de date, care oferă
utilizatorilor imagini parţiale ale bazei de date, conform schemelor externe
definite de aceşti utilizatori.
10. SGBD asigură integritatea bazei de date, prin gestionarea unor proceduri
automate sau definite de proiectantul bazei de date care să permită refacerea
imaginii bazei de date în cazul alterării conţinutului ei în urma unor incidente.
În acest scop, SGBD realizează automat copii de siguranţă care permit
executarea procedurilor de refacere (rollback) sau se poate defini explicit o
procedură completă de asigurare a bazei de date. Spre exemplu, se realizează
salvarea periodică a bazei de date pe un suport sigur de memorie externă, se
realizează jurnalizarea actualizărilor bazei de date, prin memorarea pe un
suport sigur de memorie externă a tuturor tranzacţiilor efectuate de la ultima
salvare a bazei de date şi în caz de incident se restaurează ultima realizare a
bazei de date salvată, după care se refac tranzacţiile efectuate ulterior acestei
salvări, prin consultarea jurnalului.
11. SGBD asigură autonomia fizică a datelor faţă de programele de aplicaţie. Ca
urmare, este posibilă reorganizarea fizică a bazei de date atunci când este
necesar fără a afecta aplicaţiile cu baza de date. De exemplu se realizează
ştergerea fizică a înregistrărilor marcate logic pentru ştergere, se poate
modifica modul de memorare a bazei de date în memoria externă, se poate
modifica sistemul de operare sau configuraţia hardware care suportă baza de
date.
12. SGBD permite monitorizarea activităţii cu baza de date, pentru ameliorarea
performanţelor de exploatare a bazei de date, în scopul minimizării timpului de
răspuns, utilizării optime a memoriei, asigurării unei bune adaptabilităţi a bazei
de date faţă de solicitările utilizatorilor şi a unei bune protecţii a datelor.
Principalele componente ale unui SGBD sunt: motorul SGBD, subsistemul
instrumentelor de proiectare şi subsistemul de execuţie (subsistemul run-time).
Motorul SGBD este un intermediar între subsistemul de proiectare şi
subsistemul run-time al bazei de date, pe de o parte, şi datele din baza de date, pe
de altă parte, pentru realizarea accesului fizic la datele din baza de date. Motorul
SGBD este implicat în gestionarea tranzacţiilor la nivelul unei baze de date,
regăsirea datelor pe baza informaţiilor de adresare din fişierele de index, salvarea şi
restaurarea datelor, blocarea şi deblocarea datelor în cazul operaţiilor fizice la
nivelul memoriei externe. Acţiunile motorului SGBD, în cadrul bazei de date, sunt
realizate unitar, respectând restricţiile impuse de legăturile dintre date şi de regulile
de integritate ale bazei de date, definite în dicţionarul de date. Motorul SGBD
asigură şi interfaţa funcţională pentru operarea modificărilor în structura bazei de

25
date, formulate prin comenzi ale limbajului de descriere a datelor. El gestionează
unitar operaţiile la nivel fizic asupra bazei de date, prin funcţiile îndeplinite de
componentele sale: gestionarul bazei de date şi gestionarul fişierelor:

Figura 3-5. Locul motorului SGBD

Gestionarul bazei de date traduce comenzile primite, de transformare a datelor


sau metadatelor din baza de date, în comenzi de acces fizic la fişierele bazei de
date, executabile sub controlul SGF. El realizează transformarea comenzilor
elementare care alcătuiesc tranzacţia şi vizează lucrul cu fişierele bazei de date în
comenzi adresate gestionarului fişierelor şi componentei SGF a sistemului de
operare şi asigură ca orice modificare a datelor din baza de date să fie făcută numai
cu respectarea regulilor de integritate memorate în dicţionarul de date, identifică
abaterile de la aceste reguli şi le semnalează. Gestionarul bazei de date realizează
blocarea bazei de date, de obicei la nivel de fişier sau de înregistrare, pentru a
asigura izolarea tranzacţiei necesară în cazul acceselor concurente la baza de date şi
asigură integritatea bazei de date, prin gestionarea procedurilor automate de
siguranţă care trebuie să permită restabilirea stării bazei de date anterioare
producerii unui accident. Pentru asigurarea securităţii datelor din baza de date
gestionarul bazei de date verifică drepturile de acces la date şi permite executarea
procedurilor de criptare.
Gestionarul fişierelor realizează, alături de SGF, transferurile de date cu
memoria externă.
Componentele amintite ale motorului bazei de date acţionează asupra celorlalte
componente ale bazei de date:
- fişierele de date, care reprezintă suportul informaţional propriu-zis al
bazei de date;
- metadatele sau dicţionarul de date, care memorează informaţii despre
structura bazei de date şi legăturile dintre date şi care este consultat în
toate operaţiile de acces la datele bazei de date;
- fişierele de index, care permit mărirea vitezei de acces la date şi oferă
imagini multiple ale datelor din baza de date.

26
Subsistemul instrumentelor de proiectare al unui SGBD dispune de un set de
instrumente software specializate pentru proiectarea şi generarea bazei de date,
respectiv a aplicaţiilor care descriu modul de utilizare a bazei de date. Această
componentă a SGBD permite definirea structurii tabelelor din baza de date, a
machetelor de interfaţă cu utilizatorul, a formatului rapoartelor şi cererilor de
interogare a bazei de date. Ea poate include:
- limbajul de descriere a datelor (LDD);
- limbaje de manevrare a datelor (LMD);
- limbaje de interogare a bazei de date (LI);
- editoare pentru codul aplicaţiilor;
- generatoare automate de cod, pentru definirea interfeţelor
utilizator, a rapoartelor, a meniurilor aplicaţiilor, etc.;
- sistem de asistenţă on-line pentru autodocumentarea utilizatorului
(componentă de tip Help) etc.

Figura 3-6. Componenta run-time şi componenta de proiectare

Pentru a defini structura unei baze de date se folosesc instrumentele oferite de


o interfaţă specializată, care utilizează un limbaj propriu: limbajul de descriere a
datelor. Prin interpretarea acestor descrieri este generat ansamblul de tabele numit
dicţionar de date, care conţine descrieri ale datelor din baza de date, numite şi
metadatele bazei de date. Metadatele bazei de date sunt consultate de componentele
SGBD înaintea oricărei operaţii asupra datelor din baza de date. Modulele de lucru
cu limbajul de descriere a datelor traduc şi execută instrucţiuni ale limbajului de
descriere a datelor pentru a genera dicţionarul de date. Ele sunt incluse în
subsistemul de proiectare al SGBD. Funcţiile asigurate de limbajul de descriere a
datelor sunt:
- descrierea organizării logice a datelor în baza de date, prin definirea
tabelelor de date şi a câmpurilor din tabele;

27
- definirea regulilor sintactice de reprezentare a datelor, prin tipul
datelor şi prin formatele de reprezentare;
- definirea restricţiilor semantice la care se supun datele şi care asigură
corectitudinea datelor bazei de date (plaja de valori, formule de calcul
pentru datele derivate din date de bază, rutine de validare a datelor,
etc);
- specificarea legăturilor logice dintre datele bazei de date;
- definirea cheilor de indexare asociate tabelelor bazei de date;
- definirea procedurilor de criptare, dacă este cazul;
- definirea cheilor de confidenţialitate (parole de acces la date).
Limbajele de manevrare a datelor permit descrierea operaţiilor asupra datelor
din baza de date, din punctul de vedere al utilizatorilor. Manevrarea datelor este
termenul generic pentru desemnarea operaţiilor executate asupra datelor din baza
de date care constă, în detaliu, din:
- adăugarea, prin scrierea de noi date în tabelele de date;
- modificarea, prin schimbarea valorii datelor existente;
- ştergerea datelor din tabele ale bazei de date;
- prelucrarea datelor, prin operaţii specifice de tipul ordonării,
interclasării, filtrării sau combinării datelor, în aceeaşi tabelă sau între
tabele ale bazei de date;
- consultarea, adică extragerea unor date din tabele ale bazei de date, în
scopul vizualizării sau prelucrării lor.
Un limbaj de manevrare a datelor permite operarea asupra datelor atât la nivel
logic, prin comenzile utilizatorului, preluate de componenta run-time, folosind
descrierea datelor conform schemei şi sub-schemelor bazei de date cât şi la nivel
fizic, prin descrierea şi implementarea unor algoritmi performanţi de acces la datele
din memoria externă.
După modalitatea de formulare a cererii de identificare a datelor în baza de
date, limbajele de manevrare a datelor se clasifică în două categorii: limbaje
procedurale şi neprocedurale. Limbaje procedurale sunt acele limbaje pentru care
utilizatorul trebuie să precizeze datele pe care doreşte să le acceseze şi modul în
care se obţin aceste date din baza de date. Utilizatorul furnizează o secvenţă de
operaţii executabile într-o succesiune bine precizată şi care se constituie într-o
procedură. Limbaje neprocedurale sunt limbajele în care succesiunea
instrucţiunilor din program nu influnţează decât în mică măsură succesiunea
executării lor. Utilizatorul precizează ce date doreşte doar prin descrierea acestor
date, fără a preciza şi metoda de identificare a lor în baza de date. Limbajele
neprocedurale nu necesită descrierea modului de realizare a accesului la date
pentru că folosesc proceduri standard de acces la date. Modul de formulare a
cererilor într-un limbaj neprocedural este mai apropiat limbajului uman, motiv
pentru care limbajele neprocedurale sunt mai accesibile. Limbajele procedurale
sunt limbaje imperative, în timp ce limbajele neprocedurale sunt limbaje
declarative.
În cadrul limbajelor de manevrare a datelor se includ şi limbajele de interogare
a bazei de date (LI) care permit căutarea şi identificarea datelor în baza de date.

28
Limbajele de interogare se adresează utilizatorului curent al bazei de date, de
obicei neinformatician, motiv pentru care sunt concepute ca limbaje evoluate,
apropiate de limbajul uman, şi sunt definite ca limbaje neprocedurale.
Un limbaj de manevrarea datelor poate să utilizeze un limbaj propriu, autonom
sau un limbaj de programare standard. Conform acestui criteriu, un SGBD poate fi:
autonom sau cu limbaj gazdă. SGBD este autonom atunci când limbajul de
manevrare a datelor are un limbaj de programare propriu şi cu limbaj gazdă, când
limbajul de manevrare a datelor nu are un limbaj propriu iar comenzile sale sunt
implementate prin instrucţiuni scrise în limbajul gazdă al SGBD.
În funcţie de tipul de SGBD, generarea codului executabil pentru comenzile
limbajului de manevrare a datelor se realizează diferit. Pentru SGBD autonome
sunt următoarele variante de transformare a comenzilor limbajului de manevrare a
datelor în cod executabil:
- la execuţia comenzilor, prin interpretarea fiecărei instrucţiuni în
limbajul de manevrare a datelor şi executarea ei imediată (limbajul de
manevrare a datelor este unul de tip interpretativ);
- prin compilarea comenzilor în limbajul de manevrare a datelor şi
generarea unui cod executabil ce va fi executat de motorul SGBD
(limbajul de manevrare este de tip compilativ);
- când SGBD posedă interfaţă pentru un alt limbaj de programare, se
poate realiza traducerea comenzilor formulate în acel limbaj în
secvenţe de cod scrise în limbajul de manevrare a datelor şi
translatarea acestora cu compilatorul propriu, pentru generarea unui
cod executabil.
Pentru SGBD cu limbaj gazdă transformarea comenzilor limbajului de manevrare a
datelor în cod executabil se poate face:
- prin îmbogăţirea compilatorului limbajului gazdă cu comenzile
limbajului de manevrare a datelor, acesta generând cod adresat
motorului SGBD, care va realiza accesul la date;
- prin intermediul unui program pre-compilator, care transformă
programele sursă care includ instrucţiuni ale limbajului de manevrare a
datelor în programe sursă în limbajul gazdă, care sunt apoi compilate
cu compilatorul limbajului gazdă;
- prin intermediul unor subprograme în care comenzile limbajului de
manevrare a datelor sunt apeluri la subprograme scrise în limbajul
gazdă, subprograme aduse apoi în format executabil.

Subsistemul de execuţie (run-time) permite procesarea (execuţia) aplicaţiilor


sau cererilor de consultare a bazei de date, formulate utilizând instrumentele
subsistemului de proiectare, prin consultarea dicţionarului de date şi generarea
tranzacţiilor. Aceasta este componenta care asigură autonomia logică a datelor din
baza de date, intermediind operaţiile cu baza de date prin consultarea descrierii
organizării logice a datelor memorată în structura bazei de date. Orice operaţie de
actualizare sau de consultare a bazei de date se realizează prin identificarea
formatelor de descriere a datelor din dicţionarul de date şi conectarea acestor

29
descrieri la schema internă a bazei de date. Această operaţie este realizată de
componenta de excuţie a SGBD. De asemenea, pentru a opera cu o vedere a bazei
de date, componenta run-time consultă interfaţa dintre schema externă a bazei de
date şi schema conceptuală, interfaţă care cuprinde regulile de derivare care
definesc vederea. Comenzile, formulate într-un limbaj de manevrare a datelor sau
într-un limbaj de interogare a bazei de date, sunt traduse de modulul translator
specializat, fiind transformate apoi, prin intermediul procesorului de consultare a
bazei de date, în instrucţiuni elementare de lucru cu baza de date care alcătuiesc
tranzacţii şi care sunt adresate gestionarului bazei de date, parte a motorului SGBD.
În plus, la nivelul componentei run-time, se realizează şi o optimizare a modului de
execuţie a comenzilor de consultare a bazei de date, pentru a mări viteza de acces
la baza de date. În cadrul componentei run-time unele SGBD dispun de interfeţe
pentru alte medii de prelucrare a datelor, care permit ca prin comenzi scrise într-un
limbaj exterior, nespecific SGBD, să se poată realiza accesul la datele bazei de
date.
Un obiectiv principal al unui SGBD este de a crea un mediu favorabil
utilizatorilor pentru a lucra cu datele din baza de date. Alături de componentele
software, funcţionarea unei baze de date este de neconceput în absenţa factorului
uman care, după modul de interacţiune cu baza de date, se poate grupa în două
categorii: administratorii (administratorul de întreprindere, administratorii de
aplicaţie, administratorul bazei de date) şi utilizatorii.

Figura 3-7. Utilizatorii bazei de date

În mod generic, persoana responsabilă pentru asigurarea condiţiilor optime de


utilizare a bazei de date este numită administratorul bazei de date. Acesta trebuie să
cunoască schema internă a bazei de date, fiind responsabil de implementarea şi
funcţionarea în condiţii optime a bazei de date. Funcţiile administratorului bazei de
date sunt:

30
- definirea arhitecturii bazei de date conform schemei conceptuale, fie prin
utilizarea interactivă a limbajului de descriere a datelor, fie prin executarea
unor proceduri automate de configurare a bazei de date;
- definirea modului de implementare a bazei de date în memoria externă
(organizarea bazei de date în memoria externă) şi a modurilor de acces la
date, prin intermediul limbajului de descriere a datelor;
- gestionarea modificărilor apărute în descrierea bazei de date, la nivelul
schemei conceptuale, sau în implementarea în memoria externă a bazei de
date (modificări privind suportul de memorare sau modul de organizare a
datelor pe suport);
- implementarea restricţiilor privind integritatea bazei de date (acestea se fac
la nivelul schemei conceptuale şi nu la nivelul schemei externe, pentru că
se referă la întreaga bază de date şi nu la părţi ale bazei de date, ce
corespund schemelor externe);
- definirea procedurilor de eroare, în cazul nerespectării regulilor de
integritate a datelor;
- autorizarea accesului la date, prin acordarea de chei de acces şi priorităţi de
acces la utilizatori sau grupuri de utilizatori;
- definirea procedurilor privind asigurarea drepturilor de acces la baza de
date;
- asigurarea legăturii cu utilizatorii, în scopul transferului reciproc de
informaţii privind modul de lucru cu baza de date; de asemenea îi avizează
pe utilizatori cu privire la modificările apărute în modul de lucru cu baza
de date;
- definirea strategiei de asigurare a bazei de date, prin operaţii periodice de
salvare a bazei de date şi prin jurnalizarea tranzacţiilor; în acest scop,
administratorul bazei de date stabileşte calendarul de salvări ale bazei de
date precum şi procedurile de salvare/restaurare corespunzătoare;
- monitorizarea performanţelor bazei de date, pentru îmbunătăţirea
parametrilor de exploatare, mai ales a timpului de răspuns la cereri de
acces la date şi a vitezei de prelucrare a datelor din baza de date.
După natura interacţiunilor cu baza de date şi gradul lor de specializare în
domeniu, utilizatorii bazei de date pot aparţine uneia dintre următoarele categorii:
- utilizatori profesionişti (informaticieni), de exemplu: administratorul bazei
de date, administratorul de intreprindere, administratorii de aplicaţii,
precum şi proiectanţii de aplicaţii;
- utilizatori neinformaticieni, care pot fi: utilizatorii curenţi (intensivi) ai
bazei de date, adică cei care efectuează operaţii de rutină asupra bazei de
date folosind de obicei aplicaţii dedicate, de exemplu pentru actualizarea
bazei de date sau pentru consultări sistematice ale bazei de date şi
utilizatorii ocazionali, care interacţionează cu baza de date prin intermediul
limbajului de interogare a bazei de date pentru a obţine informaţii, ca
răspuns la întrebări ocazionale, de obicei neanticipate.

31
3.3. Baze de date relaţionale

3.3.1. Conceptele folosite pentru bazele de date relaţionale

Un pas înainte în tehnica organizării datelor în baze de date a fost făcut atunci
când accesul la date a putut fi descris într-o manieră neprocedurală iar operarea
efectivă asupra datelor s-a putut realiza prin secvenţe de cod scoase în afara
codului de aplicaţie. În acest caz, accesul la date este standardizat şi funcţiile de
acces la date sunt incluse în funcţiile SGBD. Modelul care stă la baza unei astfel de
organizări a datelor este modelul relaţional.
În anii '80 s-a înregistrat o perfecţionare a modului de proiectare şi a condiţiilor
care permit utilizarea optimă a SGBDR1, astfel încât anii '90 marchează o
dezvoltare a activităţii de proiectare de SGBDR. Multe dintre aceste SGBD-uri nu
reuşesc să atingă performanţele solicitate unui SGBDR. Aşa cum calitatea
determinată de organizarea datelor în baze de date nu poate fi asigurată decât sub
controlul unui SGBD, calitatea unui SGBDR nu poate fi asigurată decât în
condiţiile în care acesta respectă specificaţiile modelului relaţional de organizare a
bazei de date.
Pentru a limpezi puţin lucrurile şi pentru a reglementa activitatea de proiectare
şi dezvoltare de SGBDR, Edgar Codd, cercetător la laboratoarele IBM din San Jose
(California), a încercat să sistematizeze şi să prezinte sub o formă unitară sistemul
minimal de reguli pe care trebuie să le respecte un SGBD pentru a putea gestiona o
bază de date relaţională. Modelul relaţional a fost formulat şi publicat pentru prima
oară în 1969 de către Edgar Codd. Acesta a publicat începând din 1970 lucrările
sale de referinţă privitoare la modelul relaţional pentru organizarea datelor în baze
de date. Pornind de la un număr de 13 reguli, în 1986, Codd a ajuns să publice până
la 100 de reguli, în 1990. Pentru a constitui, totuşi, un instrument funcţional, se
consideră că cele 13 reguli definite iniţial sunt suficiente pentru a aprecia dacă, şi
măsura în care, un SGBD este relaţional. Cele 13 reguli ale lui Codd sunt enunţate
în continuare.
Regula 0. Regula de bază - afirmă că pentru a fi relaţional un SGBD trebuie să
gestioneze datele din baza de date exclusiv prin utilizarea mecanismelor relaţionale
care sunt prezentate în următoarele 12 reguli. SGBD gestionează datele din baza de
date prin intermediul componentelor sale:
- LDD pentru definirea schemei relaţionale a bazei de date;
- LMD pentru definirea cererilor de manevrare a datelor din baza de
date;
- componenta run-time pentru interpretarea cererilor de manevrare a
datelor;
- gestionarul bazei de date pentru asigurarea integrităţii şi consistenţei
bazei de date;

1
Sistem de Gestiune a Bazelor de Date Relaţionale

32
- motorul, pentru a interfaţa cererile de acces la date cu implementarea
fizică a bazei de date.
Observaţie: se constată că, practic, nici o implementare de SGBDR nu respectă
această regulă, deoarece toate SGBD-urile care se consideră relaţionale conţin şi
caracteristici nerelaţionale.
Regula 1. Regula reprezentării logice a datelor - afirmă că într-o bază de date
relaţională toate datele trebuie să fie organizate logic într-un singur fel, sub formă
de relaţii memorate în tabele; acest lucru permite ca toate datele din baza de date să
fie prelucrate la fel, chiar dacă sunt date sau metadate.
Observaţie: în opinia lui Codd, un SGBD care nu respectă regula 1 nu este
relaţional.
Regula 2. Regula garantării accesului la date - afirmă că într-o bază de date
relaţională orice dată trebuie să poată fi identificată prin tripleta formată din:
numele tabelei, valoarea cheii primare, numele coloanei din tabelă. Pentru a
respecta această regulă, în orice tabelă a bazei de date trebuie să se respecte ca
reguli de integritate regula unicităţii cheii şi regula entităţii1.
Regula 3. Regula reprezentării valorilor necunoscute sau neacceptate - afirmă
că într-o bază de date relaţională trebuie să se poată utiliza o valoare, notată
convenţional cu null, pentru a face distincţia explicită între datele cărora nu li se
atribuie valoare (pentru că nu este cunoscută sau pentru că nu este acceptabilă) şi
cele care au primit o valoare, fie ea şi 0 sau şirul vid. Această condiţie este necesară
pentru implementarea regulii entităţii şi a regulii integrităţii referenţiale2.
Regula 4. Regula dicţionarului de date - afirmă că descrierea bazei de date
relaţionale trebuie să fie organizată logic la fel cu baza de date astfel încât asupra
metadatelor să se poată opera ca şi asupra datelor din baza de date. În acest scop,
metadatele sunt organizate şi ele în tabele, fapt care permite accesarea metadatelor
prin intermediul aceloraşi mecanisme folosite pentru accesarea datelor. De
exemplu, în acest fel vor putea fi generate noi tabele sau va putea fi modificată
structura unei tabele în mod programatic, în etapa de execuţie a aplicaţiilor (etapa
run-time). În plus, acest mod unitar de organizare logică a întregului conţinut al
bazei de date face ca manevrarea bazei de date să nu depindă de conţinutul ei, deci
să poată fi realizată standardizarea accesului la conţinutul bazei de date; consecinţa
acestei standardizări este scoaterea metodelor de acces la baza de date în afara
aplicaţiilor şi gestionarea lor unitară de către componentele SGBD.
Regula 5. Regula limbajului de cereri - afirmă că un SGBD relaţional trebuie
să ofere cel puţin un limbaj de manevrare a datelor de nivel înalt, care să permită
efectuarea următoarelor operaţii: definirea tabelelor de date şi a tabelelor virtuale
din baza de date, manevrarea datelor, definirea restricţiilor de integritate,
autorizarea accesului la baza de date, definirea tranzacţiilor. Un astfel de limbaj de
cereri pentru baze de date relaţionale este limbajul SQL (Structured Query
Language).

1
vezi mai departe în capitolul curent
2
idem

33
Regula 6. Regula de actualizare a tabelelor virtuale - afirmă că într-o bază de
date relaţională tabelele virtuale (vederile) trebuie să poată fi actualizate. O tabelă
virtuală reflectă automat modificările efectuate asupra datelor pe care le prezintă,
având în vedere faptul că în baza de date nu se memorează conţinutul efectiv al
vederii, în momentul generării ei, ci este memorată numai descrierea modului în
care se poate obţine vederea. Prin intermediul acestei interfeţe între baza de date şi
vedere se pot realiza şi transferurile de valori în sens invers, de la tabela virtuală
către tabela fizică, dar numai în cazul în care destinaţia datelor în baza de date nu
este ambiguă.
Regula 7. Regula limbajului de nivel înalt - afirmă că pentru a fi relaţional un
SGBD trebuie să posede un limbaj de nivel înalt care să permită realizarea
operaţiilor de actualizare a bazei de date la nivelul unei relaţii, aşa cum un limbaj
de interogare permite operaţia de consultare a bazei de date.
Regula 8. Regula independenţei fizice a datelor - afirmă că aplicaţiile care
utilizează o bază de date relaţională nu trebuie să fie influenţate de modificarea
modului de memorare a datelor în memoria externă sau de modul de acces fizic la
date. Această proprietate este garantată de respectarea autonomiei fizice a datelor
din baza de date.
Regula 9. Regula independenţei logice a datelor - afirmă că aplicaţiile care
utilizează o bază de date relaţională nu trebuie să fie afectate de modificarea
schemei relaţionale a bazei de date. Modificarea organizării logice a datelor fără
afectarea programelor de aplicaţie este posibilă datorită autonomiei logice a datelor
din baza de date relaţională.
Regula 10. Regula independenţei mecanismului pentru integritatea datelor -
afirmă că un SGBD relaţional trebuie să asigure independenţa mecanismului de
integritate a bazei de date prin memorarea restricţiilor de integritate în afara
codului de aplicaţie, solidar cu datele din baza de date. În acest fel SGBDR asigură
verificarea automată a respectării regulilor de integritate la actualizarea bazei de
date independent de modul de proiectare a aplicaţiilor utilizator.
Regula 11. Regula independenţei datelor faţă de distribuirea geografică a lor -
afirmă că în cazul utilizării unei baze de date relaţionale în care datele sunt
distribuite SGBD trebuie să asigure gestionarea datelor distribuite într-o manieră
transparentă pentru utilizator şi fără să afecteze cumva programele de aplicaţie. Nu
trbuie să fie necesară modificarea codului de aplicaţie atunci când datele sunt
stocate pe staţii diferite dintr-o reţea de calculatoare.
Regula 12. Regula limbajului procedural (de nivel scăzut) - afirmă că dacă un
SGBDR acceptă un limbaj procedural, de obicei de nivel scăzut, care să permită
prelucrarea tabelelor din baza de date la nivel de tuplu şi nu de relaţie, acest limbaj
nu trebuie utilizat în vederea ocolirii funcţiilor SGBDR de asigurare a integrităţii şi
consistenţei bazei de date. El trebuie să respecte aceleaşi reguli şi restricţii de lucru
cu baza de date relaţională pe care le implementează SGBD prin componentele
sale.
Regulile lui Codd oferă criterii de analiză şi de clasificare a diferitelor SGBDR,
în funcţie de modul în care acestea le respectă. Indiferent de măsura în care
respectă regulile lui Codd, cerinţele considerate minimale pentru un SGBDR sunt:

34
- organizarea în relaţii a datelor din baza de date;
- între tabelele bazei de date să nu existe pointeri gestionaţi în mod
explicit de utilizatori;
- dintre operatorii relaţionali să fie implementaţi operatorul de selecţie,
de proiecţie şi de uniune naturală1.
Un SGBD este considerat complet relaţional dacă este un SGBDR minimal şi,
în plus:
- asigură toate operaţiile de bază ale algebrei relaţionale;
- asigură regula entităţii, regula unicităţii cheii precum şi restricţia
referenţială.
Toate aceste caracteristici care definesc un SGBDR vor fi prezentate în continuare.
Modelul relaţional a pornit de la un concept matematic: noţiunea de relaţie din
teoria mulţimilor şi de la un model teoretic fundamentat matematic: modelul
algebrei relaţionale. Avantajele utilizării acestui model matematic pentru
dezvoltarea unui model de organizare a datelor într-o bază de date sunt
următoarele:
- oferă un instrument de studiu teoretic al proprietăţilor logice ale bazelor de
date relaţionale, care are avantajul că permite proiectantului bazelor de date
să ia o decizie privind cea mai bună cale de proiectare a unei baze de date
relaţionale precum şi calea optimă de utilizare a ei, pornind de la
proprietăţile teoretice ale modelului de organizare a datelor folosit; pe
aceste proprietăţi teoretice se bazează şi metodele de proiectare a
sistemelor informatice ce utilizează baze de date relaţionale;
- deşi iniţial el a fost considerat doar un instrument teoretic pentru studiul
proprietăţilor bazelor de date, pe măsura dezvoltării accelerate a
performanţelor echipamentelor de calcul electronic s-a constatat că
modelul relaţional poate fi implementat ca o soluţie viabilă de organizare a
datelor şi de proiectare a unui SGBD corespunzător; acest model oferă o
manieră simplă de formalizare a structurii bazei de date şi un sistem de
reguli clare privind modul de organizare a datelor în baza de date;
- operarea asupra datelor din baza de date se realizează prin intermediul
operaţiilor interne mulţimii relaţiilor; acest lucru face posibilă formalizarea
matematică a acestor operaţii, implementarea lor în funcţiile SGBD şi
gestionarea lor automată, sub controlul componentelor specializate ale
SGBD (motorul SGBD); în felul acesta este posibilă standardizarea şi
optimizarea operaţiilor de acces la datele din baza de date relaţională,
modelul relaţional al bazei de date asigurând în totalitate independenţa
fizică a datelor din baza de date;
- dezvoltarea unor limbaje de manevrare a datelor neprocedurale, care
implementează setul de operaţii interne ale modelului matematic prin
intermediul unor cereri ce pot fi formulate descriptiv şi nu procedural, a
permis deschiderea SGBD relaţionale către categoria utilizatorilor

1
vezi subcapitolul următor

35
neinformaticieni, fapt pentru care majoritatea SGBD-urilor comerciale
dezvoltate în ultimii ani se bazează pe modelul de date relaţional;
- analiza teoretică a modului de organizare şi a proprietăţilor bazei de date
relaţionale, pornind de la un model fundamentat matematic, garantează
calitatea algoritmilor implementaţi în definirea modelului de organizare a
datelor în bazele de date relaţionale şi în generarea componentelor de
gestiune a datelor din SGBD-ul relaţional;
- SGBD-ul relaţional a putut să fie dezvoltat unitar, ca un sistem
independent de platforma de calcul pe care funcţionează, pornind de la
conceptele şi modelele matematice folosite; acest lucru a permis
dezvoltarea de variante de SGBD-uri portabile precum şi a tehnicilor de
conectare prin date a bazelor de date relaţionale gestionate de SGBD-uri
diferite (interconectivitatea aplicaţiilor dezvoltate pe baze de date
relaţionale).
Deşi criticat pentru unele imperfecţiuni ale sale şi preluat cu destulă dificultate la
început, modelul relaţional s-a impus în faţa celor anterioare (ierarhic şi reţea) fiind
adoptat în anii '80 de majoritatea cercetătorilor şi programatorilor din domeniu, ca
cel mai bun model disponibil la acea vreme pentru baze de date. Această utilizare
pe scară largă a modelului relaţional se menţine încă şi se datorează, în primul
rând, proprietăţilor sale principale:
- simplitatea definirii sale, dublată de o mare rigurozitate din punct de
vedere matematic;
- independenţa faţă de sistemul de calcul, fapt care a permis o mare
răspândire şi o rapidă dezvoltare a variantelor sale;
- deschiderea accentuată către utilizatorii neinformaticieni, inclusiv prin
mijloacele mult îmbunătăţite de asigurare a consistenţei, integrităţii şi
siguranţei bazei de date.
Simplitatea modelului constă în faptul că este uşor de înţeles atât de specialişti
cât şi de utilizatori. Datele şi legăturile dintre date sunt reprezentate explicit
utilizând o structură logică ce poartă numele de relaţie.
Independenţa faţă de sistemul de calcul constă tocmai în definirea sistemului
relaţional pornind de la abstractizarea matematică ce a făcut ca acest sistem să fie
mai întâi fundamentat teoretic, independent de implementările particulare
ulterioare.
Accesibilitatea în faţa utilizatorilor neinformaticieni este asigurată, în primul
rând, de folosirea limbajelor de interogare, care sunt limbaje neprocedurale,
descriptive, apropiate de modalitatea naturală de formulare a unei cereri.
În modelul relaţional datele din baza de date sunt organizate în relaţii. Noţiunea
de relaţie se defineşte matematic drept o submulţime a produsului cartezian a unei
liste finite de mulţimi, numite domenii. Un element al relaţiei, numit tuplu, este
definit, conform definiţiei produsului cartezian de mulţimi, ca un set ordonat de
elemente aparţinând domeniilor. Numărul domeniilor, care nu trebuie să fie
neapărat distincte, defineşte aritatea sau gradul relaţiei. În cadrul unei relaţii, un
domeniu se identifică printr-un nume (numit atribut şi notat cu A) şi se
particularizează prin setul de valori ale acestui atribut (a1, a2, a3, …).

36
Mulţimea tuturor atributelor unei relaţii R defineşte schema relaţiei care se
notează cu R(A1,A2,…,An). Cu un exces de notaţie se poate simboliza la fel atât
relaţia cât şi schema acestei relaţii, ceea ce pune în evidenţă numele relaţiei,
aritatea ei (n în exemplul dat) şi mulţimea atributelor sale.
Prin urmare, o relaţie de aritate n este o mulţime de tupluri de câte n elemente
fiecare, în care fiecare element al unui tuplu aparţine, respectiv, câte unuia dintre
cele n domenii şi reprezintă o valoare a atributului care desemnează acel domeniu.
Cum tuplurile sunt elemente ale unei mulţimi, din proprietăţile unei mulţimi rezultă
următoarele proprietăţi ale tuplurilor unei relaţii:
- nu contează ordinea de apariţie a tuplurilor în relaţie; bazat pe această
proprietate, ordinea tuplurilor în relaţie poate fi modificată pentru a obţine
o reprezentare convenabilă a relaţiei;
- două tupluri diferite ale relaţiei trebuie să difere între ele; în consecinţă, un
tuplu al unei relaţii se poate identifica prin conţinutul său (valorile pe care
le înregistrează, pentru toate atributele relaţiei); această proprietate se află
la originea conceptului de cheie a unei relaţii.
O relaţie mai poate fi definită şi cu ajutorul funcţiilor. Se numeşte relaţie
mulţimea funcţiilor diferite, definite fiecare pe mulţimea atributelor şi cu valori în
mulţimea determinată de reuniunea domeniilor, astfel încât pentru fiecare funcţie
valoarea funcţiei pentru un atribut să aparţină domeniului definit de atributul
respectiv. Din definiţia cu funcţii a relaţiei rezultă că nu contează ordinea în care
apar atributele relaţiei ci contează numai ca această ordine să fie aceeaşi pentru
toate funcţiile care definesc relaţia. Pentru a realiza o corespondenţă între cele două
definiţii ale relaţiei, unui tuplu al relaţiei din definiţia cu mulţimi îi corespunde
mulţimea valorilor unei funcţii din definiţia cu funcţii a relaţiei, cu condiţia ca
ordinea atributelor să fie aceeaşi în relaţiile descrise de ambele definiţii.
Se numeşte cheie a unei relaţii atributul sau mulţimea de atribute ale relaţiei ale
căror valori la nivelul unui tuplu identifică unic acel tuplu în cadrul relaţiei şi care
nu include o submulţime proprie (inclusă strict) de atribute cu aceeaşi proprietate.
Din definiţia cheii unei relaţii rezultă că prin înlăturarea oricărui atribut din cheie
setul de atribute rămas nu mai are proprietatea de identificare unică a tuplului
relaţiei; în consecinţă, este necesar ca fiecare atribut al cheii să aibă atribuită o
valoare în orice tuplu, pentru ca valoarea cheii să permită identificarea unică a
fiecărui tuplu. În legătură cu cheia unei relaţii se fac următoarele observaţii:
- orice relaţie are cel puţin o cheie; la limită, cheia este formată din toate
atributele relaţiei;
- în general, pentru o relaţie se identifică mai multe chei ale relaţiei; acestea
se numesc chei candidat;
- dintre toate cheile unei relaţii se alege una singură, de obicei cea care
conţine numărul minim de atribute, şi se desemnează drept cheie primară a
relaţiei; celelalte chei candidat se numesc chei alternante;
- cheia primară este folosită pentru identificarea, în mod unic, a fiecărui
tuplu al relaţiei;
- cheia unei relaţii are un caracter atomic, adică ea trebuie abordată integral:
sau se atribuie valori tuturor atributelor cheii şi atunci ea poate identifica

37
un tuplu din relaţie, sau toate atributele au valoare nedeterminată şi cheia
nu poate referi nici un tuplu.
Modelul relaţional defineşte o structură de date organizate în relaţii, unde o
relaţie corespunde unui grup de entităţi omogene (obiecte ale lumii înconjurătoare
având aceleaşi proprietăţi) sau unui set unitar de legături între entităţi. Mulţimea
relaţiilor formează baza de date relaţională iar mulţimea schemelor relaţiilor
defineşte schema bazei de date relaţionale.
De exemplu, datele referitoare la exemplarele consultate de cititorii unei
biblioteci, în toate sălile de lectură, pot fi memorate în relaţiile definite de
următoarele scheme de relaţie:
Cititor(Nr-leg, CNP, nume, prenume, adresă, telefon)
Exemplar(Cod_ex, Cota, preţ)
Carte(Cota, ISBN, titlu, autori)
Sala( Număr_sală, tip, capacitate)
Consultă(Nr-leg, Cod_ex, Cota, Număr_sală, data, ora, stare)

Relaţiile Cititor, Sala, Carte şi Exemplar definesc seturile corespunzătoare de


entităţi omogene. Relaţia Consultă defineşte legătura dintre relaţiile
corespunzătoare entităţilor Cititor, Exemplar şi Sala. Trebuie spus că pentru
stabilirea corectă a relaţiilor şi a cheilor acestora este obligatorie precizarea
semanticii atributelor şi a legăturilor logice dintre atribute.
O clasificare a regulilor de integritate ale bazei de date are în vedere importanţa
lor pentru asigurarea consistenţei bazei de date; din acest punct de vedere se
identifică setul minimal de reguli de integritate. De exemplu, în cazul bazelor de
date relaţionale, regulile de integritate minimale sunt:
- regula unicităţii cheii: valoarea cheii primare pentru fiecare înregistrare
a unei tabele a bazei de date trebuie să fie unică;
- regula entităţii: toate câmpurile ce fac parte din cheia primară a unei
tabele trebuie să aibă atribuite valori în orice înregistrare din tabelă;
- regula integrităţii referenţiale: orice valoare atribuită unei chei străine,
într-o tabelă, trebuie să se regăsească în tabela în care cheia respectivă
este cheie primară1.
În fiecare relaţie se stabilesc cheile candidat şi se desemnează cheia primară a
relaţiei; în legătură cu cheia primară a unei relaţii se fac următoarele observaţii:
- cheia primară diferă de cheile alternante numai din punct de vedere
operaţional: cheia primară este folosită de SGBD pentru identificarea
unică a tuplurilor unei relaţii şi pentru operaţiile de căutare în cadrul
unei relaţii din baza de date;
- cheia primară este stabilită de proiectantul bazei de date şi este
comunicată SGBD la generarea bazei de date, de exemplu prin
intermediul LDD;

1
Velicanu M.,Bodea C.,Lungu I.,Ioniţă C.,Bădescu G. - "Sisteme de gestiune a bazelor de
date", Editura Petrion, Bucureşti, 2000

38
- cheia primară este folosită pentru identificarea, în mod unic, a fiecărui
tuplu al relaţiei; în acest scop, asupra cheii primare trebuie impuse ca
restricţii regula unicităţii cheii şi regula entităţii; restricţia privind
unicitatea valorii cheii primare la nivelul relaţiei semnifică faptul că nu
este permis ca într-o relaţie să existe două tupluri având aceeaşi
valoare pentru atributele cheii primare; regula entităţii impune
restricţia privind neacceptarea valorilor nedefinite pentru atributele
cheii primare în nici un tuplu al relaţiei;
- odată definită ca şi cheie primară, SGBD verifică respectarea restricţiei
de unicitate a cheii şi a regulii entităţii de către această cheie;
- prin convenţie, în modelul de descriere a relaţiilor, cheile primare sunt
subliniate.
Se defineşte drept cheie străină a unei relaţii mulţimea atributelor relaţiei care
au proprietatea că domeniile pe care le definesc se regăsesc în altă relaţie, ca
domenii pe care este definită cheia primară a relaţiei respective. Prin intermediul
cheilor străine se realizează definirea legăturilor logice dintre perechi de relaţii,
într-o bază de date relaţională. În acest scop, cheia străină trebuie să îndeplinească
următoarele restricţii:
- nu există două tupluri ale unei relaţii care să difere numai prin valoarea
cheii străine
- restricţia referenţială, care cere ca în cadrul fiecărui tuplu al relaţiei în
care apare, cheia străină să aibă: fie valoare nedeterminată, fie valoarea
cheii primare a unui tuplu din relaţia de care este legată logic prin
această cheie.
Pentru a asigura consistenţa bazei de date relaţionale, SGBD trebuie să poată
asigura respectarea restricţiei referenţiale.
În modelul relaţional legăturile dintre relaţii se pot defini în două moduri:
- prin propagarea cheilor de la o relaţie la alta, în cazul unor legături
binare de tip unu-la-unu sau unu-la-mai-mulţi;
- prin definirea unei noi relaţii, în cazul unor legături binare de tip mai-
mulţi-la-mai-mulţi sau în cazul unor legături care implică mai mult de
două relaţii.
În cazul unei legături binare de tip unu-la-unu, unui tuplu din prima relaţie îi
poate corespunde un singur tuplu din a doua relaţie. În cazul unei legături binare de
tip unu-la-mai-mulţi, unui tuplu din prima relaţie îi pot corespunde mai multe
tupluri din a doua relaţie. Tuplul din prima relaţie se identifică prin cheia primară a
acestei relaţii. Definirea legăturii logice prin propagarea cheii primare se realizează
prin adăugarea, în a doua relaţie, a atributelor cheii primare din prima relaţie,
definind astfel în a doua relaţie o cheie străină care corespunde cheii primare din
prima relaţie. Dacă se impune restricţia referenţială cheii străine, atunci se poate
identifica orice legătură logică între un tuplu din prima relaţie (tuplu referit prin
cheia primară) şi tupluri din a doua relaţie (tupluri care referă cheia primară prin
intermediul valorii cheii străine). Atributele prin care se stabileşte legătura între
cele două relaţii aparţin unor domenii compatibile, adică domenii echivalente
semantic şi ale căror mulţimi de valori nu sunt disjuncte. De exemplu, legătura

39
unu-la-mai-mulţi dintre relaţia Cititor şi relaţia Exemplar, cu privire la cărţile
împrumutate de fiecare cititor la un moment dat, se defineşte prin intermediul cheii
primare din relaţia Cititor care devine cheie străină în relaţia Exemplar, conform
următoarelor scheme de relaţie:

Cititor(Nr-leg, CNP, nume, prenume, adresă, telefon)


Exemplar(Cod_ex, Cota, preţ, Nr-leg, data_i)

Se pot determina cărţile împrumutate de un cititor prin selectarea din relaţia


Exemplar a tuturor tuplurilor pentru care valoarea atributului Nr_leg este egală cu
valoarea Nr_leg a cititorului. Se poate determina şi data la care a fost împrumutat
fiecare exemplar, din valoarea atributului data_i al relaţiei Exemplar. Modelul
definit permite evidenţa tuturor exemplarelor împrumutate, fără să se memoreze şi
istoricul acestor împrumuturi. Invers, legătura unu-la-mai-mulţi dintre relaţia
Exemplar şi relaţia Cititor cu privire la toţi cititorii care au împrumutat o carte se
defineşte prin intermediul cheii primare din relaţia Exemplar care devine cheie
străină în relaţia Cititor, conform următoarelor scheme de relaţie:

Cititor(Nr_leg, CNP, nume, prenume, adresă, telefon, Cod_ex, Cota, data_i)


Exemplar(Cod_ex, Cota, preţ)

Se pot determina toţi cititorii care au împrumutat o carte, prin selectarea din
relaţia Cititor a tuturor tuplurilor pentru care valoarea atributelor Cod_ex şi Cota
sunt egale fiecare cu valoarea ce identifică unic cartea dorită. Se observă că, pentru
a putea preciza data când cititorul a împrumutat exemplarul, trebuie adăugat în
relaţia Cititor atributul data_i. În această variantă, în cazul unui cititor care
împrumută de mai multe ori acelaşi exemplar se va memora numai data ultimului
împrumut.
Legătura reflexivă se defineşte ca legătura logică între tupluri ale aceleiaşi
relaţii. Acest tip de legătură poate fi tratată ca un caz particular al legăturii binare,
prin introducerea, încă o dată, în schema relaţiei a atributelor care definesc cheia
primară a relaţiei, de această dată pentru definirea cheii străine. Legătura reflexivă
se modelează astfel: cheia străină a relaţiei este cheia tuplului care referă iar cheia
primară a relaţiei este cheia tuplului referit. Şi în acest caz, cheia străină trebuie să
respecte restricţia referenţială. De exemplu, legătura dintre bibliotecarul şef de
secţie şi bibliotecarii subordonaţi se implementează prin relaţia:

Bibliotecar(Marca, nume, prenume, marca_c)

Se pot determina toţi subordonaţii unui bibliotecar prin selectarea din relaţia
Bibliotecar a tuplurilor pentru care atributul marca_c are valoarea egală cu valoarea
mărcii bibliotecarului considerat. Marca_c este cheie străină în relaţia Bibliotecar
şi, prin intermediul ei, se modelează legătura reflexivă. Restricţia referenţială se
aplică astfel: în cazul în care un bibliotecar nu este subordonat nimănui, atributul
marca_c corespunzător nu va avea atribuită nici o valoare. În caz contrar, valoarea

40
atributului marca_c trebuie să fie egală cu una dintre valorile atributului Marca din
relaţia Bibliotecar.
Legătura de tip mai-mulţi-la-mai-mulţi dintre două relaţii nu se mai poate
defini prin metoda propagării cheilor ci se defineşte prin intermediul unei noi
relaţii. Prin intermediul acestei noi relaţii se modelează, practic, două relaţii de tip
unu-la-mai-mulţi care se tratează împreună, adică noua relaţie trebuie să permită
identificarea fiecărei perechi de legături unu-la-mai-mulţi care defineşte câte o
legătură mai-mulţi-la-mai-mulţi. În acest scop, noua relaţie trebuie să conţină toate
atributele corespunzătoare cheilor primare ale celor două relaţii, atribute care
determină cheia primară a noii relaţii. De exemplu, legătura de tip mai-mulţi-la-
mai-mulţi dintre relaţia Cititor şi relaţia Exemplar care ilustrează faptul că un
cititor poate imprumuta la un moment dat mai multe exemplare şi că un exemplar
poate fi împrumutat, în timp, la mai mulţi cititori, se descrie prin definirea noii
relaţii Împrumută, conform următoarelor scheme de relaţie:

Cititor(Nr_leg, CNP, nume, prenume, adresă, telefon)


Exemplar(Cod_ex, Cota, preţ)
Împrumută(Nr_leg, Cod_ex, Cota,data_i)

Se pot determina toţi cititorii care au împrumutat un exemplar, prin selectarea


din relaţia Împrumută a tuplurilor care au valoarea dorită pentru atributul Cod_ex şi
pentru atributul Cota. Se observă că în acest caz se poate preciza, cu privire la
fiecare cititor, data la care a împrumutat exemplarul. Se pot determina toate cărţile
împrumutate de un cititor, prin selectarea din relaţia Împrumută a tuplurilor în care
valoarea atributului Nr_leg este egală cu valoarea Nr_leg a cititorului. În acest caz
se poate preciza data împrumutului fiecărui exemplar. Nici în acest exemplu nu
este modelat cazul în care un cititor împrumută de mai multe ori acelaşi exemplar.
În cazul în care cele două relaţii au atribute comune în cheile lor primare, aceste
atribute participă de două ori la formarea cheii primare a noii relaţii, câte o dată
pentru fiecare dintre cheile primare din care provin.
Legăturile de ordin mai mare decât doi pot fi modelate prin intermediul unei
noi relaţii. De exemplu, o legătură de ordin n > 2 poate fi privită ca un set de n
legături binare tratate unitar, prin intermediul unei noi relaţii, a cărei cheie primară
se obţine prin compunerea cheilor primare ale tuturor celor n relaţii. În acest scop,
noua relaţie trebuie să conţină atributele tuturor cheilor primare ale celor n relaţii,
atribute care alcătuiesc cheia primară a noii relaţii. În cazul în care, între cele n
relaţii, există unele care au atribute comune în cheile lor primare, aceste atribute
participă la formarea cheii primare a noii relaţii de un număr de ori egal cu numărul
cheilor primare în alcătuirea cărora intră. De exemplu, datele referitoare la
exemplarele consultate de cititorii bibliotecii în sălile de lectură pot fi obţinute din
relaţiile definite de următoarele scheme de relaţie:

Cititor(Nr_leg, CNP, nume, prenume, adresă, telefon)


Exemplar(Cod_ex, Cota, preţ)
Sala( Număr_sală, tip, capacitate)

41
Consultă(Nr_leg, Cod_ex, Cota, Număr_sală, data, ora)

Se poate determina ce cititori se află într-o sală, la un moment dat, prin


selectarea din relaţia Consultă a tuplurilor în care valoarea atributului Număr_sală
este egală cu numărul sălii dorite şi în care valorile atributelor data şi ora sunt cele
dorite. Tuplurile selectate conţin identificatorul pentru toţi cititorii şi toate
exemplarele consultate de fiecare cititor, în acea sală, în momentul considerat.
Pentru a determina toate exemplarele consultate de un anumit cititor, într-o sală, se
selectează tuplurile din relaţia Consultă care au atributul Nr_leg egal cu valoarea
Nr_leg a cititorului şi valoarea atributului Număr_sală egală cu numărul sălii
dorite; se observă că se obţine, pentru fiecare exemplar consultat de cititor, data şi
ora când au fost consultate ultima dată.
În concluzie, se poate spune că o bază de date relaţională reprezintă o mulţime
de relaţii semantic legate între ele, două câte două, prin seturi de atribute comune
ce definesc cheia primară, respectiv cheia străină, pentru fiecare pereche de relaţii.
Într-o bază de date relaţională, o relaţie se poate reprezenta printr-un tabel, în care:
- fiecare linie (rând) reprezintă un tuplu care pentru o relaţie n-ară este
un ansamblu de n elemente;
- fiecare coloană reprezintă un domeniu, numărul de domenii ale relaţiei
determinând aritatea sau gradul relaţiei;
- sunt respectate următoarele reguli:
o fiecare rând al tabelului trebuie să fie diferit de celelalte
(tupluri distincte);
o ordinea rândurilor în tabel nu este predefinită şi poate fi
modificată;
o coloanele tabelului sunt identificate prin nume distincte
reprezentând atributele relaţiei;
o pentru fiecare coloană a tabelului, realizările sunt de
acelaşi fel, constituind un domeniu;
o nu contează ordinea de apariţie a coloanelor în tabel;
o orice tuplu al relaţiei este identificat unic prin intermediul
valorii unui atribut sau a unei combinaţii de atribute care
formează cheia primară pentru relaţia definită de tabelă.
Definirea modelului schemei conceptuale pentru o bază de date relaţională
presupune definirea schemei bazei de date, formată din schemele tuturor relaţiilor
care alcătuiesc baza de date (care includ şi definirea legăturilor logice dintre aceste
relaţii) şi a restricţiilor care definesc regulile de integritate ale bazei de date. Un
model relaţional de baze de date se caracterizează prin trei elemente principale:
1. structura datelor, care presupune definirea unor domenii şi a relaţiilor n-are;
2. integritatea datelor, prin impunerea unor restricţii privitoare la valorile ce pot fi
înregistrate într-un tuplu şi într-o relaţie;
3. corelarea datelor, prin precizarea legăturilor logice care acţionează asupra
datelor şi a naturii acestor legături.

42
3.3.2. Operatorii relaţionali

Pe mulţimea relaţiilor, în accepţiune matematică, se definesc operaţii, prin


intermediul unor operatori interni acestei mulţimi. Se numeşte operator intern
pentru o mulţime operatorul ai cărui operanzi aparţin mulţimii respective, rezultatul
furnizat fiind tot din mulţime. Pentru mulţimea relaţiilor, operatorii interni se
numesc operatori relaţionali.
Aceste operaţii sunt folosite pentru formalizarea limbajului de cereri al
SGBDR. Ele sunt implementate, integral sau parţial, în funcţiile de manevrare a
datelor ale SGBDR şi sunt oferite utilizatorilor bazei de date relaţionale prin
intermediul comenzilor limbajului de manevrare a datelor sau a limbajului de
interogare ale SGBDR.
Operatorii relaţionali ce stau la baza limbajelor de manevrare a datelor din
bazele de date relaţionale se împart în două categorii, după modul în care sunt
definiţi: de bază şi derivaţi. În funcţie de categoria de operatori relaţionali pe care îi
utilizează, limbajele de cerere pentru bazele de date relaţionale pot fi: limbaje
bazate pe algebra relaţională şi limbaje bazate pe calculul predicatelor.
În cadrul algebrei relaţionale, definite pe mulţimea relaţiilor cu un număr finit
de tupluri, se definesc un set de operaţii de bază, realizate cu operatori relaţionali
numiţi operatori de bază. Pornind de la operaţiile de bază, pot fi definite şi alte
operaţii, numite operaţii derivate.
Limbajul de manevrare a datelor bazat pe operaţiile algebrei relaţionale este un
limbaj procedural. O cerere de consultare a bazei de date se transformă într-o
succesiune de operaţii ale algebrei relaţionale care se aplică relaţiilor din baza de
date. Fiind operaţii interne, rezultatul furnizat de fiecare operaţie este tot o relaţie,
fapt care permite înlănţuirea acestor operaţii.
Se numeşte limbaj complet un limbaj de manevrare a datelor care
implementează tot setul operatorilor de bază din algebra relaţională. Operaţiile de
bază definite în algebra relaţională sunt:
1. Reuniunea relaţiilor.
2. Diferenţa relaţiilor.
3. Produsul cartezian al relaţiilor.
4. Proiecţia unei relaţii.
5. Selecţia unei relaţii.
Operaţiile derivate din operaţiile de bază sunt:
1. Intersecţia relaţiilor.
2. Câtul relaţiilor.
3. Uniunea relaţiilor.
4. Uniunea naturală a relaţiilor.
5. Uniunea externă a relaţiilor.

Reuniunea se defineşte între două relaţii care au aceeaşi schemă definită pentru
aceleaşi domenii. Rezultatul reuniunii celor două relaţii este o relaţie cu aceeaşi
schemă, definită pentru aceleaşi domenii, care conţine toate tuplurile celor două

43
relaţii, considerate o singură dată. Schema reuniunii relaţiilor R(A1,A2,…,An) şi
S(A1,A2,…,An) este: (R U S)(A1,A2,…,An). Dacă se consideră relaţiile R şi S cu
aceeaşi schemă R(vocale, consoane, cifre), S(vocale, consoane, cifre), rezultatul
reuniunii R U S va fi următorul:
a x 4
a x 4 e y 6
e f 2
e y 6 ∪ = i z 8
o h 5
i z 8 e f 2
o h 5

Diferenţa se defineşte între două relaţii care au aceeaşi schemă definită pentru
aceleaşi domenii. Rezultatul diferenţei celor două relaţii este o relaţie cu aceeaşi
schemă, definită pentru aceleaşi domenii, care conţine toate tuplurile din prima
relaţie ce nu aparţin celei de-a doua relaţii. Schema diferenţei relaţiilor
R(A1,A2,…,An) şi S(A1,A2,…,An) este (R \ S)(A1,A2,…,An). Spre exemplificare se
consideră relaţiile R şi S cu aceeaşi schemă, R(vocale, consoane, cifre), S(vocale,
consoane, cifre); rezultatul diferenţei R \ S va fi:

a x 4
e y 6 a x 4
e y 6 \ =
o h 5 i z 8
i z 8

Produsul cartezian se defineşte între două relaţii R(A1,A2,…,Ar), de aritate r şi


S(B1,B2,…,Bs), de aritate s, care au schema definită pentru domenii oarecare.
Rezultatul produsului cartezian al celor două relaţii este o relaţie de aritate r+s care
conţine toate tuplurile ce pot fi formate prin concatenarea unui tuplu din R cu câte
un tuplu din S. Schema produsului cartezian dintre relaţiile R(A1,A2,…,Ar) şi
S(B1,B2,…,Bs) este (RxS)(A1,A2,…,Ar,B1,B2,…,Bs). Pentru exemplificare, fie
relaţiile R(vocale,consoane,cifre) şi S(par,impar); produsul cartezian va fi o relaţie
cu schema (R x S) (vocale,consoane,cifre, par,impar).

a x 4 6 3
a x 4 e y 6 6 3
6 3
e y 6 X = i z 8 6 3
8 1 a x 4 8 1
i z 8
e y 6 8 1
i z 8 8 1

44
Dacă schemele relaţiilor R şi S au atribute comune, atunci în schema
produsului cartezian apar de două ori aceleaşi atribute. Pentru a nu produce
confuzii, atributele respective pot fi calificate cu numele relaţiei din care provin sau
pot fi redenumite.
Proiecţia se defineşte pentru o relaţie R(A1,A2,…,Ar) de aritate r şi pentru o
submulţime de atribute din schema acestei relaţii P={P1,P2,…,Pi} cu i < r şi P ⊂ A
pentru A={A1,A2,…,Ar} . Rezultatul proiecţiei relaţiei după această subschemă de
atribute este relaţia de aritate i, cu schema P, care conţine toate tuplurile cu
proprietatea că provin din tuplurile relaţiei R prin înlăturarea valorilor atributelor
din A \ P. Schema relaţiei rezultată prin proiecţia relaţiei R(A1,A2,…,Ar) după
atributele din P={P1,P2,…,Pi} este de forma:

( ∏ P R ) ( P ,P ,…,P ).
1 2 i

Fie relaţia R(vocale,consoane,cifre) şi mulţimea P={vocale,cifre}. Schema


relaţiei rezultate prin proiecţie este ( ∏P
R ) (vocale,cifre), exemplificată astfel:

a x 4 a 4
R= e y 6 , ∏
vocale , cifre(R) = e 6
i z 8 i 8

Selecţia se defineşte pentru o relaţie R(A1,A2,…,Ar) de aritate r şi pentru o


expresie logică e aplicată asupra tuplurilor relaţiei. Rezultatul selecţiei relaţiei R în
raport cu această expresie este o relaţie având aceeaşi schemă şi care conţine toate
tuplurile din R pentru care expresia e este adevărată. Schema relaţiei rezultate prin
selecţia relaţiei R(A1,A2,…,Ar) pentru expresia e este de forma:

( σ R)(A ,A ,…,A ).
e 1 2 r

Expresia e poate fi definită şi pe un subdomeniu al schemei relaţiei. Expresia e se


defineşte cu ajutorul operatorilor de comparare sau al celor logici. Pentru relaţia
R(vocale,consoane,cifre) şi expresia vocale < consoane1 rezultatul selecţiei este
următorul:

1
Compararea caracterelor se va face pe baza valorilor din codul ASCII.

45
a x 4
R= e b 6 , σ vocale <consoane (R) =
a
i
x
m
4
8
i m 8

Intersecţia se defineşte între două relaţii care au aceeaşi schemă definită pentru
aceleaşi domenii. Rezultatul intersecţiei celor două relaţii este o relaţie cu aceeaşi
schemă definită pentru aceleaşi domenii care conţine toate tuplurile care aparţin, în
acelaşi timp, ambelor relaţii. Schema intersecţiei relaţiilor R(A1,A2,…,An) şi
S(A1,A2,…,An) este: (R ∩ S)(A1,A2,…,An). Intersecţia este o operaţie derivată din
diferenţă, deoarece: (R ∩ S)(A1,A2,…,An) = (R\(R \ S))(A1,A2,…,An). Dacă se
consideră relaţiile R şi S cu aceeaşi schemă R(vocale, consoane, cifre), S(vocale,
consoane, cifre), rezultatul intersecţiei R ∩ S va fi următorul:

a x 4
e y 6
e y 6 ∩ = e y 6
o h 5
i z 8

Câtul se defineşte între două relaţii Q(A1,A2,…,Aq), de aritate q şi


S(B1,B2,…,Bs), de aritate s care îndeplinesc condiţiile: q > s, s ≠ 0 şi schema
relaţiei Q include strict schema relaţiei S, adică B ⊂ A, pentru B={B1,B2,…,Bs} şi
A={A1,A2,…,Aq}. Rezultatul câtului celor două relaţii este o relaţie de aritate q-s,
cu schema definită pentru A \ B, care conţine toate tuplurile de q-s elemente care,
completate cu câte un tuplu din S, determină un tuplu din Q. Schema relaţiei
obţinute din câtul dintre relaţiile Q(A1,A2,…,Aq) şi S(B1,B2,…,Bs) este de forma:
(Q / S)(P1,P2,…,Pq-s), unde, dacă P={ P1,P2,…,Pq-s }, atunci P=A\B. Câtul este
operaţia inversă produsului cartezian, în sensul că: (R x S)/R = S şi (R x S)/S = R.
Pentru relaţiile Q(vocale,consoane,cifre,par,impar) şi S(vocale,consoane,cifre)
câtul Q / S va fi:

a x 4 6 3
e y 6 6 3
a x 4
i z 8 6 3 6 3
/ e y 6 =
a x 4 8 1 8 1
i z 8
e y 6 8 1
i z 8 8 1

46
Uniunea se defineşte între două relaţii R(A1,A2,…,Ar), de aritate r şi
S(B1,B2,…,Bs), de aritate s, pentru condiţia c(i,j). Rezultatul uniunii celor două
relaţii este o relaţie de aritate r+s, cu schema definită pentru A U B, unde
A={A1,A2,…,Ar} şi B={B1,B2,…,Bs}, care conţine toate tuplurile produsului
cartezian al relaţiilor R şi S pentru care este îndeplinită condiţia c(ai,bj), unde ai este
valoarea atributului Ai din tuplu şi bj este valoarea atributului Bj din tuplu. Schema
relaţiei obţinute prin uniunea dintre relaţiile R(A1,A2,…,Ar) şi S(B1,B2,…,Bs) este
de forma:
(R |>< | S)(A ,A ,…,A B ,B ,…,B ).
1 2 r, 1 2 s

c(i, j )
Operaţia de uniune mai este numită join. În cazul în care condiţia c(i,j) este de
forma ai=bj, atunci uniunea poartă numele de echiuniune. În cazul în care se
consideră proiecţia uniunii, după atributele primei relaţii, atunci operaţia poartă
numele de semi-uniune stângă şi schema ei relaţională este de forma:
(R| |><| S)(A ,A ,…,A ).
1 2 r

c(i, j )
În cazul în care se consideră proiecţia uniunii, după atributele celei de-a doua
relaţii, atunci operaţia poartă numele de semi-uniune dreaptă şi schema ei
relaţională este de forma:
(R |><| |S)( B ,B ,…,B ).
1 2 s

c(i, j )
Uniunea este o operaţie obţinută prin aplicarea selecţiei pentru expresia
e=c(ai,bj) asupra produsului cartezian al relaţiilor R şi S:

(R |>< | S)(A ,A ,…,A B ,B ,…,B )= ( σ


1 2 r, 1 2 s e (R x S))( A1,A2,…,Ar,B1,B2,…,Bs).
c(i, j )

Plecând de la relaţiile R(vocale,consoane,cifre) şi S(par,impar) se obţine


uniunea în doi paşi prin intermediul operaţiilor de bază produs cartezian şi selecţie.
Pasul 1. Se face produsul cartezian R(vocale,consoane,cifre) x S(par,impar) =
T(vocale,consoane,cifre,par,impar)

47
a x 4 6 3

e y 6 6 3
a x 4
6 3 i z 8 6 3
e y 6 X =
8 1 a x 4 8 1
i z 8
e y 6 8 1

i z 8 8 1

Pasul 2. Se realizează selecţia asupra relaţiei T după condiţia cifre<par1, adică se


filtreaza tuplurile relaţiei T conform condiţiei cifre<par:

a x 4 6 3
e y 6 6 3 a x 4 6 3
i z 8 6 3
σ = a x 4 8 1
cifre< par a x 4 8 1
e y 6 8 1
e y 6 8 1

i z 8 8 1

Rezultatul obţinut este:

a x 4 a x 4 6 3
6 3
e y 6 ⊗ = a x 4 8 1
cifre<par
8 1
i z 8 e y 6 8 1

Uniunea naturală (natural join) se defineşte între două relaţii R(A1,A2,…,Ar),


de aritate r şi S(B1,B2,…,Bs), de aritate s, care au o submulţime de atribute comune

1
Compararea caracterelor se va face pe baza valorilor din codul ASCII.

48
în schema lor relaţională. Fie A={A1,A2,…,Ar}, B={B1,B2,…,Bs} şi P=A ∩ B, cu
P={P1,P2,…,Pp}, mulţimea atributelor comune celor două relaţii. Uniunea naturală
a relaţiilor R şi S este obţinută din mulţimea tuplurilor produsului cartezian dintre
R şi S , pentru care atributele comune din cele două relaţii au valori egale, asupra
căreia se realizează o proiecţie, după atributele mulţimii (A U B).
Rezultatul uniunii naturale a celor două relaţii este o relaţie de aritate r+s-p, cu
schema definită pentru (A U B) = {A'1,A'2,…,A'r+s-p}. Schema relaţiei obţinute prin
uniunea naturală dintre relaţiile R(A1,A2,…,Ar) şi S(B1,B2,…,Bs) este de forma:

(R |><| S)( A' ,A' ,…,A'


1 2 r+s-p).

Uniunea naturală este o operaţie obţinută prin aplicarea proiecţiei pentru (A U


B) asupra selecţiei după valorile egale ale atributelor din P asupra produsului
cartezian al relaţiilor R şi S :

(R |><| S)( A' ,A' ,…,A'


1 2 r+s-p)= ( ∏(AUB) ( σ e(P) (R x S)))( A'1, …,A'r+s-p).

Pasul 1. Se realizează produsul cartezian R(vocale,consoane,cifre) x S(cifre,par) =


T(vocale,consoane,cifre, cifre,par).

a x 4 6 4

e y 6 6 4
a x 4
6 4 i z 8 6 4
e y 6 ⊗ =
8 2 a x 4 8 2
i z 8
e y 6 8 2

i z 8 8 2

Pasul 2. Se determină condiţia pentru selecţie.


R = { vocale,consoane,cifre} şi S = {cifre,par} sunt mulţimile atributelor celor
două relaţii. Intersecţia lor {vocale,consoane,cifre} ∩ {cifre,par} = {cifre} va
furniza atributul după care se va face selecţia. Condiţia pentru selecţie va fi ca
valorile pentru atributul cifre din R să fie egale cu valorile pentru atributul cifre din
S, notată cu ajutorul operatorului de calificare . (punct) astfel:

49
R . cifre = S . cifre ,

pentru orice tuplu selectat.

Pasul 3. Se face selecţia asupra produsului cartezian obţinut: T(vocale, consoane,


cifre, cifre, par).

a x 4 6 4

e y 6 6 4
e y 6 6 4
σ i z 8 6 4 =
R.cifre=S.cifre i z 8 8 2
a x 4 8 2

e y 6 8 2

i z 8 8 2

Pasul 4. Se realizează proiecţia asupra relaţiei rezultate din selecţia de la pasul 3


după submulţimea de atribute R U S = {vocale,consoane,cifre,par} astfel:

e y 6 6 4 e y 6 4
∏(vocale, consoane,cifre, par) =
i z 8 8 2 i z 8 2

Rezultatul final al operaţiei de uniune naturală va fi:

a x 4
6 4 e y 6 4
e y 6 ⊗ =
8 2 i z 8 2
i z 8

Uniunea externă (outer join) se defineşte între două relaţii R(A1,A2,…,Ar), de


aritate r şi S(B1,B2,…,Bs), de aritate s, care au o submulţime de atribute comune în
schema lor relaţională. Uniunea externă este o relaţie având aceeaşi schemă cu
uniunea naturală a celor două relaţii şi conţine, pe lângă tuplurile uniunii naturale şi
tuplurile relaţiilor R sau/şi S pentru care nu este îndeplinită condiţia ca atributele

50
comune din cele două relaţii să aibă valori egale. Tuplurile care se adaugă uniunii
naturale sunt selectate după cum urmează:
1. Pentru operaţia de uniune externă stângă (left outer join) se adaugă numai
tuplurile din relaţia R. Se obţine din uniunea naturală, plus tuplurile din prima
relaţie care nu au corespondent în a doua.

a x 4 e y 6 4
6 4
e y 6 |⊗ = i z 8 2
8 2
i z 8 a x 4 null

2. Pentru operaţia de uniune externă dreaptă (right outer join) se adaugă numai
tuplurile din relaţia S. Se obţine din uniunea naturală, plus tuplurile din a doua
relaţie care nu au corespondent în prima.

a x 4 6 4 e y 6 4

e y 6 ⊗| 8 2 = i z 8 2

i z 8 7 6 null null 7 6

3. Pentru operaţia de uniune externă completă (full outer join) se adaugă şi


tuplurile din relaţia R şi tuplurile din relaţia S. Se obţine din uniunea naturală,
plus tuplurile din prima relaţie care nu au corespondent în a doua şi tuplurile
din a doua relaţie care nu au corespondent în prima .

e y 6 4
a x 4 6 4
i z 8 2
e y 6 | ⊗| 8 2 =
a x 4 null
i z 8 7 6
null null 7 6

A doua categorie de operatori interni pentru mulţimea relaţiilor sunt operatorii


oferiţi de calculul relaţional. Calculul relaţional operează asupra relaţiilor prin
intermediul operaţiilor specifice calculului predicatelor. Asupra unei relaţii se
aplică un predicat (o condiţie) care determină mulţimea tuplelor care definesc
relaţia rezultată. Predicatele se referă la proprietăţile pe care trebuie să le
îndeplinească elementele bazei de date. În funcţie de natura elementelor asupra
cărora se formulează condiţiile, calculul relaţional se împarte în:

51
- calculul relaţional pe tupluri;
- calculul relaţional pe domenii.
O cerere de consultare a bazei de date formulate în termenii calculului relaţional
trebuie să realizeze o descriere a rezultatului dorit, prin prisma proprietăţilor
elementelor relaţiei implicate. Aceste elemente sunt fie tupluri fie domenii ale
relaţiei. Prin natura operaţiilor cu care lucrează, calculul relaţional oferă o
modalitate declarativă de formulare a cererilor; de aceea, limbajele de manevrare a
datelor care se bazează pe calculul relaţional sunt limbaje neprocedurale. Încă din
1970, Edgar Codd sugera "adoptarea unui model relaţional de organizare a datelor
care să permită dezvoltarea unui sub-limbaj universal de gestiune a datelor, care să
fie bazat pe calculul predicatelor". Utilitatea unui limbaj "universal" de cerere este
motivată de necesitatea dezvoltării de SGBD portabile, precum şi de necesitatea
comunicării şi a conectării prin date a diferitelor variante de SGBD. Posibilitatea
realizării unui astfel de limbaj pentru accesul la baze de date relaţionale este
asigurată de faptul că, prin intermediul operatorilor relaţionali, accesul la baza de
date este standardizat şi nu depinde decât de mecanismele de operare cu relaţiile
bazei de date prin intermediul acestor operatori. Utilizarea calculului relaţional
pentru formularea limbajului de cerere imprimă caracterul neprocedural acestui
limbaj, fapt care îi măreşte accesibilitatea chiar şi pentru utilizatorii
neinformaticieni.
Calculul relaţional pe tupluri a fost introdus de Edgar Codd. Enunţurile cu care
operează sunt expresii definite asupra unui tuplu, folosind atomi şi operatori.
Atomii sunt enunţuri cu valoare de adevăr de forma:
- "t este un tuplu al relaţiei R";
- "comp(t[i],u[j])" , unde comp este un operator de comparare (egalitate,
inegalitate, mai mare, mai mic), t şi u sunt tupluri iar t[i] şi u[j]
reprezintă elementul i din tuplul t, respectiv elementul j din tuplul u;
- "comp(t[i],c)" , similar cu enunţul precedent, cu c constantă.
Expresiile se construiesc iterativ, pornind de la atomi, prin aplicarea operatorilor:
- conectori (şi, sau, non);
- cuantificatori (existenţial, universal).
Calculul relaţional pe domenii operează tot cu expresii, dar acestea sunt definite pe
domenii; mai precis, utilizează valori ale atributelor ce definesc domeniile.
Corespunzător, accepţiunea noţiunii de atom devine:
- "(a1,a2,…,ar) este un tuplu al relaţiei R", în care R este o relaţie de
aritate r;
- "comp(ai,bj)", ca la calculul relaţional pe tupluri, dar ai este o valoare a
atributului Ai iar bj este o valoare a atributului Bj;
- "comp(ai,c)", ca mai sus, cu c este o constantă.
Expresiile se construiesc în aceeaşi manieră, utilizând aceiaşi operatori.
Formalizând şi fundamentând aceste operaţii cu un aparat teoretic matematic, se
demonstrează că orice expresie din calculul relaţional pe tupluri poate fi

52
transformată într-o expresie echivalentă din calculul relaţional pe domenii şi într-o
expresie echivalentă din algebra relaţională1.
Concluzia este că, pentru a defini un limbaj relaţional de manevrare a datelor,
pot fi utilizaţi oricare dintre operatorii relaţionali prezentaţi. Este unul dintre
motivele pentru care există astăzi o multitudine de SGBDR şi de limbaje de cerere
corespunzătoare lor. Diferenţa se simte, în primul rând, la gradul de accesibilitate
al limbajului generat iar mai apoi la nivelul de resurse necesare.

3.3.3. Normalizarea bazelor de date relaţionale

Pentru proiectarea unei baze de date relaţionale trebuie definită schema bazei
de date, care este formată din schemele relaţiilor bazei de date. În acest scop, se
determină domeniile pe care vor fi definite relaţiile, modul de grupare a lor pentru
delimitarea fiecărei relaţii, legăturile logice din interiorul fiecărei relaţii şi dintre
relaţii. Schema unei relaţii defineşte numele relaţiei şi mulţimea atributelor acelei
relaţii. Prin intermediul schemei unei relaţii se defineşte modul de grupare a datelor
în interiorul relaţiei şi se determină regulile care vor guverna relaţia, definind
restricţiile la care se supun datele şi legăturile logice dintre datele acelei relaţii.
Legăturile logice dintre relaţii sunt definite prin intermediul domeniilor
compatibile care determină atributele comune ale relaţiilor. De modul în care sunt
grupate domeniile în relaţii depinde complexitatea legăturilor care se definesc între
relaţii. Cazurile extreme sunt: definirea unei singure relaţii care include în schema
ei atributele tuturor domeniilor identificate sau definirea numărului maxim de
relaţii posibile care să permită modelarea legăturilor dintre şi din interiorul fiecărei
relaţii. În cazul utilizării unei relaţii prea cuprinzătoare, apar probleme legate de
redundanţa datelor, care antrenează apariţia anomaliilor de actualizare a relaţiei
(anomalia de adăugare, anomalia de ştergere şi anomalia de modificare). De
exemplu, utilizarea relaţiei:

Exemplar(Cod_ex, Cota, preţ, nr_leg, CNP, nume, prenume, adresă, telefon, data)

permite evidenţa tuturor operaţiilor de împrumut curente, realizate de fiecare


cititor. Astfel, pentru fiecare exemplar gestionat în bibliotecă, se generează câte un
tuplu al relaţiei iar în fiecare tuplu se memorează datele cititorului, de fiecare dată
când un cititor împrumută acest exemplar, precizându-se şi data împrumutului. La
returnarea exemplarului împrumutat, tuplul corespunzător este actualizat cu data
returnării şi sunt şterse datele despre cititorul care a returnat exemplarul.
Inconvenientele apar la operaţiile de actualizare a datelor relaţiei:
- se constată, de exemplu, redundanţa datelor relativă la atributele nume şi
prenume cititor, a căror valoare se repetă pentru fiecare exemplar de
carte împrumutat de acelaşi cititor;

1
Bâscă O. - "Baze de date", Editura ALL, Bucureşti, 1997

53
- anomalia de adăugare se poate exemplifica prin faptul că nu se poate lua
în evidenţă un nou cititor decât dacă acesta împrumută o carte;
- anomalia de ştergere, inversa anomaliei de adăugare, apare atunci când
cititorul nu mai are împrumutată nici o carte (la returnarea ultimei cărţi);
în tuplul corespunzător sunt înlăturate datele sale personale şi cititorul
dispare din relaţie;
- anomalia de modificare se referă, de exemplu, la faptul că modificarea
numelui unui cititor ar trebui făcută în toate tuplurile în care apare,
pentru menţinerea consistenţei relaţiei.
Se poate reduce redundanţa şi implicit înlătura anomaliile pe care le generase,
de exemplu prin definirea următoarelor două relaţii:

Cititor(Nr-leg, CNP, nume, prenume, adresă, telefon)


Exemplar(Cod_ex, Cota, preţ, nr_leg, data)

Se constată că redundanţa a fost înlăturată din relaţia Exemplar prin definirea


relaţiei Cititor, care conţine atributele legate de cititor. Inconvenientul care apare
acum este că, dacă se doreşte să se cunoască numele tuturor cititorilor care au
împrumutat o anumită carte trebuie să se cupleze cele două relaţii, prin intermediul
atributului nr_leg. Operaţia de cuplare a două relaţii (natural join) este o operaţie
costisitoare, deoarece implică realizarea produsului cartezian al celor două relaţii.
Teoretic, schema bazei de date se realizează pornind de la identificarea grupelor de
entităţi omogene şi a proprietăţilor lor care determină atributele ce definesc relaţiile
respective. În practică este de multe ori dificilă determinarea atributelor care
caracterizează fiecare grupă de entităţi şi delimitarea acestor atribute pentru a
defini relaţiile care caracterizează entităţile şi relaţiile care descriu legătura dintre
entităţi. În plus, în definirea schemei bazei de date trebuie să se ţină cont de
rezolvarea următoarei dileme: cu cât numărul relaţiilor este mai mic, cu atât creşte
riscul apariţiei redundanţelor şi cu cât numărul relaţiilor este mai mare, cu atât
scade posibilitatea înregistrării de redundanţe în baza de date dar devin tot mai
costisitoare cererile de consultare a bazei de date care implică accesul la datele din
mai multe relaţii, deoarece acestea se realizează utilizând operaţia de cuplare (join)
între relaţii.
În concluzie, apare necesitatea definirii unei metode de optimizare a schemei
bazei de date relaţionale, pentru înlăturarea redundanţelor şi a anomaliilor pe care
le generează acestea dar şi pentru a permite definirea tuturor legăturilor care există
în realitate, între grupuri diferite de entităţi. Metoda se numeşte normalizarea
relaţiilor din baza de date relaţională şi este un proces iterativ, în care se porneşte
de la o schemă a bazei de date, determinată empiric, şi se aplică transformări
succesive asupra schemelor de relaţie care o alcătuiesc.
Normalizarea se bazează pe formalizarea legăturilor logice, numite
dependenţe, ce există între atributele unei relaţii şi pe analiza acestor dependenţe.
Dependenţele care se definesc între atributele unei relaţii au fost împărţite în trei
categorii:

54
- dependenţe funcţionale;
- dependenţe multivaloare;
- dependenţe de uniune.

3.3.3.1. Formele normale ale unei baze de date relaţionale

Existenţa, în cadrul relaţiilor, a dependenţelor funcţionale este naturală. De


exemplu, dependenţa funcţională a fiecărui atribut faţă de cheia primară a relaţiei.
Dependenţele (de orice fel) reprezintă constrângeri semantice referitoare la
realitatea modelată. Ele constituie informaţii suplimentare asociate relaţiei,
informaţii care nu pot fi înglobate în reprezentarea relaţiei prin metodele utilizate
până acum (atribute, restricţii de integritate, chei, etc.). Dependenţele nu pot fi
demonstrate, ele pot fi doar verificate prin confruntare cu realitatea şi pot fi
considerate ca ipoteze de lucru privind realitatea modelată având implicaţii în
modelarea corectă a realităţii. Stabilirea dependenţelor este o decizie de proiectare,
la fel ca stabilirea relaţiilor şi a atributelor din baza de date. Stabilirea corectă a
dependenţelor determină calitatea modelului obţinut. Dependenţele definite pentru
schema unei relaţii pot fi considerate constrângeri de integritate a datelor pentru
relaţia respectivă iar implementarea lor în baza de date relaţională se face prin
normalizarea relaţiei respective.
Normalizarea relaţiilor din baza de date este procesul prin care se determină
schema optimă a bazei de date, din punctul de vedere al modelării legăturilor
existente în cadrul relaţiilor şi între relaţii şi pentru reducerea redundanţei în baza
de date. Procesul de normalizare a relaţiilor bazei de date este unul iterativ, de
transformare în forme normale succesive, până la atingerea ultimei forme normale.
Această transformare se face prin descompunerea câte unei relaţii (nenormalizate)
în relaţii echivalente, până când toate relaţiile obţinute sunt normalizate. Se
porneşte de la identificarea atributelor relaţiei care se normalizează şi a
dependenţelor care există între aceste atribute; în funcţie de natura dependenţelor
identificate se determină forma normală în care se încadrează relaţia; prin aplicarea
regulilor de normalizare, se transformă relaţia iniţială într-un set de relaţii
echivalente, care aparţin unei forme normale superioare, şamd.
Edgar Codd a definit primele trei forme normale. Acestea pot fi determinate pe
baza dependenţelor funcţionale din cadrul relaţiei. A treia formă normală a fost
ulterior redefinită de Codd şi Boyce.
Ultimele două forme normale sunt definite de Fagin. A patra formă normală se
defineşte pe baza dependenţelor multivaloare iar a cincea formă normală, pe baza
dependenţelor de uniune.
Formele normale impun condiţii din ce în ce mai restrictive asupra relaţiilor. O
relaţie aflată pe un anumit nivel de normalizare satisface restricţiile impuse de toate
formele normale de pe nivelurile inferioare şi din acest motiv, formele normale se
definesc în secvenţa dată de nivelul lor.

55
3.4. Modelele pentru proiectarea unei baze de date

Proiectarea unei baze de date se abordează în mod unitar, pornind de la


universul real care se modelează, în scopul definirii schemei conceptuale a datelor.
În acest scop este necesară identificarea datelor care vor forma baza de date şi a
caracteristicilor definitorii ale acestor date. Se porneşte de la caracteristicile
intrinseci ale datelor şi se determină legăturile logice dintre ele, conform
fenomenelor reale şi nu după necesităţile de prelucrare a datelor în sistemul
informatic.
În figura 4-8 este reprezentat modelul de proiectare a unei baze de date,
incluzând paşii care conduc la realizarea celor trei scheme, intercorelate logic, ce
definesc în final baza de date. Pentru a realiza o abordare unitară şi o proiectare
eficientă a bazei de date, se folosesc metode de proiectare care utilizează ca
instrumente de lucru modelele de date. De obicei se utilizează metode unitare de
proiectare a întregului sistem informatic, în cadrul cărora sunt definite metode
pentru proiectarea structurilor de date din sistemul informatic.

Universul real Utilizatori

5. Confruntare 1. Analiză 3. Formulare cerinţe

Baza de cunoştinţe Schema externă

2. Abstractizare
7. Implementare
Schema conceptuală
4. Corelare

Schema internă
6. Generare

Figura 3-8. Proiectarea unei baze de date

Proiectarea unei baze de date este activitatea care se referă la definirea


structurii bazei de date. De calitatea acestei etape depinde corectitudinea şi
completitudinea datelor din baza de date, precum şi fiabilitatea şi eficienţa în
exploatare a bazei de date. Activitatea de proiectare a unei baze de date include:
- etapa de modelare a structurii bazei de date;
- etapa de definire a bazei de date, utilizând LDD al SGBD ales;

56
- etapa de încărcare a datelor de test şi de testare a corectitudinii
structurii definite;
- etapa de menţinere a bazei de date pe perioada exploatării ei, etapă
care include rezolvarea eventualelor erori apărute în exploatarea bazei
de date, îmbunătăţirea performanţelor de exploatare a bazei de date,
dezvoltări ulterioare, etc.
Chiar şi în condiţiile organizării datelor într-o bază de date şi a utilizării unui
SGBD pentru gestionarea datelor, fapt care determină independenţa logică a
datelor faţă de programele de aplicaţie, este necesară corelarea structurilor de date
cu algoritmii de prelucrare care vor fi utilizaţi de aplicaţii; de exemplu:
- numărul şi conţinutul cheilor de indexare ale tabelelor de date se determină
şi în funcţie de prelucrările care vor fi realizate asupra datelor
- modul de utilizare a datelor determină operaţiile permise asupra datelor şi,
mai ales, operaţiile nepermise, care definesc constrângerile pornind de la
care se generează regulile de integritate a bazei de date.
Această corelare se face în faza de definire a modelelor de date şi a modelelor de
prelucrări, care vor descrie schematic structura viitoarei aplicaţii informatice. În
plus, modelul schemei conceptuale a bazei de date trebuie să ţină seama de
schemele externe ale bazei de date, specifice diferitelor aplicaţii cu baza de date.
Procesul de modelare a bazei de date este unul iterativ, care necesită confruntări
repetate şi succesive ale schemei conceptuale a bazei de date cu schemele externe,
pe de o parte, şi cu realitatea care se modelează, pe de altă parte. Obiectivul este
definirea unei baze de date care să răspundă într-un mod eficient tuturor
necesităţilor de date ale aplicaţiilor dezvoltate în jurul ei.
Nivelul conceptual de abstractizare a datelor în baza de date trebuie să
îndeplinească următoarele obiective:
- să definească imaginea globală a datelor din sistemul informaţional
modelat;
- să asigure satisfacerea tuturor cerinţelor informaţionale ale sistemului
informatic proiectat;
- să asigure independenţa descrierii datelor faţă de nivelul fizic de organizare
a bazei de date.
Autonomia fizică a datelor din baza de date este asigurată tot de SGBD,
datorită funcţiilor sale privind gestionarea accesului la datele din baza de date. În
acest scop SGBD este proiectat să opereze asupra unui anumit model teoretic de
organizare a datelor în baza de date, model care determină modul de organizare
fizică a datelor şi modul de acces la datele din baza de date. Acest model teoretic
defineşte tipul de SGBD utilizat. De exemplu, un SGBD relaţional va opera logic
cu operaţiile algebrei relaţionale asupra unor date organizate în relaţii. Pe baza
modelului teoretic de operare asupra relaţiilor se dezvoltă componenta care
gestionează accesul fizic la date, ce aparţine motorului SGBD.
Orice SGBD are la bază un model de organizare şi manevrare a datelor care
constituie fundamentul teoretic al construirii acestui SGBD, pentru realizarea

57
funcţiei de gestionare automată a datelor1. Este necesar deci ca alegerea tipului de
model de date utilizat pentru proiectarea bazei de date să fie în concordanţă cu tipul
de SGBD care va fi ales pentru gestionarea bazei de date.
Nivelul conceptual se descrie printr-un model de organizare logică a datelor
care precizează conţinutul logic al datelor, natura datelor şi legăturile dintre date, la
nivelul întregii baze de date.
Un model este un instrument teoretic ce permite o reprezentare a lumii reale
adecvată anumitor necesităţi. Mai specific, un model este o formă de reprezentare
abstractizată a lumii reale, folosind concepte şi notaţii proprii, pentru a furniza:
- o metodă pentru descrierea formală a realităţii;
- un instrument de comunicare (un limbaj comun pentru utilizatorii
modelului).
Un model de date trebuie să permită identificarea conţinutului informaţional al
unei colecţii de date privite în ansamblu şi să reprezinte formalizat aceste date, într-
o manieră compatibilă cu modul de reprezentare şi cu modul de tratare a datelor
într-un sistem de calcul. Fiind vorba de o abstractizare a lumii reale, un model de
date se concentrează pe aspectele esenţiale ale sistemului modelat.

3.5. Caracteristici ale sistemelor cu baze de date

Caracteristicile sistemelor informatice în care datele sunt organizate în baze de


date se definesc din mai multe puncte de vedere.
Din punctul de vedere al modalităţii de proiectare a sistemului informatic se
caracterizează prin faptul că:
- proiectarea se face utilizând metode specifice de proiectare a sistemelor
informatice;
- proiectarea bazei de date se realizează unitar, prin abordarea în ansamblu a
datelor, pentru a reflecta universul real;
- aplicaţiile se dezvoltă după ce a fost proiectată baza de date;
- fiecare aplicaţie foloseşte o parte din datele organizate în baza de date;
- pentru dezvoltarea aplicaţiilor se folosesc serviciile oferite de SGBD.
Din perspectiva modului de definire a datelor se constată că:
- datele sunt grupate în baza de date după criterii intrinseci, care au în vedere
conţinutul şi legăturile logice dintre date;
- fiecare dată este definită o singură dată în baza de date, cu toate
proprietăţile ei.
Ca mod de realizare a prelucrărilor asupra datelor se constată următoarele
trăsături comune:
- toate prelucrările asupra datelor din baza de date se desfăşoară sub
controlul SGBD;
- toate operaţiile de acces la datele din baza de date se realizează prin
intermediul SGBD;

1
Dollinger R. – op.cit.

58
- prelucrările asupra datelor pot fi condiţionate de legăturile definite explicit
între datele din baza de date;
- prelucrările asupra datelor din baza de date se realizează într-o aplicaţie şi
efectul lor este reflectat în toate aplicaţiile care utilizează acele date.
Efectele organizării datelor într-o bază de date gestionată de SGBD sunt:
- aceleaşi date pot fi valorificate diferit de aplicaţii diferite, pentru că o bază
de date poate oferi în orice moment imagini multiple asupra datelor pe care
le memorează;
- datele sunt tratate unitar, prin intermediul funcţiilor de descriere a datelor
şi a funcţiilor de acces la date oferite de SGBD;
- descrierea modului de organizare logică a datelor este memorată în afara
programelor de aplicaţie, determinând autonomia logică a datelor.

Avantajele utilizării bazelor de date ca mod de organizare a datelor într-un sistem


informatic sunt:
- obţinerea unei redundanţe reduse şi controlate a datelor, datorită memorării
datelor pentru întregul sistem informatic într-o singură structură de date,
capabilă să satisfacă necesităţile informaţionale ale oricărei aplicaţii;
- consistenţa datelor, determinată de faptul că datele sunt corelate logic între
ele şi sunt tratate unitar de SGBD, conform acestor corelări logice;
- tratarea unitară a datelor prin intermediul funcţiilor asigurate de SGBD,
funcţii care nu depind de aplicaţii ci numai de modul de definire a bazei de
date;
- prin instrumentele de consultare a bazei de date oferite de SGBD:
- pot fi obţinute imagini multiple asupra datelor din baza de date
- baza de date poate fi consultată uşor, chiar şi de neinformaticieni;
- prin instrumentele oferite de SGBD pentru gestionarea datelor din baza de
date:
- se poate realiza protecţia datelor faţă de accesul partajat la baza de
date: orice utilizator are acces la date prin intermediul dicţionarului
de date şi al funcţiilor SGBD, fără ca partajarea datelor între mai
mulţi utilizatori să provoace inconsistenţa acestor date;
- se poate asigura implementarea unor drepturi de acces la date, în
scopul realizării securităţii datelor în faţa acceselor nedorite;
- structurile de date sunt mai flexibile, uşor adaptabile la modificări ale
mediului modelat, asigurând astfel o reflectare mai bună a realităţii şi o
adaptabilitate mai bună în faţa modificărilor ce pot să apară în sistemul
modelat;
- autonomia logică a datelor are ca efect faptul că se ameliorează procesul de
dezvoltare şi de întreţinere a aplicaţiilor, în partea de programare a lor.

Ca o paralelă între modul de organizare a datelor în fişiere independente şi în


baze de date, din punctul de vedere al posibilităţilor de explorare a datelor, se poate
spune că:

59
- un fişier este o colecţie de date care poate fi partajată de mai mulţi
utilizatori care au o imagine unică asupra datelor; imagini multiple asupra
datelor pot fi obţinute numai prin operaţii suplimentare asupra fişierului:
sortare, filtrare, etc.
- o bază de date este un ansamblu de date format din mai multe fişiere ce pot
fi partajate de mai mulţi utilizatori, oferindu-le acestora imagini diferite
asupra datelor.

60
3.6. Probleme rezolvate şi propuse

A. Indicaţi varianta corectă de răspuns, pentru întrebările următoare:

1. Inconsistenţa datelor se referă la faptul că:


a) aceeaşi dată se poate regăsi în mai multe fişiere
b) aceeaşi dată se poate înregistra cu valori sau formate diferite în fişiere
diferite
c) aceeaşi dată poate fi actualizată diferit, la momente diferite.
2. Redundanţa datelor se referă la faptul că:
a) aceeaşi dată se poate regăsi în mai multe fişiere
b) aceeaşi dată se poate înregistra cu valori sau formate diferite în fişiere
diferite
c) aceeaşi dată poate fi actualizată diferit, la momente diferite.
3. Una dintre afirmaţiile următoare nu se referă la o bază de date:
a) reprezintă un ansamblu de date structurate, coerente, neredundante,
independente de orice program de aplicaţie
b) este o colecţie de date care poate fi partajată între mai mulţi utilizatori care
au o imagine unică asupra datelor
c) este un ansamblu de date care pot fi partajate între mai mulţi utilizatori,
cărora le poate oferi imagini diferite asupra datelor.
4. Una dintre următoarele afirmaţii nu se referă la dicţionarul de date al unei baze
de date:
a) cuprinde informaţii despre structura datelor şi restricţiile la care se supun
datele
b) intermediază accesul la fişierele de date
c) cuprinde ansamblul datelor stocate în baza de date, la un moment dat
5. Care dintre componentele SGBD asigură verificarea integrităţii bazei de date,
conform restricţiilor de integritate definite:
a) componenta de proiectare a SGBD
b) componenta de execuţie a SGBD
c) motorul bazei de date?
6. Pentru a caracteriza o tabelă de index asociată unei tabele a bazei de date, una
dintre afirmaţii este eronată:
a) este o tabelă în care se memorează, pentru fiecare înregistrare a tabelei la
care este asociată, valoarea cheii de indexare şi adresa înregistrării
respective
b) este o tabelă în care se memorează descrierea structurii tabelei la care este
asociată
c) este o tabelă gestionată de SGBD, care permite accesul direct sau ordonat la
înregistrările tabelei la care este asociată.
7. Care componentă a SGBD permite definirea structurii bazei de date:

61
a) limbajul de descriere a datelor
b) limbajul gazdă al SGBD
c) limbajul de manevrare a datelor?
8. Nivelul extern de abstractizare a datelor dintr-o bază de date se referă la:
a) modul de organizare a datelor în memoria externă
b) imaginea bazei de date din punctul de vedere al unui utilizator sau al unei
aplicaţii
c) imaginea globală a bazei de date, conform universului real care se
modelează.
9. Una dintre afirmaţiile următoare nu se referă la tuplurile unei relaţii:
a) numărul lor determină aritatea relaţiei
b) ordinea lor în relaţie nu contează şi poate fi modificată
c) fiecare tuplu al relaţiei trebuie să fie atomic, adică diferit de celelalte.
10. Autonomia logică a datelor într-o bază de date se referă la faptul că:
a) stuctura datelor din baza de date poate fi modificată fără a influenţa
programele de aplicaţie
b) datele din baza de date pot fi modificate fără modificarea programelor de
aplicaţie
c) locaţia în memoria externă a fişierelor de date poate fi modificată fără a
influenţa programele de aplicaţie.
11. Termenul de manevrare a datelor din baza de date nu se referă la:
a) definirea structurii datelor din baza de date
b) actualizarea, prin adăugare, ştergere sau modificare, a datelor din baza de
date
c) consultarea datelor din baza de date.
12. Una dintre afirmaţiile următoare nu se referă la domeniile unei relaţii:
a) numărul lor determină aritatea relaţiei
b) ordinea lor în relaţie nu contează şi poate fi modificată
c) fiecare domeniu al relaţiei trebuie să fie atomic, adică diferit de celelalte.
13. Procedura roll-back se execută:
a) în cazul alterării bazei de date între două tranzacţii
b) în cazul imposibilităţii încheierii cu succes a unei tranzacţii
c) în cazul acceselor concurente, în actualizare, a mai multor utilizatori ai bazei
de date
d) pentru anularea efectelor execuţiei parţiale a unei tranzacţii.
14. Alegeţi varianta corectă:
a) validarea tranzacţiei indică faptul că efectele acesteia sunt ireversibile în
baza de date
b) execuţia unei tranzacţii poate fi oprită în caz de incident dar nu se mai poate
reface imaginea iniţială a bazei de date
c) tranzacţia este unitatea fizică de prelucrare asupra unei baze de date
d) tranzacţia reprezintă trecerea de la o realizare a bazei de date la alta.
15. Include setul complet de operaţii elementare care trebuie executate în vederea
efectuării trecerii de la o realizare la alta a unei baze de date:
a) tranzacţia;

62
b) tabela de index;
c) tranziţia;
d) regula de integritate referenţială.
16. Un SGBD:
a) asigură definirea, generarea şi exploatarea unei baze de date, neputând-o
proteja faţă de accesele nepermise;
b) permite numai gestionarea accesului la date;
c) este o interfaţă software între utilizator şi baza de date;
d) este o componentă software complexă ce permite generarea şi gestionarea
bazelor de date.
17. Conform metodologiei ANSI-SPARC, este responsabil cu dezvoltarea
schemelor externe:
a) administratorul bazei de date;
b) administratorul de aplicaţie;
c) administratorul de întreprindere;
d) utilizatorul.
18. Un SGBD poate asigura confidenţialitatea datelor din baza de date astfel:
a) prin salvarea periodică a bazei de date pe un suport sigur de memorie
externă
b) utilizând criptarea datelor din baza de date
c) prin folosirea unui sistem de parole de acces la baza de date
d) prin asigurarea procedurii de roll-back.
19. Gradul de autonomie a datelor din baza de date:
a) realizează o separare a datelor din punct de vedere conceptual
b) se defineşte în legătură cu descrierea datelor pe diferite niveluri de
abstractizare
c) defineşte în mod logic scheme ale bazei de date, pentru diferite niveluri de
abstractizare a datelor
d) defineşte măsura în care se poate modifica descrierea datelor pentru un nivel
de abstractizare, fără a afecta descrierile de pe celelalte niveluri.
20. Izolarea unei tranzacţii presupune :
a) accesul se realizează numai dintr-o vedere a bazei de date
b) baza de date este protejată pentru a nu fi afectă de un virus
c) tranzacţia nu a fost aprobată de LMD
d) baza de date este accesibilă numai după validarea tranzacţiei.
21. Un SGBD asigură posibilitatea accesului multicriterial la datele din baza de
date:
a) prin intermediul cheilor de indexare
b) prin intermediul tranzacţiilor
c) prin intermediul operaţiei de editare a datelor
d) prin intermediul tabelei legăturilor dintre date.
22. Se asigură autonomia logică a datelor într-o bază de date dacă:
a) actualizarea datelor din baza de date respectă restricţiile de integritate
memorate în baza de date
b) pentru accesul la baza de date se utilizează dicţionarul de date

63
c) actualizările bazei de date se realizează prin intermediu tranzacţiilor
d) la consultarea bazei de date se foloseşte un limbaj de interogare.
23. Care dintre următoarele afirmaţii despre cheia străină sunt adevărate?
a) realizează definirea legăturilor logice dintre relaţii;
b) în fiecare tuplu în care apare trebuie să aibă fie valoare nedeterminată fie
valoarea cheii primare din altă relaţie;
c) într-o relaţie nu este permis să existe două tupluri având aceeaşi valoare
pentru atributele acestei chei;
d) se defineşte ca mulţimea atributelor relaţiei care au proprietatea că
domeniile pe care le definesc se regăsesc în altă relaţie.
24. Alegeţi varianta corectă:
a) atât limbajele procedurale cât şi cele neprocedurale de manevrare a datelor
sunt limbaje imperative;
b) limbajele neprocedurale sunt limbaje descriptive iar cele procedurale sunt
imperative;
c) limbajele procedurale sunt limbaje descriptive iar cele neprocedurale sunt
imperative
d) limbajele procedurale folosesc proceduri standard de acces la date.
25. Într-o bază de date sunt definite cu rolul de a accelera accesul la date:
a) tabelele sistem;
b) tabelele de index;
c) tabelele de structură;
d) metadatele.
26. Reflectă imaginea globală a datelor din baza de date:
a) nivelul extern;
b) nivelul logic;
c) nivelul conceptual;
d) nivelul intern.
27. Unităţi logice virtuale ale bazei de date cu rol de a oferi selectiv, spre
consultare, anumite date ale bazei de date şi de a ”ascunde” restul datelor din
baza de date:
a) tabelele de index;
b) vederile;
c) fişierele de index;
d) fişierele partiţionate.
28. Într-o bază de date relaţională, o relaţie se poate reprezenta printr-un tabel în
care:
a) fiecare rând reprezintă un domeniu;
b) ordinea rândurilor în tabel nu este predefinită şi poate fi modificată;
c) pentru fiecare coloană a tabelului, realizările sunt de acelaşi fel;
d) fiecare rând se poate identifica unic prin conţinutul său.
29. Portabilitatea unei componente software constă în:
a) posibilitatea de a utiliza acea componentă pe platforme de calcul diferite
b) posibilitatea de reproiectare a acelei componente fără alterarea structurilor
de date

64
c) posibilitatea de a utiliza acea componentă sub sisteme de operare diferite
d) posibilitatea de modificare a suportului de memorie externă folosit pentru
stocarea datelor.
30. Nivelul conceptual de abstractizare a datelor din baza de date trebuie să
îndeplinească următoarele obiective:
a) să asigure satisfacerea tuturor cerinţelor informaţionale ale sistemului
informatic proiectat
b) să reflecte reprezentarea datelor pe suportul de memorie externă
c) să definească imaginea globală a datelor din sistemul informaţional modelat
d) să protejeze baza de date de accesul utilizatorilor neautorizaţi.
31. Consistenţa bazelor de date se referă la:
a) respectarea constrângerilor semantice
b) actualizarea automată a tabelelor de index
c) includerea metadatelor în dicţionarul de date
d) derularea tranzacţiei conform regulilor de integritate.
32. Printre funcţiile unui SGBD se numără:
a) generarea bazei de date, asigurarea autonomiei logice a datelor faţă de
programele de aplicaţie şi actualizarea datelor din baza de date;
b) optimizarea procedurilor de acces la date, asigurarea integrităţii bazei de
date şi gestionarea schimburilor de date între memoria internă şi memoria
externă;
c) asigurarea integrităţii datelor şi a protecţiei acestora faţă de accesele
concurente la baza de date;
d) actualizarea datelor din baza de date şi definirea strategiei de asigurare a
bazei de date.
33. Alegeţi varianta corectă:
a) validarea tranzacţiei are ca efect faptul că efectele acesteia sunt ireversibile
în baza de date;
b) execuţia unei tranzacţii poate fi oprită în caz de incident dar nu se mai poate
reface imaginea iniţială a bazei de date;
c) tranzacţia este unitatea fizică de prelucrare asupra unei baze de date;
d) nu se poate pune problema anulării efectului unei tranzacţii în cazul apariţiei
unor incidente.
34. Alegeţi varianta corectă:
a) metodologia de concepere a unei baze de date porneşte de la necesitatea
realizării, mai întâi, a schemei interne;
b) schema conceptuală derivă din schema internă;
c) prin intermediul schemei externe, utilizatorul are o viziune parţială asupra
bazei de date;
d) prin intermediul schemei externe, utilizatorul are o viziune globală asupra
bazei de date.
35. Gestionarul bazei de date este o componentă a:
a) subsistemului instrumentelor de proiectare al unui SGBD;
b) subsistemului de execuţie;
c) motorului SGBD;

65
d) nici o variantă nu este corectă.
36. Care dintre următoarele afirmaţii despre tupluri sunt false:
a) nu contează ordinea de apariţie a tuplurilor într-o relaţie;
b) un tuplu al unei relaţii se poate identifica prin conţinutul său;
c) este o submulţime a produsului cartezian a unei liste finite de mulţimi,
numite domenii
d) se poate repeta de un număr nedeterminat de ori într-o relaţie.
37. Dimensiunea unei clase de asociaţii descrie:
a) numărul maxim de entităţi dintr-o clasă de entităţi care pot participa la o
asociaţie din clasa de asociaţii
b) numărul minim de entităţi dintr-o clasă de entităţi care pot participa la o
asociaţie din clasa de asociaţii
c) numărul de clase de entităţi care participă la definirea clasei de asociaţii
d) numărul minim de asociaţii din clasa de asociaţii la care participă o entitate
din clasa de entităţi.
38. Efectul unei tranzacţii este ireversibil dacă :
a) tranzacţia se încheie cu roll-back
b) tranzacţia se încheie cu succes
c) sunt folosite vederi ale bazei de date
d) tranzacţia se încheie cu commit.
39. Există o relaţie de incluziune între:
a) LDD şi LMD;
b) LI şi LDD;
c) metadate şi dicţionarul de date;
d) fişiere de index şi motorul BD.
40. Prin implementarea mecanismelor de criptare a datelor din baza de date se
asigură:
a) integritatea datelor din baza de date
b) posibilitatea accesului selectiv la date
c) confidenţialitatea datelor din baza de date
d) protejarea datelor din baza de date faţă de accesele concurente.
41. Motorul SGBD asigură:
a) gestionarea unitară a operaţiilor la nivel fizic asupra bazei de date
b) gestionarea unitară a operaţiilor la nivel logic asupra bazei de date
c) verificarea respectării restricţiilor de integritate ale bazei de date
d) optimizarea operaţiilor de acces la baza de date.
42. O relaţie poate avea mai multe:
a) chei candidat
b) chei străine
c) chei primare
d) chei alternante.
43. Alegeţi varianta corectă:
a) schimburile de date între memoria internă şi memoria externă sunt
gestionate de SGBD;

66
b) stocarea datelor, în vederea prelucrării lor ulterioare, se realizează în
memoria internă a sistemului de calcul;
c) blocurile de date (înregistrări logice) sunt gestionate de SGF iar articolele
(înregistrări fizice), de utilizator;
d) câmpurile unui fişier sunt formate din date elementare numite articole;
e) schimburile de date între memoria internă şi memoria externă sunt
gestionate de SGF.
44. Impune ca modificările efectuate în baza de date să fie realizate cu respectarea
regulilor de integritate a bazei de date:
a) atomicitatea;
b) consistenţa;
c) durabilitatea;
d) coerenţa;
e) izolarea;
f) integritatea.
45. O realizare a bazei de date reprezintă:
a) obţinerea unei vederi a bazei de date
b) actualizarea tabelelor de index odată cu actualizarea datelor
c) ansamblul datelor stocate în baza de date la un moment dat
d) validarea automată a unei tranzacţii în baza de date.
46. Se numără printre nivelurile de abstractizare a datelor din baza de date:
a) nivelul intern numit şi nivel utilizator;
b) nivelul extern numit şi nivel fizic;
c) nivelul global numit şi nivel intern;
d) nivelul extern numit şi nivel utilizator.
47. Subsistemul instrumentelor de proiectare a SGBD permite:
a) definirea structurii bazei de date
b) definirea formatului rapoartelor şi a cererilor de interogare a bazei de date
c) procesarea aplicaţiilor şi a cererilor de consultare a bazei de date
d) generarea tranzacţiilor cu baza de date.
48. Un domeniu se identifică prin:
a) tuplu
b) relaţie
c) cheie
d) atribut
e) identificator.
49. Alegeţi varianta corectă:
a) SGBD asigură accesul multicriterial la datele din baza de date prin
intermediul regulilor de integritate;
b) instrumentele oferite de SGBD pentru consultarea bazei de date sunt
rezervate utilizatorilor profesionişti;
c) SGBD asigură şi autonomia logică şi autonomia fizică a datelor faţă de
programele de aplicaţie;
d) variantele a) şi b) sunt corecte;
e) variantele a) şi c) sunt corecte.

67
50. Limbajele de interogare a bazei de date:
a) fac parte dintre limbajele de descriere a datelor;
b) permit căutarea, identificarea şi vizualizarea datelor din baza de date;
c) sunt limbaje imperative;
d) sunt limbaje neprocedurale.
51. Metodologia de proiectare a unei baze de date porneşte de la necesitatea
realizării mai întâi a:
a) schemei interne
b) schemei funcţionale
c) schemei conceptuale
d) schemei relaţionale.
52. Orice tuplu al relaţiei se identifică unic prin intermediul valorii unui set de
atribute care formează:
a) cheia compusă
b) cheia străină
c) cheia candidat
d) cheia unică
e) cheia primară
f) cheia alternantă.
53. Efectul domino poate să apară în cazul în care, pe durata derulării unei
tranzacţii, nu se respectă:
a) atomicitatea;
b) consistenţa;
c) durabilitatea;
d) coerenţa;
e) izolarea;
f) integritatea.
54. Prin proiecţia unei relaţii se obţine:
a) aceeaşi relaţie cu un număr mai mic de tupluri;
b) o nouă relaţie cu un număr mai mic de atribute;
c) o nouă relaţie având aceeaşi schemă ca relaţia iniţială;
d) o nouă relaţie cu un număr mai mic de tupluri.
55. Numărul regulilor lui Codd care se referă la independenţa datelor din baza de
date este:
a) una
b) două
c) trei
d) patru
e) cinci.
56. Care enunţuri sunt adevărate:
a) uniunea este o operaţie derivată a algebrei relaţionale;
b) uniunea este o operaţie unară definită pe mulţimea relaţiilor;
c) uniunea este echivalentă cu operaţia de selecţie compusă cu operaţia de
produs cartezian;

68
d) uniunea este echivalentă cu operaţia de proiecţie compusă cu operaţia de
produs cartezian.
57. Pentru ca un SGBD să fie considerat relaţional, trebuie să fie implementaţi cel
puţin următorii operatori relaţionali:
a) de proiecţie
b) de reuniune
c) de produs cartezian
d) de selecţie
e) de uniune.
58. Care dintre următoarele afirmaţii este adevărată:
a) dependenţa funcţională directă implică dependenţa funcţională totală;
b) dependenţa funcţională tranzitivă implică dependenţa funcţională parţială;
c) dependenţa funcţională totală implică dependenţa funcţională directă;
d) dependenţa funcţională parţială implică dependenţa funcţională tranzitivă.
59. Sunt operaţii ale algebrei relaţionale care permit obţinerea unei relaţii având o
altă schemă de relaţie decât operanzii:
a) proiecţia
b) reuniunea
c) produsul cartezian
d) selecţia
e) uniunea.

69
4. Bibliografie

Andone I.,Ţugui A. - "Baze de date inteligente în managementul firmelor",


Editura Dosoftei, Iaşi,1997
Bâscă O. - "Baze de date", Editura ALL, Bucureşti, 1997
Boian F.M. - "Sisteme de operare interactive", Editura Libris, Cluj-Napoca,
1994
Chuang T.T., Yada S.B. “The developement of an adaptive decision support
system” Decision support systems 24, 1998
Dollinger R. - "Baze de date şi gestiunea tranzacţiilor", Editura Albastră,
Cluj-Napoca, 1998
Drucker P. - "Societatea postcapitalistă" , Editura Image, 1999
Finkelstein R. - “Computerworld”, “On-Line Analitycal Procesing” , dec.
1994
Fotache M. - "Baze de date relaţionale", Editura Junimea, Iaşi, 1997
Georgescu C. - "Analiza şi proiectarea sistemelor informatice", Editura
Radical, Galaţi, 1999
Georgescu C. - "Abordarea relaţională şi obiectuală în analiza sistemelor
informatice", Editura Didactică şi Pedagogică, Bucureşti, 2002
Georgescu M. - "Tehnici de organizare şi medii de gestionare a datelor",
Editura Fundaţiei Universitare "Dunărea de Jos", Galaţi, 2000
Georgescu M. - "Structuri de date şi baze de date", Editura PAX AURA
MUNDI, Galaţi, 2002
Gerrity T.P.Jr - “The Design of Man-Machine Decision Systems: An
Aplication to Portofolio Management”,Prentice Hall, NJ
Hackateron R., - BYTE v2, ”Data warehouse”, Mar.1996
Knuth D. E. - "Tratat de programarea calculatoarelor", Editura Tehnică,
Bucureşti, 1974
Little J.D.C. - “Models and Managers: The Concept of a Decision Calculus”,
Addison-Wesley,Workingam,1975
Mayer M. K - “Future trends in model management systems: parallel and
distributed extensions” Decision Support System, 22, 1998
Morton M. S. - “Management Decision Systems: Computer-Bassed Support
for Decision Making”, Information Systems Rev.143,1971
Morton M. S., Keen G. W. - “Decision Support Systems: An Organizational
Perspective”,Spring Rev. 1989
Muhanna W., Pick R.A. - “Meta-modeling concepts and tools for model
management: a system approch” ,Manage. Sci. 40 sept. 1994
Parsaye K. - “Surveying Decision Support: New Realms of Analysis”
Information Discovery Inc.,1992
Pascu C.,Pascu A. - "Totul despre…SQL", Editura Tehnică, Bucureşti, 1994

70
Popa Ghe.,Ştefănescu A.,Stanciu V.,Ivancenco V.,Mareş V.- "SGBD",
Editura All, Bucureşti, 1994
Raden N. - “Information week”, October 30, 1995
Sprague R., Carlson E.D. - “Building Effective DSS” Prentice-Hall,New
Jersey 1982
Stonebraker M. - “Object/Relational DBMSs: The Next Great Wave”,
Morgan Kaufman,1996
Toffler A. - "Powershift - puterea în mişcare", Editura Antet, 1995
Velicanu M.,Bodea C.,Lungu I.,Ioniţă C.,Bădescu G. - "Sisteme de gestiune a
bazelor de date", Editura Petrion, Bucureşti, 2000
Zaharie D. & colectiv, - “Sisteme informatice pentru asistarea deciziei”,
Editura DualTech, Bucureşti, 2001
***, - Microsoft Press - "Microsoft Visual FoxPro 6.0, Ghidul
programatorului", Editura Teora, Bucureşti, 2000
***, - Computerworld, “Data Warehouse”, 25/4/1994
***, - “The Case For Relational OLAP”, Micro Strategy Incorporated,
www.strategy.com

71

You might also like