Sunteți pe pagina 1din 53

CAPITOLUL 17

SISTEME DE GESTIUNE A BAZELOR DE DATE

17.1. NOIUNI PRELIMINARII


Termenul de baze de date apare n anul 1967 i reprezint mulimi structurate de
informaii, accesibile prin calculator, ce descriu diferite entiti, relaiile logice dintre aceste mulimi
i tehnicile de prelucrare corespunztoare; ele modeleaz un sistem sau proces real prin
organizarea i gestiunea datelor ce-l descriu, fiind accesibile simultan i selectiv mai multor
utilizatori.
Sistemul de gestiune a bazelor de date (S.G.B.D.) este sistemul de programe care permite crearea,
manipularea, ntreinerea i dezvoltarea de aplicaii privind bazele de date, asigur accesul
utilizatorului la informaii printr-un limbaj de nivel nalt apropiat modului obinuit de operare; este totodat i
o interfa ntre utilizator i sistemul de operare.
Un model reprezint o abstractizare a unui sistem sau proces din lumea real i este compus
din: - structur formal;
- setul de notaii;
- terminologia specific.
Modelarea reprezint activitatea de creare a unui model. n raport de subiectul modelrii,
modelul poate fi:
- analitic model utilizat pentru studiul unui sistem existent; el const n simularea
modelului existent prin trsturile reprezentative. Orict de cuprinztor ar fi un model, acesta este
determinat de un numr finit de caracteristici; putem afirma, de aceea, c apar interpretri subiective
ale lumii reale reflectate n baza de date;
- sintetic model utilizat pentru realizarea unui sistem nou.
Din acest unghi de vedere, modelul analitic se apropie creaiei n tiina umanist
aducerea unui obiect preexistent n cmpul cunoaterii (descoperirea Americii); modelul sintetic se
apropie creaiei n tiina tehnic aducerea unui obiect n cmpul cunoaterii care n-a existat nainte
(descoperirea mainii cu aburi, a legii simetriei etc.).
Procesul de modelare a unui sistem din lumea real este compus din trei etape:
- identificarea entitilor i a proprietilor eseniale;
- asocierea de atribute proprietilor entitii: atributele iau valori ntr-un domeniu care
particularizeaz entitile;
- proiectarea structurii datelor transpunerea atributelor n articole.
Exemplu:
Pentru entitatea student, se pot considera:
- atribute ale entitii: cod - student, nume, sex, grupa, domiciliu
- valori ale atributelor: pentru cod student de la 1 la numrul total;
pentru sex 1 sau 0;
- articole i valori ale acestora: CS reprezint cod student i ia valori de tip ntreg; SX este o
variabil binar 1 pentru masculin i 0 pentru feminin.
n concluzie, datele sunt caracterizate prin articole, reprezentrile prin atribute, iar entitile
prin proprieti.
Cod 246 691 532 594 412
Nume Vasile Ion Sandu Ana Gheorghe Raluca Pun Otilia Grigore Dan
Sex 1 0 0 0 1
Nr.grup 321 322 323 323 323
Bursier T F F T F
Figura1

n figura 1, fiecare coloan reprezint o nregistrare care se refer la entitatea student, fiecare
linie conine valori efective ale articolelor relative la un atribut particular. Gruparea datelor ntr-o
matrice (tablou) reprezint o relaie ntre articole.
Numim cheie un atribut sau o mulime de atribute a cror valoare identific fiecare nregistrare
a unei entiti. Cheile sunt de dou tipuri:
- chei primare, care permit identificarea n mod unic a unei nregistrri (de exemplu cod
student);
- chei secundare, care permit identificarea tuturor nregistrrilor care au o anumit
proprietate (de exemplu, bursierii din grupa 323).

1.2. Concepte i noiuni


Date = aspecte elementare ale activitii sau evenimente nesupuse prelucrrii;
Informaie = ansamblu de date corelate i elaborate cu un scop determinat;
Octet = unitate elementar de informaie, adresabil;
Articol = unitate elementar de date, care poate fi identificat dup nume;
Tipul (schema) unui articol = ansamblu format din:
- identificator;
- descrierea mulimii valorilor acceptabile;
- descrierea formatului de memorare;
Grup de date = ansamblu de articole unitare;
Tipul (schema) unui grup de date = ansamblu format din lista identificatorilor utilizai;
descrierea articolelor i a grupurilor de date;
nregistrare = colecie de articole i/sau grupuri de date identificabil printr-un nume;
Set de date = mulime de nregistrri;
Zona = subdiviziune a memoriei externe, care poate stoca nregistrri, identificabil printr-un
nume;
Schema unei baze de date = ansamblu format din lista identificatorilor folosii i descrierea
articolelor, grupurilor de date, nregistrrilor, seturilor de date i a zonelor. Schema bazei de date
definete tipul de baz de date;
Baza de date = totalitatea nregistrrilor, seturilor, zonelor organizate de o schem;
Dicionarul datelor = mulimea descrierii obiectelor unei baze de date. Acest dicionar este, n
general, structurat i administrat ca o baz de date (metabaz);
Administratorul bazei de date = o persoan sau un grup de persoane responsabile de analiza,
proiectarea, implementarea, exploatarea i ntreinerea unei baze de date;
Sistem de gestiune a bazei de date (SGBD) = ansamblu de programe destinate crerii,
ntreinerii i exploatrii unei baze de date. Aceast mulime de programe asigur interfaa ntre o
baz de date i utilizatorii acesteia. Un SGBD folosete, n principiu, trei limbaje: un limbaj de
descriere a datelor fizice, un limbaj de descriere a datelor logice i un limbaj de prelucrare
a datelor.
Arhitectura bazelor de date evideniaz componentele acestora:
1. baza de date propriu-zis, n care se memoreaz datele;
2. sistemul de gestiune a bazei de date, care realizeaz gestiunea i prelucrarea
complex a datelor;
3. un dicionar al bazei de date (metabaza de date), ce conine informaii despre date,
despre structura acestora, statistici, documentaie;

2
4. mijloacele hard utilizate (comune sau specializate);
5. reglementri adminsitrative destinate bunei funcionri a sistemului;
6. personalul implicat (utilizatori finali, administrator, programatori, operatori).
Cerinele ce se impun unei baze de date:
1. s furnizeze n timp util informaiile solicitate (timp de rspuns minim);
2. s asigure costuri minime de prelucrare i ntreinere, redundan minim;
3. s aib capacitatea de a satisface, cu aceleai date, necesiti informaionale ale unui
numr mare de utilizatori;
4. s asigure datelor flexibilitate;
5. s permit exploatarea simultan a datelor de ctre mai muli utilizatori
(sincronizare);
6. s asigure securitatea datelor prin mecanisme de protecie (confidenialitate);
7. s conin faciliti destinate validrii datelor i recuperrii lor n cazul unor deteriorri
accidentale (integritate);
8. s permit valorificarea eforturilor anterioare i anticiparea nevoilor viitoare
(compatibilitate i expandabilitate);
9. s permit, prin ierarhizarea datelor dup criteriul frecvenei acceselor, reorganizri
(eventual dinamice) care sporesc performanele bazei.
n cadrul unei baze de date sunt patru nivele de abstractizare i de percepie a datelor:
1. nivel fizic (intern) descris de schema fizic a datelor (bit, octet, adres), care
reprezint viziunea programatorilor de sistem asupra datelor;
2. nivel conceptual descris de schema conceptual a datelor (articol, nregistrare, zon
etc.), care reprezint viziunea programatorilor de sistem asupra datelor;
3. nivel logic descris de una din schemele logice posibile ale datelor, care reprezint
viziunea programatorului de aplicaie asupra datelor;
4. nivel virtual (extern), care reprezint viziuna utilizatorului final asupra datelor.
Datele exist doar la nivel fizic, celelalte trei nivele reprezint virtualizri ale acestuia.
Nivelele de independen a datelor sunt:
1. Independena fizic asigur posibilitatea modificrii schemei fizice a datelor, fr ca
aceasta s oblige la modificarea schemei conceptuale, schemei logice i a
programelor aplicaie;
2. Independena logic asigur posibilitatea modificrii schemei conceptuale a datelor,
fr ca aceasta s oblige la modificarea schemei logice i a programelor aplicaie;
3. Independena fa de strategiile de acces permite programului s precizeze data de
accesat, nu modul cum se acceseaz aceast dat.

1.3. Realizarea aplicaiilor


O aplicaie este un sistem de programe proiectat pentru a efectua un ansamblu determinat
de operaii asupra bazelor de date. Ea se compune din:
- programele propriu-zise (program principal, coordonator, programe pentru meniuri,
ecrane, interogri, indexri, actualizri, rapoarte);
- bazele de date.
Executarea aplicaiei se realizeaz la dou nivele:
Interpretativ cnd un program numit interpreter ia fiecare enun al aplicaiei, l traduce n cod
intern i face analiza erorilor, l execut, apoi trece la urmtorul enun.
Compilativ cnd ntreaga aplicaie este tradus de programul compilator ntr-un cod intermediar,
memorat pe disc, numit cod obiect, care este supus unei prelucrri suplimentare de ctre editorul de

3
legturi pentru a obine forma final, executabil a aplicaiei. Execuia se face sub controlul sistemului
de operare.
Realizarea unei baze de date presupune:
a) analiza sistemului pentru care se construiete baza de date;
b) proiectarea structurii bazei;
c) ncrcarea datelor n baza de date;
d) exploatarea i ntreinerea bazei de date.
Realizarea efectiv a unei aplicaii presupune:
a) stabilirea temei;
b) analiza temei;
c) proiectarea aplicaiei;
d) codificarea aplicaiei;
e) testarea modulelor;
f) implementarea aplicaiei;
g) ntreinerea aplicaiei.
a) Stabilirea temei
Tema este stabilit de beneficiarul aplicaiei, n raport de activitile ce urmeaz a fi
modelate.
b) Analiza temei
Analiza presupune identificarea tipurilor de informaii, a legturilor dintre ele, a operaiilor
necesare pentru gestionarea lor.
Rezultatul analizei se presupune:
1. descrierea datelor de intrare;
2. descrierea datelor pstrate n baza de date;
3. lista prelucrrilor efectuate asupra datelor;
4. descrierea informaiilor din rapoarte.
c) Proiectarea aplicaiei
n aceast etap, se realizeaz proiectarea structurii datelor i a structurii programelor.
Proiectarea structurii programelor presupune detalierea modulelor necesare realizrii aplicaiei:
module pentru crearea fiierelor, pentru introducerea datelor, pentru prelucrarea i extragerea
rezultatelor, pentru tratarea erorilor etc. Aceste module sunt controlate i coordonate de programul
principal, care are urmtoarea structur:
*program principal
declarare tablouri globale
iniializare variabile globale
salvare stare mediu iniializri generale
SET PROCEDURE TO subprograme_comune
deschide fiiere comune
sfrit = false
DO WHILE .NOT. sfrit
CLEAR SCREEN
afieaz mesaje de dialog
preia opiunile utilizatorului
DO CASE
CASE activitate 1
DO modul 1
CASE activitate 2
DO modul 2

4
...
OTHER WISE
SAY opiune invalid
ENDCASE
ENDDO
nchide fiierele comune
reface mediul
CLEAR SCREEN aciuni de ncheiere
RETURN
d) Codificarea aplicaiei
Dac la c) nivelul de detaliere este de tip pseudocod, n aceast etap se scrie aplicaia ntr-un
limbaj specializat, cu respectarea regulilor impuse de acesta.
e) Testarea modulelor
n aceast etap se verific modulele, se detecteaz i corecteaz eventualele erori, se face
analiza cazurilor extreme, se proiecteaz testele.
f) Implementarea aplicaiei
Se construiete forma final a aplicaiei prin integrarea treptat a modulelor funcionale testate.
g) ntreinerea aplicaiei
Se nltur erorile semnalate de utilizator n perioada de garanie, se modernizeaz aplicaia i
se actualizeaz.
Utilizatorii unei baze de date
Uitlizatorii unei baze de date pot fi:
Utilizatori nespecialiti (conversaionali) care au la dispoziie o form de comunicare cu baza de
date apropiat de vorbirea curent;
Utilizatori specialiti care cunosc structura bazei de date;
Administratorul bazei de date este un utilizator special, care definete obiectivele exploatrii
bazei, mparte drepturile de acces ale utilizatorilor, elaboreaz concepia de proiecie a bazei de
date, rspunde de toate activitile i operaiile referitoare la baza de date, ajut la definirea
cerinelor utilizatorilor etc.
Limbaje pentru baze de date
n cadrul SGBD, funciile de declarare i de manipulare a datelor sunt realizate cu ajutorul unor
limbaje diferite.
a) Limbaje pentru definirea datelor (LDD)
Funciile LDD sunt:
a. realizeaz definirea entitilor i a atributelor acestora prin nume, form de
memorare, lungime;
b. precizeaz relaiile dintre date i strategiile de acces la ele;
c. stabilete criterii difereniate de confidenialitate;
d. definete criterii de validare automat a datelor utilizate.
b) Limbaje pentru manipularea datelor (LMD)
Operaiile pe baze de date solicit un limbaj specializat, n care comenzile se exprim prin
fraze ce descriu aciuni asupra bazei.
O comand are urmtoarea structur:
operaia, care poate fi calcul aritmetic sau logic, editare, extragere, deschidere-
nchidere, manipulare (introducere, adugare, tergere etc.);
criterii de selecie (for, while, where etc.);
mod de acces (secvenial, indexat etc.);
form de editare.

5
c) Limbaje pentru controlul datelor (LCD)
Controlul unei baze de date presupune:
a. asigurarea confidenialitii i integritii datelor;
b. salvarea informaiei n cazul unor defeciuni;
c. obinerea unor performane;
d. rezolvarea unor probleme de concuren.
d) Limbaje universale
Un limbaj universal se utilizeaz rar pentru gestionarea unei baze de date.
Interfaa dintre utilizator i SGBD se realizeaz n dou moduri:
Cu ajutorul unui mecanism de apel inserat n programul aplicaie. Acest mecanism
poate fi un CALL sau un alt cuvnt cheie. Un SGBD care permite acest tip de
mecanism se numete SGBD cu limbaj gazd;
Cu ajutorul unor comenzi speciale, utilizate independent. n acest caz, SGBD se
numete autonom. Exist, totui, o interfa special, care este capabil s
interpreteze comenzile limbajului de cereri.

1.4. Obiectivele sistemelor de gestiune a bazelor de date


Obiectivele unui SGBD sunt urmtoarele:
1. independena fizic;
2. independea logic;
3. manipularea datelor de ctre neinformaticieni;
4. eficacitatea accesului la date;
5. administrarea centralizat a datelor;
6. neredundana datelor;
7. coerena datelor;
8. partajabilitatea datelor;
9. securitatea i confidenialitatea datelor.
1. Independena fizic presupune realizarea independenei structurilor de stocare n raport
cu structurile de date din lumea real.
2. Independena logic a datelor se refer la posibilitatea adugrii de noi articole sau extinderea
structurii conceptuale, fr ca aceasta s impun rescrierea programelor existente.
3. Manipularea datelor de ctre neinformaticieni presupune utilizarea unui limbaj ct mai
apropiat de limbajul natural, ceea ce permite exploatarea cu uurin a bazei de date de ctre
utilizatorii finali.
4. Eficacitatea accesului la date se realizeaz prin:
a) limbaje de manipulare a datelor;
b) limbaj neprocedural, care permite utilizatorului s descrie ceea ce vrea s
obin fr a da modul n care poate s obin.
5. Administrarea centralizat a datelor presupune definirea structurii datelor i a modului de
stocare a acestora, permind organizarea coerent i eficace a informaiei.
6. Neredundana datelor presupune neduplicarea fizic a datelor. Sunt i situaii n care, pentru
micorarea timpului de acces i a rspunsului la solicitri, s se accepte o anumit redundan a
datelor.
7. Coerena datelor presupune satisfacerea constrngerilor statice sau dinamice, locale sau
generale.
8. Partajabilitatea datelor presupune utilizarea datelor de mai multe aplicaii ce efectueaz
operaii asupra bazelor de date.

6
Tranzacia este o unitate logic de tratament, care, aplicat la o stare coerent a bazei de date,
genereaz o nou stare coerent a bazei de date.
SGBD asigur gestiunea tranzaciilor i a acceselor consecvente pentru evitarea cazurilor de
interblocare, n care una sau mai multe tranzacii ateapt eliberarea datelor inute de celelalte
tranzacii.
9. Securitatea i confidenialitatea datelor presupune protecia la accesul neautorizat sau ru
intenionat, prin mecanisme care permit identificarea i autentificarea utilizatorilor.
SGBD trebuie s asigure securitatea fizic i logic a bazelor de date i s garanteze c doar
utilizatorii autorizai efectueaz operaii asupra bazelor de date. Aceast funcie complex presupune:
a) Gestiunea autorizaiilor;
b) Controlul validitii operaiilor;
c) Protecia datelor mpotriva accesului neautorizat (parol, criptare etc.) i n cazul
defeciunilor. Aceste defeciuni pot s apar datorit unor manipulri incorecte, unor
incidente fizice sau logice, iar SGBD permite meninerea i repunerea bazei ntr-o
stare coerent n cazul apariiei unei avarii.

1.5. Componentele unui sistem de gestiune a bazelor de date


Un SGBD trebuie s includ cel puin cinci clase de module:
1) Programe de gestiune a bazei de date (PGBD);
2) Module pentru tratamentul limbajului de definire a datelor;
3) Module pentru tratamentul limbajului de manipulare a datelor;
4) Module utilitare, ce permit o ntreinere corect i uoar a bazei de date;
5) Module de control, care permit controlul programelor de aplicaie ale utilizatorilor.
1. Programe de gestiune a bazei de date (PGBD) realizeaz accesul fizic la date prin
intermediul comenzilor.
2. Modulele limbajului de definire a datelor permit traducerea (interpretativ sau
compilativ) a unui limbaj special ce realizeaz descrierea naturii datelor i a legturilor logice dintre
acestea fie la nivel global (schema conceptual), fie la nivelul specific al fiecrei aplicaii (schem
extern sau subschem).
3. Modulele limbajului de manipulare a datelor permit utilizatorilor s manipuleze, s
modifice, s reactualizeze sau s suprime datele dintr-o baz de date. Comenzile LMD depind de
sistemul de gestiune utilizat.
4. Modulele utilitare permit ntreinerea bazei de date. Lista acestor programe depinde de
complexitatea SGBD.
5. Modulele de control al datelor permit conservarea informaiei prin corectarea sau
prevenirea anumitor operaii efectuate de utilizatorii bazei de date.

1.6. Arhitectura sistemelor de gestiune a bazelor de date


Pentru a simplifica viziunea utilizatorilor, SGBD trebuie s asigure abstractizarea datelor
stocate pe diferite suporturi. Grupul ANSI/X3/SPARC a considerat pentru descrierea datelor o
arhitectur pe trei nivele (conceptual, intern, extern).
Nivelul central este nivelul conceptual. Acesta corespunde structurii canonice a datelor ce
caracterizeaz procesul de modelat, adic structura semantic a datelor fr implementarea pe
calculator. Schema conceptual permite definirea tipurilor de date care caracterizeaz proprietile
elementare ale entitilor, definirea tipurilor de date compuse care permit regruparea atributelor
pentru a descrie entitile modelului i legturi ntre aceste entiti, definirea regulilor pe care trebuie
s le respecte datele etc.

7
Nivelul intern corespunde structurii interne de stocare a datelor. Schema intern permite
descrierea datelor unei baze sub forma n care sunt stocate n memoria calculatorului. Sunt definite
fiierele care conin aceste date, articolele din fiiere, drumurile de acces la aceste articole etc.
La nivel conceptual sau intern, schemele descriu o baz de date. La nivel extern, schemele descriu
doar o parte din date care prezint interes pentru un utilizator sau un grup de utilizatori. Schema extern
reprezint o descriere a unei pri a bazei de date ce corespunde viziunii unui program sau utilizator.
Modelul extern folosit este dependent de limbajul utilizat pentru manipularea bazei de date. Schema
extern permite asigurarea unei securiti a datelor.
Arhitectura client-server include nucleul unui sistem de gestiune numit DMCS (Description
Manipulation and Control Sub-system) care funcioneaz n regim server. Exist diferite variante de
arhitecturi client-server dup cum fiecare utilizator are un server asociat (server multi-sarcin).
Arhitecturile client-server permit ca mai multe staii s partajeze aceleai date. Procesul client
gestioneaz aplicaiile utilizatorului care emit cereri server-ului. Un client poate referi mai multe servere
(arhitectura client-multiserver). Dezavantajul acestei arhitecturi este c centralizeaz gestiunea datelor
la nivelul server-ului.
Arhitectura federal adaug unei arhitecturi client-multiserver un SGBD care se gsete n
staia client. Datele dintr-un server pot fi scoase pentru a fi tratate pe staia client, iar dup tratament
vor fi retrimise de unde au fost luate.

17.2 EVOLUIA SISTEMELOR DE GESTIUNE A BAZELOR DE DATE


Istoria SGBD cuprinde trei generaii:
modele ierarhice i reea;
modele relaionale;
sisteme avansate: SGBD orientate obiect, SGBD deductive, SGBD distribuite.
Pentru modele ierarhice i reea, datele sunt reprezentate la nivel de articol prin legturi
ierarhice (arbore) sau de tip graf. Slaba independen fizic a datelor complic administrarea i
manipularea acestora. Limbajul de manipulare a datelor impune programatorului s specifice
drumurile de acces la date.
Modelul ierarhic este modelul cel mai natural, iar rezultatul studiului dup modelul ierarhic l
reprezint structurile:
- liniare
- arborescente
Nodurile reprezint entiti, iar ... reprezint asocieri ntre entiti. ntr-o structur ierarhic
ramificat, entitii aflate la un nivel ierarhic superior (printe) i corespund mai multe entiti aflate la
un nivel ierarhic inferior (copil), dar fiecare entitate aflat la un nivel ierarhic inferior corespunde unei
singure entiti aflat la un nivel ierarhic superior.
Modelul reea este un model performant, dar complicat. O baz de date de tip reea reprezint o
colecie de noduri i legturi ce permite realizarea urmtoarelor tipuri de structuri:
- liniare
- ierarhice
- reea
Legturile dintre entiti trebuie stabilite lund n calcul toate interogrile posibile i aciunile
viitoare probabile.
Modelul relaional trateaz entitile ca nite relaii. Piaa actual de baze de date este
acoperit n majoritate de sisteme relaionale. Acestea, ca i modelele de prima generaie, au fost
concepute pentru aplicaii clasice: contabilitate, gestiunea stocurilor etc.
Bazele de date relaionale sunt caracterizate de:
a) structuri de date simple, intuitive;

8
b) inexistena pointer-ilor vizibili pentru utilizatori;
c) constrngeri de integritate;
d) o mulime de operatori aplicai relaiilor care permit efectuarea operaiilor asupra
datelor.
Bazele de date relaionale ofer avantaje precum:
1. independena complet n descrierea logic a datelor (n termen de relaii) i n
descrierea fizic a datelor (n termen de fiiere);
2. un ansamblu integrat de utilitare bazat pe un limbaj de generaia a 4-a, i anume
generatoare de meniuri, generatoare de aplicaii, generatoare de forme, generatoare
de etichete etc.;
3. existena unor limbaje speciale de definire i manipulare a datelor.
Dintre sistemele de gestiune relaionale reprezentative, amintim: DB2, SQL/DS, INGRES,
SABRINA, ORACLE, INFORMIX, UNIFY, TS, RAPPORT.
Bazele de date relaionale nu folosesc ns obiecte complexe i dinamice, nu realizeaz
gestiunea datelor distribuite i nici gestiunea cunotinelor. O alt generaie de SGBD ce cuprinde
sistemele avansate ncearc s depeasc aceste limite ale sistemului relaional.
a) Gestiunea obiectelor complexe (baze de date orientate obiect)
Suportul obiectelor complexe i dinamice i manipularea lor este dificil pentru sistemele
relaionale, deoarece tipul datelor este limitat la cteva domenii alfanumerice, iar structura datelor
este simpl. Sistemele relaionale nu modeleaz obiecte complexe ca grafuri, liste etc.
Un obiect complex poate s fie descompus n relaii, dei apar dificulti la descompunerea i
la refacerea lui prin compunere (join). De asemenea, limbajele modelului relaional permit
manipularea cu dificultate a obiectelor complexe.
O aplicaie are un aspect static (reprezentat prin date) i un aspect dinamic (reprezentat prin
tratamentul acestor date). Obiectele manipulate de sistemele relaionale sunt, n general, statice, iar
comportamentul lor (dinamica lor) este dat separat prin programele aplicaie. Un sistem relaional nu
suport obiecte dinamice care ncorporeaz att partea de date (informaii) efective, ct i o parte
relativ la tratamentul lor.
n programarea orientat pe obiect, efortul const n definirea obiectelor. Obiectele de acelai
tip formeaz o clas care este generalizarea noiunii de tip de date definit de utilizator. Clasa include,
pe lng date, i metodele de acces. Datele sunt vizibile doar metodelor asociate clasei respective.
Acesta este aa-numitul principiu al ncapsulrii datelor. Prin funcii numite constructori i destructori,
programatorul deine controlul asupra operaiilor necesare la crearea, respectiv dispariia unui anumit
obiect. Un alt concept fundamental este cel al derivrii, adic putem defini o clas care s
moteneasc proprietile (care constau din date i funcii) uneia sau mai multor clase printe.
mbinarea tehnicii limbajelor orientate obiect cu a bazelor de date a permis realizarea
bazelor de date orientate obiect. Aceste baze permit organizarea coerent a obiectelor partajate
ntre utilizatori concureni.
Sistemele de gestiune orientate obiect prezint urmtoarele avantaje:
realizeaz o modelare superioar;
furnizeaz posibiliti superioare de deducie (ierarhie de clase, motenire);
permit luarea n considerare a aspectelor dinamice i integrarea descrierii structurale
i comportamentale;
mbuntesc interfaa cu utilizatorul.
b) Gestiunea cunotinelor (baze de date deductive)
O relaie este o colecie de tupluri ce reprezint fapte. Cunotinele sunt aseriuni generale i
abstracte asupra faptelor. De exemplu, Costic este medic este un fapt, iar Toi medicii sunt bogai este
o cunotin. Cunotineele permit s raionezi, ceea ce permite deducerea de noi fapte, plecnd de la

9
fapte cunoscute (Costic este bogat) i obinerea de rspunsuri inteligente (putem rspunde la ntrebarea
Cine sunt bogai? prin forma Toi medicii).
Un SGBD relaional suport o form limitat de cunotine, i anume constrngerile de
integritate, restul cunotinelor trebuie integrate n programele aplicaie. Aceasta genereaz
probleme, fie c trebuie codificate cunotinele n programe, fie c apare imposibilitatea de a partaja
cunotine ntre utilizatori. Totul se complic dac exist un volum mare de fapte.
Bazele de date deductive, utiliznd programarea logic, gestioneaz cunotine relativ la
baze de date care, n general, sunt relaionale. Bazele de date deductive permit deducerea de noi
informaii, plecnd de la informaiile stocate n baz.
Un SGBD deductiv posed:
Un limbaj de definire a datelor, care permite definirea structurii predicatelor sub form
de relaii i constrngeri de integritate asociate.
Un limbaj de manipulare a datelor, care permite efectuarea reactualizrilor asupra
datelor i formularea unor cereri.
Un limbaj de reguli de deducie , care permite ca, plecnd cu predicatele definite
anterior, s se specifice cum pot fi construite predicate derivate necesare filtrrilor
cerute de utilizator. Un exemplu de limbaj de reguli care permite specificarea relaiilor
deduse cu ajutorul clauzelor HORN fr simboluri tip funcie este limbajul DATALOG.
c) Gestiunea datelor distribuite (baze de date distribuite)
Un sistem distribuit este un ansamblu de maini interconectate printr-o reea de comunicaie i
utilizate ntr-un scop global. Administrarea i manipularea datelor distribuite, situate pe diferite
calculatoare i exploatate de sisteme eterogene este obiectivul fundamental al bazelor de date
distribuite.
Baza de date distribuit este un sistem de baze de date logic integrat, dar fizic dispersat pe
mai multe echipamente de calcul interconectate.
Proprietile bazei de date distribuite (BDD):
- respect definiia i toate caracteristicile bazei de date;
- din unghiul de vedere al mulimii user-ilor, o singur baz de date:
o singur schem conceptual;
userii interacioneaz cu ea n aceai manier n care o fceau cu o baz de
date centralizat;
- este fragmentat, iar fragmentele obinute sunt plasate n mijlocul realitii imediate i-n
mijlocul user-ilor fraciunilor respective;
- permite accesul la locaii diferite.
Baza de date distribuit (BDD) este o reuniune a bazelor de date locate (BDL), acestea
rezultnd prin fragmentarea uni tabel unitar.
Sunt utilizate trei modaliti de fragmentare:
- mprirea mulimii de tabele n submulimi de tabele;
- fragmentarea orizontal a tabelelor; fragmentele rezultate au aceeai structur cu tabelul
original;
n
BDD U BDL(i )
i 1
- fragmentarea vertical a tabelelor.
Replicarea datelor reprezint operaia de realizare de copii multiple ale unor tabele sau
fragmente de tabele care sunt actualizate dup dou metode:

10
- actualizarea simultan a BDD este o operaie consistent, dar ncarc reeaua pe care se
lucreaz;
- actualizarea ntrziat a BDD; asupra copiei principale se efectueaz toate operaiile de
actualizare, celelalte copii sunt aduse la zi atunci cnd reeaua este mai puin solicitat (noaptea,
weekend). Este proprie aplicaiilor pentru care inconsistena de o zi sau o sptmn nu conteaz.

Modaliti de construire a BDD


1. Construirea de la zero - se urmeaz procedura de creare a bazei de date, care
cuprinde:
a) studiul realiltii;
b) modelul logic al datelor;
c) modelul fizic; la modelul fizic al datelor se mai adaug dou operaii:
1/ fragmentarea datelor (apropierea de realitatea reflectat i de userii lor);
2/ replicarea datelor (se decide dac se va lucra cu date replicate: ce fragmente
vor fi n copie multipl; care va fi tipul de actualizare (simultan/ntrziat); dac
este actualizare ntrziat, se va decide care este copia principal i cnd se
actualizeaz copiile secundare.
2. Integrarea de baze de date i fiiere existente ntr-o baz de date distribuit se
pune problema eterogenitii bazelor de date existente pe calculatoare diferite (gestiunea bazelor de
date existente se face cu SGBDD diferite; sau modelele ce stau la baza BDD de tipuri diferite
(ierarhice, reea, fiiere), sau BDD conine structuri care pot fi considerate fragmente ale unei tabele
globale, dar cu structuri diferite.
Sistemul de BDD, ca i sistemul de baze de date SBDD, este alctuit din 4 elemente:
date, hardware, software i useri.
Datele sunt aceleai cu cazul n care aceste date ar fi numerotate pe acelai calculator, cu
deosebirea c sunt memorate n locuri diferite.
Hard este mai complex dect n cazul unui singur calculator, intervin modemurile i liniile
de comunicaii.
Soft n locul SGBD, apare SGBDD, iar userii sunt aceiai ca n cazul bazei de date
centralizate (finali, informaticieni, administratorul).
Structurarea datelor:
- n cazul unei baze de date locale, structura este urmtoarea:

Schem extern SE1 SE2 ..... SEn

Schem conceptual SC
BDLi

Schem intern Si
BDLi

Structura extern reprezint viziunea user-ilor asupra datelor din baza de date.
Schema conceptual reprezint viziunea mulimii tuturor user-ilor din baza de date
(viziunea ntreprinderii asupra datelor sale operaionale).
Schema intern reprezint structura de memorare i strategia de acces la date.
Acest tip de structurare permite independena datelor.
Cazul BDD
SE1 SE2 SEn SEG1 SEG2 SEGn

11
SC + SCG
BDLi BDD

SP SIG
BDLi BDD

SEG = viziunea user/grup useri asupra datelor din BDD


SCG = este SG a BDD vzut ca o singur baz de date (formal nu difer de SC a
unei BD).
SIG = conine informaii privind fragmentarea, replicarea i localizarea datelor
distribuite.
Aceast structurare asigur independena aplicaiilor fa de fragmentare, replicare i
localizare.
SGBDD
Arhitectura unui SGBDD
Schem
Interfaa utilizator idem baze de date centralizare, difer o cerere a unui user de la acest
nivel se adreseaz nu unei baze locale, ci mai multora. Cererea user este preluat de modulul de
evaluare, care analizeaz cererea respectiv n raport cu dicionarul BD, se stabilesc nodurile care
vor participa la rezolvarea cererii respective. Cererea respectiv poate fi descompus n subcereri
(X).
Modulul de recompunere urmare unei cereri distribuite, sosesc la acest modul mai multe
rspunsuri locale. Rolul su este s compun din rspunsurile locale rspunsul global.
Mecanismul de control al concurenei concuren, blocare, impas
Replicarea
Blocarea rezolvarea impasului n cazul BDD se rezolv mult mai greu, deoarece
blocrile pot aprea n reea i rezolvarea impasului este dificil. Alt g. implementai de SGBDD sunt
cel puin cu un grad mai mare dect cei la SGBD.
Un sistem paralel este un sistem conceput pentru a exploata capacitile unui calculator
multiprocesor. Implementarea unui SGBD ca un sistem paralel permite exploatarea paralelismului inerent
care exist n bazele de date.
Modelul relaional a rmas instrumentul prin care se realizeaz prelucrarea datelor distribuite,
deoarece:
Bazele relaionale ofer flexibilitate de descompunere n vederea distribuirii. Tabelele
se pot descompune orizontal, vertical i se pot regrupa.
Operatorii relaionali pot fi folosii pentru combinaii dinamice ale informaiilor
descentralizate.
Limbajele sistemelor relaionale sunt concise i asigur o economie considerabil a
transmiterii datelor. Ele fac posibil, pentru un nod oarecare al reelei, s analizeze intenia
unei tranzacii, s o descompun rapid n componente ce pot fi realizate local i
componente ce pot fi transportate altor noduri.
Soluia pentru a descentraliza prelucrarea datelor, n scopul evitrii saturrii memoriei i a
procesoarelor calculatorului central, a fost apariia calculatoarelor baze de date i a mainilor baze
de date. Descentralizarea presupune transferarea unei pri din funciile unui SGBD ctre un
calculator periferic (calculator backend), adic deplasarea algoritmilor de cutare i a celor de
actualizare a datelor mai aproape de memoria secundar. Acest calculator periferic permite utilizarea
optim a resurselor i realizarea paralelismului n tratarea cererilor de informaii. Calculatorul periferic

12
poate fi un calculator clasic, dar cu un software specific de SGBD (calculator baz de date) sau poate
fi o main cu hardware specializat n gestiunea bazelor de date (main baz de date).
Mainile baze de date sunt nzestrate cu arhitecturi paralele special adaptate pentru
gestionarea unui volum mare de date. Tratarea paralel a cererilor permite reducerea timpului total
de execuie a acestora. O execuie n paralel solicit fie descompunerea unui program n module
care pot fi executate n paralel (descompunere funcional), fie descompunerea datelor n subgrupe,
astfel nct toate procesoarele s execute acelai lucru, dar pe date diferite.

17.3 LIMBAJUL SQL


17.3.1. Chestiuni preliminarii
Realizarea unui sistem de gestiune a bazelor de date din reea de tip client/server a fost
posibil datorit urmtoarelor tehnologii:
- Dezvoltarea unui model de baze de date relaionale;
- Apariia calculatorului personal;
- Dezvoltarea reelelor locale de calculatoare (LAN);
- Apariia interferenelor prietenoase cu utilizatorul, astfel nct calculatoarele au devenit
ieftine, puternice i simplu de utilizat.
O reea de calculatoare reprezint un ansamblu de calculatoare interconectate prin intermediul
unor medii de comunicaie (telefon, fibr optic, ghid de unde, cablu coaxial), asigurndu-se pe
aceast cale folosirea n comun de un numr mare de utilizatori a tuturor resurselor fizice (hardware),
logice (software de baz i aplicaii) i informaionale (baze de date) de care dispune ansamblul de
calculatoare interconectate.
Astfel se asigur:
- integrarea informatic a utilizatorilor de pe o arie foarte mare;
- echilibrarea folosirii resurselor de calcul;
- sporirea capacitii de calcul i informare.
Topologic, o reea de calculatoare este descris de un graf format din moduri (calculatoare,
staii de lucru, terminale) interconectate ntre ele prin arce care reprezint limite de legtur ntre
echipamentele din moduri. Tehnologia client/server este modelul de procesare n care o singur
aplicaie este folosit n comun de mai multe procesoare, care coopereaz (ntr-un mod transparent
pentru utilizator) pentru terminarea procesrii ca pe un singur task unificat. Un produs client/server
combin mpreun procedoarele pentru a asigura o singur imagine a sistemului. Resursele
partajabile sunt poziionate la clienii care au cereri ce acceseaz servicii autorizate. Aceast
arhitectur este total recursiv: pe rnd, serverele pot deveni clieni i pot cere servicii de la alte
servere din reea, etc. Acest tip de dezvoltare de aplicaii a generat nevoia unui set de instrumente de
programare nou care cuprinde i limbajul SQL.
SQL (Limbaj structurat de integrare) folosete pentru:
- crearea de tabele;
- adugare i tergere de date;
- combinarea datelor;
- declanarea de aciuni n funcie de modificrile aduse bazei de date;
- memorarea interogrilor n cadrul programului sau bazei de date, de aceea SQL este
un limbaj structurat pentru adugare, modificare, tergere, jonciune, memorare,
declanare i interogare, reprezentnd limbajul standard utilizat n S.G.B.D.
relaionale.
Prin SQL un programator sau un administrator de baze de date poate efectua urmtoarele
operaii:
- modific structura unei baze de date;

13
- modific valorile de configurare pentru securitatea sistemului;
- adaug drepturi utilizatorilor asupra bazelor de date;
- interogheaz B.D.
- actualizeaz coninutul unei B.D.
SQL a fost realizat prima dat ca un standard ANSI n 1986 apoi modificat n 1989 (SQL-98)
care definete trei tipuri de realizare a interfaei cu SQL ntr-un program de aplicaie:
- Limbaj modular utilizeaz proceduri ce pot fi apelate de programul aplicaiei i pot returna valori
de program prin transmiterea parametrilor;
- SQL ncapsulat folosete instruciuni SQL ncapsulate ceea ce necesit utilizarea unui
precompilator pentru procesarea instruciunilor SQL;
- Apelul direct este lsat la alegerea persoanei care implementeaz programul.
SQL 92 a devenit un standard internaional i asigur n plus:
- conectrile la bazele de date;
- cursoare derulante;
- SQL dinamic;
- Jonciuni externe.
17.3.2. Integrarea
1. Comanda SELECT i FROM
Fie B.D. BIBLIOTECAR ce conine structura FURNIZOR, Numr-bon, Pre, observaii, atunci
comanda poate s aib urmtoarele forme:
a) SELECT * From Bibliotecar;
b) SELECT furnizor, pre, numr-bon, FROM bibliotecar;
Semnul * transmite bazei de date comanda de a returna toate coloanele asociate cu tabelul dat
descris n clauza FROM.
Expresii, condiii i operatori
EXPRESIA returneaz o valoare i ea poate trata diferite tipuri cum ar fi
ir numeric sau logic

Clauza WHERE are urmtoarea sintax:


WHERE < Condiie de cutare >

Ea face interogrile selective.


OPERATORII sunt urmtoarele tipuri distincte: - aritmetici;
- de comparare;
- caracter;
- logici;
- pentru mulimi.
a) Operatori aritmetici:
- Adunarea (+), realizeaz adunarea a dou cmpuri numerice;
- Scderea (-),realizeaz scderea a dou cmpuri numerice;
- mprire /, realizeaz mprirea a dou cmpuri numerice;
- Modulo (%), returneaz restul ntreg al operaiei de mprire.
b) Operatori de comparaie compar expresiile i returneaz una din urmtoarele trei valori:
TRUE (Adevrat);
FALSE (Fals);
UNKNOWN (Necunoscut).
n termenii bazelor de date NULL semnific absena datelor dintr-un cmp.
Egal (=) este cel mai utilizat operator de comparare n clauza WHERE.

14
Exemplu:
SELECT *
FROM Bibliotecar
WHERE Furnizor = 'IBM-PC';
Mai mare (>), Mai mare sau egal (> =)
Exemplu:
SELECT *
FROM Bibliotecar
WHERE COD_CARTE > = 300;
Mai mic (<) Mai mic sau egal (< =)
Inegalitate (< > sau non egal !=)
c) Operatori caracter
1. LIKE selecteaz pri ale unei B.D. care fac potrivirea unui model dar foarte exact.
2. Underscore (Subliniere) ( _ ) Semnul undercore este un caracter de nlocuire pentru
un singur caracter.
Exemplu:
SELECT
FROM PRIETENI
WHERE STAT LIKE 'c-';

3. Concatenarea (| |) Concateneaz dou iruri.


Exemplu:
SELECTPRENUME||NUME_DE_FAMILIE NUME_NTREG
FROM BIBLIOTECAR

d) Operatori logici
1. AND (I)
2. OR (SAU)
3. NOT (NU)

e) Operatori pentru mulimi


UNION i UNION ALL
1. UNION returneaz rezultatele a dou interogri, mai puin liniile duplicate, scriindu-le o
singur dat.
2. UNION ALL acioneaz ca UNION fr s elimine duplicatele.
3. INTERSECT (intersecie) returneaz numai liniile gsite de ambele interogri.
4. MINUS (Diferena) returneaz liniile din prima interogare care nu fac parte din a doua
interogare.
5. IN (n) i BETWEEN (ntre)
WHERE STAT IN ('CA', 'CO', 'LA');
WHERE PRET BETWEEN 0.25 AND 0.75

17.3.3 Funcii

Funciile SQL permit efectuarea de operaii matematice sau modificarea caracterelor unui ir.
Ele sunt:
a) Funcii totalizatoare;
b) Funcii pentru dat calendaristic i or;

15
c) Funcii aritmetice;
d) - Funcii caracter;
e) Funcii de conversie;
f) Funcii diverse.
a) Funcii totalizatoare sau funcii de grup:
COUNT returneaz numrul de linii care respect condiia din clauza WHERE.
SUM returneaz suma tuturor valorilor dintr-o coloan, este o funcie de argumente
numerice.
AVG calculeaz valoarea medie a unei coloane (AVERAGE).
MAX Determin i returneaz elementul maxim dintr-o coloan.
MIN - Determin i returneaz elementul minim dintr-o coloan.
VARIANCE - Determin i returneaz dispersia abaterilor.
STDDEV determin abaterea sau deviaia standard a unei coloane de numere.
b) Funcii pentru dat calendaristic i or.
ADD_MONTHS adaug un numr de luni la o dat calendaristic specificat;
LAST_DAY ntoarce ca rezultat ultima zi a unei luni specificate;
MONTHS BETWEEN (lunile dintre)- ntoarce ca rezultat numrul de luni ntre luna x i luna y;
NEW_TIME (ora nou) corecteaz ora n funcie de ora teritoriului (zonei) n care v aflai;
NEXT_DAY (ziua urmtoare) gsete
SYSDATE (ora i data calendaristic a sistemului) returneaz ora i data calendaristic a
sistemului.
c) Funcii aritmetice
ABS returneaz valoarea absolut a unui numr;
CEIL i FLOOR
CEIL returneaz cel mai mic numr ntreg mai mare sau egal cu un argument
FLOOR returneaz cel mai mare numr ntreg egal sau mai miccu un argument.
CEIL (2,5) = 3
FLOOR (2,5) = 2
COS, COSH, SIN, SINH, TAN i TANH
COS, SIN, TAN - funciile trigonometrice pe cerc
COSH, SINH, TANH - funciile trigonometrice hiperbolice
EXP (A) reprezint eA, unde e @ 2,72
LN i LOG funciile logaritmice
LN(x) = ln x
LOG(x) = log10x
MOD (A,B) returneaz un tabel care afieaz restul mpririi lui A la B.
POWER (A,B) AB
+1 dac A >0
SIGN (A) semnul lui A = 0 dac A =0
-1 dac A <0
SQRT (A) reprezint radicalul numrului A.
d) Funciile caracter
CHR (COD) - returneaz caracterul echivalent cu numrul folosit ca argument.
CONCAT lipete dou iruri
INITCAP configureaz un cuvnt astfel: Prima liter mare iar celelalte mici.
LOWER i UPPER
LOWER modific toate caracterele n litere mici.
UPPER execut operaia invers.

16
LPAD (x, y, z)
x reprezint irul de caracter cu care opereaz;
y reprezint numrul de caractere cu care se lungete irul;
z caracterul de umplere a spaiilor adugate.
LTRIM i RTRIM reprezint funcii de aliniere

REPLACE (x,y,z)
x reprezint irul ce trebuie cutat (ablonul);
y reprezint cheia de cutare;
z este irul de nlocuire.
SUBSTR (x, y, z)
x reprezint irul destinaie;
y reprezint poziia primului caracter care trebuie afiat;
z reprezint numrul de caractere care trebuie tiprite.
TRANSLATE (x, y, z)
x reprezint irul destinaiei
y reprezint irul FROM
z reprezint irul TO
INSTR (x, y) se utilizeaz pentru a determina unde gsii ntr-un ir un anumit tipar. INSTR (x,
y) unde:
X reprezint irul destinaiei
Y reprezint tiparul (ablonul) care trebuie gsit.
LENGTH returneaz lungimea singurului argument caracter pe care l primete.
e) Funcii de conversie
TO_CHAR convertete un numr ntr-un caracter.
TO_NUMBER primete ca parametru un ir pe care l convertete ntr-un numr.
4. CLAUZE
1. WHERE (unde)
2. STARTING

17.4 UTILIZAREA SGBD RELAIONALE N PRELUCRAREA DATELOR EXPERIMENTALE


PSIHOLOGICE

17.4.1 Chesiuni introductive


Elementul de software indicat, n prelucrarea datelor psihologice necesare calculului
compoziiilor la echilibru, este sistemul de gestionare a bazelor de date relaionale (SGBDR).
Acest sistem se bazeaz pe modelul de date relaional propus de E.F. Codd (1970), unde datele
sunt structurate logic n cadrul unor relaii. Modelul relaional se bazeaz pe conceptul matematic de relaie,
care este reprezentat fizic sub form de tabel.
Pentru o bun nelegere a modului n care se poate concepe o aplicaie cu baze de date,
destinat gestionrii datelor psihologice, dar i prelucrrilor ulterioare ale acestora, sunt necesare i
cunotine legate de terminologia i conceptele modelului relaional.
.Terminologia utilizat de modelul relaional
Relaia este o tabel bidimensional format din rnduri (linii) numite tupluri sau nregistrri i
coloane numite domenii. Relaia are un nume prin care este identificat.
Cmpul(atribut) este o coloan a unei relaii, cu o anumit denumire. Atributele pot aprea n orice
ordine, relaia rmnnd neschimbat, prin urmare pstrnd acelai neles.

17
Domeniul este mulimea de valori permise pentru un atribut (cmp). Un domeniu se poate defini
explicit, prin enumerarea tuturor valorilor aparinnd cmpului sau implicit prin precizarea
proprietilor pe care le au valorile din cadrul domeniului respectiv.
Domeniile constituie o caracteristic extrem de puternic a modelului relaional. Fiecare atribut
dintr-o baz de date relaional este definit pe un domeniu. Domeniile pot fi diferite pentrui fiecare
atribut, sau dou sau mai multe atribute pot fi definite pe acelai domeniu. Conceptul de domeniu
permite utilizatorului definirea sensului i surse de valori pe care le poate lua atributul, ntr-un loc
central. Ca rezultat, sistemului i sunt disponibile mai multe informaii, atunci cnd acesta preia
executarea unei operaii relaionale, iar operaiile incorecte semantic pot fi evitate.
Tuplul sau nregistrarea este un rnd dintr-o relaie (tabel). Tuplurile pot aprea n orice ordine i
relaia va rmne aceeai, prin urmare pstreaz acelai sens. Tuplurile sunt denumite extensia sau
starea unei relaii, care se modific n timp.
Structura unei relaii mpreun cu specificarea domeniilor i a oricror alte restriciiasupra
valorilor posibile, este denumit intensitatea acesteia, care este fixat, n afar de cazuln care
sensul unei relaii este modificat pentru a include atribute adiionale.
Gradul unei relaii reprezint numrul de atribute pe care le conine aceasta.
Cardinalitatea unei relaii reprezint numrul de tupluri coninute de o tabel.
Baza de date relaional este un set de relaii normalizate. O baz de date relaional
const ntr-un set de relaii care sunt structurate adecvat. Aceast adecvare se numete normalizare.
Normalizarea este o tehnic normale de analizare a relaiilor executat adeseori sub forma unei serii
de pai iar procesul de normalizare face obiectul unei abordri separate, n detaliu.
Terminologie alternativ
n modelul relaional se utilizeaz trei seturi de termeni iar terminologia i are originile n faptul
c, din punct de vedere fizic, sistemul SGBDR poate stoca fiecare relaie ntr-un fiier. Tabelul 1
conine termenii folosii n diferite alternative.

Termeni formali Alternativa 1 Alternativa 2


Relaie Tabel Fiier
Tuplu Rnd nregistrare
Atribut Coloan Cmp
Tabelul 1 - Terminologie alternativ a termenilor din modelul relaional
Relaii n bazele de date
Aplicnd aceste concepte la bazele de date, vom avea:
Schem de relaie este o denumire a relaiei, urmat de un set de perechi de atribute i denumiri de
domenii.
Fie atributle A1, A2,..., An, cu domeniile D1, D2,...,Dn. Atunci mulimea {A1:D1, A2:D2, An:Dn} reprezinta
schem de relaie. O relaie R, definit de o schem de relaie S, este un set de corespondene ntre
denumirile atributelor i domenii1e corespunzatoare acestora. Prin urmare, relaia R este o mulime
de n-tupluri:
(A1: d1,A2: d2,...,An: dn) astfel nct d1D1, d2D2,..., dnDn
Fiecare element din n-tuplu este format dintr-un atribut i o valoare a acestuia. n mod normal, atunci
cnd se scrie o relaie sub form de tabel, se reprezinta denumnle atributelor ca anteturi ale
coloanelor i se scriu tuplurile ca rnduri, de fonna (d 1, d2,..., dn), unde fiecare valoare este luat din
domeniul corespunztor. n acest mod, putem considera o relaie din modelul relaional ca pe o
submulime a produsului cartezian al domeniilor atributelor. Un tabel este pur i simplu o reprezentare
fizic a unei astfel de relaii.

18
Proprietile relaiilor
O relaie are urmtoarele caracteristici:
- are o denumire, diferit de toate celelalte denumiri
- de relaii;
- fiecare celul a relaiei conine exact o valoare atomic (singular);
- fiecare atribut are o denumire distinct;
- toate valorile unui atribut aparin aceluiai domeniu;
- ordinea atributelor nu are nici o importan;
- fiecare tuplu este distinct; nu exista dubluri ale tuplurilor;
- teoretic, ordinea tuplurilor nu are nici o importan (totui, n practic, ordinea poate afecta eficiena
accesrii tuplurilor).
Din moment ce fiecare celul trebuie s conin doar o singur valoare, stocarea ntr-o
singur celul a dou informaii pentru o singur valoare pentru un camp este ilegal. Cu alte cuvinte,
relaiile nu conin grupuri repetitive. O relaie care satisface aceast proprietate se spune c este
normalizat, sau n prima form normal.
Denumirile coloanelor, afiate la nceputurile acestora, corespund atributelor relaiei. Dac
denumirea unui atribut este mutat mpreun cu valorile acestuia, se pot interschimba coloanele.
Intr-o relaie nu pot exista tupluri duble.
Majoritatea proprietilor specificate mai sus pentru relaii rezult din proprietile relaiilor
matematice:
- din moment ce relaia este o mulime, ordinea elementelor sale nu are nici o semnificaie.
Prin urmare, ordinea tuplurilor dintr-o relaie este lipsit de importan;
- ntr-o mulime nu se repet nici un element. Similar, ntr-o relaie, nu exista tupluri duble;
- atunci cnd se realizeaz produsul cartezian al mulimilor cu elemente simple, care iau o singur
valoare - cum ar fi numerele ntregi - fiecare element din fiecare tuplu are o singur va1oare. n mod
similar, fiecare celul dintr-o relaie conine exact o valoare. Totui, nu este necesar ca o relaie
matematic s fie normalizat. Codd a hotrt s nu permit repetarea grupurilor, pentru a simplifica
modelul de date relaional;
- ntr-o relaie, valorile posibile pentru o poziie dat sunt determinate de ctre multimea - sau
domeniul - n care este definit poziia respectiv. Intr-un tabel, valorile din fiecare coloana trebuie s
provin din acelai domeniu al atributului respectiv.
Totui, ntr-o relaie matematic, ordinea elementelor dintr-un tuplu este important. De exemplu,
perechea ordonat (1, 2) este diferit de perechea ordonat (2, 1 ). Acest fapt nu este valabil i
pentru relaiile din modelul relaional, care necesit n mod special ca ordinea atributelor s nu
prezinte importan. Motivul este ca anteturile coloanelor definesc carui atribut i aparin valorile.
Aceasta nseamn c nu conteaz ordinea anteturilor coloanelor din intensitate, dar, o dat aleas
structura unei relaii, ordinea elementelor din interiorul tuplurilor extensiei trebuie s corespund
ordinii denumirilor atributelor

Chei relaionale
Trebuie s existe posibilitatea de identificare unic a fiecrui tuplu dintr-o relaie, prin valorile
atributelor sale. n acest paragraf, vom explica terminologia utilizat pentru cheile relaionale.
Supercheia este un atribut sau un set de atribute, care identific n mod unic un tuplu din interiorul
unei relaii.
Din moment ce o supercheie poate conine atribute adiionale, care nu sunt necesare
pentru o identificare unic, ne intereseaz gsirea supercheilor care conin numai atributele necesare
pentru o identificare unic.

19
Cheie candidat este o supercheie pentru care nici o submulime adecvat nu este o
supercheie n cadrul relaiei respective.
O cheie candidat, K, pentru o relaie R are dou proprieti:
- unicitate n fiecare tuplu al relaiei R, valorile cheii K identific n mod unic acel tuplu;
- ireductibilitate Nici o submulime adecvat a cheii K nu are proprietatea de unicitate.
Pentru o relaie pot exista mai multe chei candidat. Atunci cnd o cheie const n mai mult dect un
atribut, se numete cheie compus.
De observat c o instan a relaiei nu poate fi utilizat pentru a demonstra c un atribut sau o
combinaie de atribute constituie o cheie candidat. Faptul c nu exist dubluri ale valorilor ce apar
ntr-un anumit moment de timp nu garanteaz c dublurile nu sunt posibile. Totui, prezena dublurilor
ntr-o instan poate fi utilizat pentru a arta ca o anumit combinaie de atribute nu constituie o
cheie candidat. Identificarea unei chei candidat necesit cunoaterea nelesului din "lumea real" al
atributului(elor) implicat, astfel nct s se poat stabili dac sunt posibile dubluri. Numai prin
utilizarea acestor informaii semantice, putem fi siguri c o combinaie de atribute constituie o cheie
candidat.
Cheie primar este cheia candidat care este selectat pentru a identifica n mod unic tuplurile din
cadrul unei relaii.
Din moment ce o relaie nu are tupluri duble, este intotdeauna posibila identificarea unica a fiecrui
rnd. Aceasta nseamn c o relaie are ntotdeauna o cheie primar. n cel mai ru caz, ntreaga
mulime de atribute poate servi drept cheie primar, dar, de obicei, o submulime mai mic este
suficient pentru deosebirea tuplurilor. Cheile candidat care nu sunt selectate drept chei primare se
numesc chei alternative.
Cheie strain este un atribut sau o mulime de atribute din cadrul unei relaii, care se potrivesc cu
cele din cheia candidat a unei (posibil aceeai) alte relaii.
Atunci cnd un atribut exista n mai mult decat o singur relaie, de obicei apariia sa reprezint o relaie
ntre tuplurile celor dou relaii.
Integritatea relaional
In paragraful precedent am analizat partea structural a modelului de date relaional. Aa cum am
stabilit n paragraful anterior un model de date mai are nc dou pari: o parte de manipulare, care
definete tipurile de operaii permise asupra datelor, i un set de reguli de integritate, care asigur
corectitudinea datelor. n acest paragraf, vom analiza regulile relaionale de integritate, iar n cel
urmtor, operaiile relaionale de manipulare.
Din moment ce fiecare atribut are un domeniu asociat, exist anumite constrngeri (denumite
constrngeri de domeniu) sub form de restricii, asupra mulimii de valori permise pentru
atributele relaiilor. Pe lng acestea, exist dou reguli de integritate importante, care reprezint
constrngeri sau restricii ce se aplic tuturor instanelor unei baze de date. Pentru modelul relaional,
cele dou reguli principale sunt cunoscute sub denumirile de integritate a entitilor, respectiv
integritate referenial. nainte de a defini aceti termeni, este necesar nelegerea conceptului de
null.

Null-uri
Null reprezint valoarea unui atribut, care este n mod curent necunoscut sau nu este aplicabil
tuplului respectiv.
Integritatea entitilor
Integritatea entitilor ntr-o relaie de baz, nici un atribut al unei chei primare nu poate fi null.
Integritatea referenial
Integritate referentiala Dac ntr-o relaie exist o cheie strin, valoarea acesteia trebuie ori s
coincid cu valoarea unei chei candidat a unui tuplu n relaia sa de baz, ori s fie n ntregime null.

20
Limbajele relaionale
In paragraful de mai sus, am stabilit c o parte a modelului de date const n manipulare,care
definete tipurile de operaii permise asupra datelor. Aceasta include operaiile utilizate pentru
reactualizarea sau regsirea datelor din baz de date i pentru modificarea structurii acesteia. Exist
o diversitate de limbaje utilizate de ctre sistemele SGBD relaionale pentru manipularea relaiilor.
Unele dintre ele sunt procedurale, ceea ce nseamn c utilizatorul i comunic exact sistemului
cum s manipuleze datele. Altele sunt neprocedurale, ceea ce nseamn c utilizatorul stabilete
mai degrab ce date sunt necesare, dect cum sunt ele regsite.
n acest paragraf, ne vom concentra asupra algebrei relaionale i calculului relaional, aa cum au fost
definite de ctre Codd (1971) ca baz pentru limbajele relaionale. Intr-un 1imbaj neprotocolar, am putea
descrie algebra relaional ca un limbaj procedural (de nalt nivel) acesta poate fi utilizat pentru a-i
comunica sistemului SGBD cum s construiasc o nou relaie dintr-una sau mai multe relaii existente n
baza de date. n acelai limbaj neprotocolar, putem descrie calculul relaional ca un limbaj neprocedural -
poate fi utilizat pentru a formula definiia unei relaii n termeni de una sau mai multe relaii din baza de date.
Totui, formal, algebra relaional i calculul relaional sunt echivalente - pentru fiecareexpresie din algebr,
exist o expresie echivalent n calculul relaional (i invers).
Calculul relaional este utilizat pentru msurarea puterii selective a limbajelor relaionale. Un limbaj
care poate fi utilizat pentru realizarea oricrei relaii ce poate fi obinut prin aplicarea calcului
relaional se spune ca este relaional complet. Majoritatea limbajelor de interogare relaionale sunt
relaional complete, dar au o putere de expresie mai mare dect algebra relaional sau calculul
relaional, datorit operaiilor adiionale - cum ar fi funciile de calcul, de sumare i de ordonare.
Att algebra, ct i calculul sunt limbaje formale, neprietenoase cu utilizatorul. Ele au fost utilizate
pentru bazele de date relaionale ca fundament pentru alte limbaje de manipulare a datelor (DML), de
nivel mai nalt. Prezint interes, deoarece ilustreaz operaiile de baz cerute de ctre orice limbaj
DML i servesc drept etalon de comparare cu alte limbaje relaionale. I
Alte limbaje
Dei calculul relaional este dificil de neles i de utilizat, s-a recunoscut c proprietatea sa
neprocedural este extrem de util, ceea ce a avut drept rezultat cercetarea altor tehnici
neprocedurale, uor de utilizat. Aceasta a dus la alte dou categorii de limbaje relaionale: orientate
spre transformri i grafice.
Limbajele orientate spre transformri constituie o clas de limbaje neprocedurale, care utilizeaz
relaii pentru a transforma datele de intrare n ieirile cerute. Aceste limbaje prezint structuri uor de
utilizat, care permit exprimarea a ceea ce se dorete n funcie de ceea ce se cunoate. Limbajele
SQUARE (Bovce et al., 1975), SEQUEL (Chamberlin et al., 1976) i urmaul acestuia, SQL, sunt
orientate spre transformri.
Limbajele grafice ofer utilizatorului o imagine sau ilustrare a structurii relaiei. Utilizatorul
completeaz un exemplu a ceea ce se dorete, iar sistemul returneaz datele cerute n acest format.
Limbajul QBE (Querv-bv-Example) este un exemplu de limbaj grafic (Zloof, 1977).
O alta categorie o constituie limbajele din a patra generaie (4GL 1), care permit crearea unei aplicaii
complet personalizate prin utilizarea unui set limitat de comenzi, ntr-un mediu prietenos cu
utilizatorul, adeseori condus prin meniuri. Unele sisteme accept o form de limbaj natural - o
versiune restrns a limbii engleze naturale - denumit uneori limbaj din a cincea generaie (5GL),
dar aceast realizare este nca n faa.
Vederi
In arhitectura ANSI-SPARC cu trei niveluri, am descris vederea extern ca structura bazei de date,
aa cum apare ea unui anumit utilizator. n modelul relaional, cuvantul "vedere" are un neles uor
diferit. Mai degrab dect ntregul model extern al unui utilizator, o vedere este o relaie virtual - o
1
Acronim pentru "fourth-generation language".

21
relaie care nu este, de fapt, de sine stttoare, ci este derivat n mod dinamic din una sau mai
multe relaii de baz. O vedere poate fi construit prin efectuarea unor operaii - cum ar fi selecia,
proiecia, uniunea din algebra relaional - sau altor calcule cu valorile relaiilor de baz existente.
Prin urmare, un model extem poate consta att n relaii de baz (la nivel conceptual), ct i n
vederile derivate din acestea. n acest paragraf vom analiza relaiile virtuale, sau vederile, din
sistemele relaionale.

17.4.2 SGBD relaional


Aa cum am menionat exist acum cteva sute de sisteme SGBD relaionale, att pentru medii
mainframe, ct i pentru PC-uri. Uneori, unele nu urmeaz strict definiia modelului relaional. n
particular, civa comerciani tradiionali de produse SGBD bazate pe modele de date n reea i
ierarhice au implementat cteva caracteristici relaionale, pentru a pretinde c acestea sunt, ntr-un
fel, relaionale. Preocupat de pstrarea ntregilor capaciti i implicaii ale modelului relaional, Codd
a specificat 12 reguli (13, impreuna cu Regula 0, fundamental) ale unui sistem SGBD relaional
(1985a, 1985b). Aceste reguli constituie un etalon dup care pot fi identificate "adevratele" produse
SGBD relaionale.
De-a lungul anilor, regulile lui Codd au fost cauza multor controverse. Unii sunt de prere,
c aceste reguli nu reprezint nimic mai mult dect un exerciiu academic. Alii pretind c produsele
lor satisfac majoritatea - dac nu chiar totalitatea - regulilor. Aceast controvers a generat o
cunoatere mai bun a proprietilor esentiale ale unui adevrat sistem SGBD relaiona1, n cadrul
comunitii utilizatorilor i comercianilor. Pentru a evidenia implicaiile acestor reguli, le-am
reorganizat n urmtoarele cinci domenii de funcionalitate:
1) reguli fundamentale;
2) reguli structurale;
3) reguli de integritate;
4) reguli de manipulare a datelor;
5) reguli privind independena de date.
Rguli fundamentale (Regula 0 i Regula 12)
Regulile 0 i 12 constituie un test de tip turnesol, pentru a stabili dac un sistem este SGBD
relaional. Dac aceste reguli nu sunt ndeplinite, produsul nu trebuie considerat relaional.
Regula 0 - Regula fundamental
Orice sistem cruia i se face reclama de a fi sau care se pretinde a fi un sistem de
gestionare a bazelor de date relaionale trebuie s fie capabil de a gestiona n ntregime bazele de
date prin capacitile sale relaionale.
Aceast regul nseamn c sistemul SGBD nu trebuie s recurg la nici un fel operaii ne-
relaionale, pentru a realiza oricare dintre capacitile sale de gestionare a datelor, cum ar fi definirea
i manipularea acestora.
Regula 12 Regula de nonsubversiune
Daca un sistem relaional are un limbaj de nivel jos (cte-o-inregistrare-o-dat), acel nivel jos nu
poate fi utilizat pentru a submina sau a ocoli regulile de integritate i constrngerile exprimate n
limbajul relaional de nivel mai nalt (mai-multe-nregistrari-deodat).
Aceasta regul necesit ca ntregul acces la baza de date s fie controlat de ctre sistemul
SGBD, astfel nct integritatea bazei de date nu poate fi compromis fr cunotina utilizatorului sau
administratorului de baze de date (DBA). Totui, aceasta nu interzice utilizarea unui limbaj cu o
interfa de tip cte-o-nregistrare-o-dat.
Reguli structurale (Regula 1 i Regula 6)

22
Conceptul structural fundamental al modelului relaional este cel de relaie. Codd stabilete c un
sistem SGBDR trebuie s accepte o serie de caracteristici structurale, inclusiv relaii, domenii, chei
primare i strine. Pentru fiecare relaie din baza de date trebuie s existe o cheie primar.
Regula 1 -Reprezentarea informatiilor
La nivelul logic, toate informaiile dintr-o baz de date relaional sunt reprezentate explicit
n exact un singur mod - prin valorile din tabele.
Aceasta regula necesit ca toate informaiile - chiar i meta-datele - coninute n catalogul
de sistem s fie stocate ca relaii i gestionate de ctre aceleai funcii operaionale care ar fi utilizate
pentru ntreinerea datelor. Referirea la "nivelul logic" nseamn c elementele de construcii logice,
cum ar fi indexurile, nu sunt reprezentate i nu este nevoie s fie menionate explicit de ctre
utilizator, n cadrul unei operaii de regsire, chiar dac ele exist.
Regula 6 -Reactualizarea vederilor
Toate vederile care sunt teoretic reactualizabile pot fi reactualizate i de ctre sistem.
Aceasta regul trateaz explicit vederile.Vom analiza condiiile n care se poate face
reactualizarea n limbajul SQL. Aceast regul stabilete c, dac o vedere poate fi teoretic
reactualizat, atunci sistemul SGBD trebuie s fie capabil de a efectua reactualizarea respectiv. Nici
un sistem nu accepta cu adevrat aceast caracteristic, deoarece nu au fost nc descoperite
condiiile pentru identificarea tuturor vederilor care pot fi teoretic reactualizate.

Reguli de integritate (Regula 3 i Regula 10)


Codd a specificat dou reguli de integritate a datelor. Acceptarea integritii datelor este un criteriu
important de apreciere a caracterului convenabil al unui produs. Cu ct sunt mai multe constrngeri
de integritate care pot fi ntreinute mai degrab de ctre produsul SGBD, dect n cadrul fiecarui
program aplicaie, cu att garantarea calitii datelor este mai bun.
Regula 3 Tratarea sistematic a valorilor null
Valorile null ( deosebite de irul nul de caractere sau de un ir de caractere nule, ca i de
zero sau orice alt numr) sunt acceptate pentru a reprezenta informaiile lips i cele care nu pot fi
aplicate n mod sistematic, indiferent de tipul de date.
Regula 10 -Independena de integritate
Constrngerilede integritate specifice unei anumite baze de date relaionale trebuie s
poat fi definite n sulimbajul1 relaional de date i stocate n catalog, nu n programele aplicaie.
Codd pune un accent deosebit pe ideea de stocare a constrngerilor de integritate In catalogul de
sistem, mai degrab dect ncapsularea lor n programele aplicaie sau interfeele cu utilizatorul.
Stocarea acestor constrngeri n catalogul de sistem are avantajul unui control i constrngeri
centralizate.
Reguli de manipulare a datelor (Regula 2, Regula 4, Regula 5 iRegula 7)
Exista 18 caracteristici de manipulare pe care trebuie s le accepte un sistem SGBD
relaional ideal. Acestea definesc caracterul complet al limbajului de interogare (unde, n acest sens,
"interogarea" include operaiile de inserare, reactualizare i tergere). Regulile de manipulare a
datelor dirijeaz aplicarea celor 18 caracteristici de manipulare. Respectarea acestor reguli are ca
efect izolarea utilizatorului i programelor aplicaie de mecanismele fizice i logice, care
implementeaz capacitile de gestionare a datelor.

1
Un sublimbaj este un limbaj care nu ncearc s includ construcii pentru toate necesitile de calcul. Algebra
relaional i calculul relaional sunt sublimbaje de baze de date.

23
Regula 2 -Accesul garantat
Se garanteaz c fiecare element de dat (valoare atomic) dintr-o baz de date
relaional este accesibil din punct de vedere logic, prin apelarea la o combinaie de nume de tabel,
valoare a cheii primare i nume de coloan.
Regula 4 - Catalog dinamic on-line, bazat pe modelul relaional
Descrierea bazei de date este reprezentat la nivel logic n acelai mod ca i datele
ohinuite, astfel nct utilizatorii autorizai pot aplica la interogarea acesteia acelai limbaj relaional
ca cel aplicat datelor curente.
Aceast regul specific faptul ca exist un singur limbaj de manipulare att a meta-
datelor, cat i a datelor; mai mult dect att: exist o singur structur logic (relaiile), utilizat pentru
stocarea informaiilor despre sistem.
Regula 5 Sublimbaje de date cuprinztoare
Un sistem relaional poate accepta mai multe limbaje i diverse moduri de utilizare a
terminalelor (de exemplu, modul de completare-a-spaiilor-libere1). Totui, trebuie s existe cel putin
un limbaj ale crui instruciuni s poat exprima urmtoarele chestiuni: (1) definirea datelor; (2)
definirea vederilor; (3) manipularea datelor (interactiv i prin intermediul programului); (4)
constrngerile de integritate; (5) autorizarea; (6) limitele tranzaciilor (begin, commit i rollback 2).
De observat c noul standard ISO al limbajului SQL prezint toate aceste funcii, astfel nct
orice limbaj care satisface acest standard va satisface automat i aceast regul
Regula 7 -Operaii de inserare, reactualizare i tergere de nivel nalt
Capacitatea de tratare a unei relaii de baz sau a unei relaii derivate (adic o vedere) ca
pe un singur operand se aplic nu numai regasirii de date, ci i inserrii, reactualizrii i tergerii
acestora.

Reguli privind independena de date (Regula 8, Regula 9 i Regula 11)


Codd definete trei reguli care specific independena datelor de programele aplicaie care
le utilizeaz. Aderarea la aceste reguli garanteaz protecia utilizatorilor i realizatorilor de programe
fa de necesitatea de a schimba aplicaiile, ca urmare a reorganizrii de nivel jos a bazei de date.
Regula 8 -Independena fizic de date
Programele aplicaie i activitile de la terminal rmn logic intacte, ori de cte ori sunt
fcute modificri, fie n reprezentrile de stocare, fie n metodele de acces.
Regula 9 -Independena logic de date
Programele aplicaie i activitile de la terminal rmn logic intacte, ori de cte ori sunt efectuate
n tabelele de baz orice fel de modificri privind pstrarea informaiilor, care, teoretic, permit deteriorarea
acestora.
Regula 11 -Independena de distribuie
Sublimbajul de manipulare a datelor dintr-un sistem SGBD relaional trebuie s permit
programelor aplicaie i interogrilor s rmna aceleai din punct de vedere logic, dac i ori de cte
ori datele sunt centralizate sau distribuite fizic.
Independena de distribuie nseamn c un program aplicaie care acceseaz sistemul SGBD pe
un singur calculator trebuie s functioneze fr modificri i intr-o reea, chiar daca datele sunt
mutate de pe un calculator pe altul. Cu a1te cuvinte, utilizatorului final trebuie s i se dea impresia c
datele sunt centralizate pe o singur main, n timp ce responsabilitatea localizrii acestora n
(posibil) multiple situri i a reconstituirii lor trebuie s revin ntotdeauna sistemului. De observat c
1
n limba englez, fill-in-the-blanks.
2
nceput, efectuare i rulare napoi.
2

24
aceast regul nu cere ca sistemul SGBD s accepte o baz de date distribuit pentru a fi relaional,
dar stabilete c limbajul de interogare va rmne acelai dac i cnd se va introduce aceast
capacitate, iar datele vor fi distribuite.

Conceptele modelului Entitate-Relaie


Conceptele de baz ale modelului Entitate-Relaie includ tipurile de entiti, tipurile de
relaii i atributele. Aceste concepte de baz sunt explicate prin utilizarea unor exemple din studiul
evolutiv DreamHome.

Tipuri de entiti
Tip de entitate este un obiect sau concept care este identificat de ntreprindere ca avnd o
existen independent.
Conceptul de baz al modelului ER este tipul de entitate care reprezint un set de "obiecte" din "lumea
real" cu aceleai proprieti. Un tip de entitate are o existen independent i poate fi un obiect cu o
existen fizic (sau "real") sau un obiect cu o existen conceptual (sau "abstract").
Entitate este o instan a unui tip de entitate, care este unic identificabil.
Fiecare instan unic identificabil a unui tip de entitate este denumit pur i simplu
entitate. Ali autori se pot referi la definiia noastr a entitii cu termenii de apariie de entitate sau
instan de entitate.Vom utiliza numai termenii de "tip de entitate" sau "entitate". Totui, termenul
mult mai general de "entitate" se va folosi acolo unde sensul este evident.
Fiecare tip de entitate este identificat printr-un nume i o list de proprieti. n mod normal,
o baz de date conine multe tipuri de entiti diferite. Dei un tip de entitate are un set distinct de
atribute, fiecare entitate are propriile sale valori pentru fiecare atribut. Entitile pot fi clasificate ca
tipuri de entiti tari sau slabe.
Tip de entitate slab este un tip de entitate a crei existente depinde de alte cteva tipuri de
entiti.
Tip de entitate tare este un tip de entitate a crei existene nu depinde de alte tipuri de entiti.
O entitate slaba este dependent de existena unei alte entiti. Entitile slabe sunt denumite uneori
entiti copil, dependente sau subordonate, iar cele tari entiti parinte, proprietar sau
dominante.
Atribute
Atributul este o proprietate a unui tip de entitate sau relaie.
Proprietile particulare ale unei entiti sunt denumite atribute. Valorile coninute de atribute
reprezint partea principal a datelor stocate n baza de date.
O relaie care asociaz entiti poate, de asemenea, s posede atribute, similare celor ale
unui tip de entitate.
Domeniul atributului este o mulime de valori care poate fi repartizat unui atribut.
Fiecrui atribut i este asociat o mulime de valori, numit domeniu. Domeniul defineste
valorile poteniale pe care le poate avea un atribut.
Atributele pot partaja un domeniu. Un model de date complet include domeniile fiecarui
atribut din modelul ER.
Atributele se pot clasifica n: simple sau compuse, cu o singur valoare sau cu valori multiple, sau
derivate.
Atribut simplu este un atribut cu o singur component, care are o existen independent.
Atributele simple nu pot fi subdivizate n continuare. Uneori, atributele simple sunt numite
atribute atomice.
Atributul compus este constituit din mai multe componente, fiecare dintre ele avnd o existen
independent .

25
Unele atribute pot fi divizate n continuare, pentru a produce componente mai mici, care au
o existen independent proprie.
Atribut cu o singur valoare - un atribut care conine o singur valoare pentru o anumita entitate.
Majoritatea atributelor au o singur valoare pentru o anumit entitate.
Atribut cu valori multiple - un atribut care conine mai multe valori pentru o singur entitate.
Unele atribute au mai multe valori pentru o entitate data.
Un atribut cu valori multiple poate avea o mulime de valori, cu limite superioare i inferioare.
Atribut derivat este un atribut care reprezint o valoare derivabil din valoarea unui atribut sau set
de atribute de care este legat i care nu sunt n mod necesar n aceeai entitate.
Unele atribute pot depinde unele de altele n cadrul unei anumite entiti.
In unele situaii, valoarea unui atribut este derivat din entitile aflate n cadrul aceluiasi tip de
entitate.
De asemenea, atributele derivate pot include asocieri de atribute din entiti diferite.
Chei
Se concepe o cheie ca un articol de date, care ne permite s identificm n mod unic,
existena individual a unui tip de entitate.
Cheie candidat este un atribut sau set de atribute care identific n mod unic apariiile individuale
ale unui tip de entitate.
O cheie candidat este constituit din unul sau mai multe atribute, ale caror valori identific n mod
unic fiecare entitate.
Cheie primar este cheia candidat aleas drept cheie primar.
Un tip de entitate poate avea mai multe chei candidat.
Alegerea cheii primare pentru o entitate se bazeaza pe consideraii privind lungimea atributului,
numrul minim de atribute cerut i sigurana prezent i viitoare privind caracterul unic al acestuia.
Cheie compusa este o cheie candidat care este format din dou sau mai multe atribute.
In unele situatii, cheia unei entiti este compus din mai multe atribute, ale caror valori, luate
mpreun, sunt unice pentru fiecare entitate individual, dar nu n cazul n care sunt luate separat.
Tipuri de relaii
Tip de relaie este o asociere semnificativ ntre tipuri de entiti.
Un tip de relaie este un set de asocieri ntre dou (sau mai multe) tipuri de entiti participante.
Fiecare tip de relaie are un nume care descrie funcia sa.
La fel ca pentru entiti, este necesar s se fac distincie ntre termenii "tip de relaie" i relaie.
Relaie este o asociere ntre entiti, n care aceasta include o entitate din fiecare tipde entitate
participant.
Fiecare prezen unic identificabil a unui tip de relaie este numit simplu relaie. O relaie indic
entitile particulare care sunt corelate.
Relaia EsteAlocat indic o asociere ntre entiti n care fiecare apariie a acestei relaii asociaz o
anumit entitate cu o alt entitate
Sunt prezentate trei relaii (r1, r2 i r3), care exemplifica corespondenta dintre entiti.
Gradul unei relaii este numrul de entiti participante ntr-o relaie.
Entitile implicate ntr-o anumit relaie se numesc participani n relaie. Numrul de participani
dintr-o relaie este numit gradul acelei relaii. Prin urmare, gradul unei relaii indica numrul de
entiti implicate ntr-o relaie. O relaie de gradul doi este numita binar.
O relaie de gradul trei se numete ternar.
O relaie de gradul patru se numete cvadrupl.
Relaie recursiv este o relaie n care aceeai entitate particip mai mult dect o dat n diferite
roluri.
Uneori, relaiile recursive sunt numite relaii unare.

26
Relaiilor li se pot atribui nume de roluri, pentru a indica scopul pe care-l are fiecare entitate
participant n cadrul relaiei. Numele de roluri sunt importante n relaiile recursive pentru a
determina funcia fiecrei participri.
De obicei, numele de roluri nu sunt necesare dac funcia entitilor participante ntr-o relaie este
clara.
Constrngeri structurale
Acum se vor examina constrngerile care pot fi impuse entitilor participante intr-o relaie.
Constrngerile trebuie s reflecte restriciile asupra relaiilor, aa cum sunt percepute n
lumea real. Exist dou tipuri principale de constrngeri asupra relaiilor, numite constrngeri de
cardinalitate, respectiv de participare.
Constrngeri de cardinalitate
Raport de cardinalitate descrie numrul de relaii posibile pentru fiecare entitate
participant.
Cel mai des ntlnit grad al relaiilor este cel binar, iar rapoartele de cardinalitate pentru
relaiile binare sunt unu-la-unu (1:1), unu-la-muli (l:M) i muli-la-muli (M:N).
Raportul de cardinalitate dintre entiti variaz n funcie de politicile stabilite de
ntreprindere. Regulile care definesc cardinalitatea sunt numite reguli de afaceri. Garantarea c
toate regulile de afaceri sunt identificate i reprezentate constituie o parte importanta a modelarii unei
ntreprinderi. Din pacate, nu toate regu1ile de afaceri pot fi reprezentate intr-un model ER.
Constrngeri de participare
Constrngeri de participare - determin dac existena unei entiti depinde de faptul dac
aceasta este legat de alt entitate printr-o relaie.
Exista dou tipuri de constrngeri de participare: totale i pariale. Participarea este
total, dac existena unei entiti necesit existena unei entiti asociate printr-o anumit relaie;
altfel participarea este parial.
Putem utiliza o notaie alternativ pentru reprezentarea constrngerilor structurale ale unei
relaii, prin afiarea valorilor maxime i minime (Min, Max) deasupra liniei de legatur, care reprezint
participarea entitii n relaie.
Utilitatea acestei relaii const n faptul c, uneori, sunt afiate mai multe informaii asupra
constrngerilor relaiei.
Modelul Entitate-Relaie extins
Conceptele de modelare analizate sunt adecvate pentru reprezentarea majoritii
schemelor de baze de date pentru aplicaiile tradiionale, de tip baz de date bazat pe administrare.
Totui, ncepnd cu anii 1980 a existat o cretere rapid n dezvoltarea de noi aplicaii de tip baz de
date, cum ar fi instrumentele de proiectare asistat de calculator (CAD), de fabricare asistat de
calculator (CAM), de proiectare de software asistat de calculator (CASE) i aplicaiile multimedia.
Aceste tipuri de aplicaii prezint cerine privind bazele de date mai stricte dect aplicaiile tradiionale
de administrare.
Conceptele de baz ale modelarii ER nu sunt suficiente pentru a reprezenta cerinele noilor
aplicaii mult mai complexe. Aceasta a stimulat necesitatea dezvoltrii de concepte adiionale de
modelare "semantic". Au fost propuse multe modele de date semantice diferite. Totui, unele dintre
cele mai importante concepte semantice au fost incorporate cu succes n modelul ER original.
Modelul ER susinut cu concepte semantice adiionale este denumit modelul Entitate-Relaie extins
(EER).
Modelul EER include toate conceptele modelului original, mpreun cu conceptele
adiionale de specializare/generalizare i categorisire. n continuare se vor descrie aceste concepte
adiionale i se va ilustra modul n care sunt reprezentate specializarea/generalizarea i categorisirea
ntr-un model EER.

27
Conceptele de specializare/generalizare i categorisire sunt asociate conceptelor nrudite
de tipuri de entiti - descrise sub form de superclase i subclase - i procesului de motenire a
atributelor.
Superclasele i subclasele tipurilor de entiti
Superclas este un tip de entitate care include subclase distincte, care trebuie s fie reprezentate
ntr-un model de date.
Subclas este un tip de entitate care are un rol distinct i, de asemenea, este membru al unei
superclase.
In unele cazuri, un tip de entitate poate avea mai multe subclase distincte.
Fiecare membru al unei subclase este i membru al superclasei corespunzatoare. Cu alte
cuvinte, membrul subclasei este acelai ca entitatea n superclas, dar are un rol distinct.
Relaia dintre o superclas i subclas este unu-la-unu (1:1). Unele superclase pot conine
subclase ce se suprapun.
Superclasele i subclasele pot. fi uti1izate pentru a evita descrierea diverselor tipuri de
membri de personal cu atribute posibil diferite, ntr-o singur entitate
Exista dou motive importante pentru introducerea conceptelor de superclase i subclase
ntr-un model ER. Primul motiv il constituie evitarea descrierii conceptelor similare mai mult dect o
singur dat, ceea ce economisete timpul proiectantului i face ca diagrama ER s fie mai lizibil. Al
doilea motiv este c se adaug n proiectare mai multe informatii semantice, ntr-o forma familiara
multor persoane.

Mostenirea atributelor
O entitate dintr-o subclasa reprezint acelai obiect din "lumea real" ca ntr-o superclas
i poate s dein atribute specifice subclasei, pe lng cele asociate superclasei.
O subclasa este i o entitate i, prin urmare, poate s posede propriile subclase. O entitate,
impreuna cu subclasele ei, subclasele acestora i aa mai departe este denumita o ierarhie de tip.
Ierarhiile de tip sunt cunoscute sub o varietate de denumiri, care includ: ierarhie de specializare,
ierarhie de generalizare i ierarhie ESTE_O/UN
Specializarea
Specializare este procesul de maximizare a diferenelor dintre membrii unei entiti, prin
identificarea caracteristicilor lor distincte.
Specializarea constituie o abordare de sus n jos n definirea unui set de superclase i a
subclaselor lor .Mulimea de subclase este definit pe baza unor caracteristici de difereniere a
entitilor dintr-o superclas. Cnd identificm un set de subclase al unui tip de entitate, asociem
atributele specifice fiecrei subclase (unde este necesar) i, de asemenea, identificm orice relaie
dintre fiecare subclas i alte tipuri de entiti sau subclase (unde este necesar).

17.4.3 Forma general a aplicaiei

n calculul mrimilor caracteristice experimentelor, sunt necesare informaii stocate n fiiere cu


baze de date privitoare la valorile mrimilor, un model matematic adecvat fenomenului studiat,
precum i un mediu de programare care s permit att interogarea bazelor de date dar i calculul
ulterior al parametrilor sau a altor mrimi necesare n proiectarea modelelor.

28
Mediul de programare utilizat pentru aceast aplicaie este Visual Basic 6.0. iar structura
tabelelor din bazele de date este proiectata n Acces. Pentru manipularea datelor ntre cele dou
softuri s-a utilizat controlul Microsoft ActiveX Data Objects 2.0 Library prin conexiunea furnizat de
Microsoft Jet 4.0 OLE DB Provider selectat n figura 1.
Fig. 1. Tipuri de conexiuni cu baza de date

Pentru introducerea datelor cu acuratee, o prim seciune a programului cuprinde intrefaa de

introducere i modificare a datelor din tabele.

17.4.4 Structura bazelor de date

Dezvoltarea aplicaiei presupune elaborarea unui numr corespunztor de programe, funcie


de modul de organizare a informaiilor n bazele de date i de cerinele studiului efectuat. Numrul
bazelor de date precum i structura acestora, determin configuraia ntregii aplicaii i caracterul
unitar al acesteia.
Bazele de date folosite n aplicaia pentru studiul substanelor explozive sunt prezentate n
continuare:
Numele bazei de date: clase.dbf
Calea bazei de date : c:\aplicttv\date\
Utilitatea bazei de date: conine clasele de rezultate experimentale.
Structura bazei de date:

Cmp Nume cmp Tipul Latime


1 CLASA Caracter 25
2 COMENTARIU Memo 10
Numele bazei de date: categ.dbf
Calea bazei de date : c:\aplicttv\date\
Utilitatea bazei de date: conine categoriile de rezultate.

29
Structura bazei de date:

Cmp Nume cmp Tipul Latime Numarul


de zecimale
1 CLASA Caracter 25 -
2 TIP 30 -
3 COMENTARIU Memo 10 -
4 UNITAR Logic 1 -
Justificarea soluiei adoptate
Interfaa aplicaiei cu utilizatorul.
Modul de proiectare a programelor aplicaiei.
Optimizarea accesului la informaii.
Caracterul unitar al aplicaiei.
Conexiunile dintre structurile bazelor de date i programare se pot nelege prin prezentarea
urmtoarelor aspecte:
Structura unei aplicaii este privit din dou puncte de vedere: al observatorului i al
proiectantului.
Utilizatorul vede aplicaia ca ,, ceva n care el introduce date (prin intermediul unor elemente
de interfa) iar pe baza acestora s obin ulterior diferite rezultate (pe ecran, pe disc sau la
imprimant).
Cel de al doilea punct de vedere este mai complex, deoarece indic modul cum trebuie
conceput o aplicaie de dimensiuni mari, conform anumitor cerine.
Astfel, ntreaga activitate din sistem este controlat de programul monitor care este, n general,
un meniu principal prin intermediul cruia sunt lansate n execuie diferite programe.
Datele cu care se opereaz sunt depozitate n una sau mai multe baze de date, iar funcie de
acestea vor fi definite i programele aferente.
Principalele tipuri de programe sunt :
a) programe de introducere a informaiilor, prin intermediul crora sunt actualizate bazele de
date. Acestea se introduc fie de ctre utilizator, prin ecrane de introducere, fie se import de la alte
surse exterioare. Ecranele de introducere se realizeaz prin programe concepute i realizate pas cu
pas, instruciune cu instruciune de ctre proiectant, sau cu ajutorul generatorului de ecrane.
b) programe de prelucrare a datelor din bazele de date, necesare obinerii anumitor rezultate.
c) programe de extragere a datelor din bazele de date n rapoarte statistice, informaii curente
sau prin alte procedee de prezentare exterioar.
Activarea pe rnd a acestor programe se face la comanda programului monitor,iar funcionarea
acestuia este corelat cu urmtoarele etape :
I. citete, prin intermediul meniului principal,opiunea utilizatorului ;
II. activeaz programele corespunztoare, pentru satisfacerea cerinelor utilizatorului;
dac nu s-a optat pentru ieirea din aplicaie, se revine la etapa II.
Sugestiv aceste etape sunt prezentate n schema de mai jos:

30
17.5 SISTEMUL DE GESTIUNE A BAZELOR DE DATE ACCESS 2000
17.5.1 Prezentare general
Sistemul de Gestiune a Bazelor de Date Microsoft ACCESS 2000 face parte din pachetul de
programe Microsoft Office i este cea de-a cincea versiune a produsului de la lansarea sa iniial n
anul 1992.
Principalele caracteristici ale SGBD-ului ACCESS sunt:
este relaional i lucreaz sub sistemul de operare Windows;
este deschis comunicrii cu alte Sisteme de Gestiune a Bazelor de Date cum ar fi FoxPro sau
Paradox;
este compatibil cu tehnologia ActiveX, care permite realizarea aplicaiilor client/server;
permite realizarea unor aplicaii complexe prin utilizarea limbajului Visual Basic;
permite comunicarea cu SQL Server, un alt produs Microsoft care gestioneaz baze de date;
permite accesul la baze de date din reeaua Internet, fiind un instrument util pentru publicarea
informaiilor n paginile Web;
este autodocumentat prin help, apelabil contextural sau la cerere;
conine instrumente wizard care permit utilizatorului crearea ntr-o manier foarte simpl a
obiectelor bazei de date;
permite crearea de comenzi rapide (shortcuts) n vederea accesrii obiectelor ACCESS;
permite crearea de grupuri de obiecte definite de utilizator n cadrul bazei de date;
permite personalizarea bazei de date;
permite utilizarea obiectelor ACCESS din cadrul altor aplicaii rulate sub sistemul de operare
Windows.
Arhitectura Microsoft ACCESS
O baz de date ACCESS poate fi definit ca fiind o colecie de obiecte: tabele (table), cereri de
interogare (query), formulare (form), rapoarte (report), pagini Web (pages), comenzi macro (macro) i
module (module).

31
Tabela (Table) este un obiect definit de utilizator n care sunt stocate datele primare
(expresia modelului relaional).
Formularul (Form) este un obiect care permite introducerea datelor, afiarea acestora sau
controlul ntregii aplicaii.
Cererea de interogare (Query) este un obiect care permite vizualizarea informaiilor
obinute prin prelucrarea datelor din una sau mai multe tabele i/sau alte cereri de interogare.
Raportul (Report) este un obiect care permite formatarea i tiprirea informaiilor obinute n
urma consultrii bazei de date sub form de documente.
Pagina Web de accesare a datelor (Pages) reprezint un obiect care include un fiier
HTML i alte fiiere suport n vederea furnizrii accesului la date prin intermediul browser-elor
Internet.
Comanda Macro (Macro) reprezint un obiect care conine o definiie structurat a uneia
sau mai multor aciuni pe care ACCESS le realizeaz ca rspuns la un anumit eveniment.
Modulul (Module) reprezint un obiect care conine proceduri definite de utilizator i scrise
n limbajul de programare Visual Basic.
Crearea unei baze de date:
La pornire, SGBD ACCESS afieaz ecranul din figura din care rezult dou posibiliti:
crearea manual a unei baze de date goale: Blank Access database
crearea unei BD cu ajutorul asistentului.
Deschiderea unei baze de date existente: dac se dorete modificarea sau consultarea unei baze de
date creat anterior, aceasta trebuie mai nti deschis. n fereastra principal se selecteaz Open
an existing file i se activeaz butonul [OK] care va deschide o nou fereastr de dialog Open
asemntoare cu fereastra de dialog File New Database, n care se selecteaz baza de date ce se
dorete a fi modificat.

32
17.5.2 Crearea structurii bazei de date
n vederea facilitarii ntelegerii modului n care se creeaza o aplicatie n Microsoft ACCESS 2000,
vom folosi un studiu de caz practic (prezentat in capitolul anterior).
Crearea tabelelor:
Crearea structurii tabelelor se poate face n trei moduri:
-Utiliznd fereastra de proiectare (Create table in design view)
-Prin introducerea datelor (Create table by entering data);
-Utiliznd instrumentul Wizard (Create table by using wizard).
Modul cel mai eficient de creare a tabelelor l reprezinta utilizarea ferestrei de proiectare, motiv pentru
care vor fi prezentate mai nti pe scurt celelalte doua moduri.
Crearea unui tabel utiliznd instrumentul wizard permite adaugarea unor cmpuri standard ce se afla
deja n cadrul bibliotecilor de tabele standard. De exemplu, daca se doreste realizarea unui tabel cu
clientii (Customers), utilizndu-se instrumentul wizard, se pot selecta anumite cmpuri standard
pentru aceasta tabela, precum si relatiile pe care acestea le au cu alte cmpuri din alte tabele. Nu
recomandam aceasta modalitate deoarece cmpurile din cadrul tabelelor standard au fost create
pentru sistemul de lucru anglo-saxon, care, n anumite privinte, nu corespunde sistemului romnesc.
Revenind la primul mod de creare a unei tabele, prin realizarea unui dublu clic pe Create table in
design view pe ecran va aprea fereastra Table.
n cadrul acestei ferestre se definesc numele cmpului (Field Name), tipul de date (Data Type) i,
opional, o descriere a cmpului respectiv (Description). n panoul de jos al acestei ferestre se
introduc celelalte proprieti ale cmpului.

Field name: numele cmpurilor poate fi format din maximum 64 de caractere, poate s conin spaiu
i nu trebuie s conin urmtoarele caractere: [ , ], ., , ! . De asemenea, nu trebuie s fie cuvnt
rezervat al ACCESS.
Data type: tipuri i subtipuri de date:
Microsoft ACCESS 2000 permite ca numele de cmp s fie format din mai multe cuvinte, de exemplu
[Numr factur]. n versiunile mai vechi de ACCESS denumirea acestui cmp ar fi fost scris ntr-un
singur cuvnt sub forma Numr_factur.

33
Format: formatul n care sunt afiate datele:
Proprietatea Format se utilizeaz pentru stabilirea modului n care numere, date calendaristice, timp
i text vor fi afiate. Ea nu afecteaz i modul de introducere a datelor. Numrul de zecimale
(Decimal places):
n cadrul acestei proprieti se stabilete numrul de zecimale ce pot fi atribuite cmpului. Exist o
list de opiuni i se pot selecta valori cuprinse ntre 0 i 15 sau Auto pentru determinarea automat a
numrului de zecimale.
Input Mask (formatul de introducere). Proprietatea Input Mask (ablon de introducere a datelor) se
poate specifica utiliznd trei seciuni:
specific ablonul nsui, cum ar fi: !(999) 999-9999;
specific dac Microsoft Access va memora toate caracterele tastate; dac se utilizeaz 0 n aceast
seciune, toate caracterele vor fi memorate ca valoare a cmpului n cauz (de exemplu, parantezele
pentru prefix ori separatorii unui numr de telefon vor fi memorai mpreun cu numrul nsui); dac
se alege 1 sau nu se tasteaz nimic, vor fi memorate numai caracterele care alctuiesc valoarea
propriu-zis a cmpului respectiv;
specific acel caracter pe care Microsoft Access l va afia n locul n care trebuie s apar n ablon;
n aceast seciune se poate utiliza orice caracter; pentru afiarea unui ir de caractere vid, se
utilizeaz un spaiu cuprins ntre ghilimele (" ").
Caption: aceasta permite specificarea unui al doilea nume n situaiile n care primul nu este destul de
semnificativ. El apare n antetul cererilor de interogare, formularelor i rapoartelor.
Default Value (Valoarea implicit): este o valoare care este atribuit automat, n momentul cnd
utilizatorul nu introduce nici o valoare n acel cmp.
Validation Rule (regula de validare): regulile de validare testeaz, conform criteriului furnizat sub
forma unei expresii ACCESS, valoarea introdus ntr-un cmp. Acestea folosesc:
operatorii: =, -, *, /, \, Mod, <, >, <>, =, <=, >=, AND, OR, BETWEEN, IN, IS NULL;
identificatorii se dau n paranteze drepte [];
funcii i constante.
Dac nu se specific nici un operator, ACCESS asum automat operatorul de egalitate.
Validation Text (textul de validare): reprezint textul care va aprea pe bara de mesaje n cazul n
care valoarea introdus nu respect criteriul impus de regula de validare.
Required (cerut): prin aceast proprietate se stabilete dac prin introducerea unei nregistrri n
cadrul tabelei este obligatorie i completarea respectivului cmp.
Indexed (Indexat): dintr-o list derulant se poate alege ntre un index care admite valori duplicat sau
unul care cere ca fiecare valoare a cmpului s fie unic. Access definete automat cheia primar a
tabelei ca fiind indexat i fr duplicate (No Duplicated).
Prin activarea tab-ului Lookup din panoul de proprieti, se pot specifica o serie de proprieti care se
refer n principal la sursa de introducere a datelor.
Dup descrierea cmpurilor componente ale unei tabele (conform teoriei modelului relaional) trebuie
s stabilim cheia primar a acesteia. Dac uitm, Access ne avertizeaz de acest lucru i ne
sugereaz el o cheie primar. Aceasta poate fi format din unul sau mai multe cmpuri (cheie
compus). Dac cheia primar este format dintr-un singur cmp, se selecteaz acesta i apoi se
activeaz butonul cheia primar. Dac cheia primar este format din mai multe cmpuri se
selecteaz primul, iar celelalte se selecteaz n combinaie cu apsarea tastei CTRL, dup care se
activeaz butonul cheie primar .
Relaii ntre tabele:
Din punct de vedere al momentului crerii acestora, exist dou tipuri de relaii ntre tabelele unei
baze de date ACCESS, i anume:

34
relaii permanente - se stabilesc dup definirea tabelelor i sunt cerute de modelul relaional fcnd
parte din structura bazei de date. Acestea se realizeaz de obicei prin corespondenele cheie primar
cheie extern i sunt memorate n baza de date;
relaii temporare - se stabilesc ntre tabele cu ocazia definirii unor cereri de interogare, nefiind
nregistrate n structura bazei de date.
n cadrul unei baze de date nu este obligatoriu ca ntre toate tabelele s existe relaii. Este posibil ca
n cadrul unei aplicaii s utilizm i tabele independente i/sau de lucru (tabele temporare). n cadrul
acestora se scriu i se terg datele aferente unei anumite operaii.
Relaiile care se pot stabili ntre tabele sunt de trei tipuri:
unu la mai muli (one to many);
unu la unu (one to one);
mai muli la mai muli (many to many).
Revenim n cadrul ferestrei Relationships

Pentru a descrie procesul de construire a relatiilor dintre tabele. O relatie ntre doua tabele se
realizeaza prin operatia drag and drop de la cheia primara a tabelei principale la cheia externa a
tabelei secundare.
Cu aceast ocazie, ACCESS va deschide fereastra de dialog Edit Relationship, n care se observ
legtura stabilit ntre cheia primar i cheia extern.
n cazul n care este selectat proprietatea Enforce Referential Integrity (Impune integritate
referenial) n cadrul unei aplicaii, aceasta nseamn c atunci cnd se introduce o nou
nregistrare n tabela secundar, se verific dac valoarea cheii externe se gsete n tabela primar,
n cmpul corespunztor cheii primare. Aceasta nseamn c este necesar mai nti ncrcarea
datelor n tabela principal i apoi n cea secundar.
Introducerea datelor n tabele:
n cadrul aplicatiilor ACCESS datele pot fi introduse n tabele printr-o multitudine de metode. n
fereastra Database selectam tabela Camere, n care dorim sa introducem date si activam butonul .
Pe ecran va aparea fereastra

35
, Datasheet (foaie de date). n cadrul acestei ferestre se pot vizualiza si/sau modifica datele deja
introduse sau se pot introduce date noi.

17.5.3 Formulare (simple, avansate)


Formularele (Forms) reprezinta interfata principala ntre utilizator si o aplicatie MS Access, fiind
obiecte ale bazei de date ce permit introducerea si afisarea datelor ntr-o maniera ct mai atractiva.
n cadrul unei aplicatii, formularele pot ndeplini mai multe functii:
afisarea si editarea datelor;
controlul operatiilor realizate de aplicatie;
introducerea de date;
afisarea de mesaje;
tiparirea informatiilor.
Un formular este compus din trei parti: antetul, zona de detaliu si subsolul:

Lucrul cu formulare se poate realiza in unul din urmtoarele moduri de vizualizare:

36
Design View n acest mod de vizualizare poate fi modificat design-ul formularului
Form view vizualizarea propriu-zis a formularului
Datasheet view mod de vizualizare sub form tabelar
Pentru crearea formularelor in Access 2000 se utilizeaz controale. Un control este un obiect grafic
care poate fi pozitionat pe un formular, raport sau pagina de acces la date (Data access page). Un
control poate afisa date si/sau efectua actiuni.
Pentru crearea unui formular exista mai multe moduri prin care se poate crea un formular, dar cele
mai importante sunt urmatoarele:
prin utilizarea instrumentului wizard: Create form by using wizard,
crearea n fereastra de proiectare (manual) Create form in Design view.
Un subformular, este un formular inclus ntr-un alt formular, pentru a permite afisarea datelor din mai
multe tabele sau cereri de interogare, aflate n general n relatii de tipul unu la unu sau unu la mai
multi. Astfel, n formularul principal vor fi afisate datele din partea unu a relatiei, iar n subformular
cele din partea mai multi. n mod implicit, legatura dintre un formular si un subformular reflecta
legatura dintre tabelele pe care se bazeaza. Prin urmare, la un moment dat n formular vor fi afisate o
nregistrare aflata de partea unu a relatiei iar n subformular nregistrarile corespondente din tabela
aflata de partea mai multi a acesteia. ntr-un formular care contine un subformular se pot specifica
criterii de filtrare numai asupra cmpurilor din formularul principal.
Facnd apel la exemplul nostru, relatia de tip 1- n dintre tabelele Categorii si Camere face posibila
crearea unui formular unde se vor afisa Camerele si n care se poate include un subformular pentru
afisarea tarifului corespondent fiecarei camere.
Din punct de vedere al formatului de prezentare, un subformular poate fi de doua feluri:
foaie de date (Datasheet view) - se poate crea ntr-o maniera foarte simpla si permite modificari
privind dimensiunea si ordinea coloanelor;
formular (Form view)- ofera o mare suplete de prezentare prin posibilitati multiple de aranjare a
datelor, de utilizare a culorilor, de creare de antet si subsol de pagina si de includere a unor cmpuri
de tip OLE.
Pentru includerea unui subformular ntr-un formular principal trebuie arcuri urmtorii pai:
creare formularului principal,
crearea subformularului,
facei drag&drop cu subformular peste formularul principal.
Pentru a aduce un subformular ntr-un formular principal:

37
se deschide formularul principal n modul Design;
se trece n fereastra Database, prin activarea tastei F11, se activeaza butonul , care va afisa
lista tuturor formularelor din baza de date;
se deplaseaza pictograma corespunzatoare subformularului din fereastra bazei de date n
spatiul formularului principal, ceea ce va avea ca efect adaugarea unui control de tip subformular;
daca este cazul se deplaseaza controlul n locul dorit si se redimensioneaza n functie de
necesitati;
se face dublu clic pe bordura controlului ce reprezinta subformularul, pentru a afisa lista de
proprietati a acestuia;
se verifica legatura dintre formularul principal si subformular prin proprietatile Link child fields si
Link master fields, care sunt automat definite de ACCESS pe baza legaturilor dintre tabele; n caz
contrar se stabilesc cele doua cmpuri de legatura;
se trece n modul Forms pentru verificarea rezultatului;
pentru a aduce modificari n formularul principal se comuta napoi n modul Design.
Astfel MS Access va crea automat o legtur btre cele dou formulare.
Legatura automata este posibila n urmatoarele doua situatii:
formularul principal si subformularul se bazeaza pe tabele aflate n relatii primare de tip 1-1 sau
1-n; situatie n care cmpurile de legatura vor fi cheia primara din tabela aflata de partea 1 si cheia
externa din tabela aflata de partea n a relatiei;
formularul principal si subformularul contin doua cmpuri care sunt identice ca nume si ca tip, iar
cel din formularul principal este cheie primara a tabelei sursa; situatie n care legatura se face prin
cele doua cmpuri.
Att formularele,rapoartele ct i controalele posed o serie de propriet.
Proprietatile unui obiect se pot modifica respectnd urmatoarea succesiune:
dac este vorba de un formular/raport se deschide n modul Design;
se selecteaz formularul/raportul din meniul Edit->Select Form (Select Report)); daca este vorba
de un obiect plasat pe un formular sau pe un raport acesta se selecteaza printr-un clic pe obiectul
dorit;
se activeaz fereastra cu proprietati (trebuie sa fie activat meniul View,Properties sau prin
actionarea butonului din bara cu instrumente).
ntr-un formular se pot plasa cmpuri calculate pe baza unor expresii. Plasarea expresiilor n
controalele aflate pe un formular sau subformular se realizeaza prin scrierea acestora n proprietatea
Control Source a unui control. Scrierea unei expresii se poate face asistat (Expression Builder) sau
prin scriere directa. Daca se utilizeaza scrierea unei expresii n modul neasistat, aceasta trebuie
precedata de semnul egal (=expresie). Expresiile pot contine orice functie Access 2000 sau functii
definite de utilizator, referiri catre controale aflate pe alte formulare (deschise) etc.
Expresiile plasate n formulare/subformulare pot fi grupate n:
expresii simple
expresii care utilizeaza functii agregate (SUM, AVG, COUNT etc.)
Utilizarea n expresii a controalelor din acelasi formular se realizeaza prin referirea numelui
controalelor implicate n expresie.
Pentru exemplificare am plasat o caseta de text (numele controlului-proprietatea Name- Valoare) n
care am scris n proprietatea Control Source expresia:=Val([Cantitate intrata])*Val([Pret factura]):

38
Utilizarea n controale a expresiilor din alte formulare se face prin: Forms![Nume formular]![Nume
control]. Pentru a putea fi evaluate astfel de expresii, trebuie ca acele formulare de pe care sunt
referite controale sa fie deschise n acel moment.
Utilizarea ntr-o expresie de pe un formular a unor controale din subformular se realizeaza prin:
[Nume subformular].Form![Nume control].

17.5.4 Interogarea bazei de date


Interogarea bazei de date permite afiarea nregistrrilor din una sau mai multe tabele, nregistrri
care verific anumite condiii, care sunt grupate n funcie de anumite criterii sau sunt ordonate
cresctor sau descresctor.
Avantajele oferite de modul de interogare a bazei de date prin cereri sunt:
selectia cmpurilor din tabele si a nregistrarilor acestora pe baza unor criterii impuse de
necesitatile informationale;
ordonarea rezultatelor dupa anumite criterii;
introducerea unor cmpuri calculate pe baza unor formule, care folosesc drept operanzi alte
cmpuri existente n tabele, precum si posibilitatea determinarii de totaluri pe anumite cmpuri;
utilizarea ntr-o cerere a mai multor tabele;
modularitatea cererilor n sensul ca foaia de raspuns (rezultatul) a unei cereri poate fi folosita ca
intrare pentru o noua cerere;
crearea unor formulare si situatii finale (reports), care au la baza cereri de interogare (create
anterior);
posibilitatea generarii de reprezentari grafice pe baza unor cereri de tip analiza ncrucisata.
Interogrile pot fi realizate prin intermediul obiectelor de tip Query. Pentru utilizarea unui
asemenea obiect trebuie:
creat o interogare,
aceasta interogare trebuie executat.
Rezultatul executiei unei asemenea cereri este plasat ntr-o foaie de raspuns, asemanator foii
de date asociate unei tabele.
Crearea unei cereri de interogare (Query) se poate face n mai multe feluri:

39
prin utilizarea instrumentului wizard: Create query by using wizard,
crearea n fereastra de proiectare (manual) Create query in Design view.
De asemenea o interogare poate fi creat i apelnd la limbajul SQL.
Pentru a crea o cerere de interogare n modul Design view:
n fereastra Database se realizeaza click pe Queries si New;
n caseta de dialog New Query se executa clic pe Design view si apoi Ok.
n caseta de dialog Show Table se executa clic pe tab-ul care furnizeaza lista obiectelor bazei de
date (tabele, cereri).
Dublu clic pe numele fiecarui obiect pe care vrem sa-l folosim si apoi clic pe Close.Fereastra de
lucru este structurata n doua parti:
cea de sus care afiseaza structura tabelelor/cererilor selectate la punctul 4 si eventualele
legaturi dintre ele;
cea de jos numita grila de proiectare (design grid), n care se va construi cererea din punct de
vedere structural si functional; aceasta mai este cunoscuta si sub numele de grila QBE (Query By
Exemples).
Daca avem mai multe tabele si/sau cereri de interogare, trebuie sa ne asiguram ca ntre ele
exista legaturile necesare pentru a raspunde cerintelor impuse de noua cerere de interogare.
Daca nu exista legaturile necesare ntre tabele, se stabilesc prin glisarea mouse-ului de pe
cmpul de legatura din tabela principala spre cmpul de legatura din tabela secundara; cmpurile
numerice de legatura Field Size trebuie sa fie: byte, integer sau long integer.
n functie de sursa acestora, cmpurile din structura unei cereri sunt de doua feluri: preluate din
tabele/cereri sau calculate. Trecerea cmpurilor preluate din tabele/cereri n grila de proiectare se
face prin deplasarea mouse-ului din lista de cmpuri n celulele din linia Field. Aceasta trecere poate
fi partiala sau totala, n functie de rezultatul final urmarit. Trecerea tuturor cmpurilor dintr-o
tabela/cerere n grila de proiectare se poate face n doua moduri:
dublu clic n bara de titlu a listei de cmpuri, clic n lista de cmpuri (oriunde) si apoi deplasarea
n grila de proiectare;
prin deplasarea caracterului * (care se gaseste n capatul listei) n grila de proiectare.
Ordonarea datelor ntr-o cerere se poate face crescator sau descrescator, dupa unul sau mai
multe cmpuri. Pentru aceasta se realizeaza clic n celula de la intersectia coloanei cmpului cu
caseta Sort si apoi se alege ntre Ascending sau Descending. n cazul n care se specifica mai multe
cmpuri de ordonare (chei de sortare), operatia se executa ncepnd cu primul cmp din stnga si
continund cu celelalte spre dreapta pna la ultimul. Ordinea cmpurilor de sortare influenteaza
rezultatul acestei operatii.
Criteriile de selectie se introduc n celula aflata la intersectia coloanei cmpului cu linia Criteria
din grila de interogare. Acestea pot fi simple sau compuse (cu ajutorul operatorilor AND/OR) si pot
utiliza o serie de cuvinte rezervate si expresii definite de utilizatori.
Crearea unor cmpuri calculate:
se selecteaza coloana si se introduce comanda View > Totals care va introduce n grila de
proiectare linia Totals, daca nu exista;
se selecteaza Expresion;
n prima linie Field se introduce formula de calcul care are forma generala: Nume-rezultat:
[Cmp1] Operator-aritmetic [Cmp2] .... (de exemplu: TVA: [Pret-unitar] * 0.19).
Pentru formularea unor cereri de interogare bazate pe mai multe tabele, este necesar ca
acestea sa fie legate prin intermediul unor cmpuri. Aceste relatii ntre tabele se pot stabili fie n
momentul definirii structurii bazei de date (structura tabelelor), prin comanda [Tools, Relationships]
sau n timpul formularii unei cereri de interogare prin aducerea tabelelor necesare n zona de lucru si

40
stabilirea legaturilor necesare. Prima modalitate genereaza relatii permanente ntre tabele, care
permit totodata definirea restrictiilor de integritate referentiala, cea de-a doua genereaza relatii
temporare, valabile numai pentru cererea n cauza si care nu permit verificarea restrictiilor de
integritate referentiala.
n ambele cazuri relatiile ntre tabele se stabilesc prin punerea n corespondenta a unui cmp dintr-o
tabela sursa (principala) cu un alt cmp din tabela destinatie (secundara). Cele doua cmpuri trebuie
sa fie de acelasi tip si dimensiune si pot fi chei primare sau externe.
n ambele cazuri relatiile ntre tabele se stabilesc prin punerea n corespondenta a unui cmp dintr-o
tabela sursa (principala) cu un alt cmp din tabela destinatie (secundara). Cele doua cmpuri trebuie
sa fie de acelasi tip si dimensiune si pot fi chei primare sau externe.
O cerere de interogare a bazei de date pe mai multe tabele este expresia operatiei de compunere
(join) din algebra relationala. Din punct de vedere al SGBD ACCESS, aceasta operatie este de trei
feluri: echicompunere, compunere externa si compunere reflexiva.
Prin operatia de echicompunere se extrag toate nregistrarile din tabela sursa care au nregistrari
echivalente n tabela destinatie (pentru care cmpurile de legatura sunt identice). De exemplu daca
vrem sa aflam intrarile de materiale pentru fiecare material (cantitativ), este clar ca n cadrul tabelei
Categorii se pot gasi mai multe materiale dect n tabela Camere (anumite materiale pot exista n
cadrul bazei de date dar nu au fost achizitionate pna n prezent). Prin urmare va fi utilizata operatia
de echicompunere.
Prin operatia de compunere externa se extrag toate nregistrarile din tabela sursa si nregistrarile din
tabela destinatie, care au valori egale n cmpurile de legatura. Pentru nregistrarile din tabela
destinatie, care nu au corespondente n tabela sursa, se vor afisa cmpuri vide.
Cele doua cereri se rezolva prin compunere externa. Relatia dintre doua tabele, din punct de vedere
al operatiei de compunere externa, este privita n ambele sensuri:
de la tabela sursa spre tabela destinatie (de la stnga la dreapta), ceea ce a condus la
notiunea de compunere externa stnga (left outer join);
de la tabela destinatie spre tabela sursa (de la dreapta la stnga), ceea ce a condus la notiunea
de compunere externa dreapta (right outer join).
Prin aceste operatii s-a creat posibilitatea formularii unor cereri de interogare inverse, asa cum
sunt cele doua exemplificate mai nainte. Pentru alegerea tipului de compunere n cadrul unei cereri
de interogare:
se realizeaza dublu clic pe linia de legatura ntre cele doua tabele, care va afisa fereastra Join
Properties;
se alege una din optiunile: 1 - echicompunere, 2 - compunere externa stnga sau 3 - compunere
externa dreapta si apoi Ok.
Interogrile de tip "analiz ncruciat" permit obtinerea unui set de rezultate complexe sub
forma matriceala, n care numele liniilor (Li) si coloanelor (Cj) reprezinta criterii mixte de grupare, iar
valorile din celulele tabelului (Vij) se obtin prin aplicarea unei functii predefinite (Sum, Min, Max, etc.)
asupra unui cmp dintr-o tabela.

41
Crearea unei cereri de interogare de acest tip, se face la fel ca o cerere care comporta calcule,
cu deosebirea ca trebuie specificate cmpurile care furnizeaza liniile, coloanele si valorile din tabel.
n acest sens se procedeaza dupa cum urmeaza:
se lanseaza crearea unei noi cereri de interogare si se aduc n zona de lucru tabelele necesare;
se aduc din tabele n grila de proiectare cmpurile dorite si se stabilesc criteriile de selectie;
se alege Query > Crosstab query, care va aduce n grila de interogare liniile Total si Crosstab si
va afisa Group by n celulele din linia Total;
se executa clic n celula Crosstab a cmpului care va da numele liniilor tabelului si se va
selectiona Row Heading din lista derulanta;
clic n celula Crosstab a cmpului care va da numele coloanelor tabelului si se va selectiona
Column Heading din lista derulanta;
clic n celula Crosstab a cmpului care va furniza valorile din tabel si se va selectiona Value din
lista derulanta;
clic n celula Total a cmpului care va furniza valorile din tabel si se va selectiona operatia dorita
(Sum, Count, Max, Min, etc.);
comanda View, Datasheet View pentru vizualizarea rezultatului.
Se pot specifica mai multe cmpuri pentru a furniza numele de linii ale tabelului si numai unul
pentru a da numele coloanelor. Obligatoriu, cmpurile care furnizeaza numele liniilor si coloanelor
trebuie sa aiba n linia Total criteriile Group by. La o cerere de interogare de acest tip pot participa
una sau mai multe tabele.
Tabelele care rezulta n urma executiei acestor cereri, n mod standard, vor avea numele
coloanelor plasate de la stnga la dreapta n ordine alfabetica. Exista posibilitatea schimbarii acestei
ordini n functie de necesitatile si preferintele utilizatorului.
MS Access permite i crearea unor interogri de tip aciune:
Cererile de interogare de tip actiune se folosesc pentru:
crearea de noi tabele pe baza celor existente;
stergerea de nregistrari din una sau mai multe tabele;
modificarea datelor dintr-un grup de nregistrari;
adaugarea unui grup de nregistrari la o tabela.
Crearea unei cereri de interogare de tip actiune se face n trei etape:
crearea unei cereri de interogare de tip selectie si verificarea rezultatului acesteia;
transpunerea cererii de interogare de tip selectie ntr-o cerere de tip actiune;
verificarea rezultatelor n tabele.
Spre exemplu pentru a transforma o cerere de interogare de tip selectie n una de tip actiune cu
functia de creare a unei noi tabele se parcurg etapele:

42
se trece n modul de lucru Design view;
se alege Query > Make table - query, care va afisa o caseta de dialog;
n aceasta caseta de dialog se introduce numele tabelei, se stabileste daca aceasta va face
parte dintr-o baza de date ACCESS sau de alt tip (cum ar fi Paradox) si daca va nlocui o tabela deja
existenta (prin alegerea acesteia dintr-o lista);
se activeaza butoanele Ok din caseta de dialog si apoi comanda Query > Run, ceea ce va afisa
ntr-o caseta de dialog numarul de nregistrari din tabela creata;
pentru completarea cererii se activeaza butonul Ok din ultima caseta de dialog, ceea ce va avea
ca efect nregistrarea n baza de date a noii tabele.
Rapoarte
Situatiile finale (rapoartele) constituie, asadar, finalitati ale ciclului de creare-actualizare-
exploatare a unei baze de date, continutul lor fiind vizualizat pe ecran, ori listat la imprimanta.
Cu Access 2000 se pot realiza diferite obiecte de tip raport, utiliznd optiunea Reports din
meniul Insert.

Exista urmatoarele modalitati de lucru:


crearea rapoartelor asistata de un wizard,
realizarea rapoartelor de catre utilizator, dupa alegerea optiunii Design View,
generarea automata, fara vreo interventie a utilizatorului, a unor rapoarte n care datele sunt
prezentate fie pe o singura coloana pentru fiecare nregistrare (optiunea Autoreport: Columnar), fie
sub forma de tabel obisnuit (optiunea Autoreport: Tabular),
crearea de rapoarte sub forma de grafic (cu optiunea Chart Wizard),
realizarea unor rapoarte de dimensiuni corespunzatoare unor etichete utilizate, eventual, pentru
corespondenta (Label Wizard).
Situatiile finale pot cuprinde date provenind dintr-o tabela, sau dintr-o interogare (atunci cnd
sunt necesare date din mai multe tabele), caz n care se raspunde mesajului "Choose the table or
query where the object's data comes from:" prin selectarea din lista a tabelei sau interogarii care va
sta la baza realizarii raportului. Exista si posibilitatea realizarii de rapoarte care nu au o anumita sursa
de date, dar care vor ngloba informatii utile subrapoartelor definite pe tabele ori interogari ntre care
nu au fost stabilite relatii.
Comenzi macro

43
Un element de maxima importanta n dezvoltarea unei aplicatii Access l reprezinta
automatizarea operatiilor efectuate si elaborarea unei interfete care sa faciliteze exploatarea bazei de
date si sa eficientizeze actiunile utilizatorului. Integrarea formularelor, interogarilor si rapoartelor ntr-
un flux continuu, condus de evenimentele declansate de utilizator, precum si executia conditionata a
operatiilor trebuie sa permita chiar si neinitiatilor n Access o deprindere rapida a cerintelor aplicatiei.
Comenzile macro din Access 2000 reprezinta o modalitate simpla si eficienta pentru
automatizarea anumitor operatii, oferind posibilitatea dezvoltarii unor aplicatii de o complexitate
sporita fara a solicita cunostinte de programare n Visual Basic.
Trebuie specificat ca macrocomenzile Access sunt diferite de macro-urile nregistrate din Word
sau Excel care se bazeaza pe generarea automata de catre program a codului VBA pentru o serie de
comenzi ale utilizatorului.
Practic, o comanda macro reprezinta o actiune sau o secventa de actiuni selectate dintr-o lista
prestabilita, ce realizeaza operatiuni diverse precum deschiderea sau nchiderea formularelor,
tiparirea rapoartelor, lansarea n executie a altor programe, salvarea nregistrarilor sau executarea
unei fraze SQL.
Desi atasarea rapida a macrocomenzilor la evenimentele controalelor de pe formulare, cum ar fi
butoanele de comanda, poate parea la o prima vedere suficienta realizarii unor programe complexe,
trebuie precizat ca exista anumite limite si deficiente ce fac utilizarea macro-urilor inferioara
programarii n VBA. Un prim argument ce poate fi mentionat n acest sens este lipsa de libertate a
programatorului n a-si crea propriile functii si proceduri si de a utiliza o serie de functii disponibile n
Access. n plus, codul VBA ce raspunde evenimentelor este salvat, importat si exportat mpreuna cu
obiectele (formulare, rapoarte etc.) conducnd la o mai usoara ntretinere a bazei de date. Si din
punct de vedere al securitatii exista unele dezavantaje: modulele pot fi protejate cu parola, pe cnd
comenzile macro nu, iar n cazul conversiei bazei de date n format MDE macro-urile ramn
vulnerabile, putnd fi modificate
Crearea unei comenzi macro:
Pentru elaborarea unei noi comenzi macro este necesara parcurgerea urmatoarelor etape:
n sectiunea Objects din fereastra bazei de date se selecteaza eticheta Macros,
Se efectueaza click pe butonul New,

44
n coloana Action se selecteaza din lista actiunea dorita.
n coloana Comment se tasteaza n dreptul fiecarei actiuni eventualele explicatii. Aceste
comentarii sunt optionale.
n grila Action Argument din partea inferioara a ferestrei se completeaza argumentele actiunii
selectate. Continutul grilei de argumente se modifica n functie de elementul selectat n lista Action,
fiecare actiune avnd propriile argumente.
Lansarea n executie a comenzilor macro exista mai multe posibilitati:
lansarea directa n executie se poate realiza efectund dublu click pe pictograma
macrocomenzii dorite n fereastra Database sau selectnd din meniul Tools - Macro - Run Macro....
n cazul n care se lanseaza n executie un grup macro fara sa se precizeze comanda dorita din
cadrul acestuia, va fi executata doar prima comanda a grupului.
executarea prin intermediul unui alt macro se efecteaza selectnd n lista de actiuni RunMacro.
Argumentele acestei actiuni permit executarea repetitiva a macrocomenzii de un anumit numar de
ori.
lansarea n executie din Visual Basic putem declansa o comanda macro din interiorul unei functii
sau proceduri VBA, folosind metoda RunMacro a obiectului DoCmd .
lansarea n executie ca raspuns la un eveniment se poate realiza atasnd o comanda macro
unui obiect, ca raspuns la un eveniment survenit n desfasurarea programului . Prin intermediul
modelului orientat pe obiecte si dirijat de evnimente putem declansa o comanda macro ca raspuns la
deschiderea sau nchiderea unui formular ori raport (evenimentul OnLoad), n urma selectarii unui
element dintr-o lista derulanta (evenimentul AfterUpdate) sau a deplasarii mouse-ului ntr-o anumita
zona a ecranului (OnMouseMove).

17.5.5 Alte faciliti n MS Access 2000


Utilizarea bazelor de date create n versiuni diferite ale Microsoft Access:
Exista situatii care impun utilizarea unui fisier creat n Access 2000 n sisteme unde sunt
instalate versiuni mai vechi ale Microsoft Office. De asemenea, dupa instalarea Access 2000,
utilizatorii vor dori sa foloseasca n continuare aplicatiile anterior create. n acest sens exista
posibilitatea conversiei bazei de date n formatul corespunzator. Putem efectua aceasta operatiune
prin intermediul comenzii Tools, Database Utilities, Convert Database....
Compactarea si "repararea" bazelor de date:
Stergerea nregistrarilor din tabele ori a unor interogari, rapoarte sau alte obiecte ale bazei de
date conduce la fragmentarea acesteia. Drept urmare, spatiul ocupat pe disc de respectivul fisier este

45
mai mai mare dect cel necesar n realitate. Pe de alta parte, evenimente precum penele de curent
sau nchiderea necorespunzatoare a unei sesiuni de lucru n Access pot determina deteriorarea
structurii bazei de date.
Pentru a elimina aceste inconveniente Microsoft Access 2000 pune la dispozitia utilizatorilor
facilitatea de compactare si reparare a bazelor de date, Compact and Repair Database. (n versiunea
Access'97 cele doua optiuni erau prezentate separat).
Pentru a realiza operatiunea de compactare asupra unei baze de date deja deschise se
selecteaza din cadrul meniului Tools optiunea Database Utilities, Compact and Repair Database. n
acest caz baza de date compactata va lua locul celei vechi. n cazul unei baze de date distribuite este
necesara, n prealabil, nchiderea acesteia de catre toti utilizatorii.
Conversia bazelor de date n format MDE presupune compilarea tuturor modulelor, renuntarea la
posibilitatea de editare a codului VBA, precum si compactarea bazei de date destinatie. Codul
VBA va continua sa functioneze, dar nu va putea fi vizualizat sau editat. Dimensiunea bazei de
date va fi considerabil micsorata, ca urmare a ndepartarii codului, iar performantele obtinute vor
fi mbunatatite prin gestionarea optima a memoriei.
Database Splitter: acest program utilitar este disponibil n meniul Tools > Database Utilities... doar n
cazul n care ati selectat Additional Wizards Component la instalarea Access 2000. Prin
intermediul Database Splitter se ofera posibilitatea separarii tabelelor de celelalte obiecte ale
bazei de date (formulare, rapoarte etc.) generndu-se practic doua fisiere. Este o facilitate
extrem de utila, n special n cazul sistemelor multiuser, permitnd fiecarui utilizator gestionarea
elementelor de interfata ntr-un fisier separat.
Fereastra Start-Up:
reprezint formularul care care este deschis automat la deschiderea bazei de date. De exemplu, un
formular care sa ofere butoane pentru accesul la toate functiile aplicatiei (formulare, rapoarte,
interogari, tabele), fara ca utilizatorul sa fie nevoit sa cunoasca numele formularelor, rapoartelor
etc. Stabilirea acestui formular si a altor parametrii ai bazei de date se realizeaza din meniul
Tools-StartUp.
Privitor la securitatea bazei de date, Access 2000 ofera urmatoarele posibilitati:
stabilirea unei parole de acces la baza de date;
crearea de utilizatori pentru accesul la baza de date si stabilirea de drepturi de acces pentru fiecare;
criptarea bazei de date
stabilirea unei parole de acces la baza de date se realizeaza din meniul Tools - Security - Set
Database Password. Pentru a putea stabili sau elimina parola bazei de date, aceasta trebuie
deschisa pentru utilizare exclusiva.

Rapoarte
Situatiile finale (rapoartele) constituie, asadar, finalitati ale ciclului de creare-actualizare-exploatare a
unei baze de date, continutul lor fiind vizualizat pe ecran, ori listat la imprimanta.
Cu Access 2000 se pot realiza diferite obiecte de tip raport, utiliznd optiunea Reports din meniul
Insert.

46
Exista urmatoarele modalitati de lucru:
crearea rapoartelor asistata de un wizard,
realizarea rapoartelor de catre utilizator, dupa alegerea optiunii Design View,
generarea automata, fara vreo interventie a utilizatorului, a unor rapoarte n care datele sunt
prezentate fie pe o singura coloana pentru fiecare nregistrare (optiunea Autoreport: Columnar),
fie sub forma de tabel obisnuit (optiunea Autoreport: Tabular),
crearea de rapoarte sub forma de grafic (cu optiunea Chart Wizard),
realizarea unor rapoarte de dimensiuni corespunzatoare unor etichete utilizate, eventual, pentru
corespondenta (Label Wizard).
Situatiile finale pot cuprinde date provenind dintr-o tabela, sau dintr-o interogare (atunci cnd sunt
necesare date din mai multe tabele), caz n care se raspunde mesajului "Choose the table or
query where the object's data comes from:" prin selectarea din lista a tabelei sau interogarii care
va sta la baza realizarii raportului. Exista si posibilitatea realizarii de rapoarte care nu au o
anumita sursa de date, dar care vor ngloba informatii utile subrapoartelor definite pe tabele ori
interogari ntre care nu au fost stabilite relatii.
Comenzi macro
Un element de maxima importanta n dezvoltarea unei aplicatii Access l reprezinta automatizarea
operatiilor efectuate si elaborarea unei interfete care sa faciliteze exploatarea bazei de date si
sa eficientizeze actiunile utilizatorului. Integrarea formularelor, interogarilor si rapoartelor ntr-un
flux continuu, condus de evenimentele declansate de utilizator, precum si executia conditionata
a operatiilor trebuie sa permita chiar si neinitiatilor n Access o deprindere rapida a cerintelor
aplicatiei.
Comenzile macro din Access 2000 reprezinta o modalitate simpla si eficienta pentru automatizarea
anumitor operatii, oferind posibilitatea dezvoltarii unor aplicatii de o complexitate sporita fara a
solicita cunostinte de programare n Visual Basic.
Trebuie specificat ca macrocomenzile Access sunt diferite de macro-urile nregistrate din Word sau
Excel care se bazeaza pe generarea automata de catre program a codului VBA pentru o serie
de comenzi ale utilizatorului.
Practic, o comanda macro reprezinta o actiune sau o secventa de actiuni selectate dintr-o lista
prestabilita, ce realizeaza operatiuni diverse precum deschiderea sau nchiderea formularelor,

47
tiparirea rapoartelor, lansarea n executie a altor programe, salvarea nregistrarilor sau
executarea unei fraze SQL.
Desi atasarea rapida a macrocomenzilor la evenimentele controalelor de pe formulare, cum ar fi
butoanele de comanda, poate parea la o prima vedere suficienta realizarii unor programe
complexe, trebuie precizat ca exista anumite limite si deficiente ce fac utilizarea macro-urilor
inferioara programarii n VBA. Un prim argument ce poate fi mentionat n acest sens este lipsa
de libertate a programatorului n a-si crea propriile functii si proceduri si de a utiliza o serie de
functii disponibile n Access. n plus, codul VBA ce raspunde evenimentelor este salvat, importat
si exportat mpreuna cu obiectele (formulare, rapoarte etc.) conducnd la o mai usoara
ntretinere a bazei de date. Si din punct de vedere al securitatii exista unele dezavantaje:
modulele pot fi protejate cu parola, pe cnd comenzile macro nu, iar n cazul conversiei bazei de
date n format MDE macro-urile ramn vulnerabile, putnd fi modificate
Crearea unei comenzi macro:
Pentru elaborarea unei noi comenzi macro este necesara parcurgerea urmatoarelor etape:
n sectiunea Objects din fereastra bazei de date se selecteaza eticheta Macros,
Se efectueaza click pe butonul New,

n coloana Action se selecteaza din lista actiunea dorita.


n coloana Comment se tasteaza n dreptul fiecarei actiuni eventualele explicatii. Aceste comentarii
sunt optionale.
n grila Action Argument din partea inferioara a ferestrei se completeaza argumentele actiunii
selectate. Continutul grilei de argumente se modifica n functie de elementul selectat n lista
Action, fiecare actiune avnd propriile argumente.
Lansarea n executie a comenzilor macro exista mai multe posibilitati:

48
lansarea directa n executie se poate realiza efectund dublu click pe pictograma macrocomenzii
dorite n fereastra Database sau selectnd din meniul Tools - Macro - Run Macro.... n cazul n
care se lanseaza n executie un grup macro fara sa se precizeze comanda dorita din cadrul
acestuia, va fi executata doar prima comanda a grupului.
executarea prin intermediul unui alt macro se efecteaza selectnd n lista de actiuni RunMacro.
Argumentele acestei actiuni permit executarea repetitiva a macrocomenzii de un anumit numar
de ori.
lansarea n executie din Visual Basic putem declansa o comanda macro din interiorul unei functii sau
proceduri VBA, folosind metoda RunMacro a obiectului DoCmd .
lansarea n executie ca raspuns la un eveniment se poate realiza atasnd o comanda macro unui
obiect, ca raspuns la un eveniment survenit n desfasurarea programului . Prin intermediul
modelului orientat pe obiecte si dirijat de evnimente putem declansa o comanda macro ca
raspuns la deschiderea sau nchiderea unui formular ori raport (evenimentul OnLoad), n urma
selectarii unui element dintr-o lista derulanta (evenimentul AfterUpdate) sau a deplasarii mouse-
ului ntr-o anumita zona a ecranului (OnMouseMove).
Alte faciliti n MS Access 2000
Utilizarea bazelor de date create n versiuni diferite ale Microsoft Access:
Exista situatii care impun utilizarea unui fisier creat n Access 2000 n sisteme unde sunt instalate
versiuni mai vechi ale Microsoft Office. De asemenea, dupa instalarea Access 2000, utilizatorii
vor dori sa foloseasca n continuare aplicatiile anterior create. n acest sens exista posibilitatea
conversiei bazei de date n formatul corespunzator. Putem efectua aceasta operatiune prin
intermediul comenzii Tools, Database Utilities, Convert Database....
Compactarea si "repararea" bazelor de date:
Stergerea nregistrarilor din tabele ori a unor interogari, rapoarte sau alte obiecte ale bazei de date
conduce la fragmentarea acesteia. Drept urmare, spatiul ocupat pe disc de respectivul fisier este
mai mai mare dect cel necesar n realitate. Pe de alta parte, evenimente precum penele de
curent sau nchiderea necorespunzatoare a unei sesiuni de lucru n Access pot determina
deteriorarea structurii bazei de date.
Pentru a elimina aceste inconveniente Microsoft Access 2000 pune la dispozitia utilizatorilor
facilitatea de compactare si reparare a bazelor de date, Compact and Repair Database. (n
versiunea Access'97 cele doua optiuni erau prezentate separat).
Pentru a realiza operatiunea de compactare asupra unei baze de date deja deschise se selecteaza
din cadrul meniului Tools optiunea Database Utilities, Compact and Repair Database. n acest
caz baza de date compactata va lua locul celei vechi. n cazul unei baze de date distribuite este
necesara, n prealabil, nchiderea acesteia de catre toti utilizatorii.
Conversia bazelor de date n format MDE presupune compilarea tuturor modulelor, renuntarea la
posibilitatea de editare a codului VBA, precum si compactarea bazei de date destinatie. Codul
VBA va continua sa functioneze, dar nu va putea fi vizualizat sau editat. Dimensiunea bazei de
date va fi considerabil micsorata, ca urmare a ndepartarii codului, iar performantele obtinute vor
fi mbunatatite prin gestionarea optima a memoriei.
Database Splitter: acest program utilitar este disponibil n meniul Tools > Database Utilities... doar n
cazul n care ati selectat Additional Wizards Component la instalarea Access 2000. Prin
intermediul Database Splitter se ofera posibilitatea separarii tabelelor de celelalte obiecte ale
bazei de date (formulare, rapoarte etc.) generndu-se practic doua fisiere. Este o facilitate
extrem de utila, n special n cazul sistemelor multiuser, permitnd fiecarui utilizator gestionarea
elementelor de interfata ntr-un fisier separat.
Fereastra Start-Up:

49
reprezint formularul care care este deschis automat la deschiderea bazei de date. De exemplu, un
formular care sa ofere butoane pentru accesul la toate functiile aplicatiei (formulare, rapoarte,
interogari, tabele), fara ca utilizatorul sa fie nevoit sa cunoasca numele formularelor, rapoartelor
etc. Stabilirea acestui formular si a altor parametrii ai bazei de date se realizeaza din meniul
Tools-StartUp.
Privitor la securitatea bazei de date, Access 2000 ofera urmatoarele posibilitati:
stabilirea unei parole de acces la baza de date;
crearea de utilizatori pentru accesul la baza de date si stabilirea de drepturi de acces pentru fiecare;
criptarea bazei de date
stabilirea unei parole de acces la baza de date se realizeaza din meniul Tools - Security - Set
Database Password. Pentru a putea stabili sau elimina parola bazei de date, aceasta trebuie
deschisa pentru utilizare exclusiva.
3.3 Formulare (simple, avansate)
Formularele (Forms) reprezinta interfata principala ntre utilizator si o aplicatie MS Access, fiind
obiecte ale bazei de date ce permit introducerea si afisarea datelor ntr-o maniera ct mai
atractiva.
n cadrul unei aplicatii, formularele pot ndeplini mai multe functii:
afisarea si editarea datelor;
controlul operatiilor realizate de aplicatie;
introducerea de date;
afisarea de mesaje;
tiparirea informatiilor.
Un formular este compus din trei parti: antetul, zona de detaliu si subsolul:

Lucrul cu formulare se poate realiza in unul din urmtoarele moduri de vizualizare:

50
Design View n acest mod de vizualizare poate fi
modificat design-ul formularului
Form view vizualizarea propriu-zis a formularului
Datasheet view mod de vizualizare sub form tabelar
Pentru crearea formularelor in Access 2000 se utilizeaz controale. Un control este un obiect grafic
care poate fi pozitionat pe un formular, raport sau pagina de acces la date (Data access page).
Un control poate afisa date si/sau efectua actiuni.
Pentru crearea unui formular exista mai multe moduri prin care se poate crea un formular, dar cele
mai importante sunt urmatoarele:
prin utilizarea instrumentului wizard: Create form by using wizard,
crearea n fereastra de proiectare (manual) Create form in Design view.
Un subformular, este un formular inclus ntr-un alt formular, pentru a permite afisarea datelor din mai
multe tabele sau cereri de interogare, aflate n general n relatii de tipul unu la unu sau unu la
mai multi. Astfel, n formularul principal vor fi afisate datele din partea unu a relatiei, iar n
subformular cele din partea mai multi. n mod implicit, legatura dintre un formular si un
subformular reflecta legatura dintre tabelele pe care se bazeaza. Prin urmare, la un moment dat
n formular vor fi afisate o nregistrare aflata de partea unu a relatiei iar n subformular
nregistrarile corespondente din tabela aflata de partea mai multi a acesteia. ntr-un formular
care contine un subformular se pot specifica criterii de filtrare numai asupra cmpurilor din
formularul principal.
Facnd apel la exemplul nostru, relatia de tip 1- n dintre tabelele Categorii si Camere face posibila
crearea unui formular unde se vor afisa Camerele si n care se poate include un subformular
pentru afisarea tarifului corespondent fiecarei camere.
Din punct de vedere al formatului de prezentare, un subformular poate fi de doua feluri:
foaie de date (Datasheet view) - se poate crea ntr-o maniera foarte simpla si permite modificari
privind dimensiunea si ordinea coloanelor;
formular (Form view)- ofera o mare suplete de prezentare prin posibilitati multiple de aranjare a
datelor, de utilizare a culorilor, de creare de antet si subsol de pagina si de includere a unor
cmpuri de tip OLE.
Pentru includerea unui subformular ntr-un formular principal trebuie arcuri urmtorii pai:
creare formularului principal,
crearea subformularului,
facei drag&drop cu subformular peste formularul principal.
Pentru a aduce un subformular ntr-un formular principal:

51
se deschide formularul principal n modul Design;
se trece n fereastra Database, prin activarea tastei F11, se activeaza butonul , care va afisa lista
tuturor formularelor din baza de date;
se deplaseaza pictograma corespunzatoare subformularului din fereastra bazei de date n spatiul
formularului principal, ceea ce va avea ca efect adaugarea unui control de tip subformular;
daca este cazul se deplaseaza controlul n locul dorit si se redimensioneaza n functie de necesitati;
se face dublu clic pe bordura controlului ce reprezinta subformularul, pentru a afisa lista de proprietati
a acestuia;
se verifica legatura dintre formularul principal si subformular prin proprietatile Link child fields si Link
master fields, care sunt automat definite de ACCESS pe baza legaturilor dintre tabele; n caz
contrar se stabilesc cele doua cmpuri de legatura;
se trece n modul Forms pentru verificarea rezultatului;
pentru a aduce modificari n formularul principal se comuta napoi n modul Design.
Astfel MS Access va crea automat o legtur btre cele dou formulare.
Legatura automata este posibila n urmatoarele doua situatii:
formularul principal si subformularul se bazeaza pe tabele aflate n relatii primare de tip 1-1 sau 1-n;
situatie n care cmpurile de legatura vor fi cheia primara din tabela aflata de partea 1 si cheia
externa din tabela aflata de partea n a relatiei;
formularul principal si subformularul contin doua cmpuri care sunt identice ca nume si ca tip, iar cel
din formularul principal este cheie primara a tabelei sursa; situatie n care legatura se face prin
cele doua cmpuri.
Att formularele,rapoartele ct i controalele posed o serie de propriet.
Proprietatile unui obiect se pot modifica respectnd urmatoarea succesiune:
dac este vorba de un formular/raport se deschide n modul Design;
se selecteaz formularul/raportul din meniul Edit->Select Form (Select Report)); daca este vorba de
un obiect plasat pe un formular sau pe un raport acesta se selecteaza printr-un clic pe obiectul
dorit;
se activeaz fereastra cu proprietati (trebuie sa fie activat meniul View,Properties sau prin actionarea
butonului din bara cu instrumente).
ntr-un formular se pot plasa cmpuri calculate pe baza unor expresii. Plasarea expresiilor n
controalele aflate pe un formular sau subformular se realizeaza prin scrierea acestora n
proprietatea Control Source a unui control. Scrierea unei expresii se poate face asistat
(Expression Builder) sau prin scriere directa. Daca se utilizeaza scrierea unei expresii n modul
neasistat, aceasta trebuie precedata de semnul egal (=expresie). Expresiile pot contine orice
functie Access 2000 sau functii definite de utilizator, referiri catre controale aflate pe alte
formulare (deschise) etc.
Expresiile plasate n formulare/subformulare pot fi grupate n:
expresii simple
expresii care utilizeaza functii agregate (SUM, AVG, COUNT etc.)
Utilizarea n expresii a controalelor din acelasi formular se realizeaza prin referirea numelui
controalelor implicate n expresie.
Pentru exemplificare am plasat o caseta de text (numele controlului-proprietatea Name- Valoare) n
care am scris n proprietatea Control Source expresia:=Val([Cantitate intrata])*Val([Pret factura]):

52
53

S-ar putea să vă placă și