Sunteți pe pagina 1din 204

Baze de dat e

C U P R N S
1. NOIUNI INTRODUCTIVE.........................................................................................................................3
1.1. Colecii de date..............................................................................................................................................3
1.2. Elementele constitutive ale datei..................................................................................................................3
1.3. Structuri de date............................................................................................................................................5
3.1. Definiii generale...................................................................................................................................5
3.2. Operaii asupra structurilor de date.....................................................................................................6
3.3. Tipuri de structuri de date.....................................................................................................................8
1.4. Conceptele de Baza de Date si Sistem de Gestiune a Bazelor de Date .....................................................12
1.5. Sisteme de Gestiune a Bazelor de Date (SGBD........................................................................................1!
1.5.1. Obiectivele unui !BD...................................................................................................................16
1.5.2. "nterfaa ODB# $Open DataBase #onnectivit%&............................................................................2'
1.!. "ipuri de #aze de date................................................................................................................................23
1.1. (odelul ierar)ic..................................................................................................................................23
1.2. (odelul reea.......................................................................................................................................25
1.3. (odelul relaional...............................................................................................................................2*
1.+. (odele orientate pe obiect..................................................................................................................28
1.!. Clasi$icarea SGBD%urilor $uncie de modelul de reprezentare a datelor...................................................31
1. BAZE DE DATE RELATIONALE.............................................................................................................35
2.1. &undamentele teoretice ale modelului relaional.......................................................................................3!
2.2. 'l(e#ra relaionala......................................................................................................................................3)
2.3. Componentele modelului relaional............................................................................................................42
6.1. #o,ponenta structural-......................................................................................................................+2
6.2. #o,ponenta de ,anipulare................................................................................................................++
6.3. #o,ponenta de integritate..................................................................................................................+6
2.4. *e(ile lui Codd...........................................................................................................................................4+
2. PROIECTAREA BAZELOR DE DATE....................................................................................................50
3.1. ,roiectarea lo(ic-........................................................................................................................................5.
1.1. (odelarea relaiilor entitate.atribut..................................................................................................5'
3.1.2. (odelarea prin nor,alizare...........................................................................................................56
3.2. ,roiectarea $izica........................................................................................................................................!1
3.2.1. Ti,pul de r-spuns...........................................................................................................................61
3.2.2. Di,ensionarea bazei de date..........................................................................................................65
3. NOIUNI DE BAZA N SGBD ACCESS...................................................................................................68
4.1. Colecii de o#iecte in /icroso$t 'ccess......................................................................................................+.
+.1.1. Obiecte tip tabel..............................................................................................................................*2
+.1.2 Obiecte tip interogare .....................................................................................................................85
+.1.3. Obiecte tip for,ular........................................................................................................................//
+.1.+. Obiecte tip raport..........................................................................................................................1'/
4. NOIUNI AVANSATE N SGBD ACCESS.............................................................................................119
5.1. 0#iecte tip macro.....................................................................................................................................111
5.1.1. #rearea0e1ecutarea0,odificarea obiectelor ,acro ....................................................................11/
5.1.2. !rupuri de ,acro.co,enzi............................................................................................................122
5.1.3 !enerarea auto,ata a panourilor de co,anda pentru aplicaii..................................................12+
5.2. &acilitai privind securitatea #azei de date..............................................................................................125
5.2.1. tabilirea unei parole de acces la baza de date...........................................................................125
5.2.2. tabilirea unui siste, de utilizatori..............................................................................................126
5.2.3. 2ncriptarea0decriptarea bazei de date..........................................................................................12*
5.2.+. #onversia bazelor de date 3n for,at (D4...................................................................................128
5. ACCESAREA DATELOR FOLOSIND LIBA!UL S"L ...................................................................129
!.1. Caracteristici (enerale.............................................................................................................................121
!.2. Comenzi S2*...........................................................................................................................................131
- 1 -
Baze de dat e
6.2.1 #rearea 5i ,odificarea structurii unei tabele...............................................................................131
6.2.2. "nstruciuni pentru selectarea datelor..........................................................................................132
6.2.3. "nstruciuni pentru actualizarea bazei de date.............................................................................1+3
6.2.+. Operaii asupra vie6.urilor..........................................................................................................1+5
6.2.5. Opti,izarea interog-rilor prin indec5i ......................................................................................1+*
6.2.6. 7cordarea drepturilor de acces....................................................................................................15'
6.2.*. ",ple,entarea operatorilor relationali folosind li,ba8ul 9:...................................................15'
6. BAZE DE DATE DISTRIBUITE..............................................................................................................15#
+.1. Sisteme de (estiune a #azelor de date distri#uite....................................................................................1!1
*.1.1. #o,ponente eseniale...................................................................................................................161
*.1.2. Obiectivele unui iste, de !estiune a Bazelor de Date Distribuite...........................................162
*.1.3. ;iveluri de reprezentare a datelor................................................................................................163
+.2. Conceperea 3i administrarea #azelor de date distri#uite.........................................................................1!5
+.3. /anipularea #azelor de date distri#uite..................................................................................................1!+
#. BAZE DE DATE ON$LINE.......................................................................................................................1#0
).1. 4nternet54ntranet 3i #aze de date..............................................................................................................1+.
).2. Elementele speci$ice #azelor de date on%line...........................................................................................1+4
).3. 'ccess 2..2 3i #azele de date on%line.....................................................................................................1+)
8.3.1. 4laborarea paginilor <4B statice................................................................................................1*8
8.3.2. 4laborarea paginilor dina,ice.....................................................................................................1*8
8.3.3. Obiecte de tip pagina <4B...........................................................................................................1*/
8. LUCR%RI PRACTICE ..............................................................................................................................181
1.1. Studiu de caz6 proiectarea unei #aze de date la nivelul teritoriului administrativ pentru realizarea
planului cadastral inde7 3i intero(-ri in S2*.................................................................................................1)1
1.2. ,ro#leme propuse spre rezolvare.............................................................................................................2.1
- 2 -
Baze de dat e
1. 1. N NOIUNI OIUNI INTRODUCTIVE INTRODUCTIVE
1.1. Colecii de dat e
Prelucrarea datelor, indiferent c se realizeaz automat, n
cadrul unui sistem informati c, sau se face manual, n cadrul
unui sistem informa i onal , presupune orga nizarea acestora n
colecii structurate dup reguli i metode specifice. Desigur, n
cadrul unui sistem informati c colecia de date trebuie s se
gseasc pe un suport accesibil calculatorul ui (de regul,
memori e magnetic), pe cnd n cadrul unui sistem
informa i onal , colecia se va organiza n fie, registre, dosare,
hri, etc.
n general, o colecie de date poate fi privi t din dou
puncte de vedere distincte. Primul dintre acestea este punctul
de vedere logic, care se refer la modul n care sunt grupate
i legate ntre ele diferi tel e elemente care compun colecia. Al
doilea punct de vedere este cel fizic, care se refer la
organizarea elementel or coleciei pe un anumi t suport.
Dac, de exempl u, ne-am referi la o colecie de ilustrate,
atunci punctul de vedere logic privete temati ca (monumente,
arhi tectur, costume populare, peisaje, oameni celebri, flor,
faun, sport, etc.), n ti mp ce punctul de vedere fizic ar privi
modul de pstrare i prezentare a coleciei (albume, cutii,
imagini scanate n fiiere grafice i afiate pe ecran, etc.).
n cazul sistemelor informati ce, din punct de vedere fizic,
coleciile de date sunt consti tui te din iruri de cifre binare
(bii) stocate pe unul sau mai mul te discuri magnetice,
montate pe unul sau mai mul te calculatoare. Pe aceste
suporturi , fiecare dat se caracterizeaz printr- o anumi t
lungi me , reprezentnd zona de memori e ocupat, expri mat
n octei (bytes) i prin poziia la care se gsete ( adres). Din
punct de vedere logic, aceleai date sunt organizate n
variabile scalare, n tablouri cu una sau mai mul te dimensi uni
(array n Pascal), n structuri (record n Pascal, struct n C)
grupate n fiiere, etc.
1.2. Element el e constit utive ale dat ei
Orice dat reprezint o anumi t caracteristi c a unei
enti ti (obiect, fenomen, proces, persoan, enti tate
geografic, etc.) din medi ul nconjurtor, modelate n cadrul
unui sistem informati c.
- 3 -
Baze de dat e
Din punct de vedere al modul ui n care este tratat i
manipulat, o dat este consti tui t din trei elemente (Figura
1.1.):
identi ficator . Este un nume simbolic atri bui t
caracteristi cii pe care o reprezint data respecti v. Acest
nume este stabili t conform unor reguli specifice limbaj ul ui
utilizat pentru descrierea datelor din colecie. De exempl u, n
Pascal un identi ficator este un ir format dintr- un numr
limi tat de caractere alfanumerice, n care pri mul caracter
trebuie s fie o liter: NumeStudent, nume_student, varsta,
pacient, temp_corp, cota, x, distanta etc.;
valoare . Reprezint o anumi t instan atribui t
identi ficatorul ui pentru a carac teriza o anumi t enti tate.
Exemple de valori: Popescu Vasile, 23, 231.56, adevrat, 20
DEC 1986, etc.;
atribut e . Sunt proprieti ale datei, determi nante
pentru modul n care aceasta va fi tratat n procesul de
prelucrare. Exist mai mul te atri bute care se pot asocia
oricrei date, principalele dintre acestea fiind:
tipul datei , prin care se expri m apartenen a acesteia la
o anumi t clas de valori pentru care sunt defini te operai i
specifice (numr ntreg, numr real, caracter, ir de caractere,
valoare logic, dat calendaristic, etc.);
lungi mea datei , expri mat n octei (bytes ), prin care se
specific canti tatea de memori e (de suport) ocupat de data
respecti v;
domeni ul de valori , defini t atunci cnd data poate lua
valori dintr- o mul i me fini t. n majori tatea cazurilor,
domeni ul este implici t tipul ui datei. De exem plu, n Turbo
Pascal, tipul shortint acoper domeni ul -128.+127;
valorile limi t , stabili te atunci cnd data poate lua valori
numai ntr- un anumi t interval (vrsta unei persoane,
temperatura corpul ui uman, alti tudi nea unui punct terestru,
direcia unghi ul ar citi t la un teodoli t, etc.);
valoarea iniial , stabili t atunci cnd o dat intr n
prelucrare cu o valoare predefi ni t.
- 4 -
Baze de dat e

temp_corp
36&#
identificator
valoare
atribute
tip dat-= real,
lungi,e= 4 bytes,
valori e1tre,e= 35,0...42,0

Figura 1.1. Structura datei
1.3. Stuct ui de dat e
3.1. De!iniii "ene al e
Aa cum s-a mai artat, prelucrarea datelor aflate ntr- o
colecie implic orga nizarea acesteia dup anumi te reguli.
Defini i
e
Se numete structur de date o colecie de date pentru care
s-a defini t un anumi t mod de ordonare a elementel or
componente. Relaiei de ordine respecti ve i corespunde un
mecanism specific de regsire, identi fi care i selecie a fiecrei
componente din colecie.
O structur de date reprezint o enti tate independent,
identi ficabi l prin numele su. La rndul lor, componentel e
unei structuri pot fi identi ficate fie prin nume, fie prin poziia
pe care o ocup n cadrul structuri i .
Accesul la o component a structuri i se numete direct ,
dac identi ficarea elementul ui respecti v se face fr a fi
necesar consul tarea sau parcurgerea altor elemente. De
exempl u, pentru specificarea unui element al unui tablou
bidi mensional (matrice) dintr- un program Pascal, este necesar
s se precizeze numele acestuia (numel e structuri i ) urmat de
indicii (numere de ordine) liniei i coloanei pe care se afl
elementul respecti v: sis_nor[i,j] Mecanismul de selecie din
acest exempl u nu implic n mod necesar parcurgerea altor
elemente ale tabloul ui respecti v.
Dac, dimpotri v, localizarea unui element nu se poate
face dect dup parcurgerea mai mul tor componente,
conform ordinii n care acestea au fost nregistrate pe suport,
atunci accesul se numete secveni al . Exempl e tipice pentru
accesul secveni al l reprezint structuri l e de date memorate
- 5 -
Baze de dat e
pe benzi magneti ce, la care, pentru a gsi o anumi t
component, este necesar parcurgerea tuturor celorlal te
aflate pe band n faa celei cutate.
ntre elementel e unei structuri de date se pot stabili mai
mul te relaii de ordine, nu doar una singur. De exempl u,
angajaii unei insti tu i i ar putea fi grupai sau ordonai dup
profesie, dup funcie, dup vrst, dup nivel ul de salarizare,
etc. nformai i l e necesare stabili rii noilor relaii de ordine pot fi
incluse n structur sub forma unor date supli mentare ataate
fiecrei componente a coleciei, caz n care se spune c
structura este explicit . De regul, aceste informai i
supli mentare, necesare pentru explici tarea noilor relaii de
ordine, se materi alizeaz sub form de adrese (pointeri ) la
alte componente din structur.
3.2. O#e aii asu# a stuct uilo de dat e
Asupra unei structuri de date se pot efectua diferi te
operaii. Acestea pot implica att structura n totali tatea ei,
ct i un element sau un grup de elemente din structur.

c. Consultare a. Alocare b. ncrcare
Figura 1.2. Operaii asupra structuri lor de date.
n general, structuri l e de date accept urmtoarel e
operaii :
Alocare . Este operaia prin care unei structuri de date i
se rezerv un anumi t spaiu pe suportul de memori e (Figura
1.2.a). De regul, alocarea implic atri buirea unui identi ficator
(numel e structuri i ) i specificarea tipul ui componentel or;
ncrcare . Prin aceast operai e se completeaz
structura (coleci a de date) preciznd valorile componentel or
(Figura 1.2.b);
Consultare . Este accesul la componentel e structuri i n
scopul prelurii valorilor necesare n procesul de prelucrare
(Figura 1.2.c);
- 6 -
Baze de dat e

inserare:
modificare:
tergere:
Figura 1.3. Operaii de actualizare a unei structuri de date.
Actualizare . Prin actualizare se modific forma
structuri i, cu ajutorul a trei operaii distincte (Figura 1.3.):
inserare sau adugare, prin care se completeaz
colecia cu noi componente,
tergere , prin care sunt eli minate componente ale
coleciei,
modi ficare , prin care unele dintre componentel e
coleciei pri mesc noi valori pentru o parte dintre date;
Sortare . Const n modificarea formei coleciei prin
aranjarea componentel or acesteia ntr- o ordine diferi t de cea
existent (Figura 1.4.). Noua ordine este bazat pe anumi te
criterii aplicate valorilor elementel or coleciei (ascendent, des -
cendent etc.).
Descompunere . Este separarea unei structuri de date
n dou sau mai mul te structuri distincte (Figura 1.4.).
Structuri l e rezul tate pot avea aceeai organizare ca i
structura din care provi n, caz n care fiecare component a
noilor structuri este caracterizat prin acelai set de atri bute
ca i componentel e structuri i de origine, dar pot avea i
organizri diferi te, caz n care fiecare component a noi lor
structuri este caracterizat prin numai o parte dintre
atributel e componentel or originare.
- 7 -
Baze de dat e

nume_pers data_nastere salariu
Aldea Virgil 23.12.1940 870
Alexandrescu on 31.08.1949 810
Boroianu Constantin 07.03.1954 930
Crciun Teodor 23.05.1971 780
Dumitru Maria 11.01.1956 1020
Fntn Camelia 15.07.1964 910
Postelnicu Gabriel 22.02.1951 1170
Preoteasa Mihai 04.11.1971 950
Simionescu Mdlina 08.05.1973 920
Stoian Emil 18.09.1972 880
Tristaru Cornel 01.06.1971 840

nume_pers data_nastere salariu
Postelnicu Gabriel 22.02.1951 1170
Dumitru Maria 11.01.1956 1020
Preoteasa Mihai 04.11.1971 950
Boroianu Constantin 07.03.1954 930
Simionescu Mdlina 08.05.1973 920
Fntn Camelia 15.07.1964 910
Stoian Emil 18.09.1972 880
Aldea Virgil 23.12.1940 870
Tristaru Cornel 01.06.1971 840
Alexandrescu on 31.08.1949 810
Crciun Teodor 23.05.1971 780

nume_pers data_nastere salariu
Aldea Virgil 23.12.1940 870
Alexandrescu on 31.08.1949 810
Boroianu Constantin 07.03.1954 930
Crciun Teodor 23.05.1971 780
Dumitru Maria 11.01.1956 1020

nume_pers data_nastere salariu
Fntn Camelia 15.07.1964 910
Postelnicu Gabriel 22.02.1951 1170
Preoteasa Mihai 04.11.1971 950
Simionescu Mdlina 08.05.1973 920
Stoian Emil 18.09.1972 880
Tristaru Cornel 01.06.1971 840

nume_pers salariu
Aldea Virgil 870
Alexandrescu on 810
Boroianu Constantin 930
Crciun Teodor 780
Dumitru Maria 1020
Fntn Camelia 910
Postelnicu Gabriel 1170
Preoteasa Mihai 950
Simionescu Mdlina 920
Stoian Emil 880
Tristaru Cornel 840

nume_pers data_nastere
Aldea Virgil 23.12.1940
Alexandrescu on 31.08.1949
Boroianu Constantin 07.03.1954
Crciun Teodor 23.05.1971
Dumitru Maria 11.01.1956
Fntn Camelia 15.07.1964
Postelnicu Gabriel 22.02.1951
Preoteasa Mihai 04.11.1971
Simionescu Mdlina 08.05.1973
Stoian Emil 18.09.1972
Tristaru Cornel 01.06.1971

sortare
descompunere
descompunere
Figura 1.4. Operaii de sortare i descompunere ale structurilor de date.
Fuziune . Prin aceast operai e, complementar
descompuneri i , dou sau mai mul te structuri de date sunt
combinate n una singur.
Copiere . Se realizeaz un duplicat al unei structuri de
date, sub un alt nume sau pe un suport diferi t.
3.3. Ti#ui de stuct ui de dat e.
Fie D, o mul i me fini t de date i R, o relai e binar de
ordine defini t pe D. Dac elementel e a i b apari n mul i mi i
D, iar perechea (a,b) apari ne relai ei R, atunci se spune c
, a precede pe b sau , a este antecedentul (printel e) lui b,
respecti v , b succede lui a sau , b este descendentul (fiul) lui
a.
3 . 3. a. St r uct u r i li ni ar e
Muli mea D reprezint o structur liniar dac sunt
- 8 -
Baze de dat e
ndeplini te urmtoarel e condi i i:
exist un singur element, numi t pri mul , care nu are
predecesori i are un singur succesor imediat,
exist un singur element, numi t ulti mul , care nu are
succesori i are un singur predecesor imediat,
cu excepi a elementel or termi nal e (pri mul i ulti mul ) ,
toate celelal te au un singur predecesor imediat (pri nte) i
un sigur succesor imediat (urma) .
Grafic, o structur liniar se reprezint sub forma din
figura 1.5.

ultimul
element
primul
element
Figura 1.5. Structur liniar.
Ca exempl u de structur liniar poate fi dat un tablou
unidi mensional declarat ntr- un program. De exempl u, n
Pascal, tabloul lista_stud declarat prin
var lista_stud : array[!! "#] of string[$%] &
reprezint o structur liniar.
3 . 3. b. St r uc t u r i ar bor esc e n t e
Muli mea D reprezint o structur arborescent sau
ierarhic dac sunt ndeplini te condi iil e urmtoare:
exist un singur element, numi t rdcin , care nu are
nici un predecesor;
exist mai mul te elemente termi nal e, numi te frunze ,
care nu au nici un succesor;
toate elementel e structuri i, cu excepi a frunzelor, au cel
puin un succesor ime diat;
toate elementel e structuri i, cu excepi a rdcinii, au un
singur predecesor imediat.
O structur arborescent se reprezint grafic sub o form
similar celei din figura 1.6. Aa cum se poate observa,
structura apare sub forma unui arbore ,rsturnat (cu
rdcina n sus), similar unui arbore genealogic (care
reprezint descendeni i succesorii unei anumi te persoane).
- 9 -
Baze de dat e

rdcin
nivel 0
nivel
nivel !
nivel "
nivel n
Figura 1.6. Structur arborescent
O structur arborescent se realizeaz pe baza unei
scheme prin care este defini t succesiunea elementel or
componente ncepnd de la rdcin. De exempl u, evidena
studeni l or care urmeaz cursurile unei facul ti s-ar putea
realiza conform schemei ierarhice din figura 1.7.


FACULTATE
denumire numr specializri
SPECALZARE
denumire form numr ani studiu
AN DE STUDU
anul numr grupe
GRUP DE STUDU
grupa numr studeni
STUDENT
nume i prenume data naterii domiciliu
Figura 1.7. Schem ierarhic.
O instan (sau realizare concret ) a schemei de mai sus s-
ar putea prezenta sub forma din figura 1.8.
- 10 -
Baze de dat e

5 ing.zi GEODEZE
4 GEODEZE
6 ing.ser. GEODEZE



4
Arad 23.11.1974 Zamfir Mircea
5 ing.zi CADASTRU
3 2 V 1 V 2
2 21

1 18
Focani 14.05.1975 Albu oana
Figura 1.8. O realizare a schemei ierarhice din figura precedent.
3 . 3. c. St r uc t u r a de ti p re ea
Structura de tip reea este similar celei arborescente,
cu diferena c un element oarecare, cu excepi a rdcinii,
poate avea mai mul i predecesori (, prini ). De exempl u, n
evidena cursurilor din programel e anali tice i a cadrelor
didactice care le predau n cadrul unei universi ti , pot apare
situai i n care un profesor pred la mai mul te facul ti , sau n
care un acelai curs este susinut de dou cadre didactice. O
structur de tip reea se prezint grafic sub forma din figura
1.9.
rdcin
Figura 1.9. Structur de tip reea
3 . 3. d. St r uc t u r i rel a i o n al e
Structuril e relaional e sunt structuri liniare la care
datele sunt organizate n cadrul unor tablouri bidi mensionale
(linii i coloane). Aceste structuri sunt intens utilizate datori t
flexi bili ti i i gradul ui nalt de securi tate pe care le ofer n
comparai e cu structuri l e arborescente, chiar dac au
dezavantaj ul unui ti mp de acces, de regul, mai lung.
- 11 -
Baze de dat e
1.$. Conce#t el e de %a&a de Dat e si Sist em de 'estiune a
%a&elo de Dat e
n cadrul unei colecii sau structuri , datele sunt organizate
pe mai mul te nivele.
Astfel, la nivel ul inferior, datele sunt organizate n
cmpuri (fields) care conin o dat elementar, ce nu mai
poate fi segmentat n mai mul te componente. De exempl u, n
legtur cu datele care caracterizeaz o persoan s-ar putea
considera cmpuri le: numel e , iniiala tatl ui , prenumel e , codul
numeri c personal , se#ul , adresa de domicili u, etc.
Mai mul te cmpuri distincte, reprezentnd date
caracteristi ce pentru o singur enti tate, formeaz o
nre!istrare (record ). De exempl u, cmpuri le enumerate mai
sus, n legtur cu datele caracteristi ce ale unei persoane, ar
putea consti tui mpre un o nregistrare.
Fi"ierul (file) este o mul i me de nregistrri de acelai fel.
De exempl u, cata logul unui an de studi u la o disciplin
reprezint un fiier care coni ne cte o nre gistrare pentru
fiecare student din anul respecti v. O asemenea nregistrare
este compus din cmpuril e: numrul de ordine , numele
studentul ui , nota obi nut .
La nivelul superior al structuri i se afl bazele de date#
Defini i
e
Se numete baz de date un ansambl u structurat de date
nregistrate pe suporturi accesibile calculatorul ui pentru a
satisface simul tan mai mul i utilizatori de o manier selecti v i
ntr- un ti mp oportun
Pentru ca un ansambl u de date neindependente s fie o
baz de date, trebui e s fie interogabil e prin coni nut, dup
orice criteri u, precum i s fie posibil regsirea structuri i
datelor.
Prin urmare bazele de date pot fi considerate seturi de
fiiere corelate, organizate astfel nct s mini mizeze
redundana i s per mi t accesul la date pentru unul sau mai
mul te programe. Aceste dou obiecti ve principale, adic
mini mi zarea redundanei i accesul mul ti pl u , urmresc
elimi narea dezavantaj elor implicate n lucrul cu fiiere avnd
organizri diferi te. Astfel, se poate considera un sistem
informati c n cadrul cruia funci oneaz mai mul te programe
distincte, fiecare dintre ele lucrnd cu propri a sa structur de
date consti tui t din unul sau mai mul te fiiere (figura 1.10).
Aceast abordare prezint mai mul te inconveni ente legate
de faptul c organizaia care folosete sistemul informati c
respecti v poate avea nevoie de date care se afl dispuse n
- 12 -
Baze de dat e
fiiere diferi te, care fie se suprapun, fie nu se integreaz
reciproc. Fiind specifice fiecrui program, fiierele tind s
conin date reprezentnd aceeai caracteristi c a unei
enti ti (date redundante).
De exempl u, ntr- o organizaie cu profil geodezic se
utilizeaz un program (P1) pentru prelucrarea reelelor de
sprijin i un alt program (P3) pentru calcule topografi ce.
Ambele programe utilizeaz o serie de date comune
(coordonatel e punctelor geodezice, msurtori , etc.), aa cum
sunt cele notate cu d
1
n figura 1.10.
d1
P r o gr a m
( P 3 )
P r o gr a m
( P 2 )
P r o gr a m
( P 1 )
&1.1 &1.2 &3.2 &3.1 &2.3 &2.2 &2.1
caracteristici
fi5iere
d3
d4
d1
d5
d6 d7
d3
d8
d1
d3
d6
d a t e r e d u n d a n t e
d2
Figura 1.10.
Aceast situai e determi n att risip de spaiu (suport de
date), ct i dificul ti de corelare datori t faptul ui c aceeai
caracteristi c a unei enti ti poate apare n formate diferi te
(de exempl u, ntr- o colecie pentru denumi rea punctul ui s-au
rezervat 16 octei, iar n cealal t 24 octei ), sau chiar cu valori
diferi te (de exempl u, ntr- o colecie apare Vf. DORULU, n
cealal t, Varful Dorului). n plus, o parte important din ambele
programe const din secvene asemntoare care trateaz
aceleai operaii pe structuri de date (alocare, ncrcare,
actualizare, consul tare, etc.). Scrierea i testarea acestor
secvene este consumatoare de ti mp i resurse umane:
programatori diferi i scriu secvene diferi te care realizeaz
aceiai operai e , n programe diferi te .
Deficienel e exempl i ficate mai sus pot fi rezumate prin
urmtoarea list de probleme:
$edundana datelor . Aceeai caracteristic este pstrat
n mai mul te exempl are i sub forme diferi te, ceea ce conduce
la risip de spaiu de memorare;
%nconsistena datelor . Dac aceleai date sunt pstrate
n mai mul te colecii, exist o mare probabili tate ca acestea s
- 13 -
Baze de dat e
devin n ti mp diferi te prin nesincronizarea actualizrilor;
&osturi ridicate pentru 'ntrei nere . De regul,
programel e de aplicaii sunt scrise pentru a rspunde
cerinel or de moment ale organizaiei. Aceste cerine pot
evolua n ti mp, necesi tnd modi ficarea programel or i a
structuri i coleciilor de date, ceea ce determi n costuri
supli mentare;
&onstr(ngeri la distri bui a datelor . Fiecare aplicai e
utilizeaz o structur de date particul ar, ceea ce face dificil
accesul altui program la datele respecti ve;
)bsena standardelor . Este dificil s se asigure ca toate
aplicai ile existente ntr- o organizai e s foloseasc acelai
format al datelor;
%nsecuri tatea datelor . Acolo unde sunt pstrate colecii
numeroase de date, cu posibili ti reduse de control
central izat, exist un risc ridicat de acces neautori zat, precum
i de distrugere accidental sau inteni onat a coleciilor
respecti ve;
*ispersia resurselor . n condi ii le existenei unei
mul ti tudi ni de aplicaii care exploateaz diferi te colecii de
date, este dificil s se asigure dezvol tarea unui program opti m
de dotare cu echipamente i programe.
$azele de date elimi n sau reduc deficienel e meni onate
mai sus. Astfel, ntr- o baz de date:
Datele sunt accesibile oricrui program care are nevoie
de ele, indiferent de locul fizic n care acestea se afl;
Datele sunt independente de programe, n sensul c
schimbarea structuri i datelor nu implic n mod necesar
modificarea programel or care le utilizeaz;
Datele nu sunt duplicate n mai mul te fiiere diferi te;
Datele sunt consistente, n sensul c modificarea unei
date este perceput de toate programel e care o utilizeaz;
Se asigur o securi tate spori t a datelor prin limi tarea
drepturi l or de acces;
Se asigur un control centralizat al ncadrrii datelor n
standardel e specifice unei organizai i.
Pentru a se realiza aceste obiecti ve, pe lng colecia de
date propri u- zis, este necesar s existe un set de programe
care s asigure efectuarea operai il or specifice structuri l or de
date. Acest set de programe formeaz un Sistem de
%estiune a $azelor de Date , prescurtat S%$D
1
.
$aza de date &$D' se descrie independent de programel e
care folosesc datele. Descrierea vizeaz deopotri v structuri l e
de date, legturi le ntre acestea i regulile care s asigure
coerena datelor, numi te i reguli de integri tate sau
1
n englez, Data Base Management System , prescurtat DBMS
- 14 -
Baze de dat e
constrngeri de integri tate.
Accesul la datele pstrate ntr- o baz de date se realizeaz
ntotdeauna prin intermedi ul SGBD-ului. n acest scop, acesta
include un limba( de intero!are (+uery language ),
standardizat sub denumi rea limba( structurat de
intero!are (S)*: ,tructured -uery .anguage ).
Pentru descrierea datelor pe care le deine, orice SGBD
include un Dicionar de Date &DD' n care sunt precizate
denumi ri l e datelor stocate n baz, tipul i formatul acestora,
restricii le de acces la ele, alte informa i i necesare la
introducerea, modificarea i consul tarea lor.
Figura 1.11. SGBD interfa ntre utilizatori i baza de date
Multe aplicaii sunt scrise n limbaje de nivel nalt (COBOL,
Pascal, C, FORTRAN, etc.), numi te, n contextul SGBD, limba( e
!azd . Pentru a accesa datele dintr- o baz de date,
programatorul care utilizeaz un limbaj gazd trebui e s fac
apel la comenzi specifice incluse ntr- un limbaj de manipul are
a datelor (DML: Data Manipulati on Language) care, de
asemenea, face parte din SGBD. Limbajul de mani pulare a
datelor trebuie s fie compati bi l cu limbaj ul gazd i - n
principi u - comenzile sale reprezint proceduri apelate din
programul scris n limbaj ul de nivel nalt. Evident, aplicaiile
pot fi scrise n ntregi me n limbajul de mani pulare a datelor,
fr a mai utiliza un limbaj gazd.
n acest mod, utiliznd bazele de date, aplicaii diferi te,
cum sunt cele ilustrate n figura 1.10, chiar scrise n limbaje
diferi te, pot accesa prin intermedi ul funciilor SGBD aceeai
colecie de date (figura 1.12).
- 15 -
$D
DD
S%$D
Programe de
aplica ii
Programe de
aplica ii
Administ rat or BD
Administ rat or BD
Ut ilizat or final 1
Ut ilizat or final 1
Ut ilizat or final n
Ut ilizat or final n
Baze de dat e
P r o gr a m
( P 3 )
P r o gr a m
( P 2 )
P r o gr a m
( P 1 )
date
!BD
d1 , d2 , , d8
Li m b a j d e m a n i p u l a r e a d a t e l o r
Figura 1.12.
1.(. Sist eme de 'estiune a %a&elo de Dat e )S'%D*
Un SGBD consti tui e o interfa ntre utilizatori i baza de
date, care permi te n principal crearea, actualizarea i
consul tarea acesteia. Prin urmare se poate defini SGBD ca un
instrument de asamblare, codificare, aranjare, proteci e i
regsire a datelor n baza de date.
Funciuni le generale pe care le ndeplinete un SGBD sunt:
memorarea datelor pe suportul extern prin sistemul de
gestiune a fiierelor;
gestiunea datelor i a legturi l or dintre ele n vederea
regsirii rapide prin intermedi ul sistemul ui de acces;
introducerea i extragerea datelor dinspre exteri or n
forma cerut de utilizator prin intermedi ul SGBD-ului.
1.(. 1. O+iectivel e unui S'%D
Obiecti vul principal al unei baze de date este de a separa
descrierea datelor fa de programel e de aplicai i, idee care a
fost expri mat pentru pri ma dat n anul 1965. Pentru
atingerea acestui obiecti v este necesar o abstractizare a
datelor memorate n baza de date. Astfel s-a ajuns ca astzi s
existe 3 niveluri de reprezentare i percepi e a unei baze de
date: extern, conceptual i intern.
Schema extern face referi re la datele necesare unui
utilizator sau unui grup de utilizatori. Ea este o imagi ne a
schemei conceptual e. Schemele externe consti tui e sursa
pentru ntocmi rea schemei conceptual e.
La nivel conceptual, analiznd schemele externe i
elimi nnd redundanel e rezul t o nou viziune care se
numete schema conceptual . O schem conceptual este
complet dac poate furniza date pentru toate schemele
externe, adic datele de care au nevoie utilizatori i (unele
obi nute prin calcul i/sau agregare).
Schema intern implementeaz schema conceptual
folosind un SGBD. Pentru o baz de date se pot defini mai
mul te scheme externe, o singur schem conceptual i
respecti v o singur schem intern. Faptul c utilizatorul vede
baza de date folosind o schem extern facili teaz
- 16 -
Baze de dat e
determi narea drepturi l or de acces la baza de date.
Sistemul de gestiune a bazelor de date trebuie s poat
interpreta instruci uni le expri mate n termen de schema
extern i respecti v schem conceptual , iar dup aceea, n
termen de operai i de intrare/iei re la nivel fizic i s asigure
trecerea de la un nivel la altul.
Principalele obiecti ve ale SGBD-ului sunt:
independena fizic a datelor/
independena logic a datelor/
manipularea datelor prin limba0 e declarati ve
(neprocedural e)/
admi nistrarea 'ntr1 o manier c(t mai simpl a datelor/
eficaci tatea accesului la date/
parta0 area datelor/
coerena datelor/
redundan control at/
securi tatea datelor.
Figura 1.13. Nivelurile de reprezentare i percepie a unei baze de date
+ndependen a fizic a datelor
Schema intern a bazei de date descrie modul n care
- 17 -
Nivel ext ern
Nivel
concept ual
Nivel int ern
Domeniu de aplica ie
Domeniu de aplica ie
Schem
ext ern
1
Schem
ext ern
1
Schem
ext ern n
Schem
ext ern n
Ut ili zat or 1/
Grup de
ut ili zat ori 1
Ut ilizat or 1/
Grup de
ut ilizat ori 1
Schema
concept ual
Schema
concept ual
Modelul fizic
Modelul fizic
BD
Administ rat or
BD
Administ rat or
BD
Baze de dat e
datele sunt organizate pe suportul fizic (fiiere, nregistrri )
precum i metodel e de acces, criteriile de ordonare i regsire
ale acestora, astfel nct s se asigure un grad de
performan i suplee ct mai ridicat. ndependena fizic a
datelor const n posibili tatea de a schimba organizarea
intern a datelor i structuri l e de nregistrare, fr a modifica
programel e care le folosesc (programe utilizator). Raportndu-
ne la structura pe cele 3 nivel uri, aceasta nseamn
independena schemei interne de cea conceptual , care
descrie aceleai date, dar pe nivel uri diferi te. Spre exempl u,
pe baza unor criteri i de performan i flexibili tate a accesului
la date, se pot aduga indeci noi, se pot reorganiza anumi te
fiiere, fr a afecta schema conceptual .
+ndependen a lo!ic a datelor
Schema conceptual a bazei de date se obine printr- o
sintez i integrare a schemel or externe, care reprezint
interese informai onal e de grup sau indi vi dual e. n aceste
condi i i, este normal ca fiecare grup de utilizatori s aib
posibili tatea s-i modi fice n ti mp cerinele informai onal e
fr a afecta schema conceptual a bazei de date.
ndependena logic a datelor const n posibili tatea de a
modifica schemele externe fr a modi fica schema
conceptual . Principalele avantaj e ale independenei logice a
datelor sunt urmtoarel e:
permi te oricrui grup de utilizatori s valideze datele
aa cum i doresc;
permi te evolui a n ti mp a schemel or externe ale fiecrui
grup de utilizatori fr a afecta schema conceptual ;
permi te evolui a unei anumi te scheme externe fr a
afecta celelal te scheme externe.
,anipul area datelor prin limba( e declarati ve
&neprocedural e'
n general exist dou categori i de utilizatori care
manipuleaz datele dintr- o baz de date: utilizatori interacti vi
care de regul, nu sunt informati ci enii i programatori i . Prima
categori e are nevoie de limbaje de interogare foarte simple,
apropiate de limbaj ul natural, care s le permi t ntr- o
manier foarte simpl s-i obin informai i l e de care au
nevoie. Un exempl u de astfel de limbaj, care este i
standardizat este SQL (Structured Query Language). Cea de a
doua categori e de utilizatori (programatori i de aplicaii)
folosesc de regul limbaje procedurale cum sunt cele
tradi i onal e (generai a a treia: C, COBOL, PL!, etc.), limbaje
orientate obiect (C++, Java) sau limbaje din generai a a 4-a
(4LG) orientate pe descrierea specificaiil or la nivel utilizator
- 18 -
Baze de dat e
final.
Administrarea ct mai simpl a datelor
Un SGBD trebuie s furnizeze instrumente adecvate
pentru descrierea datelor, att din punct de vedere al schemei
externe ct i al schemei interne.
Operaiile de descriere i de modificare a descrierii datelor
sunt cunoscute sub numele de administrarea datelor. Pentru a
permi te un control eficient asupra datelor i a rezolva diferi te
conflicte care pot aprea cu ocazia defini rii acestora, aceast
operai e cade n sarcina unui grup restrns de persoane
numi te administratori de date . Administrarea central izat a
datelor nu conduce totdeauna la realizarea de baze de date
performante, capabile s mul umeasc categori i de utilizatori
diferi i . Pentru a nltura acest impedi ment, SGBD-urile
actuale ofer instrumente adecvate care permi t o
descentralizare a descrierii datelor, asigurnd n acelai ti mp
coerena necesar ntre diversele descrieri pariale.
-ficacitat ea accesului la date
Fiecare utilizator dorete ca interogri l e sale asupra
bazei de date s furnizeze informa i i l e necesare acestuia ntr-
un ti mp ct mai scurt. Exist doi parametri care msoar
performan el e accesului la date: numrul de tranzaci i pe
secund i ti mpul de rspuns. Dimensiunile celor 2 parametri
sunt dependente i de modul n care sistemul de operare al
calculatorul ui, sub care funci oneaz SGBD-ul, aloc i
partaj eaz resursele fizice (uni tatea central, memori a
intern, memori a extern).
Un element foarte important care influeneaz aceti
parametri l consti tui e operai il e de intrare/i eire pe disc.
Pentru a opti miza aceste operai i, majori tatea SGBD-urilor
actuale folosesc memori i cache, unde se depozi teaz datele
cele mai frecvent utilizate pe parcursul execuiei unei aplicai i.
.arta( area datelor
Partajarea datelor se realizeaz prin control ul accesului
concurent la baza de date. Mai mul i utilizatori vor s acceseze
simul tan aceeai nregistrare din baza de date. Fizic, acest
lucru nu este posibil deoarece mecanismul de acces la disc i
la memori a intern este unic. Prin urmare cererile de acces
simul tane sunt nregistrate ntr- un fir de ateptare i sunt
deservi te ntr- o anumi t ordine.
Coeren a datelor
Coerena datelor const n respectarea unor dependene
care pot exista ntre datele din baza de date. De exempl u data
angajrii unui salariat trebui e s fie mai mare dect data
naterii. Regulile explici te sau implici te pe care datele trebuie
- 19 -
Baze de dat e
s le respecte de- a lungul evolui ei lor n baza de date se
numesc restricii de integri tate. SGBD-ul trebui e s fie capabil
s pstreze coerena datelor prin verificarea acestor restricii
de integri tate.
/edundan a controlat
Redundana controlat const n posibili tatea de a
nregistra unele date, elimi nnd astfel situai il e de nregistrare
mul ti pl e. Cu ct redundana este mai mic cu att
performan el e bazei de date cresc.
Securi tat ea datelor
Securi tatea datelor se refer la dou aspecte:
accesul control at al utilizatoril or la baza de date
(confi deni al i tate);
refacerea bazei de date n urma unor avarii.
Confideni al i tatea datelor este asigurat prin proceduri de:
identi ficare a utilizatori lor prin nume sau cod;
autenti ficarea prin parole;
autorizare a accesului difereni at prin drepturi de creare,
consul tare, modi ficare sau tergere pentru anumi te segmente
de date.
Baza de date trebuie s fie protejat mpotri va unor
distrugeri logice (anomali e de actualizare) sau fizice. Pentru
acestea SGBD-ul trebuie s ofere instrumente pentru:
crearea unor puncte de reluare; altfel spus, salvarea din
ti mp n ti mp a unor copii curente ale bazei de date;
gestiunea unui jurnal de tranzaci i; lista operaii lor
realizate asupra bazei de date dup ulti mul punct de repriz.
Dac apare o anomali e care ar putea distruge baza de
date, pe baza copiei de la ulti ma repriz i a jurnalul ui de
tranzaci i, se poate reface baza de date n forma iniial.
Protecia mpotri va unei distrugeri fizice se face prin realizarea
unor copii a bazei de date.
1.(. 2. Inte!a a OD%C )O#en Dat a%as e Connecti vit ,*
ODBC este o tehnologi e software elaborat de firma
Microsoft, care implementeaz accesul universal la un sistem
de gesti une al bazelor de date. ODBC este un AP

1
(Application
.rogrammi ng + nterface) care respect standardul CL
2
.
Generalizarea ODBC ca suport pentru accesul universal la
o baz de date a fost determi nat decisiv de apari i a unor noi
versiuni ale SGBD-urilor mai importante (Oracle, DB2, SQL
Server), pentru sistemel e de operare server Windows NT.
1
Bibliotec de funcii
2
CL (Client nterface) este un standard elaborat de organizaia X/Open mpreun cu SQL Access Group (SAG),
care definete o interfa standard pentru accesul la bazele de date, bazate pe limbajul SQL.
- 20 -
Baze de dat e
Conform tehnologiei ODBC, ntr- o aplicaie care comunic
cu un SGBD nu trebuie scrise ruti ne speciale de program
(dri vere) pentru implementarea comunicrii cu SGBD-ul. Pe de
alt parte un SGBD nu este conceput pentru a fi accesat
numai de aplicaii scrise ntr- un anumi t limbaj de programare.
Astfel, un dezvol tator de aplicaii scrise n limbaj ul Visual Basic
poate accesa o baz de date Access, SQL Server, Oracle, etc.
De asemenea o baz de date Access poate fi accesat prin
intermedi ul ODBC din limbajele Visual Basic, Visual C++,
Borland C++ Builder, etc.
Conexiunil e implementate prin tehnologia ODBC nu impun
o anumi t localizare n spai u a bazelor de date, acestea
practic putndu- se gsi pe acelai calculator cu aplicaia client
sau pe alte calculatoare, localizate n aceeai reea cu
calculatoarele ce gzduiesc aplicai a client, sau pur i simplu
pe calculatoare din alte reele. Aceast flexibili tate a locului
unde se afl o baz de date mpreun cu alte facili ti oferi te
de ODBC se reflect i n accesul la baze de date din reeaua
%nternet prin intermedi ul paginilor WEB dinamice.
Pentru fiecare SGBD care permi te comunicai a cu a unei
aplicai i, 0D$C dispune de un driver specific. Aceste drivere
se regsesc n sistemele de operare Windows sub forma unor
fiiere de tip DDL (Dynamic *ink *ibrary).
n sistemele de operare Windows 9.x, interfaa ODBC este
accesibil utilizatorul ui pentru configurare n Control Panel
(0D$C Data Sources). n sistemele de operare Windows NT,
Me, XP, aplicai a de configurare a interfeei ODBC este
accesibil din Control Panel, grupul Administrati ve Tools.
ndiferent de versiunea de Windows instalat, seciunile
aplicai ei de configurare a interfeei ODBC sunt:
1ser DS23 S4stem DS23 File DS2 conin datele de
configurare (sub forma DS2 Data Source 2ame) pentru
comunicai a aplicaiilor cu o surs de date.
1ser DS2 gestioneaz sursele de date care sunt
accesibile numai pentru un anumi t utilizator al computerul ui.
n regitrii (Registry) sistemul ui de operare acestea sunt
nregistrate n seciunea HKEY_CURRENT_USER.
S4stem DS2 gestioneaz sursele de date care sunt
accesibile de ctre toi utilizatorii unui computer. n regitrii
(Registry) sistemul ui de operare acestea sunt nregistrate n
seciunea HKEY_CURRENT_MACHNE.
- 21 -
Baze de dat e
Figura 1.14.
File DS2 Sursele de date gestionate sunt sub form de
fiiere text cu extensia DSN, stocate intr- un anumi t director
(opi unea Set Directory). Aceste fiiere pot fi editate din orice
edi tor de text, cu condi i a ca utilizatorul s cunoasc
semni ficai a parametri l or memorai . Acest tip de DSN nu este
nregistrat n regitrii sistemul ui de operare i nu este dedicat
unui anumi t utilizator sau computer.
Drivers Lista driver- elor instalate n sistem i informa i i
despre acestea (nume, versiune, compani a productoare,
fiierul DLL i data).
5racin! Memoreaz ntr- un fiier toate apelurile lansate
ctre interfaa ODBC. niierea memorri i apelurilor ODBC se
realizeaz prin acionarea butonul ui ,tart 2racing 3o4, iar
oprirea memorri i acestora prin acionarea butonul ui ,top
2racing 3o4. n caseta .og 5ile 6at7 se stabilete calea i
numel e fiierul ui n care se va memora efectul acti vrii acestei
opi uni.
Connection .oolin! permi te configurarea a dou
funci i:
stabilirea unui ti mp de ateptare (Retry Wait Time)
naintea unei noi ncercri, n cazul n care o conexi une nu se
poate stabili;
Permi te moni torizarea performan el or conexi unii ODBC.
About informa i i despre performanel e interfeei ODBC
instalate.
- 22 -
Baze de dat e
1.-. Ti#ui de +a&e de dat e
Toate bazele de date respect arhi tectura de principi u
descris mai nainte. Ceea ce le deosebete este model ul de
structur pe care se fundamenteaz relai a de ordine specific
pentru organizarea structuri i de date.
Din acest punct de vedere, exist mai mul te tipuri
principale de baze de date, prezentate n continuare.
1. 1. .odelul iea/ic
Modelul ierarhic a fost pri mul model utilizat n bazele de
date, avnd la baz structura arborescent, n care un nod
printe poate avea mai mul te noduri copil, n ti mp ce un nod
copil poate avea un singur nod printe. Acest model se
bazeaz pe relaii de tip printe- copil, schema ierarhiei avnd
un singur nod rdcin, iar pentru reprezentarea relai ei de tip
m:n ntr- o structur de baze de date ierarhic trebui e s se
admi t duplicate pentru instanel e nregistrri lor copil.
Reprezentarea model ul ui ierarhic se realizeaz prin
intermedi ul diagramel or de structur, care sunt formate din
dou elemente principale: dreptunghi uri corespunztoare
tipuri lor de nregistrri i linii corespunztoare legturi lor.
Aceste diagrame se aseamn cu o structur arborescent,
locul nodurilor fiind luat de tipuril e de nregistrare.
Reprezentri grafice ale relaiilor (legturi l or) care pot
exista ntre tipuri le de nregistrare:
relai e 676 se consider tipul de nregistrri persoan i
CNP (Cod Numeric Personal). ntre aceste dou tipuri exist
urmtoarea legtur: fiecare persoan inclus n serviciul de
evidena populai ei are un singur CNP, iar fiecare CNP poate
apari ne unei singure persoane.
Reprezentarea grafic a acestei legturi este:
relai e 67n se consider tipul de nregistrri catedr
universi tar i cadru didactic. ntre aceste dou tipuri exist
urmtoarea legtur: o catedr universi tar poate avea mai
mul te cadre didactice, iar un cadru didactic face parte dintr- o
singur catedr. Reprezentarea grafic a acestei legturi este:
relai a m7n se consider tipul de nregistrri studeni i
cursuri universi tare. ntre aceste dou tipuri exist
- 23 -
PERSOANA
PERSOANA
CNP
CNP
CATEDR
UNVERSTAR
CATEDR
UNVERSTAR
CADRU
DDACTC
CADRU
DDACTC
Baze de dat e
urmtoarea legtur: un student poate audia mai mul te
cursuri pe parcursul unui semestru, iar un curs poate fi audiat
de mai mul i studeni . Reprezentarea grafic a acestei legturi
este:

O baz de date ierarhic este format dintr- un set de
nregistrri care sunt interconectate prin intermedi ul unor
legturi. O nregistrare reprezint o colecie de cmpuri ,
fiecare cmp coni nnd o singur valoare, iar prin legtur se
nelege o asociere ntre dou nregistrri. Fiecare tip de
nregistrare din diagrama de structur i corespunde, n baza
de date, un anumi t numr de nregistrri (realizri). Aceasta
nseamn c pentru o realizare a unui tip de nregistrare
printe pot exista 0, 1 sau mai mul te nregistrri ale tipul ui de
nregistrare copil.
Exempl u: Se consider o baz de date cu informai i despre
cadrele didactice i catedrele universi tare de care acetia
apari n. Reprezentarea modelul ui ierarhic al problemei
enunate arat ca n figura 1.15. (diagrama de structur) i
respecti v figura 1.16. (realizri).
Figura 1.15. Diagrama de structura
- 24 -
CURS
UNVERSTAR
CURS
UNVERSTAR
STUDENT
STUDENT
CATEDRE
CADRE
DDACTCE
Cod_C Denumire_C
Cod_C Denumire_C
Marca_CD Nume_CD Func ie_CD
Marca_CD Nume_CD Func ie_CD
Baze de dat e
Figura 1.16. Realizri
n acest exempl u tipul ui de nregistrare printe CATEDRE i
corespund trei nregistrri : (1, Catedra de Matemati c), (2,
Catedra de Fizic) i (3, Catedra de Geodezie). Prima
nregistrare (1, Catedra de Matemati c) este printe pentru
(10, Pop on, Sef catedr), care este o realizare a tipul ui de
nregistrare CADRE DDACTCE, a doua nregistrare nu are
nregistrri copil, iar cea de- a treia realizare are trei copii (31,
lie Dan, Sef catedr), (32, Petre Maria, S.l. ing.) i (33, Stan
Emil, asist. ing.).
n concluzie, acest model se bazeaz pe structura
arborescent n care fiecare enti tate poate avea mai mul i
succesori (enti ti dependente, sau ,urmai ), dar nu poate
avea dect un singur predecesor (enti tate de care depinde,
sau ,pri nte). Principala problem a acestui model const n
faptul c datele trebui e mul ti plicate pentru a reproduce
situai il e n care o enti tate are mai mul i predecesori (o
propri etate indiviz, de exempl u o cldire, poate avea mai
mul i propri etari ).
1. 2. .odelul e ea
Modelul reea are la baz structura de tip reea. Acest
model este similar cu modelul ierarhic, un nod printe putnd
avea mai mul i copii, deosebi rea constnd n faptul c un nod
copil poate avea mai mul i prini . Reprezentarea model ul ui
reea se realizeaz tot prin intermedi ul diagramel or de
structur, care se aseamn cu un graf, nodurile fiind nlocui te
de tipuri le de nregistrare. n ceea ce privete reprezentarea
grafic a relaiilor (legturi l or) care pot exista ntre tipuril e de
nregistrare (legturi 676 , 67n i m7n ), aceasta este similar
cu cea de la model ul ierarhic.
O baz de date reea este format, ca i o baz de date
ierarhic, dintr- un set de nregistrri care sunt interconectate
prin intermedi ul unor legturi . Similar cu model ul ierarhic,
fiecrui tip de nregistrare din diagrama de structur i
- 25 -
CATEDRE
CATEDRE
1. CATEDRA DE
MATEMATC
1. CATEDRA DE
MATEMATC
2. CATEDRA
DE
FZC
2. CATEDRA
DE
FZC
3. CATEDRA DE
GEODEZE

3. CATEDRA DE
GEODEZE

10 Pop Sef
on
cat edr
10 Pop Sef
on
cat edr
31 l i e Sef
Dan
cat edr
31 l i e Sef
Dan
cat edr
32 Pet re
S.l .
Mari a
i ng.
32 Pet re
S.l .
Mari a
i ng.
32 St an
asi st .
Emi l ing.
32 St an
asi st .
Emi l ing.
Baze de dat e
corespunde, n baza de date reea, un anumi t numr de
nregistrri (realizri).
Exempl u: Se consider o baz de date cu informai i despre
cadrele didactice, funciile ocupate de acetia i catedrel e
universi tare de care acetia apari n. O catedr universi tar
poate avea mai mul te cadre didactice angajate, n schimb un
cadru didactic poate face parte numai dintr- o singur catedr;
o funci e poate fi ocupat de mai mul te cadre didactice, n
schimb un cadru didactic poate ocupa o singur funcie.
Figura 1.17.
Figura 1.18.
Reprezentarea model ul ui reea este prezentat n figura
1.17. (diagrama de structur) i figura 1.18. (realizri). n
acest exempl u, tipul de nregistrare printe CATEDRE i
corespund trei nregistrri : (1, Catedra de Matemati c), (2,
Catedra de Fizic) i (3, Catedra de Geodezie), tipul ui de
nregistrare FUNC| tot trei realizri: (101, Sef catedr),
(201, S.l. ing.), (301, asist. ing.), iar tipul ui de nregistrare
CADRE DDACTCE tot patru realizri (10, Pop on), (31, lie
Dan), (32, Petre Maria), (33, Stan Emil). nregistrri l e (1,
Catedra de Matemati c) CATEDRE i (101, Sef catedr)
FUNC| sunt prini pentru (10, Pop on) CADRE
- 26 -
CATEDR
E
CADRE
DDACTCE
Cod_C Denumire_C
Cod_C Denumire_C
Marca_CD Nume_CD

Marca_CD Nume_CD

FUNC|
Cod_F
Denumire_F
Cod_F
Denumire_F
1. CATEDRA DE
MATEMATC
1. CATEDRA DE
MATEMATC
2. CATEDRA
DE
FZC
2. CATEDRA
DE
FZC
3. CATEDRA DE
GEODEZE

3. CATEDRA DE
GEODEZE

31 l ie
Dan
31 l ie
Dan
32 Pet re
Mari a
32 Pet re
Mari a
33 St an
Emi l
33 St an
Emi l
10 Pop
on
10 Pop
on
101 Sef

cat edr
101 Sef

cat edr
201 S.L
i ng.
201 S.L
i ng.
301 asi st .

i ng.
301 asi st .

i ng.
Baze de dat e
DDACTCE. nregistrri le (3, Catedra de Geodezie) CATEDRE
i (101, Sef catedr) FUNC| sunt prini pentru (31, lie
Dan) CADRE DDACTCE. nregistrarea (2, Catedra de Fizic)
nu are nregistrri copil. Realizarea (32, Petre Maria) are drept
prini (3, Catedra de Geodezie) CATEDRE i (201, S. l. ing.)
FUNC|, iar nregistrarea (33, Stan Emil) - CADRE DDACTCE
este copilul realizrilor (3, Catedra de Geodezie) CATEDRE i
(301, asist. ing.) FUNC|.
Modelul reea a fost larg utilizat datori t eficienei ridicate
a procesului de prelucrare. Sunt cunoscute i sub denumi rea
de baze CODASYL (&onference 8n *ata ,ystems .anguage )
dup numele comi tetul ui care a elaborat standardel e
model ul ui. Principala deficien o reprezint implementarea sa
sub forma unui sistem de pointeri care leag ntre ele
diferi tel e nregistrri ale reelei. Acest fapt oblig
programatorul care vrea s aib acces la o baz de date
construi t n acest model, s-i nsueasc n prealabil
structura acestuia (sistemul de pointeri ). Astfel se realizeaz
numai parial condi i a de independen a datelor, conform
creia, pentru a putea folosi o colecie de date, utilizatorul nu
este obligat s cunoasc organizarea sa fizic.
1. 3. .odelul elaional
Se bazeaz pe structura relaional i - datori t
avantaj elor sale - este larg utilizat n prezent. Principala sa
calitate const n accesibili tatea model ul ui conceptual, toate
datele aprnd ca fiind stocate n tablouri bidi mensional e
organizate pe rnduri i coloane. Se asigur astfel un nalt
grad de independen a datelor, utilizatorul ne mai fiind
obligat s cunoasc detalii legate de organizarea fizic pe
suportul de memorare.
Bazele model ul ui relaional au fost puse de matemati ci anul
Edgar Codd la nceputul anilor 1970. Modelul relai onal
consti tui e i astzi cel mai utilizat model pentru gestionarea
bazelor de date.
Succesul acestui model ine de faptul c:
este un model simpl u i n consecin uor;
dispune de o baz solid pentru proiectarea
componentel or bazei de date numi te tabele;
Pe specificul lui s-a dezvol tat:
un set de operatori ce formeaz mpreun )lgebra
relaional.
un limbaj standard de gestiune a bazelor de date
relai onale (li mbaj ul S)*: Structured )uery *anguage).
Legtura dintre diferi tel e tabele bidi mensionale care
- 27 -
Baze de dat e
formeaz baza de date se asigur prin intermedi ul unor
coloane identice, ceea ce implic, totui, o anumi t
redundan.
Avnd n vedere larga utilizare i importan a modelul ui
relai onal, acesta va fi prezentat mai detaliat n capi tol ul
urmtor.
1. $. .odel e oient at e #e o+iect
Dei modelul relaional este larg utilizat, simpli tatea sa,
care reprezint principal ul element de atracti vi tate, l face
inapt pentru a putea reproduce anumi te aspecte complexe ale
reali ti i, precum:
descrierea structuri l or de date complexe (date n format
mul ti medi a, documente electronice, grafice etc.);
definirea unor tipuri de date- utilizator;
partaj area/reuti l izarea structuri l or de date;
declararea prelucrril or aferente structuri l or de date
(datele sunt descrise separat de prelucrri ).
Acest lucru a determi nat cutarea i adoptarea unor noi
modele, urmri nd n pri mul rnd un nivel superior de
abstractizare.
Unul dintre rezul tatel e acestor cutri l reprezint
modelul orientat pe obiect (ob0ect oriented model ), care
permi te modelarea direct a reali ti i prin intermedi ul
obiectel or . n acest model toate datele care descriu o enti tate
din lumea real sunt ,ncapsulate mpreun cu operai il e
posibile a fi efectuate asupra enti ti i respecti ve. Aceasta
reprezint o abordare complet diferi t de concepi a ,clasic,
n care datel e (colecii sau structuri ) sunt complet separate
de metode (secvene de program).
n model ul orientat pe obiect unei enti ti din lumea real
i corespunde un obiect n baza de date, spre deosebire de
model ul relai onal unde aceeai enti tate este reprezentat
prin nregistrri n mai mul te tabele (fiiere).
Principalele concepte i noiuni utilizate n modelul orientat
pe obiect sunt: obiect, abstracti zare, 'ncapsulare, moteni re,
poli morfism .
Obiectul este o reprezentare a unei enti ti din lumea
real relati v la care sunt nregistrate date. Orice enti tate din
lumea real este un obiect i reciproc, orice obiect reprezint
o enti tate din reali tate. Obiectele pot comunica ntre ele prin
intermedi ul mesajelor.
%denti tatea unui obiect este propri etatea acestuia care l
distinge de alte obiecte i este de regul o adres logic
invariant (pointer ). Astfel, spre deosebi re de model ul
- 28 -
Baze de dat e
relai onal n care datele sunt identi ficate prin valori ale cheilor
pri mare desemnate de utilizator, n modelul orientat pe
obiect, identi ficarea obiectelor este asigurat automat de
sistem i este transparent utilizatorul ui . Dou obiecte O
1
i O
2
sunt identice (se noteaz O
1
==O
2
) dac au acelai
identi ficator, adic egali tatea obiectelor este de fapt o
egali tate de pointeri . n schi mb dou obiecte O
1
i O
2
sunt
egale (se scrie O
1
=O
2
) dac au aceleai valori (aadar O
1
==O
2
implic O
1
=O
2
, reciproca fiind fals).
,tarea unui obiect este defini t de valorile (realizrile)
atributel or sale. Un atribui t este defini t printr- un nume i
poate lua valori elementare (numeric, alfanumeri c etc.) sau
complexe (structuri de valori mul ti pl e, referi ne spre alte
obiecte, tipuri utilizator, etc.). Atributel e se pot concretiza n
locaii de memori e n care sunt stocate datele aferente.
&omportament ul unui obiect este defini t de setul de
operai i (metode) aplicabile obiectul ui respecti v. Operai ile
unui obiect consti tui e de regul, modali ti de rspuns la
mesaje pri mi te din exterior. O operai e este defini t printr- o
semntur compus din denumi re, un set opional de
parametri i de apel i un set opional de parametri i de retur.
Operai ile sunt de regul proceduri sau funcii ce acioneaz
asupra atri butel or obiectul ui respecti v.
Abstractizarea este procesul prin care obiectele cu
aceleai atri bute i cu un comportament comun sunt grupate
n tipuri abstracte de date sau clase . Obiectele devin astfel
realizri (instani eri ) ale claselor: n ti mp ce obiectel e descriu
anumi te enti ti din lumea real, clasele sunt reprezentri
(modele) abstracte, conceptual e ale acestor enti ti .
ncapsularea const n capaci tatea obiectelor (claselor)
de a coni ne la un loc att date ct i operai i dintre care
numai o parte sunt vizibile exterior.
Exempl u: Se consider clasa 6ersoan descris prin
atributel e private (invizibile) din exteri orul clasei:
&36, 3ume6renume, *ata3ateri i, ,e#
i operaii le accesibile din exterior ( publice ):
&reaz (&36, 3ume6renume, *ata3atere, ,e#)
$eturneaz &36()9 'ntreg
$eturneaz 3ume6renume()9 te#t
$eturneaz *ata3atere()9 data
$eturneaz ,e#()9 te#t
Datele unei anumi te persoane 3iculae *aniela sunt
atribui te numai la crearea instanei (obiectul ui ) respecti v, prin
apelarea metodei1 constructor (vizibil din exteriorul
- 29 -
Baze de dat e
obiectul ui ):
Creaz (1781113400128, ,Niculae Daniela, 13- 11- 1978,
,Femi ni n)
Dup ce un obiect a fost creat, datele aferente persoanei
respecti ve nu mai pot fi modi ficate, ci numai citi te prin
intermedi ul metodelor de tip $eturneaz . Utilizatorul va
percepe un obiect 6ersoan numai prin datele (read- only):
Cod Numeric Personal, NumePrenume, Datanateri i, Sex. Este
exclus astfel posibili tatea modi ficrii datelor unei persoane
ulterior crerii sale. Se asigur astfel i o securi tate a datelor
stocate de un obiect mpotri va modi ficril or neautorizate
i/sau accidental e.
,o"teni rea este procesul prin care toate atributel e i
metodel e publice (vizibile din exteri or) ale unei clase (numi t
clas de baz) sunt preluate automat de o alt clas nrudi t
(numi t clas deri vat sau subclas). Clasele deri vate pot
conine i atri bute sau metode specifice. Moteni rea este o
tehnic prin care se ncurajeaz reutilizarea / partajarea
datelor.
Exempl u: Se consider clasa 6ersoan aa cum a fost
defini t n exempl ul anteri or. Clasa 6ersoan poate fi derivat
n clasele ,tudent i )nga0at de acelai tip cu pri ma, astfel
nct fiecare student angajat va fi descris prin CNP, nume i
prenume, data naterii, sex. Clasa Student poate coni ne ca
atribute specifice 3umr:atricol , )n,tudii precum i metoda
propri e :edia;eneral () , iar clasa )nga0at poate fi descris
prin atri butel e proprii :arca, *ata)nga0ri i i metoda
$eturneaz<ec7i me() .
- 30 -
PERSOAN
PERSOAN
SALARAT
SALARAT STUDENT
STUDENT
Clasa PERSOAN Clasa SALARAT Clasa STUDENT
At ri but e:
CNP
NumePrenume
Dat anat erii
Sex
Met ode:
Ret urneazCNP()
.
Superclasa:
PERSOAN
At ri but e:
Marca
Dat aAngajrii
.
Met ode:
Ret urneazVechime(
)
.
Superclasa:
PERSOAN
At ri but e:
NumrMat ricol
AnSt udii
.
Met ode:
MediaGeneral()
.
Baze de dat e
Figura 1.19.
.olimorfismul semnific posibili tatea unui obiect,
instan a unei clase, s rspund diferi t la pri mi rea aceluiai
mesaj. Polimorfismul poate fi asigurat de dou ci:
redefi ni rea (rescrierea) metodel or moteni te n clasele
derivate;
suprancrcarea unei metode n cadrul aceleiai clase
(crearea unor metode cu acelai nume, dar cu parametri i
diferi i ).
Polimorfismul mrete flexi bili tatea model ul ui orientat pe
obiect n reprezentarea ct mai sinteti c a reali ti i.
Exempl u: Fie clasa 6roprietar defini t prin atributel e:
&od6roprietar, *enumi re, )dres
i metodel e asociate:
=terge(&od6ropri etar9 %nteger)/
=terge(*enumi re9 ,tring) .
Clasa se va comporta diferi t la pri mi rea mesajul ui de
tergere (poli morfism prin suprancrcarea metodei =terge ):
dac mesajul conine un parametru ntreg (codul unui
propri etar), atunci se va elimi na obiectul- proprietar ce va
conine acest cod;
dac cererea de tergere coni ne ca parametru un ir de
caractere, atunci va fi eli minat propri etarul cu denumi rea
respecti v.
1.-. Clasi!ica ea S'%D0 uilo !unci e de model ul de
e# e&ent a e a dat el o
De-a lungul ti mpul ui s-au creat diverse SGBD-uri, iar n
majori tatea cazurilor au fost concepute n jurul unui model
conceptual de reprezentare a datelor. Totui, au aprut SGBD-
uri care nu susin numai un anumi t model, ci pur i simplu au
cutat s aduc extensii la unul existent, sau s combine dou
modele i n acelai ti mp s introduc i noi extensii.
Dup modelul conceptual de reprezentare a datelor SGBD-
urile se clasific n:
SGBD-uri ierarhice;
SGBD-uri reea;
SGBD-uri relai onale;
SGBD-uri orientate pe obiect.
S%$D8 urile ierarhice se fondeaz pe modelul ierarhic de
reprezentare a datelor.
Dintre SGBD-urile organizate pe baza acestui model se
poate meni ona SGBD-ul MS.
- 31 -
Baze de dat e
Sistemul MS (+ nformati on ,anagement System) a fost
construi t de BM n 1968 pentru sistemele de operare MVS, n
scopul prelucrrii datelor din industri a spaial. Ulterior a fost
elaborat o variant mbunti t numi t MS/VS ( + nformati on
,anagement System/ 9irtual Storage) cu o descriere a datelor
mai apropiat de sistemul de tip reea.
Dezavantaj ele acestui model au fost:
nu permi teau modul de acces direct dect la datele de
pe nivelul rdcin;
pentru a avea acces la date de pe nivele inferioare
trebuia specificat traseul de acces ctre acestea, acest traseu
fiind unul secveni al;
tergerea datelor de pe un nivel superior avea ca efect
tergerea tuturor datelor din nivelele subordonate nivelul ui
ters;
S%$D8 urile reea se fondeaz pe model ul reea de
reprezentare a datelor i domi n piaa anilor 1970. Dintre
SGBD-urile reea aprute se pot meni ona: DBTG, DMS,
SOCRATE, etc.
SGBD-ul DBTG a fost pus la punct de Data $ase 5ask
%roup (DBTG), care a propus o notare formal pentru reele
prin limbaj ul de defini re a datelor (DDL) i pentru vederi
(subschema DDL), precum i limbaj ul de prelucrare a datelor
(DML), cu ajutorul cruia pot fi scrise programe pentru
aplicai i.
SGBD-ul DMS (+ ntegrated Database ,anagement System)
a fost produs de Computer Associates pentru calculatoarele
BM cu sisteme de operare standard (VSE, MVS, etc.), fiind o
variant a sistemul ui DBTG. n 1983 a fost construi t a
versiune exti ns numi t DMS/R ce coni nea facili ti
relai onale.
Preocuprile pe linia normalizrii bazelor de date reea s-
au materi al izat n elaborarea unui model reea standard numi t
de specialiti CODASYL. Multe din SGBD-urile reea au
implementat acest model. Excepie face ndeosebi SGBD-
SOCRATE.
Sistemul SOCRATE a fost realizat de firma C n colaborare
cu firma ECA-Automati on pentru sisteme de tip RS, fiind
folosi t i n ara noastr pe sistemel e FELX. Acesta coni nea
un limbaj de descriere a datelor (pentru identi ficarea datelor,
a proprieti l or lor i a eventual el or criterii de validare), un
limbaj de cereri, un macrogenerator de comenzi, un modul de
metode de acces (pentru utilizarea programel or de accesare a
datelor scrise n diferi te limbaje de programare), un edi tor de
text, precum i componente pentru asigurarea securi ti i i
- 32 -
Baze de dat e
confideni al i t i i datelor din baz.
S%$D8 urile relaional e Dei modelul relaional care
este la baza acestor SGBD-uri a fost elaborat nc din anul
1969, dezvol tarea SGBD-urilor relai onale a luat amploare
spre sfri tul anilor 1980 i nceputul anilor 1990. n anul 1986
a fost elaborat pri ma versiune standardizat a limbajul ui
SQL.
SGBD-uri relaional e: dBASE, VSUAL FOXPRO, FOXBASE,
NGRES, ORACLE, ACCESS, etc.
SGBD-ul dBASE a fost conceput n 1979 de C.W. Ratliff,
fiind o combinai e ntre modelul reea i modelul relai onal.
Produsul a fost preluat i dezvol tat de firma Ashton- Tate, care
a lansat n 1981 varianta dBASE , n 1984 varianta dBASE ,
iar n 1988 ulti ma variant dBASE V.
Produsul dBASE a fost preluat i de alte firme care au
produs variante ale lui. Firma FOX Software a promovat
produsele FOX BASE i FOXPRO, utilizate n mare msur ca
instrumente profesionale de dezvol tri de programe pentru
prelucrarea informa i i l or.
Sistemul NGRES (+2teracti ve %raphics and /-trieval
System) a fost proiectat la Universi tatea Berkeley din
California, folosind ca sistem de operare UNX. niial NGRES a
fost construi t pentru limbaj ul de cereri QUEL ( )1Ery
*anguage), dar ulteri or el a inclus i limbaj ul SQL.
Sistemul ORACLE este un SGBD relai onal construi t n 1979
de Oracle Corporati on i avnd ulterior ca interfa limbaj ul de
cereri SQL. S-au adugat apoi componente 4GE ce folosesc
forme SQL pentru a genera automat funciile de baz numi te
pri mi ti ve pentru orice aplicaie, fixeaz atri bute pentru
cmpuri , determi n reguli de validare a datelor i control eaz
fluxul aplicaiilor. Sistemul permi te diferi te operaii cu indeci
asociai i normalizarea i denormal izarea automat a bazelor
de date. Sistemul permi te de asemenea reorganizarea
spai ul ui fizic i poate impune condi ii de integri tate i
securi tate. Acest sistem s-a mbunt i t de-a lungul ti mpul ui ,
la data realizrii prezentei lucrri ajungnd la versiunea 9.
SGBD-ul ACCESS creat de firma Microsoft va fi tratat pe
larg n capi tolele urmtoare.
Succesul SGBD-urilor relaional e se datoreaz
urmtoarel or avantaj e:
model ul de date relai onal are un fundament teoreti c
solid i riguros, bazat pe principii simple;
asigur independena programel or fa de date,
permi nd realizarea de date complexe;
SGBD-urile actuale sunt realizate s rspund cerinelor
- 33 -
Baze de dat e
impuse de arhi tecturi l e client- sever.
Funcionarea n modul client- server disociaz partea client,
responsabil de partea de prezentare a rezul tatel or, de partea
de server, responsabil de gestiunea bazei de date i de
executarea cererilor clieni lor.
S%$D8 urile orientat e pe obiect sunt fondate pe model ul
orientat pe obiect. Un SGBD orientat pe obiect trebuie s
satisfac dou categorii de funcionali ti : unele specifice
bazelor de date n general i altele specifice orientri i pe
obiect. Aceste categorii de funcionali ti au fost mpri te n
funci onal i ti obligatori i care nu trebuie s lipseasc din nici
un SGBD orientat pe obiect i funci onal i t i opionale.
Funcionali ti l e obligatori i, specifice bazelor de date ar fi:
persistena obiectelor se refer la posibili tatea salvrii
obiectel or n baza de date;
permi terea accesului concurent la un obiect;
asigurarea atomici t i i tranzaci ilor;
interogarea bazei de date s se realizeze la un nivel
performant cu un limbaj n genul SQL.
Funcionali ti l e specifice bazelor de date, opional e:
posibili tatea elaborri i de baze de date orientate obiect
distri bui te;
gestiunea versiunilor obiectel or posibili tatea de a
accesa toate versiunile unui obiect.
Dei exist realizri notabi le n domeni u, exist puine
SGBD-uri orientate pe obiect care au depi t pragul
laboratoarel or de cercetare. n literatura de speciali tate sunt
citate ndeosebi: O
2
, UniSQL, RS, etc.
- 34 -
Baze de dat e
1. 1. % %12E 12E DE DE D1TE D1TE RE31TION13E RE31TION13E
Spre deosebire de modelul ierarhic i modelul reea,
dezvol tate pe considerai i practice, fr o baz teoreti c
solid, model ul relaional a aprut mai nti sub forma
descrierii matemati ce ntr- un articol publicat n 1970 de Edgar
F. Codd, pe atunci cercettor la corporai a BM. Studiul lui
Codd a avut un impact imediat asupra evolui ei bazelor de
date. n perioada care a trecut de la publicarea articolul ui su
au aprut numeroase Sisteme /elaional e de %estiune a
$azelor de Date (S/%$D), cum sunt d>ase, 8$)&.?,
%3;$?,, %358$:%@, 5o#6ro, 6arado# , )ccess i altele
1
.
n legtur cu structura model ul ui relaional, se vor utiliza
n conti nuare noiuni precum tabel , rnd , coloan , etc.,
considerate familiare citi torul ui nespecializat n informati c. n
limbaj ul formal utilizat pentru descrierea matemati c a
model ul ui relai onal se folosete o termi nol ogi e specific.
Astfel, tabel ul care se conformeaz regulilor modelul ui se
numete relai e . Un r(nd din tabel se numete tupl , iar o
coloan se numete atribut . Cardinali tat ea unei relaii (unui
tabel) este numrul de tuple (rnduri ), iar !radul relaiei este
numrul de atri bute (coloane). n tabel ul 1 se prezint o parte
a termi nol ogi ei alternati ve utilizate n tabelele tradi i onal e, n
programare i n modelul relai onal.
2abelul . 2ermi nol ogi e alternati v.
5abel e
tradi i onal e
.ro!ramare ,odel relai onal
Tabel fiier (file) relaie
rnd, linie nregistrare (record ) tupl
Coloan cmp (field) atribut
numr de coloane numr de cmpuri grad
numr de rnduri numr de nregistrri cardinali tate
identificator unic cheie pri mar
valori posibile (tip dat) domeniu
1
Sistemele aminti te reprezint implementri incomplete ale conceptelor teoretice ale lui Codd, cercettorii fiind
unanim de acord c nici unul dintre ele nu aplic toate specificaiile teoretice.
- 35 -
Baze de dat e
2. 1. 4undame nt el e teo eti ce ale model ul ui elaional
Modelul relai onal introdus de E.F. Codd are la baz
conceptul de relai e defini t n teoria matemati c a mul i mi l or
ca fiind o submul i me a produsul ui cartezian al mai mul tor
mul i mi :
n
1( 1 1( ( > ....
2 1


Relaia poate fi defini t i n termeni i logicii matemati ce.
Fie m = (m
1
, m
2
, ., m
n
) M
1
x M
2
x . x M
n
i un predicat
P(m
1
, m
2
, ., m
n
), atunci: [M
1
, M
2
, . , M
n
] R = {( m
1
, m
2
, ., m
n
)
/ P(m
1
, m
2
, ., m
n
) = adevrat }
Familia de mul i mi pe care este defini t relai a se numete
domeni u, iar dac M
1
= M
2
= . = M
n
, relai a este omogen.
Numrul n se numete gradul relaiei (ari tatea relaiei ), un
element al relai ei t = (m
1
, m
2
, ., m
n
) este numi t tupl u, iar
numrul de tupluri indic cardinal ul relaiei.
Schema unei relaii este format din numele relai ei,
atributel e acesteia i restricii le de integri tate.
Domeni ul este o noiune mai cuprinztoare dect atri butul ,
reprezentnd mul i mea tuturor valorilor posibile care definesc
o anumi t proprietate a unui obiect, spre deosebi re de atri but,
care reprezint mul i mea valorilor existente la un moment dat
n coloana pe care o desemneaz n cadrul relai ei. ntr- o
relai e pot exista mai mul te atribute care iau valori n aceleai
domeni i.
Relaiile se reprezint ntr- o form simpl, supuse
urmtoarel or restricii :
n fiecare coloan toate valorile sunt de acelai fel;
fiecare valoare este un numr sau un ir de caractere
(nu trebuie s fie grup sau ansambl u);
ordinea liniilor n tabel nu este predefi ni t i nu sunt
admise duplicate;
coloanele sunt identi ficate prin nume disti ncte care
reprezint atributel e relaiei.
Privit prin prisma modelul ui relaional, baza de date
apare ca o colecie de relaii (tabele), n care fiecare coloan
reprezint un atribut distinct, iar fiecare rnd, un tupl u
distinct; de unde i apelati vul tabel bidi mensional . Tuplurile
unei relaii se pot identi fica n mod unic prin intermedi ul
valorilor unuia sau mai mul tor atri bute (eventual toate
atributel e), care joac rol de cheie pri mar a relai ei
respecti ve. Se numete domeni u pri mar un domeni u pe care
este defini t un singur atri but drept cheie pri mar. Dndu- se
- 36 -
Baze de dat e
dou relaii R
1
i R
2
cu atri butel e A
1
i A
2
chei pri mare pe
acelai domeni u pri mar D, spunem c A
1
este cheie extern,
dac utiliznd o parte din valorile ei sau toate, putem regsi
tupl uri le relai ei R
2
.
Altfel spus, un atribut al unei relaii este cheie extern,
dac se regsete pe post de cheie pri mar ntr- o alt relai e.
Deoarece relaiile reflect un anumi t aspect din reali tate,
acestea se supun unor restrici i care sunt de dou tipuri :
restricii de integri tate care depind de semantica
valorilor domeni ilor i care cer ca relaiile s se supun
urmtoarel or reguli:
1.1. integri tatea enti ti i, prin care valorile unei chei
pri mare s nu admi t valori nule, altfel cheia nu va mai fi
identi ficator;
1.2. integri tatea referi rii, potri vi t creia valorile unei chei
externe trebuie s se refere tupluril or unei alte relaii sau s
fie nedefi ni te.
alte restricii care se aplic asupra domeni ilor,
reflectnd anumi te corelai i de ordin valoric (egali tate,
inegali tate).
Tabelele bazei de date respect urmtoarel e cerine:
fiecare tuplu (rnd al tabelei) este diferi t de celelal te
tupl uri ;
ordinea stocrii tupl uri lor n tabel poate fi modi ficat
fr restricii ;
coloanele tabelei sunt identi ficate prin nume distincte,
fiecare coloan fiind rezervat unui atribut defini t n schema
relai ei;
toate realizrile unui atri but (apari nnd unei coloane)
prezint
acelai tip i formeaz un domeni u;
toate nregistrri l e unui atribut sunt atomi ce.
- 37 -
Tabela
STUDEN|
Tabela
FACULT|
Cheia
pri mar
Chei a
primar
Cheia
ext ern

refer

Nr. mat ricol Nume i prenume.Cod


facul t at e115
125
..
256
Petre Alin
l ie on
....
Pet re Dan1
1
.
7
Cod facult at eDenumire1
2
.Geodezie
Hidrot ehni c
...
Baze de dat e
Exempl u:
Figura 2.1.
unde {115, 125, .} este domeni ul de defini i e al
atributul ui Nr. matri col
2. 2. 1l"e+ a elaional a
Algebra relaional poate fi defini t ca un set de operatori
care prelucreaz relaii n scopul obi neri i altor relaii.
Operatorii relaionali se pot grupa n:
operatori de baz , care pot genera toat clasa
operatori lor relaional i;
operatori au#iliari .
Operatorii relai onali de baz se mpart n operatori de
asamblare, operatori unari i operatori de extensie.
0peratorii de asambl are sunt operatori binari, care pri mesc
la intrare dou relaii i genereaz la ieire o singur relai e.
Acetia sunt: reuni unea, diferena i produsul cartezian, care
au aceeai semni ficai e ca i n teoria mul i mi l or.
/euniunea a dou relaii R i S (R U S), cu aceeai
structur, unde R este format din n tupluri i S este format
din m tupluri, are ca rezul tat o a treia relai e T, avnd aceeai
structur cu a relaiilor surs i coninnd m+n tupluri.
- 38 -
Baze de dat e

+nterseci a a dou relaii R i S cu aceeai structur (R 8
S), este o relaie T, (cu aceeai structur), coninnd tupluri le
identice apari nnd att lui R ct i lui S.
Diferen a a dou relaii R i S avnd aceeai structur (R
S), este o relai e T, cuprinznd mul i mea tupl uri lor
apari nnd lui R, dar neapari nnd lui S.
.rodusul cartezi an a dou relaii R i S (R x S) este o
relai e T stocnd mul i mea perechilor obi nute prin
concatenarea nregistrri l or apari nnd lui R cu cele
apari nnd lui S.
- 39 -
Rela ia
R
Rela ia
S
Rela ia T 9 (R U S)
:;<X
1
Y
1
Z
1
X
2
Y
2
Z
2
:;<X
3
Y
3
Z
3
X
4
Y
4
Z
4
X
5
Y
5
Z
5
:;<X
1
Y
1
Z
1
X
2
Y
2
Z
2
X
3
Y
3
Z
3
X
4
Y
4
Z
4
X
5
Y
5
Z
5
Rela ia
R
Rela ia
S
Rela ia T 9 (R 8 S)
:;<X
1
Y
1
Z
1
X
2
Y
2
Z
2
X
4
Y
4
Z
4
:;<X
3
Y
3
Z
3
X
4
Y
4
Z
4
X
5
Y
5
Z
5
:;<X
4
Y
4
Z
4
Rela ia
R
Rela ia
S
Rela ia T 9 (R - S)
:;<X
1
Y
1
Z
1
X
2
Y
2
Z
2
:;<X
3
Y
3
Z
3
X
4
Y
4
Z
4
X
5
Y
5
Z
5
:;<X
1
Y
1
Z
1
X
2
Y
2
Z
2
Baze de dat e
0peratorii unari se aplic asupra unei relaii i genereaz
o alt relaie. Din aceast clas fac parte proieci a i selecia .
.roieci a relaiei R cu structura R(A
1
, A
2
,., A
n
) dup
atributel e A
i1
, A
i2
,., A
ip
(i
i
A i
B
i p C n), R
1
= D A
i1
, A
i2
,., A
ip
(R),
este relaia R
1
(A
i1
, A
i2
,., A
ip
), ale crei tupluri se obi n prin
elimi narea valorilor atributel or din R care nu apar n R
1
i prin
supri marea sau nesupri marea tupluril or mul ti pl e.
Altfel spus, prin intermedi ul proieciei, dintr- un tabel cu un
anumi t numr de coloane se obine unul cu un numr mai mic
de coloane.
Seleci a relai ei R fa de criteri ul Q este relai a R
1
cu
aceeai structur ca i R, al crei tupl uri satisfac criteri ul
specificat.
Q= A
i1
0
1
C
1
A A
i2
0
2
C
2
A A
ip
0
p
C
p
, unde 0
i
= { <, >, >, <, =} , C
i
- constante
Altfel spus, prin operatorul de selecie, dintr- un tabel cu un
anumi t numr de coloane se obine unul cu aceleai coloane,
dar cu un numr mai mic de rnduri.
0peratorii de extensie sunt compunerea (Join) i
- 40 -
Rela ia
R
Rela ia
S
Rela ia T 9 (R x S)
:;X
1
Y
1
X
2
Y
2
A$CA
1
B
1
C
1
A
2
B
2
C
2
A
3
B
3
C
3
:;A$CX
1
Y
1
A
1
B
1
C
1
X
1
Y
1
A
2
B
2
C
2
X
1
Y
1
A
3
B
3
C
3
X
2
Y
2
A
1
B
1
C
1
X
2
Y
2
A
2
B
2
C
2
X
2
Y
2
A
3
B
3
C
3
Rela ia
R
Rela ia R
1
9 (R;X,Y)
:;<=X
1
Y
1
Z
1
W
1
X
2
Y
2
Z
2
W
2
X
4
Y
4
Z
4
W
4
:;X
1
Y
1
X
2
Y
2
X
4
Y
4
Rela ia
R
Rela ia R
1
9 SELECTE (R;X= X
2
OR
X= X
3
)
:;X
1
Y
1
X
2
Y
2
X
3
Y
3
:;X
2
Y
2
X
3
Y
3
Baze de dat e
'mpri rea (diviziunea). Acetia joac un rol foarte important
n interogarea bazelor de date relai onale. Spre exempl u,
realizarea produsului cartezian este foarte costisi toare, ceea
ce face ca acesta s fie nlocui t cu operatorul Join. nainte de a
descrie aceti operatori, vom defini noi unea de criteri u de
selecie (calificator) mul ti- atri but. Dndu- se dou relaii A(A
1
,
A
2
,., A
n
) i B(B
1
, B
2
,., B
n
), Q este un calificator mul ti- atri but
dac este de forma: Q= A
i
0
1
B
i
A A
k
0
2
B
j
A . A
p
0
m
C
n
.
Compunerea condi ional &>oin' a dou relaii R
1
i R
2
dup calificatorul mul ti- atribut Q este relaia E ale crei tupluri
sunt cele ale produsul ui cartezian R
1
x R
2
care satisfac
calificatorul Q. n funcie de calificatorul Q se disting mai mul te
tipuri de compuneri :
dac Q este de forma A
i
= B
j
, se numete
echicompunere;
dac Q este de forma A
i
0 B
j
: unde 0 = { <, >, >, <, =} ,
se numete E1compunere i poate fi expri mat n funci e de
operatori i de baz;
dac Q este de forma A
i
= A
j
se numete
autocompunere.
Compunerea natural este o echicompunere pe R
1
i R
2
dup toate atributel e avnd acelai nume n R
1
i R
2
, urmat
de o proieci e care permi te conservarea unuia dintre aceste
atribute, egale ca nume.
Diviziunea relaiei R
1
(A
1
, A
2
,., A
n
) de gradul (pFm) prin
relai a R
2
(A
p+1
,., A
m
) de grad m este relaia E(A
1
, A
2
,., A
p
) de
grad p, format din toate tupluri le care, concatenate cu
fiecare tupl u din R
2
rezul t totdeauna un tupl u din R
1
(E = R
1

R
2
). Operai a de diviziune se poate simula cu operatori i de:
diferen, produs cartezian i proiecie, dup cum urmeaz:
R
1
R
2
= X Y, unde:
X = R
1
{ A
1
, A
2
,., A
p
}
Y = ((X x R
2
) R
1
){ A
1
, A
2
,., A
p
}
- 41 -
Rela ia
R
1
Rela ia
R
2
Rela ia T 9 JON (R
1
, R
2
; Y
i
=
Y
j
)
:;X
1
Y
1
;<=Y
1
Z
1
W
1
Y
1
Z
2
W
2
:;<=X
1
Y
1
Z
1
W
1
X
1
Y
1
Z
2
W
2
Baze de dat e
E. F. Codd a demonstrat c operatori i relai onali, mpreun
cu sortarea, formeaz o baz suficient pentru a rspunde
oricrei solicitri din partea utilizatori lor. Ei permi t
formalizarea pe un nivel nalt a operai il or de prelucrare a
datelor, crend astfel premisele definirii unor limbaje
neprocedural e, n care se specific doar ,ce rezul tat trebuie
obi nut i nu succesiunea de aciuni necesare pentru
obi nerea acestuia.
2. 3. Com#onent el e model ul ui elaional
Modelul lui Codd are trei componente:
Un element structural , care descrie forma n care
datele pot fi stocate;
Un element de manipul are , care include mai mul i
operatori destinai prelucrrii datelor organizate n modelul
relai onal;
Un element de integri t at e , care stabilete mai mul te
re!uli avnd ca scop s asigure c datele rmn valide i
consistente.
Aceste trei componente ale modelul ui relai onal sunt
detaliate n paragrafele urmtoare.
-.1. Com#onent a stuct u al 5
Principala caracteristi c a acestei componente o reprezint
organizarea datelor n tabele bidi mensional e, pe linii i
coloane. Plecnd de la acest concept general, sunt stabili te
mai mul te proprieti ale modelul ui :
2oate coloanele trebuie s aib denumi ri distincte ;
2oate valorile unei coloane trebuie s apari n aceluiai
domeni u . Aceasta reprezint o restrici e a conceptul ui de tip
de dat (integer , real , boolean , c7aracter , etc.) cunoscut din
limbajele de programare. Astfel, dou coloane denumi te ZUA
i NALTME pot conine valori de tip ntreg, dar pri ma din
domeni ul 1...31, iar cealal t din domeni ul 25...260. n plus,
- 42 -
Rela ia
RS
Rela ia
S
Rela ia R
:;<9=X
1
Y
1
Z
1
V
1
W
1
X
2
Y
2
Z
2
V
2
W
2
X
3
Y
3
Z
3
V
3
W
3
<9=Z
1
V
1
W
1
Z
2
V
2
W
2
Z
3
V
3
W
3
:;X
1
Y
1
X
2
Y
2
X
3
Y
3
Baze de dat e
dei ambele conin valori numerice de tip ntreg, fiind vorba
de domenii diferi te, este lipsi t de sens o expresie de forma
ZUA= NALTME
1
.
2oate valorile dintr1 un tabel trebuie s fie atomi ce .
Spre deosebire de un tabel realizat pe o foaie de hrti e, n
care o celul dintr- o coloan poate coni ne mai mul te date, n
model ul relai onal fiecare celul nu poate stoca dect o
singur valoare. De exempl u, ntr- o agend s-ar putea
introduce o coloan cu numele ADRESA n care s fie nscrise
locali tatea, strada, numrul potal. Gn principi u , acest lucru
este interzis n modelul relai onal unde o dat trebuie s fie
,atomi c n sensul c nu poate fi descompus n mai mul te
componente.
8rdinea r(nduril or i coloanelor nu este semni ficati v .
n modelul relaional, ordinea n care se afl liniile i coloanele
tabloul ui bidi mensional este considerat aleatoare. Aceasta
nseamn c o nregistrare, descriind o anumi t enti tate, nu
poate fi identi ficat prin poziia n tabel.
Fiecare rnd din tabel trebuie s fie disti nct.
1
Acesta este unul dintre conceptele lui Codd implementate n puine sisteme comerciale.
- 43 -
Baze de dat e
Nu pot exista dou linii cu acelai coni nut. Cu alte cuvinte
trebuie s existe o coloan sau o combi nai e de coloane al
crei coninut identi fic n mod unic fiecare rnd. Se definete
astfel noi unea de cheie (key) care reprezint o coloan sau o
combinai e de coloane pentru care n orice moment nu exist
dou linii cu acelai coni nut. Cheia poate fi utilizat pentru a
identi fica sau a regsi fiecare rnd al unui tabel. Este posibil
s se gseasc mai mul te coloane indi vi dual e, sau mai mul te
combinai i de coloane, care s conin valori distincte pentru
fiecare linie. n aceast situai e, fiecare dintre coloanele sau
combinai il e respecti ve se numete cheie candidat. Modelul
relai onal impune ca dintre cheile candidat, una s fie
desemnat drept cheie pri mar pentru a servi ca mijloc de
identi ficare i acces la rnduril e unui tabel. De regul, atunci
cnd setul de date nu coni ne n mod natural nici o cheie
candidat, se adaug o coloan supli mentar (numr de
ordine, matri col , cod personal, etc.) care s funci oneze ca
identi ficator al fiecrei linii.
Gn orice tabel pot e#ista celule cu valori nule .
n model ul relaional, conceptul de valoare nul este
echivalent cu "nc necunoscut . Valoarea nul este utili zat
pentru a indica faptul c nu s-a specificat coninutul celulei
respecti ve. Valoarea nul nu trebuie confundat cu zero (o
celul numeric poate avea efecti v valoarea 0) i nici cu blanB
(spai u), n cazul irurilor de caractere
1
.
-.2. Com#onent a de mani #ul a e
n modelul relai onal fundamentat de Codd, componenta
de manipulare const dintr- un set de operatori pe care se
bazeaz algebra relaional sau calculul relaional
2
.
Exist trei operatori relai onali fundamental i :
SELECT.
SELECT
3
creeaz dintr- un tabel dat, pe baza unui anumi t
criteri u, un tabel nou care reprezint o submul i me a
rnduri lor tabel ul ui iniial.
De exempl u, propozi i a
SELECT * FROM parcele WHERE aria < 1
va extrage dintr- un tabel numi t parcele i care conine mai
mul te coloane (categorie de folosin, numr cadastral,
dei ntor, etc.), dintre care una se numete aria, toate
rnduri le n care coloana aria coni ne o valoare mai mic
dect 1. Noul tabel astfel obinut va conine toate coloanele
1
Si acesta este nc unul dintre conceptele modelului relaional rareori implementat n pachetele comerciale.
2
Trebuie menionat c implementrile modelului relaional nu includ n mod explicit elementele algebrei
relaionale. Acestea se regsesc ntr- o anumit msur n limbajele de manipulare ale diferitelor sisteme de
gestiune a bazelor de date.
3
Numit i RESTRCT, n unele lucrri.
- 44 -
Baze de dat e
tabel ul ui originar.
PROJECT.
PROJECT extrage dintr- un tabel dat o submul i me format
dintr- o
- 45 -
Baze de dat e
serie de coloane specificate.
De exempl u, propozi i a
PROJECT parcele ON posesor,aria
va crea un tabel care coni ne doar dou coloane ( posesor
i aria) preluate din tabe lul parcele. n noul tabel se vor regsi
toate rnduril e tabelul ui originar.
JON.
JON leag temporar dou tabele distincte, pe baza unei
coloane comune, for mnd un tabel unic i care conine toate
rnduri le i coloanele celor dou tabele din care a proveni t.
De exempl u, propozi i a
JON candidat AND re'ultate ON legitimatie
va uni tabel ul candidat (care ar coni ne lista candidai l or la
un concurs de admi tere) cu tabelul re'ultate (care ar conine
rezul tatel e obinute la probele concursului respecti v). Unirea
tabelelor se face pe baza unei coloane comune numi te
legitimatie (care ar coni ne codul legiti mai ei fiecrui
candidat). Cele dou tabele pot avea rnduril e dispuse n mod
diferi t. Astfel, n pri mul tabel datele candidai l or ar putea
apare n ordinea nscrierii lor la concurs (aleatoare), pe cnd n
al doilea ar putea apare n ordine alfabeti c. Tabelul nou creat
este temporar, n sensul c nu este reinut n baza de date
dect pe ti mpul prelucrri i.
n afara celor trei operatori meni onai mai sus, algebra
relai onal include i ali operatori considerai secundari.
Operatori i relai onali din model ul Codd sunt implementa i sub
diferi te forme n sistemele de gestiune a bazelor de date. De
exempl u, n dBase comanda JON are o funci e similar
operatorul ui descris mai sus, n ti mp ce comanda SELECT este
utilizat pentru a indica tabel ul pri mar accesat la un moment
dat.
-.3. Com#onent a de inte"it at e.
Aceast component se refer la corecti tudi nea i
acurateea datelor stocate ntr- o baz de date. Ea coni ne
dou reguli:
%ntegri tatea enti ti i . Conform acestei reguli, fiecare
rnd al unui tabel trebuie s aib o valoare unic i valid
(nenul) n coloana (sau n combi nai a de coloane) care
consti tui e c7eia pri mar . Regula integri ti i enti ti i este
obligatori e pentru a face posibil identi ficarea unic a fiecrui
rnd. Dac aceast nu ar fi respectat, ar nsemna c exist
rnduri (enti ti ) care nu pot fi accesate (consul tate,
modificate, etc.).
%ntegri tatea referi nei . Aa cum s-a mai artat, pentru
legarea a dou tabele este necesar ca acestea s coni n o
- 46 -
Baze de dat e
coloan comun. n pri mul tabel aceast coloan este c7eia
pri mar . Corespunztor acesteia, n al doilea tabel exist aa
numi ta cheie strin (foreign Bey ), adic o coloan cu
acelai coni nut ca i c7eia pri mar din pri mul tabel. Regula
de integri tate a referi nei cere ca fiecare rnd al unui tabel s
conin n coloana corespunztoare c7eii strine o valoare
care s se regseasc n unul dintre rnduril e tabelul ui cu care
este legat (JON), pe coloana corespunztoare c7eii pri mare .
Cele dou reguli de mai sus trebui e privi te ca
fundamental e. Majori tatea implementri l or de sisteme
relai onale de gestiune a bazelor de date includ mai mul te
funci i desti nate mini mizri i riscului de a include date eronate.
2.$. 3e"ile lui Codd
Modelul relai onal a ajuns la rspndi rea lui actual dup
fundamentarea sa teoreti c n anul 1970. Apari i a mai mul tor
pachete de programe pentru gestiunea bazelor de date care
erau anunate de productori ca reprezentnd implementri
ale model ul ui relaional, a generat printre cercettori discuii
privind criteri ile dup care un sistem poate fi numi t
relaional . ntr- o ncercare de a arbi tra aceast disput, Codd
a publicat n anul 1985 un articol n care enumera 12 criterii
(legi ) dup care ar trebui apreciat dac un SGBD este sau nu
relai onal. Acest set de criterii, cunoscut sub denumi rea
, Legile lui odd , conine urmtoarel e principii:
1. $eprezentarea informai ei . La nivel logic, utilizatorul
trebuie s vad datele numai ca valori n tabele.
2. )ccesul garantat . Fiecare valoare dintr- o baz de date
trebuie s poat fi regsi t prin specificarea numel ui tabel ul ui,
a valorii cheii pri mare i a numel ui coloanei.
3. 2ratarea sistemati c a valorii nule . Pentru fiecare tip de
dat trebui e s fie disponi bil o valoare nul pentru a indica o
informa i e nc absent.
4. &atalog relaional de date . &atalogul , sau dicionarul de
date , specific oricrui SGBD, trebui e s fie organizat similar
coleciei de date, adic s fie el nsui un tabel.
5. .imba0 complet . Un SGBD relaional trebuie s includ
cel puin un limbaj accesibil care s acopere toate funci ile
legate de crearea i utilizarea bazelor de date.
6. )ctualizarea vederii . O vedere sau vizualizare reprezint
un tabel tempo rar, neinclus n baza de date, creat din una sau
mai mul te tabele existente n baz. Utilizatorul trebui e s aib
posibili tatea modi ficrii unei date din vedere , aceast
modificare urmnd s fie efectuat i n tabel ul din care a
proveni t vederea respecti v.
7. :anipularea seturilor de 'nregistrri . Trebuie s se
asigure posibili tatea ca printr- o comand unic s poat fi
- 47 -
Baze de dat e
manipulat o mul i me de nregistrri (rnduri dintr- un tabel) i
nu doar o singur nregistrare.
- 48 -
Baze de dat e
8. %ndependena fizic a datelor . Utilizatorul nu trebui e s
fie n nici o form afectat de modi ficril e efectuate n structura
fizic a bazei de date (mutarea de pe un disc pe altul,
schimbarea ordinei rnduril or sau coloanelor, etc.).
9. %ndependena logic a datelor . Utilizatorul nu trebui e s
fie afectat de modificrile interveni te n structura
logic a bazei de date (adugarea unor coloane, separarea
unui tabel n dou sau mai mul te tabele, etc.).
10. %ndependena integri ti i datelor . Constrngeri l e
legate de integri tatea datelor trebuie incluse n dicionarul de
date i nu implementate prin scrierea de secvene specifice de
program.
11. %ndependena distri bui ei . Aceast regul se refer
la conceptul de baz de date distribui t prin care se
consider c diferi tel e componente ale unei baze de date pot
exista n cadrul unei reele de calculatoare sub forma mai
mul tor fiiere memorate pe suporturi (discuri) plasate n
diferi te noduri ale reelei. %ndependena distri bui ei nseamn
c pentru utilizator trebui e s fie indiferent faptul c baza se
gsete n ntregi me pe discul calculatorul ui la care lucreaz,
sau dimpotri v, este mprtiat pe mai mul te discuri plasate
n diferi te calculatoare.
12. .imba0 nesubversi v . Un SGBD poate include mai
mul te limbaje din care, conform .egii H, cel puin unul trebuie
s fie complet. Aceste limbaje trebuie s nu fie subversi ve , n
sensul c nu trebui e s fac posibil contrazicerea uneia
dintre regulile anteri oare. De exempl u, dac o coloan a fost
declarat c7eie pri mar , nu trebui e s existe posibili tatea de a
introduce aici o valoare nul (neprecizat).

- 49 -
Baze de dat e
2. 2. 6 6ROIECT1RE1 ROIECT1RE1 %12E3OR %12E3OR DE DE D1TE D1TE
Proiectarea bazelor de date cuprinde dou aspecte
principale.
Primul aspect, numi t logic, se refer la crearea unui model
conceptual al date lor care urmeaz s fie pstrate n colecia
reprezentat de baza de date.
Al doilea aspect, numi t fizic , se refer la defini rea
condi i ilor practice n care va funci ona baza de date i
abordeaz probleme ca: ti mpul de acces, dimensi unea bazei
de date, necesarul de memori e de mas, sistemul de gesti une
utilizat, echipa mentele necesare, etc.
3. 1. 6oiect a e a lo"ic5.
Sunt cunoscute mai mul te tehnici de modelare prin care
proiectantul i poate structura ideile relati ve la concepia
bazei de date. Dintre acestea, vor fi descrise n conti nuare
modelarea relaiilor enti tate1 atri but (-A/: ?ntity1 )ttri bute
$elations7i p ) i modelarea prin normal izare .
1. 1. .odel a ea elaiilo entit at e0 ati+ut
Aceast metod este larg utilizat datori t accesibili ti i i
simpli ti i sale. De asemenea, o calitate important a
modelri i EAR este abordarea pornind de la general ctre
particular. Modelarea EAR se realizeaz, n general, n cadrul a
trei etape:
a# %denti ficarea enti ti l or .
?nti ti l e sunt persoane, obiecte, lucruri, fenomene, avnd
o existen propri e i n legtur cu care este necesar s se
colecioneze date n vederea funcionrii unui anumi t sistem
informati c.
Prima aciune care trebuie ntrepri ns n cadrul modelrii
EAR const n alegerea enti ti l or relevante pentru sistemul
informati c preconizat. Aceast selecie se materi alizeaz ntr- o
list care cuprinde numele enti ti l or luate n considerare. De
exempl u, pentru realizarea unui sistem de eviden a cazrii
ntr- un cmin studenesc, enti ti l e ar putea fi:
CAMERA
STUDENT
- 50 -
Baze de dat e
Orice enti tate poate avea mul ti pl e instan e , adic diferi te
concretizri n lumea real. De exempl u, dou instane ale
enti ti i STUDENT ar putea fi )drian 6etrescu , din anul V
Geodezie i $odica :itric din anul Cadastru.
b# %denti ficarea relaiilor .
A doua etap const n definirea relaiilor care exist ntre
enti ti l e luate n considerare, adic a legturi l or stabili te n
lumea real ntre acestea.
De exempl u, un student este cazat ntr- o camer din cmin,
un so este cstori t cu soia sa, un curs este predat de un
profesor (sau de mai mul i profesori ).
Relaiile sunt reprezentate, de regul, printr- o linie care
unete cele dou enti ti implicate. Pe linia respecti v se
plaseaz o etichet care explici teaz tipul relai ei.
De exempl u:
CAMERA STUDENT
c a za t
CADRU DDACTC CURS UNVERSTAR
p r e d a t
sau6
Tot n aceast etap se determi n i gradul relai ei , adic
numrul de instane care pot partici pa la relai a respecti v.
Din acest punct de vedere, relaiile pot fi:
unu la unu (: ). Aceast relai e apare atunci cnd o
instan a uneia dintre enti ti poate fi n legtur doar cu o
singur instan a celeilal te enti ti . De exempl u, n societi le
monogame, ntre soi exist (n mod legal) o legtur (1:1),
pentru c, la un moment dat, un brbat poate fi cstori t
numai cu o soie i o femeie poate fi cstori t cu un singur
so;
unu la mai muli (:n ). Este relai a care exist cnd o
instan a unei enti ti poate fi pus n legtur cu mai mul te
instane ale celeilal te enti ti , fr ca reci proca s fie
adevrat. De exempl u, ntr- o camer de cmin pot fi cazai
mai mul i studeni , dar (n principiu) un student nu poate fi
cazat simul tan n mai mul te camere. De asemenea, o mam
poate avea mai mul i copii, dar (n mod normal ) un om nu
poate avea dect o singur mam. Relaia respecti v se
reprezint grafic prin mul ti pl icarea liniilor de relaie sau prin
nscrierea caracterel or 1 i n la extremi t i l e corespunztoare
ale liniei respecti ve.
- 51 -
Baze de dat e
- 52 -
Baze de dat e

CAMERA STUDENT
cazat
CAMERA STUDENT
cazat
(1 ) (n)
sau
mai muli la mai muli (n:n ). Aceast relaie se
stabilete cnd la ambele capete ale legturi i pot apare mai
mul te instane. De exempl u, n cadrul unui semestru, mai
mul i studeni audiaz mai mul te cursuri universi tare. n
prezent, o persoan poate fi salariat de mai mul te societi
comerciale i o societate comercial are, de regul, mai mul i
salariai. De asemenea, o persoan poate dei ne mai mul te
imobile i un imobil poate fi deinut, n indiviz, de mai mul i
propri etari :
CURS UNVERSTAR STUDENT
a u d ia z
CURS UNVERSTAR STUDENT
a u d ia z
sau
(n) (n)
Se poate observa, inclusiv din exempl ele date, c relaiile
dintre enti ti deri v din regulile organizaiei n care acestea
exist. De exempl u, n unele ri musul mane un brbat poate
avea, 'n mod legal , mai mul te soii, sau, n regi mul existent n
Romnia nainte de 1990, o persoan nu putea, 'n mod oficial ,
s fie salariat al mai mul tor insti tu i i . Aceast observai e
reprezint un anumi t aspect al integri t i i datelor, n sensul c
datele sunt valide (integre) dac interpretarea lor n cadrul
bazei de date corespunde celei atri bui te lor n organizai a sau
mediul din care provi n enti ti l e caracterizate prin datele
respecti ve.
'. ,tabilirea atri butel or .
Cea de a treia etap a modelrii EAR const n
specificarea, pentru fiecare enti tate, a atributel or sau
caracteristi cilor considerate relevante pentru obiecti vel e siste -
mul ui informati c care include respecti va baz de date.
Atributel e pot fi privi te ca ad0ecti ve care caracterizeaz o
enti tate oarecare, considerat substanti v . La alegerea
atributel or, aproape ntotdeauna trebuie fcut un compromi s
ntre dorina de a dei ne ct mai mul te caracteristici ale
enti ti l or reprezentate n bazele de date i posibili ti l e
practice de stocare, manipul are i - mai ales - de culegere a
acestora. De altfel, este necesar ca odat cu alegerea
- 53 -
Baze de dat e
atributel or s se precizeze i sursa (sau sursele) din care se
vor obi ne valorile acestora. De exempl u, datele privi nd un
student s-ar putea prelua dintr- o list pri mi t de la
secretariatel e facul ti l or, din carnetul de student, din
buleti nul de identi tate (cu excepia numrul ui matricol), etc.
- 54 -
Baze de dat e
Grafic, atri butel e se pot reprezenta pe lng enti ti l e pe
care le caracterizeaz, aa cum este ilustrat n figura 3.1.
n completarea celor trei etape meni onate mai sus, este
necesar s se analizeze posibili tatea organizrii datelor
respecti ve n mai mul te tabele care vor consti tui baza de date.
La crearea acestor tabele trebuie urmri te principiile generale
ale organizrii relai onale: mini mizarea redundanei , existena
cel pui n a unei chei candidat, atomici tatea datelor,
posibili tatea reprezentri i relaiilor, etc.
CAMERA
STUDENT
numele
domiciliul stabil
numrul matricol
facultatea
data naterii
prenumele
oraul
apartamentul
ara
blocul
numrul potal
strada
numrul de locuri
identificator
suprafaa
dotri sanitare
Figura 3.1.
De exempl u, pentru evidena cazrii ntr- un cmin, datele
aminti te mai sus s-ar putea organiza n trei tabele, aa cum
este ilustrat mai jos prin tabelele 2.a, 2.b i 2.c.
2abelul !.a.
STUDENT
nr?mat ricol nume prenume etc#
95101 Micu Eugen .
95102 Dragomi
r
oana .
95103 Rotaru Dan- Cosmin .
95104 Adam Viorel-
Adrian
.
95105 Cristea Laureniu .
95106 Mihil Ana- Teodora .
. . . .
- 55 -
Baze de dat e
2abelul !.b.
CAZARE
nr?mat ricol id?camera
95101 A.1.03
95102 B.1.21
95103 A.2.07
95104 A.1.03
95105 A.1.03
95106 B.1.19
. .
2abelul !.c.
CAMERA
id?camera nr?locuri etc
A.1.01 3 .
A.1.02 3 .
. . .
A.1.03
B.1.19
.
De regul, proiectarea bazei de date este un proces
iterati v, n care ideile se clarific i se sedimenteaz pe
msura trecerii de la o etap la alta, adeseori necesitnd
reluarea unor etape deja parcurse. De exempl u, facultatea,
inclus ca atribut al enti ti i STUDENT ar putea fi tratat ca
enti tate cu atributel e denumire, numrIstudenti, etc. De
asemenea, ar putea apare ca necesar introducerea unor
atribute noi ca: tipIburs la enti tatea STUDENT sau costIloc la
enti tatea CAMERA.
3.1. 2. .odel a ea #in nomali&a e.
3ormalizarea este o metod de modelare deri vat direct
din model ul relai o nal, urmri nd consti tui rea unui set de
tabele n care datele s ndeplineasc toate cerinele acestuia.
Normalizarea este o abordare de 0os 'n sus n care se pornete
de la totali tatea atributel or, de la care, cu ajutorul unei serii
de reguli aplicate ntr- o ordine prestabili t, se ajunge la soluia
corespunztoare modelul ui ales, acesta fiind n princi piu
model ul relaional.
Procesul de normalizare se desfoar n cadrul
urmtoarel or etape:
a# ,tabilirea listei de atribute .
- 56 -
Baze de dat e
De la nceput, se ntocmete o list cu toate atri butel e
considerate relevante i necesare pentru sistemul informati c
considerat.
b# 5ormarea tabelelor iniiale .
Atributel e din lista alctui t n etapa precedent sunt
grupate n mai mul te ta bele, urmri nd un anumi t criteri u, de
exempl u enti tatea pe care o caracterizeaz fiecare atribut. De
regul, aceste tabele reprezint o aproxi mare grosier a
tabelelor defini ti ve. Este foarte probabil ca, n aceast etap,
tabelele, numi te nenormal izat e , s nu se conformeze n
totali tate model ul ui relai onal. Eventualele anomalii sau
abateri de la model urmeaz s fie eli mi nate n etapele care
urmeaz.
c# 6rima normal izare .
Aceast etap const n elimi narea grupelor de date care
se repet n tablouri le formate n etapa anteri oar. Grupele de
date repetate (date redundante) apar, de regul, atunci cnd
o enti tate oarecare are legturi mul ti pl e cu alte enti ti . De
exempl u, parti da cadastral este un document (un tabel ) care
evideni az toate proprieti l e funciare care apari n unui
anumi t deintor. Principial, parti da cadastral s-ar putea
prezenta sub forma din tabelul 3.
2abelul ".
D-@+2A50/
cod
personal
nume "i
prenume
domiciliu parcel e n posesie
. . . . . .
. . . . . .
Se observ imediat c ulti ma coloan ( parcele 'n posesie)
contravi ne unei cerine a modelul ui relaional referi toare la
necesi tatea ca fiecare dat s fie , atomi c . ntr- adevr,
aceast coloan va coni ne o singur valoare numai n cazul
particular al unui deintor care posed o singur parcel.
Aparent, o rezolvare ar putea fi cea ilustrat n tabelul 4, unde
sunt prevzute zece coloane, cte una pentru fiecare
propri etate. De fapt, aceast soluie duce la risip de spaiu
prin faptul c se rezerv zece poziii pentru parcele, dei mul i
propri etari ar putea dei ne doar una sau dou parcele. Pe de
alt parte, tabel ul 4 este total inadecvat situaii lor n care un
propri etar dei ne mai mul t de zece parcele.
2abelul J.
D-@+2A50/
- 57 -
Baze de dat e
Cod nume "i
domicili u
parcel e n posesie
personal prenume
1 2 3 4 5 6 7 8 9 10
. . . . . . . . . . . . .
. . . . . . . . . . . . .
O soluie posibil pentru problema din acest exempl u
const n repartizarea datelor respecti ve n mai mul te tabele
(DE|NTOR, PARCEL i POSESE), n loc de unul singur,
aa cum se poate vedea n tabelele 4.a, 4.b i 4.c de mai jos.
- 58 -
Baze de dat e
2abelul J.a.
D-@+2A50/
cod
personal
nume "i
prenume
domiciliu
. . .
. . .
2abelul J.b.
.A/C-*A
cod parcel date parcel
. . .
. . .
2abelul J.c.
.0S-S+-
cod parcel cod personal
. . .
. . .
d# ) doua normal izare .
n aceast etap sunt eli mi nate dependenel e pari al e ,
existente atunci cnd ntr- un tabel cheia pri mar este o
combinai e de coloane i nu o coloan unic
1
. Din punct de
vedere practic, rezolvarea const n stabilirea regulilor prin
care valorile unei coloane sunt unice pentru fiecare rnd. De
exempl u, n tabelele 4. se consider c att codul personal,
ct i codul parcelei, sunt chei pri mare (nu exist doi
dei ntori cu acelai cod personal i nu exist dou terenuri cu
acelai cod de parcel).
e# ) treia normali zare .
Aceast etap se refer la elimi narea dependenel or
tranzi tori i . Acestea apar atunci cnd valorile unei coloane sunt
dependente de valorile alteia, ambele nefiind chei.
Rezumnd cele artate mai sus n legtur cu cele trei
etape de normal izare, acestea s-ar putea concentra n
urmtoarel e reguli de baz care ar trebui respectate la
consti tui rea tabelelor:
cheia trebui e s fie consti tui t dintr- o singur coloan;
orice atri but care nu este cheie trebuie s fie dependent
de o cheie;
un atribut nu trebui e s fie dependent de altul care nu
este cheie.
1
Situaia respectiv se numete dependen parial pentru c semnific faptul c valorile unei coloane care nu
este cheie, sunt parial dependente de valorile unei chei primare.
- 59 -
Baze de dat e
- 60 -
Baze de dat e
3.2. 6oiect a e a !i&ica
Dup proiectarea logic care const n realizarea
model ul ui conceptual al bazei de date, este necesar s fie
abordate aspectele practice privi nd implementarea efecti v a
model ul ui respecti v pe o anumi t configurai e. Principalele
probleme care trebuie rezolvate n aceast faz se refer la
ti mpul de rspuns al bazei de date, adic ti mpul necesar
pentru efectuarea operai uni l or specifice i la mri mea bazei
de date, adic volumul memori ei de mas necesar pentru
stocarea datelor.
3.2. 1. Tim#ul de 5s#uns
Unul dintre dezavantaj ele model ul ui relai onal n
comparai e cu modelele ar borescent i reea, const n vi teza
mai mic de rspuns la regsirea unei date. Deficiena
respecti v este datorat faptul ui c ntr- o baz de date
relai onal nu exist nici o informa i e privi nd poziia (rndul )
pe care se afl o anumi t dat, astfel c, pentru a regsi toate
enti ti l e caracterizate printr- o anumi t valoare a unui atribut
(de exempl u, toate punctele de triangul ai e de ordinul dintr-
un inventar de coordonate), n principi u ar trebui parcurs
ntregul tabel ncepnd cu pri mul rnd i termi nnd cu ulti mul .
Problema vitezei de rspuns include aspecte particulare n
cazul bazelor de date distri bui te, consti tui te pe reele de
calculatoare, unde tabelele necesare unei ope raii oarecare se
pot gsi pe calculatoare diferi te. n acest caz, este necesar s
se ia n considerare i vi teza de transmisie, dependent de
tipul plcilor de reea, de caracte risticile modemuri l or i de
calitatea mediul ui de transmisie (cablu).
Exist mai mul te procedee de accelerare a vi tezei de
rspuns a unei baze de date.
Principala tehnic utilizat n acest scop este indexarea .
n principi u, aceasta const n crearea unui tabel (fiier)
special, numi t tabel de indeci , care coni ne dou coloane.
Una dintre cele dou coloane conine valorile atributul ui
pentru care s-a for mat indexul, iar cealal t coni ne numrul
rndul ui (nregistrri i ) pe care se afl restul atri butel or
enti ti i respecti ve. n tabela de indeci, valorile atributul ui
sunt ordonate, astfel c regsirea poate fi accelerat prin
utilizarea unui algori tm de cutare n liste ordonate.
De exempl u, registrul dei ntori l or dintr- o eviden
cadastral ar putea fi realizat sub forma unui tabel care
conine pe o coloan numele sau denumi rea enti ti i pro-
prietar, drept cheie pri mar
1
, precum i alte atri bute ale
1
n realitate, nu este recomandabil ca numele s fie utilizat n calitate de cheie primar, avnd n vedere c pot
exista mai multe persoane cu acelai nume i prenume. n loc de aceasta s-ar putea utiliza codul personal, care
- 61 -
Baze de dat e
acestei enti ti , pe celelal te coloane. n mod firesc,
nregistrri le din acest tabel sunt completate n ordinea
apari i ei deintori l or respecti vi, adic aleatori u.
este unic.
- 62 -
Baze de dat e
Pentru regsirea mai rapid a unui proprietar indicat prin
nume, este util crearea unui index alfabetic, aa cum este
ilustrat n figura 3.2.

DEIN%TOR
(). )*(+ N,-./0).(,-. '1+/0.)21(34 345. +35.
1 ,:ED' C. ;'S4*E < <
2 C0:B= D. "E0D0: < <
3 S"04C' &. 40> < <
4 4*4ESC= '. 40> < <
5 &'=: S.'. < <
< < <
15).1 '*DE' ,. /4?'4 < <
15).2 GE0S@S"E/ S.:.*. < <
< < <

INDE6/NUE
N,-./0).(,-. (). )*(+
<
'*DE' ,. /4?'4 15).1
<
C0:B= D. "E0D0: 2
<
&'=: S.'. 5
<
GE0S@S"E/ S.:.*. 15).2
<
4*4ESC= '. 40> 4
<
,:ED' C. ;'S4*E 1
<
S"04C' &. 40> 3
<

Figura 3.2.
Pentru regsirea informa i ei privi nd un anumi t deintor,
de exempl u FAUR S.A, sistemul de gesti une al bazei de date
va cuta mai nti n tabel ul de indeci numel e respecti v, va
prelua de aici valoarea indexul ui (numrul de ordine al
nregistrri i ), dup care, pe baza acestui numr, va accesa
direct n tabelul DE|NTOR nregistrarea corespunztoare
- 63 -
Baze de dat e
enti ti i cutate. Dei, aparent, mecanismul descris este mai
complicat dect o cutare secveni al numai n tabelul
DE|NTOR, n reali tate ti mpul de acces este, n medie, mul t
prin redus datori t faptul ui c regsirea ntr- o list ordonat,
aa cum este tabel ul de indeci, este foarte rapid.
n legtur cu aceast tehnic, se pot face urmtoarel e
precizri:
tabele de indeci sunt create printr- o funcie specific
sistemelor relaional e de gesti une a bazelor de date (SRGBD),
la cererea utilizatorul ui, care trebuie s precizeze atri butul
pentru care se genereaz indexul ( numeKprenume , n
exempl ul din figura 3.2);
pentru aceeai baz de date i chiar pentru acelai tabel
se pot crea mai mul te tabele de indeci pentru atri bute
diferi te;
tabelele de indeci sunt organizate i prelucrate
respectnd principiile generale ale bazelor de date relaionale,
adic sunt tratate ca fiind componente ale bazei de date;
un tabel de indeci are un caracter temporar, el existnd
numai n perioada parcurs ntre momentul n care s-a cerut
crearea sa i momentul n care fie se solici t explici t tergerea
lui (pentru a elibera spai u de memori e), fie se ncheie
sesiunea de lucru cu baza de date respecti v. Pstrarea lor
permanent este ineficient datori t spaiul ui ocupat i mai
ales pentru c actualizarea lor este relati v dificil
1
.
Tabelele de indeci sunt liste ordonat e i pentru cutarea n
astfel de liste se utilizeaz algori tmi speciali. Unul dintre cele
mai simple const n 'n0umti rea listei
2
. Principiul metodei
este ilustrat n figura 3.3. Aici s-a notat cu elem valoarea
atributul ui care trebui e regsi t ntr- o list de n elemente.
Evident, orice SRGBD trebuie s includ o funcie de regsire
bazat pe un algori tm specific.
1
Actualizarea tabelului originar pentru care s-a generat tabelul de indeci ar trebui urmat imediat i de
actualizarea acestuia din urm.
2
A nu se confunda cu metoda 'n0umti rii intervalului , utilizat la rezolvarea ecuaiilor neliniare, dei principial
procedeele sunt similare.
- 64 -
Baze de dat e
na *
nb*n
nc * (na + nb) div "
elem *
lista[nc]
DA
GST!
elem ,
lista[nc]
NU
DA NU
nb * nc na * nc +
1 1
1
elementul este n
a doua jumtate
elementul este n
prima jumtate
Figura 3.3.
3.2. 2. Dimensi ona e a +a&ei de dat e.
A doua problem principal a proiectri i fizice a bazelor de
date const n evaluarea capaci ti i memori ei necesare pentru
stocarea coleciei respecti ve de date.
n general, rezolvarea acestei probleme implic
parcurgerea urmtoarel or operaii :
&alculul memori ei necesare fiecrui tabel (fiier). Spaiul
necesar unui rnd (unei nregistrri ) se determi n prin
nsumarea lungi mi i tuturor atri butel or (expri mat n octei ).
Suma respecti v se nmul ete cu numrul de rnduri (care
trebuie esti mat) avut n vedere pentru tabelul respecti v. De
exempl u, considernd tabelul 2.a, s-ar putea considera pentru
atributel e enti ti i STUDENT urmtoarel e valori:
2abelul H
atri but tip dat lun!i me
nr_matricol ntreg 4
nume ir de caractere 16
prenume ir de caractere 24
alte . 100
TOTAL 144
- 65 -
Baze de dat e
- 66 -
Baze de dat e
Dac acum se esti meaz c numrul total de studeni aflat n
eviden pentru acest sistem va fi 500, atunci volumul de
memori e necesar pentru stocarea tabe lului STUDENT va fi
500*144=72000 octei

70 Kb.
&alculul memori ei necesare pentru tabelele de
indeci . Se poate presupune c pentru fiecare fiier din baza
de date se va crea cel pui n un tabel de indeci. Se apreciaz
c, n medie, tabel ul de indeci acoper circa 20% din volumul
tabel ul ui pentru care a fost creat.
&alculul memori ei total e . Se nsumeaz valorile
memori ei necesare pentru toate tabelele bazei de date.
Pentru dezvol tri le ulteri oare, se consider un coeficient de
siguran de 1.15.1.25.
Rezult c volumul total al memori ei necesare se poate
calcula cu o relaie de forma:
- r s
i i
i
n

=

1 4
1
. ,
n care
n = numrul de tabele (fiiere) din baza de date
proiectat;
r
i
= numrul de rnduri (nregistrri ) din fiecare
tabel (esti mati v);
s
i
= lungi mea unui rnd din fiecare tabel.
Lungi mea unei nregistrri se obi ne cu relai a:
s a
i i j
j
.
i
=
=

,
1
,
n care
.
i
= numrul de coloane (cmpuri ) din fiecare
tabel (fiier);
a
i j , = lungi mea expri mat n octei (bytes)
rezervat pentru valorile fiecrui atribut, stabili t la proiectare
funci e de semnificai a atributul ui (numel e unei persoane,
coordonata unui punct, o dat calendaristic, etc.) i de tipul
de dat atri bui t caracteristi cii respecti ve (ntreg pe un byte,
ntreg pe 4 bytes, real simpl precizie, real dubl precizie, ir
de caractere, etc.).
- 67 -
Baze de dat e
3. 3. N NOIUNI OIUNI DE DE %121 %121 7N 7N S'%D S'%D 1CCESS 1CCESS
Sistemul de Gestiune a Bazelor de Date Microsoft Access
2002 face parte din pachetul de programe Microsoft Office i
este cea de a asea versiune a produsului de la lansarea sa
iniial n anul 1992.
Principalele caracteristi ci 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;
permi te realizarea unor aplicaii complexe prin utilizarea
limbaj ul ui Visual Basic;
permi te comunicarea cu SQL Server, un alt produs
Microsoft care gestioneaz baze de date;
permi te accesul la baze de date din reeaua nternet,
fiind un instrument util pentru publicarea informa i i l or n
paginile Web;
este autodocumentat prin help, apelabil contextual sau
la cerere;
conine instrumente ,Expert care permi t utilizatorul ui
crearea ntr- o manier foarte simpl a obiectel or bazei de
date;
permi te crearea de comenzi rapide (shortcuts) n
vederea accesrii obiectelor n Access;
permi te crearea de grupuri de obiecte defini te de
utilizator n cadrul bazei de date;
permi te personalizarea bazei de date;
permi te utilizarea obiectelor Access;
permi te utilizarea obiectelor Access din cadrul altor
aplicai i sub sistemul de operare Windows.
n cadrul versiunii 2002 a SGBD-ului Access au fost
introduse o serie de facili ti noi, cum ar fi:
pe baza facili ti i de compactare, se mini mizeaz
dimensi unea bazei de date la nchidere;
Microsoft Access 2002 introduce vizualizri PivotTable i
PivotChart n tabele, interogri, vizualizri, proceduri stocate,
funci i i formul are.
n afar de a fi tehnologi a standard de interschi mbare a
datelor n Web, Limbaj ul eXtensibil de Marcare (XML) devine
rapid tehnologia preferat pentru schi mbul de date ntre
aplicai ile software generale. Microsoft Access 2002 furnizeaz
- 68 -
Baze de dat e
modali ti puternice, intui ti ve de partajare a datelor XML
indiferent de diferenel e de platform, format de date,
protocol, schem sau reguli de acti vi tate.
- 69 -
Baze de dat e
Se permi te lucrul i modificarea fiierelor Access 2000 n
Access 2002 fr conversia formatul ui de fiier. Aceasta
permi te partajarea mai uoar cu fiiere de baze de date din
versiuni diferi te cu ali utilizatori Access.
Se ofer posibili tatea anulrii i refacerii mai mul tor
aciuni n <izualizare proiect n toate obiectel e din bazele
dedate Microsoft Access i n vizualizrile, proceduril e stocate
i funciile din proiectul Microsoft Access.
Actualizri pe loturi n proiectele Access utiliznd
Microsoft SQL Server.
Pagini de acces la date actualizabile off- line.
Consemnarea erorilor de conversie.
Coexistena subformul are/subrapoarte n <izualizare
proiect .
Securi tatea parolei n proiectul Access.
Suport mbunti t pentru scriere complex
internai onal
$. 1. Colecii de o+iect e in .icoso!t 1ccess
O baz de date Access poate fi defini t ca o colecie de
obiecte: tabele (table), cereri de interogare (query), formul are
(form), rapoarte (report), pagini Web (pages), comenzi macro
(macro) i modul e (module).
Trebuie subliniat diferena major care exist ntre
Microsoft Access i alte sisteme de gesti une a bazelor de date.
Astfel, n 9isual Fox.ro , prin baze de date (database) se
neleg doar acele fiiere n care sunt stocate datele.
5abela este un obiect defini t de utilizator n care sunt
stocate datele pri mare (expresia modelul ui relaional ).
Formul arul este un obiect care permi te introducerea
datelor, afiarea acestora sau control ul ntregii aplicaii.
+ntero!area este un obiect care permi te vizualizarea
informa i i l or obinute prin prelucrarea datelor din una sau mai
mul te tabele i/sau cereri de interogare.
/aportul este un obiect care permi te formatarea i
tipri rea informa i i l or obi nute n urma consul tri i bazei de
date sub form de documente.
.a!ina =eb de accesare a datelor reprezint un obiect
care include un fiier HTML i alte fiiere suport n vederea
furnizrii accesului la date prin intermedi ul browser- elor
nternet.
Comanda ,acro reprezint un obiect care conine o
defini i e structurat a uneia sau mai mul tor aciuni pe care
Access le realizeaz ca rspuns la un eveni ment.
,odul ul reprezint un obiect care conine proceduri
defini te de utilizator i scrise n limbaj ul de programare Visual
- 70 -
Baze de dat e
Basic.
- 71 -
Baze de dat e
$.1. 1. O+iect e ti# ta+el
Tabelele consti tui e obiectel e fundamental e ale unei baze
de date Access. ntr- un tabel se stocheaz att descrierea
structuri i tabelei ct i nregistrri l e de date.
Gestiunea tabelelor (creare, modi ficare, vizualizare,
tergere) unei baze de date Access se poate realiza din
seciunea 2abele a ferestrei bazei de date. n aceast seciune
se gsesc controalel e specifice care permi t crearea,
modificarea sau vizualizarea structuri i unui tabel.
Un tabel se poate crea n mai mul te moduri :
alegnd comanda 2able din meniul %nsert , caz n care se
poate alege una din opiunil e din figura 4.1.
folosind legturi le salvate n fereastra bazei de date
(&reare tabel 'n modul <izualizare proiect, &reare tabel
utiliz(nd ?#pertul, &reare tabel prin introducere de date )
Figura 4.1.
Apelnd opiunea <izualizare proiect , utilizatorul stabilete
absolut toi parametri i necesari pentru descrierea structuri i
unui tabel: numel e cmpuri lor, tipuril e de date ale acestora,
reguli de validare. Fereastra Access de descriere a tabelei
(figura 4.2.) este format din dou zone:
zona a n care se definesc cmpuril e din structura
tabelei;
zona b n care sunt precizate proprieti l e acestora.
- 72 -
Baze de dat e
Figura 4.2.
4. 1. 1. a. Descr i er e a cmp u r i l o r
a) 3umele c(mpul ui
Numele unui cmp trebuie s respecte urmtoarel e reguli:
poate s coni n litere (majuscule sau minuscule, sau
ambele tipuri ), cifre i numeroase caractere speciale;
poate s coni n maxi mum 64 de caractere;
este interzis utilizarea caracterel or: punct (.), semnul
exclamri i (!), parantezele drepte ([ ]).
numel e cmpul ui nu poate s nceap cu un spai u.
b) 2ipul de date al c(mpul ui
Utilizatorul are la dispozi ie nou tipuri de date de baz :
2e#t, :emo, 3umr, *atL8r, :oned, )uto3umerotare,
*aL3u, 8biect 8.?, MyperlinB, ?#pert &utare . Pentru unele
din aceste tipuri de date exist subtipuri de date, n funcie de
necesi ti. Subtipuril e se configureaz n zona de jos a
ferestrei, la seciunea %eneral .
Tipurile i subti puri le de date sunt prezentate n tabel ul
urmtor:
- 73 -
Baze de dat e
2abelul N
5ip de date Subti p de date Descri ere
Text Tip de date alfanumeric, de lungi me maxi m
255. mplici t Access propune dimensiunea
(proprietatea Dimensiune cmp) 50 pentru un
cmp de tip text.
Memo Tip de date alfanumeric n lungi me de 65535
caractere.
Numr Octet Tip de date ntreg cu plaja de valori admis
ntre 0 i 255. Spaiul ocupat de acest cmp
este de 1 byte.
(tip de date ntreg Tip de date ntreg cu valori cuprinse ntre
-32768 i +32768. Ocup 2 bytes.
numeric) ntreg lung Tip de date ntreg cu valori cuprinse ntre
-2147483647 i +2147483647. Ocup 4 bytes.
Simpl precizie Tip de date cu plaja de valori cuprins ntre
-3,4028x10
38
i 3,4028x10
38
. Ocup 4 bytes i
are precizia de 7 zecimale.
Dubl precizie Tip de date cu plaja de valori cuprins ntre
-1,79769x10
308
i 1,79769x10
308
. Ocup 8 bytes
i are precizia de 15 zecimale.
D Reproducere Tip de date GUD (Global Unique Dentifier).
Ocup 16 bytes i se folosesc pentru cmpurile
care sunt chei externe ale cror chei primare
sunt de tipul Autonumerotare, D Reproducere.
Zeci mal Tip de date cu plaja de valori ntre -10
28
i
+10
28
. Ocup 12 bytes i are precizia de 28
zecimale.
Dat/Or Memoreaz date calendaristice i ocup 8
bytes.
Moned Tip de date numeric, care opereaz cu maxi m
patru zecimale i maxi m 15 poziii n stnga
punctul ui zecimal. Ocup 8 bytes.
AutoNumerotar
e
ntreg lung Tip de date care i atribuie automat valori la
crearea unor noi nregistrri. Ocup 4 bytes.
D Reproducere Tip de date care i atribuie automat valori de
tip GUD. Ocup 16 bytes.
Da/Nu Tip de date logic, care poate lua dou valori:
adevrat (valoarea 1) sau fals (valoarea 0).
Ocup 1 byte.
Obiect OLE Tip de date care poate s includ imagini,
documente Word, foi de calcul Excel, cu
dimensiunea maxi m d 1 GB. Nu poate fi cheie
i nici nu poate fi index.
- 74 -
Baze de dat e
Hyperlink Sir de caractere care poate memora o adres
WEB, ce va fi utilizat sub forma de hyperlink.
&ontinuare tabel N
5ip de date Subti p de date Descriere
Expert cutare Cmpuri ale cror valori vor fi completate
automat prin selecia dintr- o list simpl de
valori (List Box) sau dintr- o list derulant de
valori (Combo Box).
n zona b a ferestrei (%eneral i *ist de opiuni ) se pot
stabili valori pentru dou categori i de proprieti :
proprieti pe care le au toate cmpuri le;
proprieti specifice anumi tor cmpuri , n funci e
de tipul de date.
Proprieti din categoria %eneral :
Dimensiune cmp stabilete dimensiunea maxi m
admis pentru tipuril e de date Numr, AutoNumerotare, Text.
Format stabilete formatul de afiare a unui cmp.
Aceste formate se pot defini
de utilizator cu ajutorul unor
secvene speciale de
caractere. Exist i formate
predefi ni te de afiare. n
figura 4.3. sunt prezentate
formatel e predefi ni te de
afiare pentru numere. Pe
lng aceste formate
predefi ni te se mai pot
utiliza anumi te combi nai i speciale de caractere.
Figura 4.3.
Astfel caracterul ,; permi te mpri rea formatul ui de afiare
n patru zone corespunztoare modul ui de afiare al
numerel or poziti ve, negati ve, al numrul ui zero i al valorii
3ull . Alte caractere ce se pot utiliza ntr- un format de afiare
al unui cmp numeric: ,. punctul , ca separator zecimal; ,,
virgula, separatorul miilor; ,0 sunt afiate cifre sau zero;
, # sunt afiate cifre sau spaiu; ,$ este afiat caracterul
$; ,% este afiat caracterul procent; ,E+, ,e+ , ,E- , ,e-
stabilesc formate de afiare n format tiini fic.
Formatel e predefi ni te de afiare pentru cmpuri le de tip
Dat/Or sunt prezentate n figura 4.4. Caractere care se pot
utiliza ntr- un cmp de tip Dat/Or: ,: separatorul pentru
ti mp i ,/ separatorul pentru dat calendaristic. Alte
caractere ce pot fi utilizate: ,d afieaz ziua sub form de
- 75 -
Baze de dat e
valori de la 1 la 31; ,dd
afieaz ziua sub form de
valori de la 01 la 31; ,ddd
sunt afiate pri mel e trei
caractere din numel e zilei;
,dddd este afiat numel e
complet al zilei; ,w ziua
este afiat ca valoare din
sptmn de la 1 la 7;
,ww este afiat numrul
sptmni i n an, de la 1 la 53; ,m este afiat numrul lunii
din an, de la 1 la 12; ,mm este afiat numrul lunii din an
de la 01 la 12; ,mmm sunt afiate pri mel e trei caractere din
numel e unei luni; ,mmmm este afiat numele complet al
lunii; ,y este afiat numrul zilei din an; ,yy sunt afiate
ulti mel e dou caractere din an de la 01 la 99; ,yyyy anul
este afiat complet; ,q data este afiat ca numrul
tri mestrul ui din an, de la 1 la 4; Figura 4.4.
, h ora este afiat prin numere de la 0 la 23; ,hh ora
este afiat prin numere de la 00 la 23; ,n minutel e sunt
afiate prin numere de la 0 la 59; ,nn minutel e sunt afiate
prin numere de la 00 la 59; ,s secundele sunt afiate prin
numere de la 0 la 59; ,ss secundele sunt afiate prin
numere de la 00 la 59; ,AM/PM, ,am/pm sau ,A/P, ,a/p
este afiat AM, am, A sau a pentru pri mele 12 ore ale zilei i
PM, pm, P sau p pentru ulti mel e 12 ore ale zilei.
Pentru cmpuril e de tip
Da/Nu, formatel e de afiare
predefi ni te sunt:
Adevrat/Fals, Da/Nu,
Activat/Dezact.
n cazul cmpuri lor de
tip logic se pot crea formate
defini te de utilizator cu
ajutorul caracterul ui ,; , dar
efectul acestora se poate observa numai dac se utilizeaz
controale de Figura 4.5.
tip caset de text (Text box).
n cazul cmpuri lor de tip Text sau Memo nu exist
formate predefi ni te de afiare, ns prin intermedi ul unor
caractere, utilizatorul i poate stabili propriile formate. Exist
dou zone pentru aceste formate, acestea fiind deli mi tate de
caracterul ,; . Prima zon stabilete formatul propri u- zis de
afiare al coni nutul ui cmpul ui, iar a doua zon stabilete
formatul de afiare n cazul valorile vide sau Null. Caracterel e
ce pot fi folosi te pentru cmpuril e de tip Text sau Memo sunt:
- 76 -
Baze de dat e
,@ este obligatori e introducerea unui caracter sau spai u;
,& nu este obligatori e introducerea unui caracter; , >
transform toate caracterele n majuscule, indiferent de modul
de tastare; , < transform toate caracterel e n minuscule,
indiferent de modul de tastare.
Exempl u: BCDFara dateD va afia irul introdus cu
caractere majuscule, iar n cazul n care nu este introdus un ir
va afia textul Fara date .
<ecimal e stabilete numrul de zecimale utilizat pentru
afiarea unui numr. Valorile posibile sunt )uto (numrul este
afiat cu attea zecimale cu ct a fost calculat) sau se poate
seta numrul de zecimale de la 0 la 15.
,asc +ntrare stabilete o masc, un ablon de
introducere a datelor pentru un anumi t cmp. La fel ca i n
cazul proprieti i 5ormat , exist o serie de caractere prin care
se stabilete acest format de introducere a datelor.
Proprietatea :asc %ntrare pune la dispozii a utilizatorul ui
cteva mti predefi ni te, dar i posibili tatea defini ri i unor
mti personalizate. Microsoft Access interpreteaz
caracterele din defini i a propri eti i :asc intrare aa cum se
prezint n tabel ul 7. Pentru definirea unui caracter literal, se
introduce orice caracter diferi t de cele prezentate n tabel,
inclusiv spaii i simboluri. Pentru definirea unuia dintre
urmtoarel e caractere drept caracter literal, se pune naintea
caracterul ui respecti v o bar oblic invers (\).
2abelul O
Caracter Descri ere
0 Cifr (0 pn la 9, introducere obligatorie; semnele plus [ +] i
minus [- ] nu sunt permise).
9 Cifr sau spaiu (introducerea nu este obligatorie; semnele plus i
minus nu sunt permise).
# Cifr sau spaiu (introducerea nu este obligatorie; poziiile
necompletate transformat e n spaii, semnele plus i minus sunt
permise).
L Liter (A pn la Z, introducere obligatorie).
? Liter (A pn la Z, introducere opional).
A Liter sau cifr (introducere obligatorie).
A Liter sau cifr (introducere opional).
& Orice caracter sau un spaiu (introducere obligatorie).
C Orice caracter sau un spaiu (introducere opional).
. , : ; - / Caracterul de separare pentru zecimale sau mii, separatori de
dat i or. (Caracterul utilizat n mod curent depinde de setrile
regionale precizate n Control Panel din Microsoft Windows).
< Determi n transformarea n litere mici a tuturor caracterelor care
- 77 -
Baze de dat e
urmeaz.
> Determi n transformarea n majuscule a tuturor caracterelor care
urmeaz.
! Determi n masca de intrare s afieze de la dreapta la stnga i
nu invers. Caracterele tastate n masc sunt ntotdeauna
completate de la stnga la dreapta. Semnul de exclamare poate fi
plasat oriunde n masca de intrare.
\ Determi n afiarea caracterului care urmeaz ca fiind caracter
literal. Utilizat pentru afiarea oricrui caracter listat n acest tabel
sub forma unui caracter literal (de exempl u, \A este afiat simplu
ca A).
- 78 -
Baze de dat e
&ontinuare tabel O
Caracter Descriere
Parol Setarea propriet i i :asc intrare pentru cuvntul Parol creeaz
o caset de dialog pentru introducerea parolei. Orice caracter
tastat n caseta text este memorat sub form de caracter dar este
afiat sub forma unui asterisc (*).
Tabelul 8 prezint cteva defini i i utile pentru masca de
intrare i exempl e de valori ce pot fi introduse n acestea.
2abelul P
Defini i e masc intrare -xempl e de valori
(000) 000- 0000 (206) 555- 0248
(999) 999- 9999! (206) 555- 0248
( ) 555- 0248
(000) AAA-AAAA (206) 555- TELE
#999 -20
2000
>L????L?000L0 VERDEGR339M3
MA R 452B7
>L0L 0L0 T2F 8M4
00000- 9999 98115-
98115- 3007
>L<?????????????? Maria Petre
SBN 0-&&&&&&&&&- 0 SBN 1-55615- 507- 7
SBN 0-13- 964262- 5
>LL00000- 0000 DB51392- 0493
*e!end stabilete un ir de caractere care va fi afiat n
ti tl ul unei coloane, n momentul introducerii datelor. Dac
aceast propri etate nu are nici o valoare irul afiat n titl ul
unei coloane este chiar numele cmpul ui.
9aloare implicit stabilete o valoare implic care este
propus n momentul n care se introduc date ntr- un tabel.
Exempl u: pentru un cmp care memoreaz codul SRUTA al
locali ti i , acesta are aceeai valoare pentru nregistrri l e
corespunztoare unei locali ti , prin urmare este
recomandabi l ca n proprietatea <aloare implici t s se
stabileasc valoare codului pentru nregistrri le respecti vei
locali ti . La introducerea datelor, valoarea acestui cod nu se
va mai tasta, fiind stabili t implici t.
- 79 -
Baze de dat e
/e!ul de validare definete o regul de validare
pentru un cmp, practic o expresie ce se va testa pentru
coninutul introdus ntr- un cmp. Dac o regul de validare a
unui cmp nu se
verific,
nregistrarea nu se
poate salva dect
dac se corecteaz
coninutul cmpul ui
n aa fel nct s se
verifice regula de
validare stabili t.
Expresia pentru
aceast propri etate
se poate scrie i n
mod asistat cu
ajutorul ferestrei
;enerator de e#presii (figura 4.6.), ce poate fi invocat cu
butonul . Figura 4.6.
Numele cmpuri lor dintr- o expresie $egul de <alidare
trebuie scrise ntre paranteze drepte [ ]. Se pot utiliza funcii
Acces, constante, operatori .
Exempl e de reguli de validare:
Q0 and CR00 stabilete valori posibile ntre 11 i
100;
%s 3ot 3ull cmpul trebuie s conin o valoare
$esita or >ucuresti sau S%n($esi ta/ >ucuresti )T
valoarea cmpul ui nu poate fi dect una din cele dou
CR*at e() data introdus trebuie s fie mai mic sau
egal cu data sistemul ui .
5ext de 9alidare definete un mesaj de ateni onare
care va fi afiat n momentul n care regula de validare
defini t n propri etatea $egul de validare este nclcat.
0bli!atori u poate lua valorile Da sau Nu,
corespunztoare valorilor adevrat sau fals i stabilete dac
valoarea unui cmp este obligatori e (Da) de introdus sau nu
(Nu). Pentru cmpuri le de tip 2e#t, :emo, MyperlinB este bine
s se utilizeze aceast propri etate n strns legtur cu
propri etatea Se permi te lun!i me zero care stabilete dac
este permis introducerea unui ir de lungi me zero.
+ndexat stabilete un cmp drept index. Valori posibile:
Nu; Da (cu dubluri); Da (fr dubluri).
4. 1. 1. b. De i ni r ea c!ei i pr i ma r e "i a i ndec"i l or
Orice tabel trebui e s posede o cheie pri mar ( .rimar4
- 80 -
Baze de dat e
Ee4 ), adic un cmp sau un grup de cmpuri care identi fic n
mod unic fiecare nregistrare. Dac utilizatorul nu stabilete o
cheie pri mar, Access stabilete una n mod implici t crend un
cmp de tip AutoNumerotare care va coni ne un numr unic
pentru fiecare nregistrare. Dei Access creeaz n mod
implici t o cheie pri mar, urmtoarel e raiuni recomand
utilizatorul ui s defineasc o cheie pri mar:
cheia pri mar este un index.
indecii realizeaz o clasificare a datelor dup unul sau
mai mul te cmpuri ceea ce are drept consecin creterea
vitezei de realizare a interogri l or.
la fiecare adugare a unei noi nregistrri , Access nu
autorizeaz nregistrri duble pentru cmpul cheie pri mar.
Microsoft Access afieaz datele n ordinea cheii
pri mare.
Crearea unei chei pri mare unice este denumi t n lumea
bazelor de date asigurarea integri ti i de enti tate.
Se pot
defini i indeci
mul ti pl i, care
funci oneaz pe
mai mul te
cmpuri
simul tan, cu
ajutorul
ferestrei
+ndexuri din
meniul 9ieF
(figura 4.7.).
Figura 4.7.
Pentru defini rea unei chei pri mare sau a unui index format
din mai mul te cmpuri , se scrie numel e indexul ui n coloana
3ume inde# , iar n coloana 3ume c(mp se vor alege cmpuri le
care formeaz cheia pri mar sau indexul.
Proprieti l e din fereastra ndexuri :
Primar: valoarea Da indic faptul c indexul este cheie
pri mar;
Unic: valoarea Da indic faptul c indexul va avea valori
unice, nefiind permise duplicatele; pentru o cheie pri mar
aceast propri etate are valoarea Da.
gnorare Null: valoarea Da indic faptul c sunt permise
valorile Null ntr- un index; pentru o cheie pri mar, aceast
propri etate are valoarea Nu.
- 81 -
Baze de dat e
O alt modali tate de a defini o cheie pri mar a unui tabel
este legat de selectarea cmpul ui, respecti v a cmpuril or
stabili te ca fiind chei pri mare, n <izualizare foaie de date
folosind bordura ferestrei de proiectare, urmat de selectarea
opi uni i 6rimary Uey din meni ul Edit al barei de instrumente
2able *esign .
4. 1. 1. c. De i ni r e a rel a i i l or di nt r e t abel e
Pentru a avea acces simul tan la datele din mai mul te
tabele ale aceleiai baze de date este necesar s se
defineasc relaiile standard dintre aceste tabele. Relaiile
ntre tabele se definesc pe baza valorilor unui cmp dintr- o
tabel utilizat drept cheie primar i a valorilor aceluiai
cmp dintr- o alt tabel, unde este utilizat drept cheie
extern . Access impune existena aceluiai tip de date pentru
cmpuri le care particip la o relai e. n cazul cmpul ui de tip
3umr , proprietatea *imensi une c(mp a celor dou cmpuri
trebuie s fie identic. Relaia dintre cmpuri le de tip Text
trebuie, n principi u, s foloseasc cmpuri de aceeai
lungi me. Se recomand ca stabilirea relaiilor ntre tabele s
se fac nainte de nregistrarea datelor. n S.G.B.D. Access
exist urmtoarel e posibili ti de realizare a relaiilor dintre
tabele:
relai a 676 &unu la unu' este cea mai simpl relaie
ntre dou tabele. n aceast relaie, unei valori a cmpul ui
cheie pri mar dintr- o tabel i corespunde o singur valoare
din cmpul folosi t drept cheie extern din cealal t tabel.
Tabelele aflate n aceast relaie se pot combi na ntr- o singur
tabel n care apar toate cmpuril e celor dou tabele. Relaiile
de acest tip nu sunt uzuale.
relai a 67n &unul la mai muli ' consti tui e tipul cel mai
rspndi t de relaii. Conform acestei relaii unei nregistrri
din tabela aflat n partea stng a relaiei i corespund dou
sau mai mul te nregistrri din tabela aflat n partea dreapt a
relai ei. Asocierea se bazeaz pe un cmp cheie pri mar unic
ntr- o tabel i un cmp cheie extern din cealal t tabel care
admi te valori duplicate.
relai a n76 &mai muli la unul' este opus relai ei 1:n.
Pentru a crea o relaie n:1 este suficient s se inverseze
relai a 1:n. De aceea se spune c relaia n:1 este reflexi v,
adic n:1 este reflexi a relai ei 1:n.
relai a m7n &mul i la mai muli ' nu poate fi expri mat
ca o simpl relai e ntre dou tabele. Aceast relaie se poate
expri ma prin intermedi ul unei a treia tabele care are relaii 1:n
i n:1 cu cele dou tabele.
Pe lng stabilirea relaiilor ntre tabelele unei baze de
- 82 -
Baze de dat e
date, Access permi te i specificarea unor reguli care foreaz
integri tatea datelor. Aceste reguli se numesc restrici i de
inte!ri t at e refereni al i permi t
conservarea intact a relaiilor dintre tabele. ntegri tatea
refereni al funci oneaz dup cmpul cheie. Acest sistem
verific n mod continuu cmpul cheie pri mar i extern la
fiecare operai e de adugare, tergere sau modi ficare a unei
nregistrri. Dac o schi mbare a unei chei afecteaz legtura
ntre tabele, sistemul avertizeaz c se violeaz regulile de
integri tate refereni al . Cnd dou tabele sunt legate printr- o
relai e, o tabel se numete printe i cealal t se numete
copil. ntegri tatea refereni al garanteaz c nu vor exista
nregistrri orfane, adic nregistrri copil fr o nregistrare
printe.
Definirea
legturi lor ntre tabele
se realizeaz din
meniul Tools apelnd
opi unea
Relationshi ps.
Ca efect va fi
afiat o fereastr cu
obiectel e bazei de date
(figura 4.8.) ce se pot
plasa n panou prin
selectarea obiectul ui i
apsarea butonul ui
)dugare .
Pentru a defini o legtur ntre dou tabel, trebui e s
existe compati bi li tate Figura 4.8.
ntre tipul de date al cheii pri mare i cel al cheii externe
corespunztoare.
Dup plasarea tuturor tabelelor n panoul de editare,
definirea propri u- zis a unei relaii se realizeaz prin selectare
i glisare dinspre cheia pri mar a unui tabel spre cheia
extern corespunztoare.
Dup realizarea acestei operai i, finalizarea defini rii unei
legturi se realizeaz n fereastra din figura 4.9.
- 83 -
Baze de dat e
Figura 4.9.
Opiunile din fereastra -ditare relaii au urmtoarea
semni ficai e:
+mpunere inte!ri t at e refereni al definete o
restrici e de integri tate refereni al . Nu se permi te
actualizarea valorii unei chei externe dac aceast valoare nu
exist deja n tabel ul unde aceasta este cheie pri mar.
Actualizare n cascad cmpuri corelat e
actualizarea valorii unei chei pri mare dintr- un tabel se
propag i n nregistrri l e din tabelele unde aceasta este
cheie extern.
Gter!ere n cascad cmpuri corelate tergerea
valorii unei chei pri mare are ca efect i tergerea
nregistrri lor din tabelele unde aceasta este cheie extern.
n caseta 2ip relaie : sunt prezentate tipuri le de legturi
care pot exista ntre tabele: Vnu1 la1unu i Vnu1 la1mai1 mul i .
Dac n aceast caset este afiat mesajul 3edefini t ,
nseamn c tipul de relai e nu poate fi defini t, cea mai
probabil eroare fiind incompati bi l i tatea ntre tipul de date al
cheii pri mare i cel al
cheii externe.
Butonul de
comand 2ip asociere
permi te defini rea unor
tipuri de relaii
particulare ntre tabele,
- 84 -
Baze de dat e
aa cum se observ n figura 4.10. Variantele 2 i 3 permi t
utilizarea implici t n interogri a join- urilor externe de tip
LEFT i RGHT, care presupun ntr- o interogare
Figura 4.10.
luarea n considerare a tuturor nregistrri l or dintr- un tabel,
indiferent dac au sau nu nregistrri corespondente dup
cmpul (cmpuri le) de legtur n cellal t tabel. n exempl ul
prezentat n figura 4.10. este posibil o interogare ntre cele
dou tabele, n care vor fi luate n considerare toate
nregistrri le din tabel ul ,FSA CORPULU DE PROPRETATE,
indiferent dac au sau nu corespondent n tabel ul ,DATE
REFERTOARE LA CONSTRUC|.
$.1. 2 O+iect e ti# inteo"a e
nterogarea unei baze de date nseamn regsirea i
extragerea informai i l or stocate n aceasta. Pentru realizarea
interogri lor SGBD Access pune la dispozii a utilizatoril or
obiecte de tip cereri (query). Rezultatul cererii se prezint sub
forma unei foi de rspuns dinamic care poart numele de
DynaSet. O cerere poate avea drept surs de date una sau
mai mul te tabele ale bazei de date sau chiar o alt cerere
creat anterior.
O interogare Access poate fi utilizat pentru:
regsirea i ordonarea datelor dup anumi te criteri i;
efectuarea de calcule;
actualizarea bazei de date (prin cereri de tip aciune);
pregti rea datelor n vederea afirii lor n formul are sau
rapoarte.
Access ofer utilizatoril or posibili tatea construi ri i
urmtoarel or tipuri de cereri (interogri ):
intero!ri de selecie care permi t extragerea de date
din una sau mai mul te tabele i/sau cereri, precum i
efectuarea de calcule;
intero!ri de analiz ncruci"at care permi t
sintetizarea datelor i a rezul tatel or obi nute din calcule, sub
forma unei foi de calcul tabelar;
intero!ri tip aciune cu funci a de creare de noi
tabele i de actualizare a bazei de date.
4. 1. 2. a. #per a i i pr i $i n d un obi ec t de ti p i nt er o % a r e
Operaiile privi nd obiectel e de tip interogare se refer la
crearea , executarea (acti varea interogri i i afiarea
datelor), respecti v modificarea acestora.
&rearea unui obiect de tip interogare
Crearea unei cereri
de selecie se poate
- 85 -
Baze de dat e
realiza n mod grafic (mod implici t) sau n mod SQL (prin
construi rea unui bloc de cerere folosind limbaj ul declarati v
Structured )uery *anguage). n acest capitol se va prezenta
modul de construi re al unei interogri a bazei de date folosind
interfaa grafic Access. Prezentarea modul ui de construi re a
cererilor folosind limbaj ul SQL va face obiectul capitol ul ui
urmtor.
Access ofer mai mul te modali ti de creare a cererilor.
Activarea casetei de dialog Figura 4.11.
%nterogare nou (figura 4.11.) se realizeaz prin selectarea
opi uni i -uery din meniul %nsert .
Apelnd opiunea <izualizare proiect se acti veaz fereastra
Afiare tabel (figura 4.12) care ofer posibili tatea precizrii
sursei de date pentru construi rea cererii. Sursa de date pentru
o cerere poate fi reprezentat de una sau mai mul te tabele,
interogri sau ambele. Se vor selecta tabela/tabel el e i/sau
cererile surs i se va aciona butonul )dugare pentru a
realiza aducerea acestora n fereastra de proiectare a cererii.
La nevoie se poate redeschide fereastra folosind opiunea
,7o4 2able din meni ul -uery .
- 86 -
Baze de dat e
Grila -uery *esign
conine urmtoarel e linii:
&(mp pentru definirea
numel ui atri butul ui
selectat; 2abel
destinat precizrii sursei
de date; ,ortare
permi te precizarea
sensului sortri i pentru
atributul din coloana
respecti v; )fiare
permi te inhibarea afirii
realizrilor cmpul ui
respecti v; &riterii ofer posibili tatea precizrii criteriil or
Figura 4.12.
de selecie prin introducere expresiilor Access
corespunztoare; ,au permi te precizarea mai mul tor criteri i
de selecie folosind operatorul 0/.
Figura 4.13.
Pentru defini rea interogri i de selecie se parcurg
urmtoarel e etape:
selectarea atri butul ui dori t din tabela/i nterogarea aflat
n panoul superior, operai e ce se poate efectua prin dublu clic
de mouse asupra atri butul ui sau prin selectarea i glisarea
(drag- and- drop) acestuia din panoul superior n linia &(mp .
- 87 -
Baze de dat e
Pentru selectarea tuturor atributel or din tabela surs se poate
efectua un dublu clic de mouse pe numele tabelei sau s se
trag asteriscul apari nnd tabel ul ui surs n linia Cmp. n
mod implici t antetul coloanelor este reprezentat de numel e
atributul ui, dar dac se dorete o nou etichet pentru un
atribut, se plaseaz mouse- ul n linia Cmp naintea numel ui
atributul ui, se tasteaz eticheta dori t urmat de caracterul
,: .
se precizeaz criteri ul de selecie (n mod implici t se
returneaz realizrile tuturor tupl uri lor pentru atri butel e
specificate) prin introducerea unei expresii Access valide n
rndul &riterii (eventual i n rndul ,au). ntroducerea unei
expresii Access se poate face prin tastare sau se construiete
prin intermedi ul ;eneratorul ui de ?#presii (figura 4.6.), a crui
fereastr se deschide selectnd opi unea >uild a meniul ui
contextual pe care l acti vai printr- un clic dreapta de mouse
n rndul &riterii .
se precizeaz, dac este necesar, cmpul /cmpuri l e
dup care se dorete o eventual sortare i sensul acesteia n
linia Sortare.
n privi na cererilor de selecie care au ca surs mai mul te
tabele trebui e precizat c, n mod implici t, Access utilizeaz
operai a de
echicompunere, fapt
ce conduce la
selectarea
nregistrri lor ce au
corespondent n
ambele tabele
(interogri de tip
%nner Woin). Dac se
dorete realizarea
unei interogri de tip
8uter Woin (folosind operai a
de compunere extern) se va efectua dublu clic asupra liniei
de legtur Figura 4.14.
ntre tabele i n caseta 6roprieti asociere (figura 4.14.) se
poate preciza selectarea tuturor nregistrri lor din una din
tabele, indiferent dac au sau nu corespondent n cealal t
tabel.
?#ecutarea interogri i de aciune
Aceasta se poate realiza utiliznd butonul <izualizare
(pri mul din bara de instrumente), sau butonul $un din bara
de instrumente.
Revenirea n modul *esign se realizeaz prin activarea
- 88 -
Baze de dat e
butonul ui *esign <ie4 sau selectnd din meniul <ie4
opi unea *esign <ie4.
&(mpuri calculate 'n interogri de selecie
nterogri le de selecie pot cuprinde i cmpuri calculate.
Aceste cmpuri returneaz, la executarea interogri i, valoarea
expresiilor Access asociate lor. Pentru a aduga un cmp
calculat ntr- o interogare se tasteaz numel e acestuia ntr- o
nou coloan din grila -uery *esign , se adaug dou puncte
,: i apoi se completeaz expresia dori t. nterogarea din
figura 4.15. calculeaz diferena dintre suprafaa din
msurtori i suprafaa din acte.
Figura 4.15.
Elementel e unei expresii Access sunt: operatori ,
constant e , identi ficatori i funcii .
Operatorii se pot clasifica n:
aritmeti ci : +,- ,*,/, Mod (returneaz restul mpri ri i la un
ntreg) i ^( ri di care la putere).
de atribui re i comparare : =, <, >, <=, >=, <>. Acetia
returneaz valori logice Adevrat sau Fals.
logici : And, Or, Not.
de
concatenare a
irurilor de
caractere: +, &
de
identi ficare : ! i .
(punct). Aceste
dou caractere
sunt utilizate ca
- 89 -
Baze de dat e
separatori care combin numele coleciilor de obiecte cu
numel e obiectelor sau deosebesc numele obiectel or de cele
ale proprieti l or.
ali operatori : %,, .%U?, %3, >?2X??3
Figura 4.16.
Operatorul >?2X??3 se folosete pentru a selecta
nregistrri le dintr- un anumi t interval de ti mp. n figura 4.16.
sunt afiate numerel e cadastrale care au fost emise n
interval ul 01.01.2003 31.12.2003.
Expresiile Access utiliznd operatorul .%U? permi t
specificarea unor criteri i de selecie prin cutarea unui ir ntr-
un text. n interiorul textul ui se pot folosi caracterel e generice
H (poate nlocui orice caracter n
poziia n care apare) i I (orice n poziia n care apare i n
urmtoarel e).
Figura 4.17.
Spre exempl u expresia Like*escu din figura 4.17. va
permi te selecia tuturor numel or propri etari l or termi nate n
,escu. Operatorul N precizeaz mul i mea de valori admise
pentru un atri but. nterogarea din figura 4.17. va selecta toi
propri etari i a cror nume se termi n n ,escu i dei n
propri et i care au pri mi t numere cadastrale n zona
deli mi tat de planele 6-A-1 i 6-B-2.
onstant el e utilizate n construi rea expresiilor Access pot
fi de natur numeric (exempl u: 636620, 19), te#t (exempl u:
Niculae Daniela, 182) sau dat calendaristic (exempl u:
#11/13/2003# ce indic data de 13 noiembri e 2003).
!denti ficatorii sunt nume de obiecte Access (tabele,
atribute, formul are, etc.) ca de exempl u Forms![Form FSA
- 90 -
Baze de dat e
CORPULU DE PROPRETATE]![Numar cadastral ].
Prin intermedi ul identi ficatori l or se pot prelua valori pentru
definirea criteriil or de pe formul are create anterior.
"unciile pot fi de natur:
matemati c : ABS() returneaz valoarea absolut a
unui numr, NT() returneaz partea ntreag dintr- o valoare
numeric, ROUND() rotunj ete o valoare cu un anumi t numr
de zecimale, SUM() calculeaz suma, AVG() - calculeaz
media, etc.
de tip te#t : Len() returneaz lungi mea unui ir, Trim()
elimi n spaiile de la nceputul i de la sfri tul unui ir, Left()
returneaz pri mel e n caractere de la nceputul unui ir;
dat calendaristic : Date() returneaz data curent;
Month(Date()) returneaz numrul lunii calendaristice
curente; Year(Date()) returneaz anul curent.
financiare : PV() returneaz valoarea actual a unei
anui ti plti te n rate periodice egale, SLN() returneaz
valoarea amortizrii unui mijloc fix dup o anumi t perioad
(amorti zare liniar) etc.
funci i diverse : SNUMERC(), SNULL(), etc.
4. 1. 2. b. &ar a me t r i ' a r e a i nt er o % ( r i l o r
nterogri le de selecie prezentate pn n acest moment
returneaz ntotdeauna tupluril e din tabelele surs cate
corespund unei anumi te cereri fixe: toate numerele cadastrale
emise ntr- o anumi t perioad de ti mp sau toi proprietari i
care au pri mi t numere cadastral e ntr- o anumi t zon. De
mul te ori ns, ar fi util o interogare al crei criteri u de
selecie s poat fi precizat la nivel general i particul arizat de
utilizator n funcie de necesi ti l e sale de informare
(precizndu- se concret ce realizri ale atri butul ui sunt
cutate) chiar n momentul execui ei cererii.
- 91 -
Baze de dat e
Figura 4.18.
O astfel de interogare se caracterizeaz prin faptul c n
grila *esign , pe coloana dori t, n linia &riterii , se va preciza
ntre paranteze drepte un mesaj ce urmeaz a fi afiat la
executarea cererii, permi nd utilizatorul ui s introduc
criteri ul de selecie dori t. Parametri i pot fi utilizai nu doar n
rndul de criterii, ci i n formul ele cmpuri lor calculate, dac
se dorete introducerea unui termen variabil n expresii.
Exempl ul din figura 4.18. prezint o cerere care va solicita
utilizatorul ui numele proprietarul ui , urmnd a afia numel e
acestuia i numrul sau numerele cadastral e ce i revin.
4. 1. 2. c. ) nt e r o % ( r i de si nt et i ' ar e a dat el or
Access permi te utilizatori lor realizarea unor interogri prin
intermedi ul crora se pot aplica funcii unor nregistrri
grupate dup criterii prestabili te. Prin intermedi ul acestor
interogri de sintetizare a datelor se pot construi cu uurin
cereri care s returneze total ul, media, mini mul sau maxi mul
unor grupuri de tupluri.
Pentru a realiza o interogare de sintetizare a datelor se vor
aduce n grila Query Design cmpuri le necesare, adugndu-
se eventual cmpuri le calculate, dup care se va apsa
butonul Totals din bara de instrumente. Ca rezul tat al
acestei operaii, n grila Query Design va fi disponi bil un nou
rnd inti tul at 2otal . n mod implici t toate coloanele vor avea
selectat opi unea ;rupare dup . Aceast opi une va rmne
selectat pentru cmpuri le de grupare, urmnd ca pentru
celelal te cmpuri s fie selectat din lista de selecie funci a
dori t.
Lista de selecie coni ne nou funcii agregat ce sunt
- 92 -
Baze de dat e
prezentate n tabelul 9.
2abelul Y
Funci a /eturneaz 5ipul de cmpuri pent ru care se
poat e aplica
Sum Suma valorilor Numr, Dat/Or, Moned,
AutoNumerotare
Medie Media arit meti c Numr, Dat/Or, Moned,
AutoNumerotare
Min Valoarea mini m Numr, Dat/Or, Moned,
AutoNumerotare
Max Valoarea maxi m Numr, Dat/Or, Moned,
AutoNumerotare
Contor Numr total de valori Toate tipurile
StDev Deviaia standard a
valorilor
Numr, Dat/Or, Moned,
AutoNumerotare
Var Variana valorilor Numr, Dat/Or, Moned,
AutoNumerotare
Prim Prima valoare Toate tipurile
Ulti m Ulti ma valoare Toate tipurile
Pe lng aceste funci i mai sunt disponibile opi uni le
?#presie i Vnde. Opiunea ?#presie se va utiliza pentru
cmpuri le calculate ce returneaz un singur rezul tat la nivelul
grupul ui. Opiunea Vnde se va folosi n cazul n care un cmp
trebuie utilizat pentru a preciza anumi te criterii de selecie,
dar nu se dorete efectuarea grupri i dup cmpul respecti v.
Un cmp pentru care a fost selectat opiunea Vnde nu mai
poate figura n rezul tatel e interogri i.
Figura 4.19.
nterogarea din figura 4.19. va afia suma parcelelor din
- 93 -
Baze de dat e
cmpul ,Suprafaa din msurtori i care ndeplinesc condi ia
urmtoare: au aria mai mare de 200 mp.
4. 1. 2. d. )nt er o % ( r i de anal i '( *ncr uci "a t (
nterogri le de tip tabel ncruciat ( &ross2ab -uery ) sunt
extrem de utile n scopul analizei mul ti di mensi onal e a datelor
permi nd obi nerea unor situaii sintetice asemntoare
tabelelor pivot consacrate de procesoarele de tabele
(Microsoft Excel, etc.). Access permi te elaborarea unor tabele
n care gruparea i ordonarea datelor se realizeaz att pe linii
ct i pe coloane, la intersecia crora se pot efectua calcule
complexe. Etapele ce trebuie parcurse pentru realizarea unei
interogri de analiz ncruciat sunt:
1. Elaborarea unei interogri de selecie n modul *esign
<ie4. Se vor alege tabelele ce conin datele i se vor selecta
cmpuri le dori te pentru afiare i eventual el e cmpuri pentru
care se vor impune restrici i.
2. Se va selecta opiunea &ross2ab -uery din meniul
-uery , care va avea ca efect apari ia rnduri lor 2otal i 2abel
'ncruciat n grila interogri i.
3. Se va specifica modul de agregare al datelor, respecti v
funci ile totalizatoare n linia 2otal .
4. n linia 2abel 'ncruciat se va opta pentru )ntet r(nd n
cazul cmpuri lor ce vor fi afiate pe liniile tabel ul ui, 2itlu
coloan pentru cmpul ce va fi afiat pe vertical i <aloare
pentru valorile ce vor fi afiate la intersecia liniilor cu
coloanele. Este permis existena mai mul tor cmpuri
ordonate pe orizontal ()ntet r(nd ), dar a unui singur cmp
2itlu coloan i a unui singur cmp <aloare .
- 94 -
Baze de dat e
n figura 4.20 se prezint modul de obinere a numrul ui de
lucrri efectuate de persoanele autorizate pe ani. Se observ
c s-a folosi t funci a dat calendaristic Year (Date()) pentru
afiarea coloanelor i funci a Contor pentru numrarea
lucrrilor efectuate de fiecare persoan autorizat.
Figura 4.20. nterogare de analiz ncruciat i rezultatul acesteia
4. 1. 2. e. )nt er o % ( r i ti p ac i un e
Access pune la dispozi ia utilizatori lor o categorie distinct
de interogri care permi t mani pul area i actualizarea datelor.
Aceste interogri pot avea ca rezul tat:
a) Crearea de noi tabele (nterogare creare tabel)
b) Actualizarea datelor (Update Query)
c) Adugarea de noi nregistrri (Append Query)
d) Stergerea nregistrri lor (Delete Query)
Modul de elaborare a unei interogri tip aciune este
similar celui prezentat n cazul interogri l or de selecie, avnd
- 95 -
Baze de dat e
ca etap supli mentar specificarea explici t prin intermedi ul
meniul ui Query a tipul ui de cerere dori t.
a) %nterogri pentru crearea de noi tabele
Crearea de noi tabele pe baza nregistrri lor din tabelele
deja existente presupune parcurgerea urmtoarel or etape:
1. Elaborarea unei interogri de selecie n modul *esign
<ie4 n care vor fi luate n calcul doar cmpuril e din structura
noii tabele.
2. Apelarea din meniul -uery a opi uni i %nterogare creare
tabel i specificarea n caseta Creare tabel a numel ui noii
tabele (se poate opta pentru crearea noii tabele ntr- o alt
baz de date bifnd opi unea )lt baz de date i specificnd
numel e fiierul ui).
3. Lansarea n execuie a interogri i.
Figura 4.21.
Trebuie meni onat c tabela rezul tat va moteni doar
tipuri le de date i dimensiunil e cmpuri lor din tabelele surs,
nu i cheia pri mar sau eventual el e propri et i la nivel de
cmp sau tabel. Dac se specific n caseta &reare tabel
numel e unei tabele deja existente, vechea tabel cu acelai
nume va fi tears naintea generrii celei noi.
b) %nterogri pentru actualizarea datelor
Acest tip de interogri permi t modificarea valorilor datelor
din unul sau mai mul te cmpuri ale nregistrri lor care satisfac
restricii le impuse de utilizator.
Pentru a realiza o interogare de tip Vpdate este necesar
selectarea n modul *esign <ie4 a cmpuri lor ce vor fi
actualizate, dup care se va apela din meni ul -uery opiunea
Vpdate -uery .
- 96 -
Baze de dat e
Figura 4.22.
Ca rezul tat al acestei operai i va deveni disponibil linia
)ctualizare la9 n care se va completa formul a de calcul sau
valoarea dori t pentru actualizare.
Pentru exempl i ficare, am presupus c suprafaa terenul ui
din act al propri etarei ,Petre Elena a fost nregistrat eronat,
cu 2 m
2
mai pui n. Pentru actualizarea valorii acestei suprafee
s-a realizat interogarea din figura 4.22.
c) %nterogri pentru adugarea de 'nregistrri
nterogri le pentru adugare ofer utilizatoril or
posibili tatea inserrii de noi nregistrri n tabele porni nd de la
nregistrri le existente. Se parcurg aceeai pai ca n
interogri le precedente, cu deosebirea c din meni ul -uery se
va selecta opi unea )ppend -uery . Transformarea interogri i
de selecie ntr- o interogare de adugare va avea ca efect
apari i a rndul ui )dugare la9 n fereastra de proiectare a
interogri i. n acest rnd se va specifica pentru fiecare cmp
din tabela ce conine datele denumi rea cmpul ui
corespondent din tabela unde vor fi adugate.
- 97 -
Baze de dat e
Figura 4.23.
n figura 4.23. am adugat n tabelul ,Evi dena datri i
numerel or cadastral e pe anul 2003 cmpuril e numr
cadastral i dat din tabel ul ,Fia corpului de propri etate,
adugnd pentru cmpul dat criteri ul de restrici e anul 2003.
d) %nterogri pentru tergerea de 'nregistrri
nterogri le aciune de tip *elete ofer posibili tatea
elimi nrii mai mul tor nregistrri din tabele pe baza unor
criterii impuse de utilizator.
Aciunea interogri l or de tergere acompaniat de opi unea
de tergere n cascad configurat n fereastra $elations7i ps
poate conduce la tergerea simul tan a datelor din mai mul te
tabele. Pentru a realiza o interogare de tergere se elaboreaz
n mod normal o cerere selectndu- se cmpuri le dori te i
- 98 -
Baze de dat e
impunndu- se restrici il e necesare dup care se apeleaz din
meniul -uery opiunea *elete .
Figura 4.24
$.1. 3. O+iect e ti# !omul a
n cadrul aplicaiilor cu baze de date, tabelele sunt
actualizate prin intermedi ul unor machete specializate numi te
formul are. Formul arel e asigur o interfa prietenoas cu
utilizatorul final, prin intermedi ul diferi tel or controale
(butoane, casete text, etc.). De asemenea permi t actualizarea
concomi tent a mai mul tor tabele prin intermedi ul
subformul arel or.
Formularele se pot clasifica dup diferi te criteri i:
a) dup sursa de date:
formul are legate (bound) permi t afiarea sau
actualizarea datelor din tabele;
formul are nelegate (unbound) destinate afirii sau
edi tri i unor date care nu sunt stocate n tabele (mesaje,
informa i i despre sistem, etc.)
b) dup modul de interaci une cu alte ferestre:
formul are modale nu permi t accesarea obiectelor
coninute n alte ferestre pn cnd nu sunt nchise sau
ascunse. Se mai numesc i formul are de dialog .
formul are nemodal e permi t acti varea / deschiderea
altor ferestre.
4. 1. 3. a. +r ear ea "i modi i c a r e a or mu l a r e l o r
Access pune la dispozii a proiectantul ui o serie de facili ti
n vederea crerii unui formul ar. Folosind opi unea 5orm din
meniul %nsert se poate opta pentru una din variantel e (figura
4.25.):
<izualizare proiect crearea formul arul ui fr asistena
unui expert;
?#pert formul ar utilizatorul va fi asistat la crearea
formul arul ui ;
- 99 -
Baze de dat e
)utoformul ar9 &oloane va genera automat un formul ar
sub form de coloane;
)utoformul ar9 2abele va genera automat un formul ar
sub form de tabele.
- 100 -
Baze de dat e
)utoformul ar9 5oaie de date va genera automat un
formul ar sub forma unei foi de date.
)utoformul ar9 6ivot2able va genera automat un
formul ar n modul de
vizualizare PivotTable
asemntoare tabelei pivot
generat de aplicaia Excel.
)utoformul ar9
6ivot&7art - va genera
automat un formul ar n
modul de vizualizare
PivotChart.
?#pert diagrame
utilizatorul va fi ndrumat n
crearea unui formul ar ce va afia datele sub form de grafic;
?#pert 6ivot2able Figura 4.25.
utilizatorul va fi ndrumat n crearea automat a unui formul ar
cu un PivotTable din Microsoft Excel.
Tehnica cea mai utilizat la crearea unui formul ar este
urmtoarea: ntr- o pri m faz, formul arel e sunt generate prin
?#pert formul ar sau )uto5ormul ar , dup care sunt deschise n
modul *esign (<izualizare proiect ) pentru a fi modificate,
astfel nct s corespund ct mai bine utilizatorul ui final.
Proiectarea formul arel or prin varianta ?#pert formul ar
presupune urmtoarel e etape:
1. Se selecteaz cmpuri le din sursa de date ce vor fi
afiate n formul ar.
2. Se alege tipul de formul ar (Columnar, Tabular,
Datasheet, etc.).
3. Se stabilete imaginea de fundal pentru formul ar
(Standard, Expedi i e, etc.).
4. n ulti ma etap se definete titl ul formul arul ui, precum i
modul care va fi deschis formul arul (pentru execuie sau
pentru modi ficare).
Varianta <izualizare proiect este mai puin folosit pentru
crearea formul arel or. Selectarea acestei opiuni are ca efect
generarea unui formul ar gol, n care utilizatorul i poate defini
propriile controal e.
Un formul ar are urmtoarea structur:
>ara de ti tl u care conine titl ul formul arul ui, butoanel e
de mini mizare, restaurare, nchidere.
>ordura definete chenarul ce va deli mi ta formul arul
pe ecran.
- 101 -
Baze de dat e
>arele de defilare vertical i orizontal.
)ntetul formul arul ui este folosit de regul pentru a
afia titl ul formul arul ui.
Figura 4.26.
)ntetul de pagin L ,ubsolul de pagin este o zon
care apare numai cnd formul arul este tipri t la impri mant.
Pentru a fi disponi bil n cursul proiectrii se selecteaz
opi unea 6age MeaderL5ooter din meniul <ie4.
,eciunea de detali u (*etaliere) va conine toate
controalele necesare afirii/edi tri i nregistrri l or.
>utoane de navigare sunt afiate numai n ti mpul
execui ei formul arul ui i pot fi folosite pentru deplasri n
cadrul nregistrri lor.
.ropriet i l e formul arel or pot fi accesate fie prin
intermedi ul ferestrei 6roprieti (acti vat prin opiunea
6roprieti din meniul <ie4), fie prin intermedi ul obiectelor de
tip macro sau limbaj ul VBA. ,etodel e pot fi accesate (att la
proiectare ct i n cursul execuiei) numai prin aciuni macro
sau din cadrul unor proceduri /funci i VBA.
Proprieti l e formul arul ui sunt mpri te n patru categori i:
- 102 -
Baze de dat e
5ormat coni ne atri bute privi toare la dimensi une,
aspect, coordonate de afiare ale formul arul ui ;
*ate grupeaz proprieti referi toare la sursa de date
i nregistrri le aferente;
?veni ment coni ne eveni mentel e ce pot fi tratate fie
prin proceduri sau funcii scrise n limbaj ul VBA, fie prin macro -
uri.
Altele coni ne diverse alte proprieti
Toate grupeaz proprieti l e din categoriil e
precedente.
4. 1. 3. b. +ont r o al e *n or mul a r e
Controalele sunt obiecte grafice (elemente vizuale) ce sunt
incluse n formul are sau rapoarte, n scopul editri i/afirii
datelor sau executri i unor aciuni (exempl e: etichete, casete
text, butoane, etc.). Adugarea controal elor se poate face
numai n etapele de creare sau modi ficare a formul arelor,
astfel:
o se selecteaz din fereastra 2oolbo# butonul aferent
control ul ui dori t;
o se descrie cu mouse- ul o zon dreptunghi ul ar pe
suprafaa formul arul ui , defini nd astfel poziia i dimensiunea
noului control.
Controalele pot fi clasificate n funci e de urmtoarel e
criterii :
a) rol
controale pentru edi tarea i afiarea datelor (exempl u:
casete text, etichete, etc.);
controale pentru executarea unor aciuni (exempl u:
butonul de comand);
controale pentru afiarea graficelor (exempl u: imagi ni,
obiecte cadru, etc.).
b) sursa de date
controale legate sunt controal e ce afieaz sau
edi teaz datele din cmpuri ;
controale nelegate sunt independente de realizrile
cmpuri lor, aadar nu permi t actualizarea acestora. Din
aceast categorie fac parte controalele calculate, dar i
controalele care prin natura lor nu pot fi ataate cmpuril or
(exempl u: butoane de comand, etichete, etc.).
c) structur
controale elementare (exempl u: butoane, etichete,
casete text);
- 103 -
Baze de dat e
controale contai ner nglobeaz alte controale
(exempl u: grup de opiuni ).
n ti mpul proiectri i, un control poate fi selectat prin
efectuarea unui clic pe control ul respecti v. Un control selectat
poate fi mutat, redi mensionat i ters. Pentru poziionarea
control ul ui, pointer- ul mouse- ului trebuie deplasat pe
margi nea control ul ui pn cnd va lua forma , dup care
folosind tehnica drag1 drop (selectare i glisare ), obiectul poate
fi mutat dup voie. n mod similar, pentru a muta un singur
control dintr- un grup de controal e selectate, mouse- ul trebuie
poziionat pe punctul de mutare, pn cnd pointer- ul va lua
forma , dup care control ul poate fi mutat folosind aceeai
tehnic drag- drop. Stergerea control ul ui selectat se face cu
ajutorul tastei C*el eteQ .
- 104 -
Baze de dat e
Principalele controal e disponibile n fereastra 2oolbo# sunt:
2abelul 0
$uto
n
Control Descriere
ndicator nstrument folosit la proiectarea controalelor
(selecie, repoziionare, redi mensionare, etc.).
Expert Activeaz/dezacti veaz utili tarele ?#pert folosite
la generarea unor controale (casete combinate,
etc.).
Eticheta Control cu coninut fix, folosit pentru afiarea
unor mesaje.
Caset text Control utilizat pentru afiarea i editarea datelor.
Butonul de comand Servete la declanarea unor aciuni.
Caset list Permi te selectarea unei valori dintr- o list
Caset combi nat Permi te att editarea unei valori ct i selectarea
acesteia dintr- o list derulant.
Butonul comutator
Butonul de opiune
Caseta de validare
Sunt controale folosite pentru editarea unor valori
de tip logic (Da/Nu, Adevrat/Fals).
Grupul de opiune Este un control container folosit pentru afiarea
unui set de alternati ve i poate grupa mai multe
tipuri de controale (buton de opiune, caset de
validare)
Deli mi tator de
pagin
mparte formul arul n mai mul te pagini, care pot
fi vizualizate cu tastele <PageUp> i
<PageDown>.
ndex Control container ce permi te gruparea altor
controale n mai multe pagini.
Linie
Dreptunghi
Controale ce servesc la trasarea diferitelor figuri
geometrice.
magine Permi te afiarea coninut ul ui unor fiiere grafice
(.bmp, .gif, .wmf, .pcx) pe fundalul formularul ui
Obiect cadru nelegat Va conine un obiect grafic (grafic, mul ti medi a,
document), importat dintr- o alt aplicaie
Windows.
Obiect cadru legat Conine un obiect stocat ntr- un cmp de tip 8.?
(Ob0ect LinBing and #mbeddi ng ) din tabela surs.
Subformul ar Permi te definirea unui subformul ar n cadrul
formularul ui curent
Alte controale Afieaz alte controale nregistrate ce pot fi
ataate formularul ui (controale ActiveX, etc.).
- 105 -
Baze de dat e
4. 1. 3. c. ,or mul a r e - s u b o r mu l a r e
Rolul subformul arel or este de actualiza mai mul te tabele
prin intermedi ul unui singur formul ar. Subformul arel e sunt
create n general pentru anumi te tabele dependente, din
cadrul unei relaii de tip 1-n. Definirea unui subformul ar
presupune nglobarea unui formul ar n cadrul altui formul ar,
pri mul deveni nd subformul ar, iar al doilea formul ar principal.
Pentru defini rea unui subformul ar, se deschide formul arul
principal, se acti veaz fereastra bazei de date i folosind
tehnica drag1 drop , se ,depune formul arul ce se dorete a fi
subformul ar n interiorul formul arul ui principal. De asemenea
se poate folosi la definirea unui subformul ar i control ul
,ubform din cadrul formul arul ui principal.
Orice modi ficare fcut ulteri or asupra subformul arul ui , ca
obiect de tip formul ar, se va reflecta automat i n formul arul
principal.
Formularele conin controal e de mai mul te tipuri, prin
urmare sunt considerate colecii de controal e. n Access,
accesarea unui element al unei colecii se face cu expresii de
genul:
3ume&oleci eZ3ume?lement
sau 3ume&oleci eSi nde#T
sau 3ume&oleci e(3ume?lement )
Chiar i formul arel e deschise la un moment dat apari n
unei colecii predefi ni te, numi t 5orms (accesibile din VBA).
Subformul arel e, n schimb, nu apari n acestei colecii, aa
nct pentru a face referi re la un subformul ar trebuie folosit
expresia:
3ume&ontrol,ubform.5ormZ3ume&ontrol
unde:
3ume&ontrol,ubform este numel e control ul ui de tip
subform din formul arul principal.
5orm este o propri etate a control ul ui subform care
conine o referin spre obiectul 5orm surs a control ul ui.
3ume&ontrol este numele control ul ui din subformul ar
la care se face referi re.
Referirea unui control dintr- un alt formul ar apare necesar
mai ales n cazul subformul arel or, pentru calculul
subtotal uri l or.
n figura 4.27 este prezentat subformul arul ,Date
referi toare la construci i din cadrul formul arul ui ,Fia corpul ui
de propri etate. Se observ crearea casetelor text n
seciunea )ntet formul ar pentru antetul tabelul ui ,Date
referi toare la construci i , precum i a casetei text ,Total n
- 106 -
Baze de dat e
seciunea ,ubsol formul ar .
Figura 4.27.
Pentru obi nerea sumei valorilor suprafeel or construi te la
sol (TOTALUL din tabelul ,DATE REFERTOARE LA
CONSTRUC| din figura 4.27.), n caseta text 2otal din cadrul
subformul arul ui se scrie expresia de calcul: R,um(S,uprafaa
construi t la solT) , unde ,uprafa construi t la sol este
numel e cmpul ui pentru care s-a dori t efectuarea sumei.
Figura 4.28.
- 107 -
Baze de dat e
- 108 -
Baze de dat e
$.1. $. O+iect e ti# a#ot
Obiectele de tip raport se creeaz n etapa de exploatare a
bazelor de date. Coninutul lor poate fi vizualizat pe ecran sau
se poate lista la impri mant.
Pentru a realiza obiecte de tip raport se utilizeaz opiunea
$eport din meniul %nsert .
Modali ti l e de creare
propuse sunt:
<izualizare proiect
realizarea rapoartel or de ctre
utilizator fr asistena unui
expert.
?#pert raport crearea
rapoartel or este asistat de
Expert.
)uto$aport9 &oloane
generarea automat, cu particulari tatea c datele dintr- o
nregistrare sunt reprezentate pe o Figura 4.29.
singur coloan.
)uto$aport9 2abele generarea automat a rapoartel or
cu datele organizate sub form tabelar.
?#pert diagram crearea de rapoarte cu grafice.
?#pert etic7ete crearea de rapoarte cu dimensi uni le
cerute pentru impri marea lor pe o etichet (utile n
coresponden, etichetare, etc.).
Se poate observa n partea de jos a ferestrei existena
listei derulante cu eticheta )legei tabel ul sau interogarea de
unde provi n datele despre obiect9 din care se poate alege o
tabel sau o interogare consti tui nd sursa de date a raportul ui .
n structura unui raport se pot identi fica urmtoarel e
elemente comune cu formul arel e:
seciunile unui raport : $eport MeaderL5ooter, 6age
MeaderL5ooter, *etail .
controale de tip casete text, etichete, butoane de
comand i propri et i l e acestora (cu excepi a celor
?veni ment , care nu sunt accesibile controal elor din rapoarte).
4. 1. 4. a. .ener ar e a rapoar t el o r cu i nst r u me n t u l /0per t
Etapele defini ri i asistate a structuri i unui raport sunt
urmtoarel e:
1. Selectarea opi uni i ?#pert raport din fereastra $aport
nou mpreun cu numele tabel ul ui sau a interogri i stabili te
drept surs de date a raportul ui.
- 109 -
Baze de dat e
- 110 -
Baze de dat e
2. n pri ma fereastr propus (figura 4.30.) se pot alege
cmpuri le ce vor
alctui structura
raportul ui, cu
ajutorul
butoanel or ,
, , sau
cu dublu clic pe
numel e cmpul ui.
Aceste cmpuri
pot fi selectate
din mai mul te
tabele ori
interogri,
folosind lista
derulant
2abeleL%nterogri .
3. n conti nuare se va preciza modul de afiare a datelor n
Figura 4.30.
raport, precum i criteriile de grupare a datelor. Gruparea
datelor nseamn cutarea tuturor nregistrri lor (rnduri lor)
din sursa de date care coni n aceeai valoare pentru cmpul
stabili t drept criteri u de grupare i afiarea lor, consecuti v n
raport. n figura 4.31. datele vor fi grupate dup cmpul
Unitate admi nistrati v teri tori al , iar n cadrul acesteia dup
dat, iar pe fiecare lun vor fi grupate nregistrri le
referi toare la numerel e cadastrale emise, adresa acestora i
seciunea de plan n care se gsesc. Cu sgeile 6riori ty se
stabilete ordinea operai uni lor de grupare.
- 111 -
Baze de dat e
Figura 4.31.
Pentru precizarea faptul ui c gruparea se face dup luna
din fiecare fi a corpului de propri etate, s-a deschis fereastra
;rouping %ntervals cu ajutorul butonul ui ;rouping 8ptions , iar
n coloana ;rouping intervals pe linia *ata s-a ales din lista
derulant .un.
Se va obi ne, prin urmare, o situai e a numerelor
cadastral e, cu adresele i cu seciunile de plan de care
apari n, grupate uni ti admi nistrati v- teri tori al e i pe lunile
calendaristice cnd au fost emise.
4. n fereastra urmtoare se stabilesc cmpuril e n funcie
de valorile crora datele din raport vor fi ordonate (sortate).
5. n urmtoarea etap, Expertul propune mai mul te feluri
de prezentare a datelor n raport, precum i dispunerea pe
orizontal sau vertical (Orientati on: Portrai t / Landscape) a
structuri i raportul ui pe coala de impri mare.
6. Urmtorul pas const n alegerea stilului raportul ui
(aldin, centrat, italic, ncadrat ori nu, etc.) n care este afiat
fiecare categorie de informa i e.
7. Ulti ma etap presupune stabilirea ti tl ul ui raportul ui.
Dup acti varea butonul ui 5inis7, raportul se salveaz sub
numel e dat de titl ul ales mai devreme.
O parte din situai a obinut se poate vizualiza n figura 4.32.

Figura 4.32.
ncadrarea n margi ni le paginii impri mate poate fi
- 112 -
Baze de dat e
verificat cu .ayout 6revie4 din meni ul <ie4.
O serie de aspecte ale raportul ui mai pot fi mbunti te.
Pentru aceasta se va deschide raportul n modul
<izualizare proiect pentru ca utilizatorul s poat opera
schimbril e necesare n structura acestuia.
- 113 -
Baze de dat e
4. 1. 4. b. 1odi i car e a obi ect el or de ti p rapor t ol osi n d op i un e a
2i 'ual i 'ar e pr oi ec t
Situaia raportul ui n modul Vizualizare proiect este
prezentat n figura 4.33.
Figura 4.33.
Gruparea datelor i/sau sortarea lor se realizeaz folosind
opi unea , din meniul View, fie cu aceeai
opi une din meni ul contextual (clic buton dreapta mouse pe
suprafaa alb de lucru
a raportul ui ).
Cu ajutorul acestei
opi uni se pot afia
diferi te antete i
subsoluri de grupuri
(figura 4.34.),
modificnd proprieti l e
grupul ui, pe liniile de
)ntet ;rup i ,ubsol
;rup.
Figura 4.34.
n fiecare antet i subsol creat se definesc etichete, casete
text, etc. cu datele care intereseaz. n seciunea *etail se
aduc cmpuril e care se vor afia n raport pentru a caracteriza
situai a numerelor cadastrale provizorii.
Se observ c pentru a extrage luna din cadrul cmpul ui
*ata i a o afia scriindu- i
denumi rea cu caractere
alfabeti ce, urmat de an, s-a
scris formul a R5ormat [(S*ataT,
mmmm yyyy,0,0) . Pentru
- 114 -
Baze de dat e
definirea afirii numrul ui curent al fiecrui numr cadastral
(obi nut prin incrementare) s-a creat o caset text cu
propri et i l e din figura 4.35. Figura 4.35.
- 115 -
Baze de dat e
n caseta ,urs control se trece R , iar pentru ca
numrtoarea s se desfoare unitar pentru toate numerel e
cadastral e, indiferent de luna calendaristic sau de uni tatea
administrati v teri tori al, se alege n caseta ?#ecuie sum
opi unea 6este tot .
Pentru evideni erea anumi tor date (afiarea cu caractere i
chiar culori diferi te a informa i i l or n raport, n funcie de
ndeplini rea unor condi ii ) se utilizeaz opiunea &onditional
5ormat ti ng \ 5ormatare condi i onal care se poate acti va din
meniul Format dup selectarea unui control legat la o surs de
date (de exempl u o caset de tip text).
n figura 4.36. caseta numr cadastral din seciunea
*etaliere a fost formatat condi i onal astfel: numerele
cadastral e cuprinse ntre 100 i 200 vor fi tipri te n raport
avnd culoarea roie, cele cuprinse ntre 200 i 300 avnd
culoarea albastr, iar restul n culoarea neagr. De asemenea
se pot formata culorile pentru fond, font i linia de ncadrare.
Figura 4.36.
Se pot stabili maxi m trei condi ii de formatare, dup cea
de a treia, butonul Adugare devine inacti v.
4. 1. 4. c. +r ear ea de rapoar t e cu subr a p o a r t e
Dac se dorete completarea informa i i l or dintr- un obiect
tip raport cu altele, coninute de diferi te obiecte de tip raport,
se creeaz aa numi tel e subrapoarte. Ele se pot insera att n
seciunea de detaliu, ct i n celelal te seciuni (inclusi v n cele
de grup). Ca i n operai unea de creare a subrapoartel or, se
utilizeaz butonul Subformul ar/subraport din caseta de
controale Toolbox, cu sau fr acti varea Control Wizard- ului
. De asemenea se poate aduce subraportul pe suprafaa de
lucru ntr- una din seciunile raportul ui principal din fereastra
*atabase , utiliznd tehnica drag1 drop (selectare i glisare ).
n figura 4.37 este prezentat raportul ,Fia corpului de
- 116 -
Baze de dat e
propri etate n modul <izualizare proiect , iar n figura 4.38. n
modul 6rint 6revie4. Acest raport conine subrapoartel e ,Date
referi toare la teren, ,Date referi toare la construci i i ,Date
referi toare la proprietari .
Figura 4.37.
- 117 -
Baze de dat e
Figura 4.38.
- 118 -
Baze de dat e
$. $. N NOIUNI OIUNI 1V1NS1TE 1V1NS1TE 7N 7N S'%D S'%D 1CCESS 1CCESS
(.1. O+iect e ti# maco
O comand macro este consti tui t dintr- un ansambl u de
aciuni executabi le printr- un simplu clic cu mouse- ul, printr- o
comand dintr- un meni u, ca urmare a unui eveni ment sau
printr- o combinai e de taste. Aciunile unui obiect macro se
aplic obiectel or dintr- o baz de date. Aciunile pot viza:
deschiderea unui obiect tip tabel, cerere, formul ar,
raport;
filtrarea datelor afiate ntr- un obiect tabel sau formul ar;
cutarea unei nregistrri care rspunde la un anumi t
criteri u;
configurarea impri mri i sau impri marea unui formul ar;
iniializarea coni nutul ui anumi tor cmpuri ;
automatizarea importul ui /export ul ui de date;
definirea meniuri lor personalizate;
executarea unei instruci uni SQL.
etc.
(.1. 1. Cea ea8 e9ecut a e a8 modi!ica ea o+iect el o maco
Pentru a crea un obiect macro se d comanda :acro din
meniul %nsert sau se selecteaz eticheta :acro din fereastra
de baz Access. Fiecare colecie de obiecte tip este
desemnat printr- o etichet distinct i se acioneaz prin clic
pe butonul care efectueaz comanda rapid 3e4. Ca efect pe
ecran se afieaz fereastra de edi tare Macro n structura
mini mal (figura 5.1.).
Figura 5.1.
n coloana )ciune se trec aciunile de executat, fiecare
- 119 -
Baze de dat e
aciune pe o linie distinct. Precizarea aciunii se face prin
selectare din lista derulant afiat de Access. Pentru fiecare
aciune selectat sunt precizate argumentel e aciunii n zona
inti tul at )rgumentel e aciunii (pentru anumi te argumente
Access completeaz automat valorile implici te). Precizarea
valorilor argumentel or se realizeaz, de regul, tot prin
alegere din listele derulante afiate de Access n funci e de
tipul aciunii i respecti v de natura argumentul ui .
Figura 5.2.
Coloana &omentari u este opional; ea poate coni ne
explicai i (comentari i ) cu privi re la aciunea selectat. n figura
5.2. se prezint, cu titl ul de exempl u, aciunea
*esc7idere5ormul ar , care la execuie va deschide formul arul
inti tul at FSA CORPULU DE PROPRETATE (acest formul ar
trebuie s fie creat nainte de a crea obiectul macro care
conine aciunea de deschidere a lui).
Obiectul macro creat se salveaz prin comanda ,ave )s
din meniul 5ile. Numele )utoe#ec se poate atribui unui singur
obiect macro dintr- o aplicaie pentru a desemna macro- ul ce
se execut automat la acti varea aplicaiei.
Un obiect macro trebuie testat pentru a vedea dac
aciunile au fost corect programate. Pentru testare se d
comanda $un din meni ul $un sau se acioneaz prin clic pe
butonul de comand Run cu pictograma din bara cu
instrumente asociat ferestrei de editare macro.
Access ofer utilizatoril or un set puternic de aciuni ce se
pot programa i stoca n obiecte macro. Un ansambl u de
aciuni care mpreun automatizeaz o anumi t activi tate
formeaz ceea ce n practic numi m o macro1 comand . Un
obiect macro poate stoca una sau mai mul te macro- comenzi.
Aciunile Access ce se pot utiliza la construi rea de macro-
comenzi se pot grupa funci onal, dup cum urmeaz:
;rup obiect
Aciunile din acest grup acioneaz asupra obiectel or
(tabel, interogare, formul ar, raport, macro sau modul ),
- 120 -
Baze de dat e
controalelor sau propri et i l or. Grupul coni ne urmtoarel e
aciuni:
deschiderea unui obiect al bazei de date
(*esc7idere2abel, *esc7idere%nterogare,*esc7idere$aport,
*esc7idere5ormul ar, etc.);
nchiderea unui obiect deschis (Gnc7idere );
filtrarea nregistrri l or afiate n obiecte tabel, formul ar
sau raport ()plicare5il tru );
nlturarea fil trel or ()fiare2oateGnreg );
setarea propri eti l or controal elor i/sau formul arel or
(,etare<aloare );
deplasarea la un anumi t cmp sau control ntr- un obiect
tip formul ar, tabel sau interogare ( ,alt.a&ontrol );
redenumi rea unui obiect ($edenumi re );
tergerea unui obiect (=tergere8biect );
reactualizarea datelor afiate de un control ( $estabili re ).
;rup ferestre
maxi mizare fereastr (:a#i mi zare );
mini mizare fereastr (:ini mizare );
deplasare fereastr (*eplasare*i mensi onare ).
;rup de transfer (importLe#port)
transfer de obiecte ale bazei de date
(2ransferare>az*e*ate );
transfer de foi de calcul procesate cu un procesor de
tabele (2ransferare5oaie&alcul );
transfer text (2ransferare2e#t ).
;rup de control al e#ecutri i aplicai ei
lansarea n execui e a unei aplicaii ( ?#ecuie)plicai e );
lansarea n execui e a unei funcii scrise n limbaj ul VBA
(?#ecuie&od );
executarea unei comenzi (?#ecuie&omand );
executarea unei macro- comenzi
(?#ecuie:acrocomand );
executarea unei instruci uni SQL de tip aciune
(?#ecuie,-.);
nchiderea aplicaiei Access (6rsire );
stoparea executri i unui macro (8prire:acrocomand );
acti varea/i nhi barea afirii mesajelor Access
(,etare)verti smente );
anularea eveni ment ul ui care a determi nat executarea
macro- comenzii ($evocare?veni ment );
- 121 -
Baze de dat e
;rup interfa cu utilizatorul
adugarea de meni uri personalizate ()dugare:eni u );
ascunderea/afiarea de bare cu instrumente
()fiare>ar%nstrument e );
setarea strii acti v/i nacti v a unui element din meniuri
(,et)rticol:eni u );
afiarea unui mesaj pentru utilizator ( &aset:esa0 );
producerea unui semnal sonor de avertizare ( ?cou);
;rup navigare 'ntre 'nregistrri
cutarea unei nregistrri (&utareGnreg );
efectuarea unei noi cutri folosind argumentel e celei
mai recente aciuni (,e&autVrmtoarea );
deplasarea la o nregistrare specificat ( ,alt.aGnreg ).
(.1. 2. 'u#ui de maco0 comen&i
Un obiect macro poate coni ne grupuri de aciuni separate
prin una sau mai mul te linii albe. n acest caz fiecare grup este
desemnat printr- un nume de macro. Toate acestea se vor
memora n acelai obiect macro. n acest caz n fereastra de
edi tare macro se afieaz i coloana 3ume macrocomand .
Pentru afiarea coloanei 3ume macrocomand se d comanda
:acro 3ames din meni ul <ie4. n figura 5.3. se prezint, cu
ti tl u de exempl u, obiectul macro :acroIinterogare care
conine trei macro numi te *esc7I%nterogareI&36,
*esc7I%nterogareIpropri etari , *esc7I%nterogareIsupr1 teren.
Figura 5.3.
n cadrul aplicai ei se poate lansa n execui e fiecare
macro din grup. Access calific o macrocomand din grup pe
structura Cnume obiect macroQ. Cnume macro din grupQ .
n figura 5.4. este afiat fereastra Command Button
Wizard prin care se urmrete s se asocieze unui buton de
comand o macrocomand. Executarea unora din aciunile
obiectel or macro poate fi condi i onat folosind e#presii
- 122 -
Baze de dat e
condi i onal e . Pentru aceasta este necesar adugarea
coloanei &ondiie folosind fie comanda &ondi ti ons din meniul
<ie4, fie eveni ment ul clic asupra butonul ui de comand
&ondi ti ons din bara cu instrumente :acro *esign .
Figura 5.4.
n figura 5.5. se prezint un exempl u practic de
condi i onare a unei aciuni. Sunt afiate:
fereastra de edi tare a obiectul ui macro test .
formul arul FSA CORPULU DE PROPRETATE.
propri et i l e zonei de text 3umr cadastral ; proprietatea
Gnainte de actualizare asociaz obiectul macro test n
vederea executri i.
Obiectul macro test are incluse aciunile:
o &aset:esa0 pentru a afia mesajul ,ntroducere
eronat! , n cazul n care condi ia [numar cadastral ] <100;
o $evocare?veni ment , pentru a anula eveni mentul care a
cauzat executarea obiectul ui macro.
- 123 -
Baze de dat e
Figura 5.5.
(.1. 3 'ene a e a aut oma t a a #anouilo de comanda #ent u a#licaii
Access 2002 permi te crearea automat a unuia sau mai
mul tor panouri de dirijare a aplicaiilor, prin intermedi ul
opi uni i ,4itc7board :anager ce poate fi lansat din meni ul
2ools, submeni ul *ata>ase Vtili ties . n fond aceste panouri
sunt formul are ce coni n butoane care execut diverse
operaii, precum deschiderea de formul are, tipri rea
rapoartel or, execui a macro- urilor sau a secvenelor de cod
VBA.
Figura 5.6.
- 124 -
Baze de dat e
Utilizatorul poate realiza toate acestea fr s efectueze
nici o operai e de formatare a formul arelor i fr s modifice
propri et i ale obiectel or sau s programeze aciuni pe
eveni mentel e acestora. Etapele care trebuie parcurse sunt
urmtoarel e:
n fereastra ,4itc7board :anager se selecteaz ?dit
pentru a configura un panou de comand (n mod implici t
exist un panou numi t 6anou principal de comutare ) sau 3e4
i apoi ?dit dac se dorete crearea unui panou nou.
n fereastra ?dit ,4itc7board :anager se pot aduga
obiecte noi folosind butonul 3e4 i se poate modifica i
numel e panoul ui de comand din fereastra ,4itc7board
3ame .
n fereastra ?dit ,4itc7board %tem se completeaz textul
dori t a fi ataat unui buton de comand, iar din lista
&ommand se selecteaz aciunea ce se dorete a se executa.
Dup adugarea tuturor elementel or dori te se apas
tasta &lose.
Exist posibili tatea de a defini mai mul te panouri de
comand. Pentru a comuta ntre acestea se poate alege din
lista de aciuni disponi bile n caseta ?dit ,4itc7board %tem , ;o
to ,4itc7board . Se poate stabili care este panoul implici t al
aplicai ei selectndu- l n fereastra ,4itc7board :anager i
efectund clic pe :aBe *efaul t .
(.2. 4acilitai #ivind secuit at e a +a&ei de dat e
Privitor la securi tatea bazei de date, Microsoft Access 2002
pune la dispozi ie:
a) posibili tatea stabili rii unei parole de acces la baza de
date;
b) posibili tatea crerii de utilizatori pentru accesul la baza
de date i stabili rea de drepturi de acces pentru acetia;
fiecrui utilizator i se pot stabili numai obiectele din baza de
date la care are acces;
c) posibili tatea ncriptri i bazei de date;
d) conversia bazelor de date n format MDE.
(.2. 1. Sta+iliea unei #aol e de acces la +a&a de dat e
Se realizeaz din meni ul 2ools1,ecuri ty1 Q,tabi l i re parol
baz de date . Pentru a putea stabili sau elimi na parola bazei
de date, aceasta trebuie deschis pentru utilizare exclusi v.
Deschiderea unei baze de date pentru utilizare exclusi v se
stabilete n momentul deschideri i acesteia prin secvena 5ile1
Q8pen .
- 125 -
Baze de dat e
Figura 5.7.
Dup deschiderea unei parole, aceasta se poate eli mi na
din meniul C2ools1 ,ecuri ty \Q )nulare parol baz de dateQ .
Trebuie reinut faptul urmtor: dac parola de acces la baza
de date este uitat, nu mai exist nici o posibili tate de a o
deschide sau de a afla aceast parol .
(.2. 2. Sta+iliea unui sist em de utili&at oi
Crearea de utilizatori , grupuri noi de utilizatori , precum i
modificarea utilizatoril or, grupuri lor, a parolelor utilizatori lor
se realizeaz din meni ul 2ools1,ecuri ty1 QVser and ;roup
)ccounts .
- 126 -
Baze de dat e
Crearea utilizatoril or i stabilirea grupuril or din care fac
parte se realizeaz din seciunea Vtilizatori a meniul ui
meni onat anteri or.
Crearea de noi grupuri
se realizeaz din
seciunea ;rupuri a
aceluiai meni u.
mplici t sunt create
automat de Access
grupuri le )dmins i
Vtilizatori . Utilizatorul
creat automat de
Access este )dmi n care
are drepturi complete
asupra tuturor
obiectel or bazei de
date. Schimbarea unei
parole pentru un
utilizator se realizeaz din seciunea :odificarea parolei de
conectare .
Figura 5.8.
Securi tatea unei baze de date la acest nivel (utilizatori ,
parole, drepturi asupra
obiectel or bazei de date)
ncepe s funcioneze n
momentul cnd se
stabilete o parol pentru
utilizatorul )dmi n .
Acordarea drepturi l or de
acces pentru utilizatori
sau grupuri se realizeaz
din meniul 2ools \
,ecuri ty \ Vser and
;roup 6ermissions . Dac
drepturi l e se acord la
nivel de grup, acestea
vor fi moteni te de
fiecare utilizator membru
al grupul ui respecti v.
Figura 5.9.
(.2. 3. 7nci#t a ea8 deci #t a e a +a&ei de dat e
Se realizeaz din meniul 2ools \ ,ecuri ty \ ?ncryptL*ecrypt
*atabase . ncriptarea bazei de date are ca efect
imposibili tatea citirii anumi tor elemente din baza de date prin
deschiderea ei cu un edi tor de texte.
- 127 -
Baze de dat e
(.2. $. Conve si a +a&el o de dat e :n !omat .DE
Acest proces presupune compilarea tuturor modul elor,
renunarea la posibili tatea de editare a codului VBA, precum i
compactarea bazei de date desti nai e. Codul VBA va conti nua
s funci oneze, dar nu va putea fi vizualizat sau editat.
Dimensiunea bazei de date va fi considerabil micorat, ca
urmare a ndeprtri i codului, iar performan el e obinute vor fi
mbunti te prin gestionarea opti m a memori ei.
Salvarea bazei de date n formatul MDE are drept efect:
inhibarea vizualizrii, modificrii sau crerii formul arel or,
rapoartel or sau modulelor n modul <izualizare proiect .
blocarea importul ui de formul are, rapoarte i modul e ale
altor aplicaii, rmnnd viabil posibili tatea de a importa
obiecte de tipul tabele, interogri i macro- uri din alte baze de
date.
nu se vor mai putea exporta spre o alt baz de date
rapoartel e, formul arel e i modul ele, excepi e fcnd tabelele,
interogri le i macro- urile.
imposibili tatea modi ficrii propri et i l or si metodel or
obiectel or, deoarece o baz de date de tip MDE nu mai
conine codul surs.
preveni rea adugri i, tergerii sau schi mbri i
referinel or la librriile de obiecte sau la alte baze de date.
Avnd n vedere schi mbri le mai sus meni onate suferi te
de baza de date n urma salvrii ei ca fiier MDE, este
recomandabi l pstrarea unei copii de siguran a acesteia. n
momentul n care se impune o modificare a formei
rapoartel or, formul arel or ori modul elor se va proceda la lucrul
cu baza de date necompactat, salvarea modificrilor la acest
nivel i abia apoi se recurge la o nou salvare ca fiier MDE.
Utilizarea procedeul ui de transformare n fiiere MDE este
recomandabi l n cazul bazelor de date distri bui te, pe o staie
de lucru care nu va avea nevoie de posibili tatea de modi ficare
a codului, in ti mp ce forma iniial a bazei de date va fi
prezent pe server.
Conversia unei baze de date n format MDE se realizeaz
prin parcurgerea urmtoarel or etape:
se nchide baza de date;
n cadrul meniul ui 2ools se alege *atabase Vtili ties ,
dup care se realizeaz clic pe &reare :*?.
n fereastra de dialog ,alvare :*? ca9 se specific calea
i numele fiierului ce va fi salvat ca tip MDE.

- 128 -
Baze de dat e
(. (. 1 1CCES1RE1 CCES1RE1 D1TE3OR D1TE3OR 4O3OSIND 4O3OSIND 3I.%1;U3 3I.%1;U3
S<3 S<3
-.1. Caact ei sti ci "ene al e
Limbaj ul S)* (Structured $uery Language ) a fost
implementat n produsele comerciale ncepnd cu anii 1970
cnd s-a lansat pri ma versiune Oracle i SQL/DS de la BM. n
1986 SQL a deveni t standard ANS (SQL-86). n 1992 a aprut
versiunea SQL-2, numi t i SQL-92, care este tot un standard
ANS i SO, limbajele utilizate de SRGBD-urile actuale fiind
apropiate de aceste standarde.
Dup cum s-a mai artat, algebra relai onal este o parte
a model ul ui relaional teoretic i este utilizat de cercettori
pentru a fundamenta posibili ti l e asigurate de model.
Utilizatori i nu vor apela direct la elementel e algebrei
relai onale, ci prin inter medi ul limbajelor implementate n
toate Sistemele Relaional e de Gestiune a Bazelor de Date
(SRGBD). Aceste limbaje, care pot fi privi te ca interfa ntre
utilizator i baza de date, pun la dispozii e mijloace pentru
manipularea i exploatarea coleciilor de date.
S)* (,tructured -uery .anguage : Limbaj de nterogare
Structurat) s-a impus ca tentati v de standardizare a
limbajelor de descriere (DD*: Data Descripti on Language ) i
de mani pul are (D,*: Data Manipulati on Language ) a bazelor
de date.
Tot mai larga rspndi re a SQL se explic prin avantaj ele
sale, dintre care cele mai importante sunt:
Este un limbaj complet, n sensul c implementeaz
marea majori tate a cerinelor teoreti ce impuse de model ul
relai onal;
Este un limbaj simpl u i uor de nvat. Vocabularul SQL
include circa 30 de comenzi, flexibili tatea limbaj ul ui permi nd
totui efectuarea de operai uni dintre cele mai complexe;
Este un limbaj declarati v, adic instruci uni l e sale spun
calculatorul ui ce s fac, lsnd n sarcina acestuia s aleag
cum s fac ceea ce i s-a cerut. Din acest punct de vedere,
SQL se deosebete fundamental de limbajele de nivel nalt
(COBOL, FORTRAN, Pascal, C, etc.) care cer utilizatorul ui s
descrie prin program modul de regsire i mani pulare a
informa i ei.
- 129 -
Baze de dat e
Limbaj ul SQL permi te o comunicare complex i rapid a
utilizatorul ui cu bazele de date, n funcie de cerinel e i
restricii le acestuia. Pe lng mani pul area i regsirea datelor,
se efectueaz i operai i complexe privi nd actualizarea i
administrarea bazei de date.
- 130 -
Baze de dat e
n funcie de rolul lor n manipularea datelor i
tranzaci ilor, instruci uni le SQL pot fi grupate astfel:
1. instruci uni de defini re a datelor care permi t descrierea
structuri i bazei de date;
2. instruci uni de mani pul are a datelor n sensul adugrii,
modificrii i tergeri i nregistrri lor;
3. instruci uni de selecie a datelor care permi t consul tarea
bazei de date;
4. instruci uni de procesare a tranzaci ilor care privesc
uniti l e logice de prelucrare i consti tui e n fapt, operai i
mul ti pl e de mani pul are a datelor;
5. instruci uni de control al cursorul ui;
6. instruci uni privind control ul accesului la date.
-.2. Comen&i S<3
n conti nuare se va face o scurt trecere n revist a
comenzilor SQL n scopul formri i unei idei mai exacte asupra
specificul ui i posibili ti l or limbajul ui, fr a avea n inteni e
prezentarea unui manual de SQL.
-.2. 1 Cea ea =i modi!ica ea stuct uii unei ta+el e
CREATE TABLE, permi te crearea unui tabel nou. Este
necesar s se precizeze numele tabel ul ui, denumi ri l e
coloanelor care o formeaz i tipul de dat din fiecare
coloan. Sintaxa general este:
CREATE TABLE nume_tabel (nume_atri but1 tip_dat(mri me) [NOT
NULL] [nume_atri but2 tip_dat(mri me) [NOT NULL] .] [CONSTRANT
nume_atri but CHECK (nume- atri but <condi i e>.)] [CONSTRANT
nume_index] {PRMARY KEY|UNQUE|NOT NULL}] )
Comanda precizeaz numel e tabelei care se creeaz,
precum i descrierile atributel or. Se observ c fiecare atri but
i sunt specificate numele, tipul i dimensi unea. Opiunea NOT
NULL, corespunztoare unui atribut, asigur integri tatea
relai ei specificndu- se astfel necesi tatea introducerii unei
valori. Se precizeaz atri butul cu rol de cheie pri mar pentru
care clauza NOT NULL este obligatori e.
Exempl u: se va crea tabela Student cu urmtoarea
structur a nregistrri i : 3rmatricol de tip numeric, 3ume i
5acultate de tip text, iar *ataIn de tip Dat/Or.
&$?)2? 2)>.? ,tudent (3rmatri col 3umber &83,2$)%32 3rmatri col
6rimary Uey, 3ume 2e#t (!0), *ataIn *ate, 5acultate te#t (0) 382 3V..)
Clauza CONSTRANT este folosi t la defini rea tabelelor
pentru precizarea unor restrici i privi nd domeni ul de defini i e
al atri butel or (n exempl ul prezentat pentru defini rea cheii
pri mare asupra cmpul ui Nrmatri col).
- 131 -
Baze de dat e
SGBDR verific integri tatea datelor prin declararea
restricii lor pe domeni i sau programarea de funcii sau
proceduri.
Comanda ALTER TABLE permi te modi ficarea structuri i unei
tabele prin adugarea / tergerea de atribute i prezint
urmtoarea sintax:
ALTER TABLE nume_tabel {ADD COLUMN nume_atri but1 tip
dat[(mri me)] [NOT NULL] [CONSTRANT index] | DROP COLUMN
nume_atri but2 CONSTRANT indexname}
Exemple: Adugarea atributul ui cod numeric personal CNP (tip
numeric) n tabela Student:
).2?$ 2)>.? ,tudent )** &8.V:3 &36 number 382 3V..
Stergerea atri butul ui Data_n din tabela Student:
).2?$ 2)>.? ,tudent *$86 &8.V:3 *ataIn
Stergerea unei tabele se realizeaz cu ajutorul comenzii DROP
TABLE, odat cu aceasta tergndu- se i indecii, view- urile
defini te pentru respecti va tabel, neexistnd nici o posibili tate
de recuperare a informa i ei terse. Sintaxa comenzii:
DROP TABLE nume_tabel
Exempl u:
*$86 2)>.? ,tudent
-.2. 2. Instuci uni #ent u sel ect a ea dat el o
SELECT, este probabil cea mai utilizat comand pentru c
permi te obinerea unui tabel nou dintr- un tabel existent. Este
necesar s se precizeze una sau mai mul te condi ii pe care
trebuie s le ndeplineasc valorile din tabel ul existent pentru
a fi introduse n noul tabel. n afara acestor condi ii, puse sub
forma unei expresii logice care include una sau mai mul te
expresii relaional e (mai mare, mai mic, egal, etc.), comanda
poate include o serie de cuvinte cheie ca ORDER BY, DSTNCT,
HAVNG, GROUP BY, etc., care asigur un control supli mentar
al formei sub care se consti tui e noul tabel. Sintaxa general
este:
SELECT [ALL/DSTNCT/DSTNCTROW] list_atri bute
FROM list_tabele
[WHERE criteri u_de_cutare]
[GROUP BY criteri u_de_grupare]
[HAVNG criteri u_de_grupare]
[ORDER BY criteri u de ordonare [ASC|DESC]]
unde:
list_atri bute - specific atri butel e ale cror valori vor fi
returnate;
- 132 -
Baze de dat e
FROM list_tabele - specific tabelele din care se vor
extrage datele;
WHERE - permi te prin precizarea unei expresii expri marea
criteri ul ui de selecie;
ORDER BY - precizeaz atri butul dup care se va face
ordonarea;
GROUP BY - folosi t pentru a parti i ona o tabel n grupuri
acordnd acestora valori pe un atribut sau list de atri bute;
HAVNG - specific criteriil e de selecie pe grupuri de
tupl uri.
Dac dori m s vizualizm toate tupl uril e tabelei ti tl uri_L18,
blocul de cerere va prezenta urmtoarea sintax:
SELECT * FROM titl uri_L18
%eire9 nrIti tl u, tipIti tl u, dataIti tl u, ariaIreconst, ariaIconsti t,
pdfIti tl u, parcelsIno
Semnul (*) transmi te bazei de date comanda de a returna
toate coloanele asociate cu tabel ul dat descris n clauza FROM.
Ele sunt returnate ntr- o ordine hotrt de baza de date.
Pentru selectarea coloanelor indi vi dual e, acestea vor fi
introduse n lista de atribute, separate de virgul (,).
SELECT nr_ti tl u, pdf_ti tl u FROM titl uri_L18
%eire 9 nrIti tl u pdf1 titl u
Se poate observa folosirea literelor mari i mici n
interogare. Acestea nu au nici un efect asupra rezul tatul ui .
nterogri distincte
Pentru extragerea valorilor neduplicate se folosete clauza
DSTNCT. De exempl u dac se dorete vizualizarea tuturor
datelor de emi tere a ti tl uri lor de proprietate din tabela
ti tl uri_L18, fr ca acestea s se repete, adic s selectm
toate elementel e diferi te existente ntr- o coloan, blocul de
cerere va fi:
SELECT DSTNCT data_ti tl u FROM titl uri_L18
%eire9 dataIti tl u
Expresii
Defini ia unei expresii este simpl: aceasta returneaz o
valoare. De asemenea, este un termen foarte larg, deoarece
poate trata tipuri diferi te, cum ar fi ir, numeric sau logic. De
fapt, aproape orice urmeaz o clauz (de exempl u, SELECT
sau FROM) este o expresie, deci am folosi t deja expresii.
n instruci unea :
SELECT (owner_lastname + ' ' + owner_firstname ) from owner
fraza (o4nerIlastname F ] ] F o4nerIfirstname ) este o
expresie care returneaz numel e complet din tabela owner. O
- 133 -
Baze de dat e
completare util pentru aceasta ar putea fi
where owner_lastname = 'MTU'
care este mai interesant. Conine condi i a nume=' MTU',
care este un exempl u de expresie logic (nume=' MTU' va fi
fals sau adevrat n funci e de condi ia =).
Condiii
Dac se dorete gsirea unui anumi t element sau un grup de
elemente din baza de date, este necesar aplicarea uneia sau
mai mul tor condi i i. n exempl ul anteri or, condi ia era
o4nerIlastname R ^:%2V_
SELECT DSTNCT (owner_lastname + ' ' + owner_firstname ) from owner
where owner_lastname = 'MTU'
Dac problema este gsirea tuturor persoanelor din tabela
owner care au numele mai mare dect 'MTU' se poate
introduce condi ia: o4nerIlastname Q _:%2V_
SELECT DSTNCT (owner_lastname + ' ' + owner_firstname ) from owner
where owner_lastname > 'MTU'
Condiiile fac posibile interogri le selecti ve. n cea mai
obinui t form a lor, ele se compun dintr- o variabil, o
constant i un operator de comparare. n pri mul exempl u,
variabila este o4nerIlastname , constanta este ^:%2V_ i
operatorul de comparare =. n al doilea exempl u, variabila
este o4nerIlastname , constanta este ^:%2V_ i operatorul de
comparare este >. Pentru crearea interogri lor condi i onale
este necesar cunoaterea operatori lor i a clauzei WHERE.
Clauza where
Sintaxa clauzei WHERE este: XM?$? Ccri teri uIdeIcutareQ
mpreun cu SELECT i FROM , WHERE este cea mai
folosi ta clauz n SQL. Aceast clauz va face interogri l e mai
selecti ve, ntr- un mod simpl u. Fr clauza WHERE, cel mai util
lucru pe care l putei face cu o interogare este s afiai baza
de date.
n exempl ul anteri or am interogat baza de date cu privi re
la aflarea tuturor persoanelor care au numel e de MTU. Dac
se dorete interogarea bazei de date dup o anumi t
persoan, pentru afiarea tuturor nregistrri lor acesteia din
baza de date (din tabela owner), instruci unea ar fi:
SELECT * from owner where owner_lastname = 'MTU' and
owner_firstname = 'STEFAN'
n cazul n care se dorete afiarea tuturor ti tl uri lor de
propri etate emise n aceeai zi, spre exempl u: 8/24/1992 s-ar
putea folosi comanda:
SELECT * FROM titl uri_L18 where data_ti tl u = #8/24/1992#
Trebuie fcut observai a c n aceast interogare
- 134 -
Baze de dat e
constanta, respecti v data de emi tere a titl uri l or aleas a fost
ncadrat de semnul diez (#) i nu de apostrof ('), ca la
interogri le precedente. De asemenea data a fost scris n
formatul american ,ll/zz/aaaa. Aceste dou condi ii sunt
cerute de ,Microsoft Jet database engine, ,motorul bazei
de date la toate versiunile Microsoft Access.
- 135 -
Baze de dat e
Operatori
Operatorii se folosesc n interi orul condi i ei unei expresii
pentru a specifica exact ceea ce se dorete din baza de date.
Operatori i se mpart n ase grupe distincte: aritmeti ci , de
comparare, caracter, logici, pentru mul i mi i ali operatori .
) 8peratori aritmeti ci
Operatorii ari tmeti ci sunt plus (+), minus (-), mpri re (/),
nmul i re (*) i modul o (%). Primii patru sunt descrii chiar prin
numel e lor. Ulti mul, modulo, returneaz restul ntreg al unei
mpri ri . De exempl u: 5 % 2 = 1 sau 6 % 2 = 0. Operatorul
modulo nu accept tipuri de date care coni n zecimale, ca de
exempl u, tipul real sau number. Dac operatori i aritmeti ci
sunt plasai ntr- o expresie fr paranteze, ei sunt tratai n
ordinea urmtoare: nmul i re, mpri re, modulo, adunare i
apoi scdere.
n conti nuare este prezentat un exempl u pentru operatorul
plus (+).
SELECT parcel_propert y_id, (parcel_propert y_i d+1000) AS
parcel_propert y_new_id, FROM parcel;
%eire9 parcelIpropert yIid parcelIpropert yIne4Iid
Se observ c ulti ma coloan nu face parte din tabel ul
original. SQL va permi te crearea unor coloane virtual e sau
derivate prin combi narea sau modi ficarea coloanelor
existente. n acest exempl u s-a creat o nou coloan care
adun ntregul 1000 la valorile din coloana parcelIpropert yIid ,
numel e noii coloane fiind legat la aceste valori prin ,AS.
!) 8peratori de comparai e
Dup cum semni fic i numel e lor, operatori i de
comparai e compar expresiile i returneaz una din
urmtoarel e trei valori: TRUE (Adevrat), FALSE (Fals) sau
UnKnown (Necunoscut). n termeni i folosi i pentru baze de
date, NULL semnific absena datelor dintr- un cmp. Nu
nseamn c o coloana coni ne o valoare zero sau spai u. Un
zero sau spai u sunt valori. NULL nseamn c n cmpul
respecti v nu se gsete nimic. Dac facei o comparai e de
genul Field = 9 i Field este NULL, comparai a va returna
UnKnown.
Dac vreodat ncercai s gsii o eroare logic de
programare care pare s nu aib rezolvare, asigurai- v c nu
ncercai s comparai o valoare NULL i reveni i la valoarea
prestabili t de FALSE. Spre exempl u cmpul
locali tyIpostalIcode din tabela locali ty are toate valorile NULL.
SELECT * from locali ty where locali ty_postal_code = null
%eire9 nici o linie selectat Z.
- 136 -
Baze de dat e
Nu s-a gsit nimic deoarece comparai a
locali tyIpostalIcode R null returneaz valoarea false datori t
faptul ui c rezul tatul este necunoscut.
- 137 -
Baze de dat e
Acesta este un bun loc de folosire a unei valori ,is null ,
modificnd instruci unea where n XM?$? locali tyIpostalIcode
is null. n acest caz se va pri mi ca rspuns al comenzii toate
liniile n care exist o valoare NULL.
SELECT * from locali ty where locali ty_postal_code is null
") 8peratori caracter
a) Operatorul LKE
Pentru selectarea unei pri a unei baze de date care se
potri vete unui model se poate folosi operatorul ,li ke. n
urmtorul exempl u sunt solicitate numel e i prenumel e
tuturor propri etari l or care ncep cu litera M.
SELECT DSTNCT (owner_lastname + ' ' + owner_firstname ) AS
nume_propri etari FROM owner WHERE owner_lastname LKE 'M*'
Dac am folosi n cadrul unei interogri expresia Like 'P[A-
F]## #' , aceasta ar returna datele care ncep cu litera P
urmate de oricare liter ntre A i F i apoi de 3 cifre.
Urmtorul tabel arat cum poate fi folosi t LKE pentru a
obi ne diferi te rezul tate din baza de date pe baza unor
,model e:
2abelul
5ip de opi une ,odel
Se potri ve"t e cu
model ul
&ntoarce 5rue'
2u se potri ve"t e cu
model ul
&ntoarce False'
Caractere a*a aa, aBa, aBBBa aBC
multi pl e *ab* abc, AABB, Xab aZb, bac
Caracter special A[*]a a*a Aaa
Caractere multi pl e ab* abcdefg, abc cab, aab
Caracter unic a?a aaa, a3a, aBa aBBBa
Cifr unic a#a a0a, a1a, a2a aaa, a10a
Domeni u de
caractere
[a- z] f, p, j 2, &
n afara domeniului [!a- z] 9, &, % b, a
Care nu sunt cifre [!0- 9] A, a, &, ~ 0, 1, 9
Combinate a[!
bm] #
An9, az0, a99 abc, aj0
b) Concatenarea (&)
Simbolul & concateneaz dou iruri.
SELECT DSTNCT owner_lastname & ' ' & owner_firstname AS
nume_propri etari FROM owner
4) 8peratori logici
a) AND (S)
- 138 -
Baze de dat e
AND nseamn c ambele expresii ntre care se gsete
operatorul trebui e s fie adevrate pentru ca operatorul s
returneze valoarea TRUE. Dac oricare dintre ele este fals,
AND va returna valoarea FALSE.
b) OR (SAU)
Dac vreuna din comparai i este TRUE, OR returneaz
valoarea TRUE.
c) NOT (NU)
NOT nseamn chiar ceea ce sugereaz numel e. n cazul n
care condi i a aplicat este evaluat la valoarea TRUE,
operatorul NOT o schi mb n FALSE. n cazul n care condi i a
care urmeaz operatorul ui NOT are valoarea FALSE, ea devine
TRUE.
H) 8peratori i pentru mul i mi
UNON
Cnd utilizatorul dorete s vad rezul tatel e mai mul tor
interogri SELECT n acelai ti mp, prin combinarea ieirilor lor,
poate utiliza facili tatea UNON a limbaj ul ui de interogare SQL.
Sintaxa general pentru interogri l e UNON este:
SELECT list_cmpuri FROM tabela1
UNON SELECT list_cmpuri FROM tabela2
[GROUP BY cmp_de_grupare]
[HAVNG criteri u_de_agregare]
[UNON SELECT list- cmpuri FROM tabela3
[GROUP BY cmp_de_grupare]
[HAVNG criteri u_de_agregare] ]
[UNON .];
[ORDER BY cmp_cri teri u_de_sortare]
Exist mai mul te restrici i pentru instruci uni le care
genereaz interogri UNON i anume: numrul de cmpuri
din lista de cmpuri asociat fiecrei instruci uni SELECT i
UNON SELECT trebuie s fie aceeai; este permis doar o
dat utilizarea clauzei ORDER BY, dup ulti ma instruci une
UNON SELECT; secvena de nume din fiecare list de cmpuri
trebuie s corespund unor intrri identice. Cnd se folosete
UNON, automat se vor elimi na duplicatele ce apar n urma
combinri i. n cazul folosirii domeni ul ui ALL se vor lua n
considerare i valorile duplicate.
Exempl u: Se dorete obi nerea unei liste comune a
numel or proprietari l or i a suprafeel or obi nute din
msurtori corespunztoare corpurilor de propri etate pe care
acetia le dei n.
SELECT [Nume/Denumi re proprietar] from [DATE REFERTOARE LA
- 139 -
Baze de dat e
PROPRETAR]
UNON SELECT [Suprafata din masuratori ] from [DATE REFERTOARE LA
TEREN] ORDER BY [Nume/Denumi re proprietar]
- 140 -
Baze de dat e
Ali operatori pentru mul i mi , ca de exempl u NTERSECT i
MNUS sunt folosii la aplicaiile client/server care leag baze
de date SQL Server diferi te. Operatorul NTERSECT returneaz
numai liniile gsite de ambele interogri. MNUS (diferena)
returneaz liniile din pri ma interogare care nu fac parte din a
doua .
O aplicaie client/server se poate crea i cu ajutorul
proiectul ui Microsoft Access.
N) )li operatori 9 %3 i >?2X??3
Cei doi operatori : N i BETWEEN asigur folosirea unei
forme scurte pentru funciile deja utilizate.
Dac se dorete obinerea din baza de date a tuturor
propri etari l or care au numele Mitu sau on se poate folosi
operatorul N, ca n urmtoarea comand SQL:
SELECT DSTNCT (owner_lastname + ' ' + owner_firstname ) AS
nume_propri etari FROM owner WHERE owner_lastname N ('Mi tu' , 'on' )
Dac se dorete obinerea din baza de date a tuturor
propri etari l or care au codul de identi ficare a adresei cuprins
ntre 200 i 210 se poate folosi operatorul BETWEEN, ca n
urmtoarea comand SQL:
SELECT DSTNCT (owner_lastname + ' ' + owner_firstname ) AS
nume_propri etari FROM owner WHERE owner_address_id between 200
and 210
Utilizarea predicatelor ALL, ANY i EXSTS
Domeni ul de obinere a rezul tatel or unei subinterogri
poate fi influenat prin precizarea unuia din cuvintel e cheie:
ALL, ANY i respecti v EXSTS.
1) ALL
Se preiau rezul tatel e subinterogri i i dac acestea
ndeplinesc condi i a cerut, se returneaz valoarea logic
TRUE.
n exempl ul urmtor dori m s cunoatem numerel e
cadastral e ale proprieti l or n care suprafaa construi t la sol
pentru corpul de cldire C1 este mai mare dect cea
corespunztoare corpul ui de cldire C2.
SELECT [Numar cadastral ] FROM [date referi toare la constructi i ]
WHERE [Nr corp cladire/constructi e] =' C1' AND [suprafata construi ta la
sol]
> ALL (SELECT [suprafata construi ta la sol] FROM [date referi toare la
constructi i ] WHERE [Nr corp cladire/constructi e] =' C2' )
2) ANY
Are n vedere compararea valorii de ieire a subinterogri i
cu fiecare nregistrare din interogarea extern. Dac pentru
- 141 -
Baze de dat e
fiecare nregistrare din interogare exist un rezul tat al
subinterogri i, se va returna valoarea logic TRUE. Spre
deosebi re de operatorul N poate fi folosit cu diveri operatori
relai onali. Cuvntul cheie SOME are acelai rol i caracteristici
ca ANY.
- 142 -
Baze de dat e
n exempl ul urmtor se dorete listarea tuturor numerel or
cadastral e emise n anul 2003, ordonate dup Unitatea
administrati v teri tori al .
SELECT [Uni tate admi nistrati v teri tori al a], [Numar cadastral ], [Data] from
[FSA CORPULU DE PROPRETATE] WHERE [Data] = ANY (SELECT [Data]
from [FSA CORPULU DE PROPRETATE] WHERE [Data] >#01/ 01/2003#
and [Data] < #31/12/2003#) ORDER BY [Uni tate admi nistrati v teri tori al a]
3) EXSTS
Folosete subinterogarea ca pe o condi ie, analiznd setul
de rezul tate al acesteia i returnnd valoarea FALSE dac nu
exist nici o ieire. Se poate verifica existena anumi tor
nregistrri i controla ansambl ul rspunsuri lor date de
interogare.
n exempl ul urmtor se dorete s se verifice dac au fost
emise ti tl uri de proprietate nainte de data 15 iulie 2002.
SELECT [Uni tate admi nistrati v teri tori ala], [Numar cadastral ], [Data]
FROM [FSA CORPULU DE PROPRETATE]
WHERE EXSTS (SELECT * from [FSA CORPULU DE PROPRETATE] WHERE
[Data] < #07/15/2002#) ORDER BY [Data]
Fiecare din cuvintel e cheie ANY, ALL i EXSTS poate fi
utilizat pentru restrici onarea interogri lor i n forma cu
negai e adic prin folosirea operatorul ui logic NOT.
-.2. 3. Instuci uni #ent u act uali&a ea +a&ei de dat e
Pentru inserarea unui tuplu ntr- o tabel se utilizeaz
comanda NSERT prezentnd urmtoarea sintax:
NSERT NTO nume_tabel [(nume_atri but,.)] {VALUES (valoare,.) |
cerere}
Lista de atribute se specific n cazul n care realizrile din
clauza VALUES nu corespund ordinii tupluril or din tabel. Dac
tupl ul /tupl uri l e inserate sunt preluate dintr- o alt tabel se va
specifica comanda SELECT.
Exempl u: se va introduce un tupl u n tabela FSA CORPULU DE
PROPRETATE, avnd n structura sa atributel e: numr
cadastral, adres, judeul, unitate admi nistrati v teri tori al , cod
SRUTA, cod intravi l an/extravi l an, seciune plan/nomencl atur,
ntocmi t, data, verificat, schia corpul ui de proprietate.
NSERT NTO [FSA CORPULU DE PROPRETATE] VALUES ('137' ,'Calea
Floreasca nr. 27','Bucuresti ' ,'Sector1' ,' 179141' ,' 2' ,' 6- B-
2','NiculaeDaniela' ,' 03/03/2004' ,'Popa on',' ' )
Actualizarea datelor dintr- o tabel se realizeaz prin
comanda UPDATE care prezint urmtoarea sintax:
UPDATE nume_tabel
SET {nume_atri but =expresi e,.| (nume_atri but =subcerere),.}
- 143 -
Baze de dat e
[WHERE condi i e]
- 144 -
Baze de dat e
Noua realizare a atributul ui actualizat se precizeaz prin
expresie sau este returnat de subcererea precizat. Clauza
WHERE permi te selectarea tupl uri lor afectate de actualizare.
Se actualizeaz numel e proprietarul unui corp de proprietate.
UPDATE [date referi toare la proprietar] SET [Nume/Denumi re
propri etar] ="NCULAE DANELA" WHERE [Nume/Denumi re
propri etar] ="SANDU VCTOR"
-.2. $. O#e aii asu# a vie>0 uilo
Un view este o tabel pri mar care nu conine date, dar
care i ofer utilizatorul ui posibili tatea de vizualizare a datelor
din baza de date dintr- o anumi t perspecti v. Pentru defini rea
unui view se folosete o cerere SQL.
View- urile pot fi folosite n urmtoarel e scopuri:
limi teaz accesul unor categori i de utilizatori la anumi te
date, mai mul t sau mai puin confideni al e;
permi te simpli ficarea viziunii utilizatoril or asupra bazei
de date;
asigur securi tatea i confideni al i tatea datelor. Fiecrui
utilizator al bazei de date i sunt asignate anumi te drepturi
(GRANT/REVOKE) ceea ce determi n o limi tare a accesului la
baza de date, la obiectel e bazei de date i la efectuarea unor
operaii asupra obiectelor bazei de date.
Asupra unui view se pot efectua ulterior aceleai operaii
ca i asupra unei tabele, dar cu deosebi rea c view- ul nu
conine date, ci este o reflectare dinami c a unei tabele.
Astfel, o modi ficare a datelor dintr- o tabel este automat
reflectat n view- urile defini te pe acea tabel. Un view se
recreeaz de fiecare dat cnd este apelat, pe baza defini i ei
sale stocate n dicionarul bazei de date.
Operaiile aplicate asupra view- urilor sunt:
crearea unui view cu comanda CREATE VEW;
interogarea view- urilor prin folosirea unei fraze SELECT;
actualizarea datelor dintr- un view folosind comanda
UPDATE;
adugarea de noi date folosind comanda NSERT;
tergerea datelor dintr- un view cu comanda DELETE.
Crearea unui view permi te definirea unei ,ferestre prin
care se pot consul ta datele stocate n tabele.
CREATE VEW nume_view [ <l ist atribute>]
AS SELECT secven select
[WTH CHECK OPTON]
Se poate observa n sintaxa comenzii c utilizatorul ui i se
permi te:
- 145 -
Baze de dat e
o specificarea denumi ri i view- ului i opional a denumi ri i
atributel or din view, n cazul n care se dorete redenumi rea
atributel or specificate n instruci unea SELECT;
- 146 -
Baze de dat e
o specificarea interogri i (fraza SELECT);
o specificarea opional a unei condi i i supli mentare
impuse view- ului, astfel nct s poat fi realizat actualizarea
sau inserarea datelor n view (prin utilizarea clauzei WTH
CHECK OPTON).
Definirea unui view este stocat n dicionarul de date al
sistemul ui . Odat defini t view- ul, drepturi l e de acces ale
utilizatori lor decurg pe de o parte, din privilegi ile acordate
utilizatori lor asupra relaiilor pentru care este defini t view- ul i
pe de alt parte din posibili tatea de actualizare a view- ului.
-.2. (. O#ti mi&a ea inteo"5ilo #in indec=i
Tabelele i coloanele pot avea asociate restrici i. O
restrici e este o regul care definete condi iil e care trebuie
ndeplini te pentru validarea datelor dup efectuarea unei
tranzaci i asupra bazei de date.
Restriciile pe coloane (de domeni u) sunt reguli asociate
tabelelor conform crora toate liniile tabelei sunt validate.
Restrici ile de domeni u pot fi defini te prin restrici i de
verificare, restricii de unici tate, clauza de referi n i clauza
NOT NULL. Aceste restricii definesc regulile de meni nere a
coerenei bazei de date. Ele sunt veri ficate de SGBD la fiecare
execui e a instruci uni i SQL.
ndecii pot fi clasificai astfel: indeci care apari n unei
singure tabele i care permi t accesul direct (instruci unea
CREATE NDEX) i indeci care apari n unei relaii ntre tabele
(clauza CONSTRANT).
ndeci care apari n unei singure tabele
ndecii au rolul de a opti miza codul de interogare.
nterogril e pe o tabel sunt favorizate de existena indecilor.
Dac nu exist un index pe o tabel, atunci nu poate fi utilizat
accesul direct (indexat). Pentru a opti miza ti mpul de cutare a
datelor trebui e creai indeci, dar nu mai mul t dect este
necesar. Un index cere s fie actualizat dup efectuarea
oricrei instruci uni NSERT, DELETE sau UPDATE. Prea mul i
indeci defini i pot produce consum de ti mp pentru a-i
ntrei ne.
Comanda CREATE NDEX permi te crearea unui index
simpl u sau mul ti pl u pe o tabel. ndexul poate fi cluster sau
noncluster. Pe o tabel poate exista un singur index cluster
care meni ne tabela ordonat ca n cazul unei sortri. Un
index cluster are tendi na de a pune valorile duplicate ale
coloanei indexate n aceeai pagin de memori e fizic, ceea
ce poate accelera accesul la date legate. Alegerea coloanelor
pentru index poate influena performan el e n exploatarea
bazei de date.
- 147 -
Baze de dat e
Sintaxa general este:
CREATE [CLUSTERED] [UNQUE] NDEX nume_index
ON nume_tabel (nume_cmp1 [, nume_cmp2,.])
- 148 -
Baze de dat e
Exemple:
CREATE UNQUE NDEX 1 ON [FSA CORPULU DE PROPRETATE]
([ADRESA])
CREATE NDEX 2 on [FSA CORPULU DE PROPRETATE] ([Uni tate
administrati v teri tori al a])
O cutare n index este mai rapid dect cutarea n
tabel n mod secveni al. ndexul este totodat ordonat pe
coloanele utilizate pentru a-l construi, iar liniile din tabel pot
fi n aceast ordine sau nu. Cnd indexul i tabela sunt
ordonate pe aceleai coloane, indexul se numete cluster.
SELECT * FROM [FSA CORPULU DE PROPRETATE]
WHERE [Numar cadastral ] =119 AND [Uni tate admi nistrati v
teri tori al a] =' Sector 1'
n cazul n care exist un index pe Vnitatea admi nistrati v
teri tori al i nu pe 3umr cadastral , vor fi cutate nti liniile
ce conin ,Sectorul 1 i dup aceea va fi cutat numrul
cadastral.
nstruci unea DROP NDEX terge indexul dintr- o tabel
specificat prin nume_tabel . Sintaxa general este:
DROP NDEX nume_index ON nume tabel
Exempl u:
DROP NDEX 1 ON [FSA CORPULU DE PROPRETATE]
ndeci care apari n unei legturi dintre tabele
Clauza CONSTRANT permi te crearea unui index dup numele
unui cmp; indexul poate fi declarat drept cheie pri mar
(PRMARY KEY) sau ca UNQUE sau stabilete o relai e ntre
cmpul nume de index i cmpul unei tabele externe (cu
opi unea REFERENCES foreign- table [forei gn_field]). Sintaxa
general a instruci uni i este:
CONSTRANT nume_index
{PRMARY KEY | UNQUE | REFERENCES foreign_tabl e [forei gn_field] }
Exist o diferen ntre UNQUE i PRMARY KEY i anume: pe o
tabel poate exista o singur cheie pri mar, dar UNQUE
specific existena unor valori unice la nivelul unei coloane. n
plus, PRMARY KEY coni ne automat o restrici e NOT NULL pe
cnd o coloan UNQUE poate avea valori NULL dac nu este
specificat n mod expres clauza NOT NULL. Clauza
REFERENCES pune n legtur dou tabele. Ea specific faptul
c valorile unei coloane apari nnd tabelei (care servete la
stabilirea de legturi ) trebui e s apar ntr- o coloan din
tabela referi t al crui nume este precizat n restrici e
(CONSTRANT nume_index).
Comanda DROP CONSTRANT permi te tergerea unei restricii
de unici tate sau de referin, utiliznd sintaxa:
- 149 -
Baze de dat e
DROP CONSTRANT nume_index
-.2. -. 1coda ea de#t uilo de acces
Utilizatori i bazei de date sunt repertorizai de SGBD prin:
identi ficatorul sistem;
parol;
nume de utilizare desti nat altor utilizatori .
Utilizatorul care creeaz o tabel este proprietarul
acesteia, de aceea el poate acorda altor utilizatori dreptul de a
manipula tabela. Acordarea acestor drepturi se realizeaz prin
comanda GRANT care prezint urmtoarea sintax:
GRANT [ALL/List de privilegii ]
ON TABLE 1,., TABLE n
TO [PUBLC/List utilizatori ]
[WTH GRANT OPTON]
unde:
List privilegi i: ALTER, DELETE, NSERT, UPDATE, SELECT
ALL: toate comenzile
PUBLC: toi utilizatorii
WTH GRANT OPTON: dreptul utilizatoril or de a acorda la
rndul lor drepturi de acces altor utilizatori.
Exempl u: urmtoarea comand GRANT va acorda dreptul de
actualizare i dreptul de tergere n tabela FSA CORPULU DE
PROPRETATE utilizatorul ui POPESCU:
GRANT UPDATE, DELETE ON [FSA CORPULU DE PROPRETATE] TO
POPESCU
Retragerea (anularea) drepturi l or de acces se realizeaz prin
comanda REVOKE care prezint urmtoarea sintax:
REVOKE [ALL/List de privilegii ]
ON TABLE 1, ., TABLE n
FROM [PUBLC/List utilizatori ]
Exempl u: se retrage dreptul de actualizare a tabelei FSA
CORPULU DE PROPRETATE utilizatorul ui POPESCU:
REVOKE UPDATE ON [FSA CORPULU DE PROPRETATE] FROM POPESCU
-.2. ?. Im#lement a e a o#e at oilo elationali !olosind lim+a@ ul S<3
Pentru implementarea operatori lor relai onali se folosesc
comenzi SQL cum ar fi: SELECT, NSERT i altele. n conti nuare
se prezint succint modul de implementare a operatori lor
algebrei relaionale.
REUNUNEA a dou tabele R i S (R U S) prezentnd
aceeai structur, unde R este format din n tupl uri i S este
format din m tupl uri, are ca rezul tat o a treia tabel, T avnd
aceeai structur cu a tabelelor surs i coni nnd mFn
- 150 -
Baze de dat e
tupl uri. Conform defini i ei, tabela T obinut n urma realizrii
operatorul ui reuni une va cuprinde att tupl uri le lui R ct i
tupl uri le lui S.
- 151 -
Baze de dat e
Fie dou tabele [date_propr_noi ] i [date referi toate la
propri etari ]. Tabela [date_propr_noi ] cuprinde noii proprietari
creai n cursul lunii curente. Operatorul reuniune se
realizeaz n Access prin dou cereri de aciune distincte.
Prima cerere va crea tabel ul [date_toti_propr] (denumi t T n
cadrul defini i ei reuniuni i) pe baza tabelei [date referi toare la
propri etari ]
SELECT * NTO date_toti_propr FROM [date referi toare la proprietari ]
A doua cerere va fi de tip adugare (append query) pe baza
tabelei [date_prop_noi ].
NSERT NTO date_toti_propr
SELECT * FROM date_propr_noi
NTERSEC|A a dou tabele R i S (R 8 S) prezentnd
aceeai structur, genereaz o a treia tabel T (cu aceeai
structur), coni nnd tupluril e identice apari nnd att lui R
ct i lui S. Pentru exempl i ficare se vor utiliza tabelele
[date_prop_noi ] i [date_toti_propr] care prezint aceeai
structur. mplementarea operatorul ui intersecie se face
printr- o fraz SELECT n care se realizeaz un inner (oin ntre
cele dou tabele mai sus meni onate.
SELECT * FROM date_propr_noi NNER JON date_toti_propr
ON [date_propr_noi ].[Numar cadastral ] =[ dat e_toti_propr]. [Numar
cadastral ]
Pentru crearea tabelei T se poate executa apoi o cerere de
aciune de tip creare tabel avnd drept surs de date cererea
construi t prin fraza SELECT prezentat mai sus.
DFEREN|A dintre dou tabele R i S avnd aceeai
structur (R S), este reprezentat de tabela T cuprinznd
mul i mea tupluril or apari nnd lui R, dar neapari nnd lui S.
mplementarea operatorul ui diferen se realizeaz construi nd
o cerere de cutare a tupl uri lor din tabela [date_toti_prop]
fr corespondent n tabela [date_propr_noi ]. Fraza SQL
corespunztoare este:
SELECT DSTNCT [date_toti_propr]. [numar cadastral ], [date_toti_propr].
[Nume/Denumi re proprietar], [date_toti_propr]. [Domi cil i u/Sediu
propri etar] FROM date_toti_propr LEFT JON date_propr_noi ON
[date_toti_propr]. [Cod numeric personal/Cod SRUES]=[ date_propr_noi ].
[Cod numeric personal/Cod SRUES] WHERE [date_toti_propr].[Cod
numeric personal/Cod SRUES] s Null;
Tabela T se poate crea apoi printr- o cerere de aciune de
tip creare tabel .
PRODUSUL CARTEZAN a dou tabele R i S (R x S) este
reprezentat de tabela T stocnd mul i mea perechilor obi nute
prin concatenarea nregistrri lor apari nnd lui R cu cele
apari nnd lui S.
- 152 -
Baze de dat e
Pentru exempl i ficare vom folosi tabela [DATE
REFERTOARE LA PROPRETAR] i tabela [DATE REFERTOARE
LA TEREN].
- 153 -
Baze de dat e
Vom construi o cerere de selecie avnd drept surs de date
cele dou tabele (nelegate ntre ele) i vom cobor n grila de
proiectare n rndul &(mp atributel e [Nume/Denumi re
propri etar] i [Suprafaa din msurtori ]. Fraza SELECT
corespunztoare acestei cereri de selecie este:
SELECT [DATE REFERTOARE LA PROPRETAR].[Nume/Denumi re
propri etar], [DATE REFERTOARE LA TEREN].[Suprafata din masuratori ]
FROM [DATE REFERTOARE LA PROPRETAR], [DATE REFERTOARE LA
TEREN]
Pentru crearea tabelei T se poate construi apoi o cerere de
aciune de tip creare tabel avnd ca surs de date cererea
prezentat mai sus.
SELEC|A aplicat asupra unei tabele R stocnd n tupluri
genereaz o nou tabel R1, prezentnd aceeai structur,
dar stocnd m tupluri (m<= n). Acest operator se
implementeaz prin construi rea unei cereri de selecie
coninnd, pe rndul &riterii din grila de proiectare, criteri ul de
selecie dori t. S presupunem c dori m s extragem din
tabela [FSA CORPULU DE PROPRETATE] toate informai i l e
apari nnd sectorul ui 1. Fraza SELECT corespunztoare
acestei cereri de selecie este:
SELECT * FROM [FSA CORPULU DE PROPRETATE] where [FSA CORPULU
DE PROPRETATE].[Uni tate admi nistrati v teri tori al a] ="Sector 1"
PROEC|A aplicat asupra unei tabele R prezentnd gradul
n va genera o nou tabel R
1
prezentnd gradul m (m<= n) i
stocnd acelai numr de tupl uri ca i R. Si de aceast dat
implementarea operatorul ui se va realiza prin construi rea unei
cereri de selecie, dar n rndul &(mp al grilei de proiectare se
vor cobor doar o parte din atributel e apari nnd structuri i
tabelei surs de date.
Dac dori m s cunoatem numele i adresa proprietari l or,
se va construi o selecie pe tabela [DATE REFERTOARE LA
PROPRETAR], prezentnd urmtorul coni nut:
SELECT [DATE REFERTOARE LA PROPRETAR].[Nume/Denumi re
propri etar], [DATE REFERTOARE LA PROPRETAR].[Domi cili u/Sedi u
propri etar] FROM
[DATE REFERTOARE LA PROPRETAR];
Frazele SELECT permi t utilizarea mai mul tor tabele drept
surs de date (n defini i a operatori lor algebrei relai onal e
sursa de date este reprezentat de o singur tabel) i
combinarea operatori l or de selecie i de proieci e. Proiecia
se realizeaz prin precizarea listei atributel or pentru care se
ntorc valori, iar selecia prin utilizarea clauzei WHERE care
specific criteri ul de selecie.
COMPUNEREA (JON) se aplic asupra a dou tabele R i S
- 154 -
Baze de dat e
care prezint n structura lor un atri but comun (numi t atribut
de jonci une) i genereaz o tabel T cu o structur complex
format implici t din mul i mea atributel or tabelelor surs.
- 155 -
Baze de dat e
Operatorul de compunere se implementeaz prin fraza
SELECT atunci cnd sursa de date este reprezentat de mai
mul te tabele. Cel mai utilizat operator de compunere este
inner (oin care presupune ca valorile atri butel or de
compunere din cele dou tabele surs s prezinte realizri
comune. n exempl ul urmtor cererea de selecie returneaz
numrul cadastral din tabela FSA CORPULU DE PROPRETATE
i numele proprietarul ui din tabela DATE REFERTOARE LA
PROPRETAR.
SELECT [FSA CORPULU DE PROPRETATE].[Numar cadastral ], [DATE
REFERTOARE LA PROPRETAR].[Nume/Denumi re proprietar] FROM ([FSA
CORPULU DE PROPRETATE] NNER JON [DATE REFERTOARE LA
PROPRETAR] ON [FSA CORPULU DE PROPRETATE].[Numar cadastral ] =
[DATE REFERTOARE LA PROPRETAR].[Numar cadastral ]) NNER JON
[DATE REFERTOARE LA TEREN] ON [FSA CORPULU DE PROPRETATE].
[Numar cadastral ] = [DATE REFERTOARE LA TEREN].[Numar cadastral ]
Pe lng inner (oin frazele SELECT pot cupri nde i operatori
de compunere de tip: left (oin , ri!ht (oin, self (oin , theta
non8 eJual .

- 156 -
Baze de dat e
-. -. % %12E 12E DE DE D1TE D1TE DISTRI%UITE DISTRI%UITE
O baz de date distri bui t este un ansambl u de baze de
date gestionate de ctre site- uri diferi te i aprnd pentru
utilizator ca o baz unic. Bazele de date distri bui te sunt
prevzute de autori ca un mijloc de unire a coleciilor de date,
mai mul t sau mai pui n eterogene, disemi nate ntr- o reea de
calculatoare sub forma unei baze de date globale, eterogene
i integrate.
Site Site
$ucure"ti Reea WAN 0radea
Site
Site
$rila /e"ia
Figura 7.1.
Distribui rea datelor se poate realiza:
6rin replicare, baza de date se copiaz (pari al sau total )
n mai mul te noduri din reea. De obicei, replicarea este util
att pentru mbunt i rea performan el or sistemul ui ct i
pentru o mai bun proteci e a datelor. De exempl u, este
recomandabi l ca o aplicaie s acceseze baza de date local
dect baza de date aflat la distan pentru o mini mizare a
traficul ui pe reea. Mai mul t, n cazul n care serverul local nu
i mai poate ndeplini funciile din diverse moti ve, aplicai a
poate funci ona n conti nuare dac sunt accesibile alte servere
care coni n replici ale datelor aflate pe serverul local.
Replicarea are i dezavantaj ul expri mat prin necesi tatea
actualizrii zilnice a fiecrei copii.
6rin fragmentare, de regul tabelele sunt descompuse n
- 157 -
Baze de dat e
grupuri de linii
1
sau n grupuri de coloane
2
. Avantaj ul
fragmentri i este dat de dimi nuarea costuril or n comunicare
pentru prelucrril e locale. Dezavantaj ul fragmentri i este dat
de creterea costuril or de prelucrare n cazul n care aceasta
se aplic la mai mul te fragmente. Fragmentarea poate fi
orizontal (o tabel se descompune n sub- tabele folosind
predicate, permi nd selectare liniilor apari nnd fiecrui
tabel) sau vertical (o tabel se descompune n sub- tabele
prin proiecii ce permi t selectarea coloanelor ce compun
fiecare sub- tabel).
Exempl u de fragmentare pe orizontal :
5ragment ,ite
,arca 2ume *ocali tat e Salari u
11 Popescu Bucureti 900
15 onescu Bucureti 700
17 Vasilescu Bucureti 500
5ragment ,ite !
,arca 2ume *ocali tat e Salari u
9 Barbu Brila 400
16 Dumi tru Brila 700
18 Voinea Brila 500
Exempl u de fragmentare pe vertical:
Fragment 1
,arca 2ume *ocali tat e
9 Barbu Brila
11 Popescu Bucureti
15 onescu Bucureti
16 Dumi tru Brila
17 Vasilescu Bucureti
18 Voinea Brila
6rin replicare i segmentare, rezul t din aplicarea
succesiv a operatori l or de descompunere orizontal i
vertical la o tabel global.
3ot9 Fiecare fragment este plasat sau replicat pe un site.
Se elaboreaz o schem pentru a determi na localizarea
fiecrui fragment numi t schem de distri bui re (de plasare).
Avantaj ele distri bui rii datelor sunt:
1
fragmentare orizontal
2
fragmentare verticala
- 158 -
Fragment 1
,arca Salari u
9 400
11 900
15 700
16 700
17 500
18 500
Baze de dat e
- 159 -
Baze de dat e
6arta0area datelor distri bui te . Utilizatorul poate s aib
acces, de la un site, la ansambl ul datelor stocate n baza de
date distri bui t. Fiecare site stpnete propriile date;
5iabili tate i disponi bili tate . Cnd un site cade n pan,
celelal te pot s se substi tui e acestuia pentru a meni ne
exploatarea;
?#ecutarea accelerat a interogri lor. O interogare
poate s fie uor descompus n sub- interogri , fiecare
opernd pe un site particul ar; cnd datele sunt replicate pe
mai mul te site- uri, o interogare poate s se adreseze site- ului
cel mai pui n ncrcat.
nconveni entel e distri bui rii datelor sunt:
Costuri mul t mai mari de dezvol tare a aplicaiilor;
Fiabili tatea sczut a algori tmi l or de prelucrare
distri bui t;
5ipuri de baze de date distribui t e
Bazele de date distri bui te pot fi:
8mogene , bazele de date sunt gestionate de SGBD-uri
identice localizate pe site- uri diferi te. Majori tatea aplicaiilor
practice cu BDD utilizeaz baze de date omogene i respecti v
model ul relaional pentru organizarea datelor.
?terogene, SGBD-urile sunt diferi te i sunt bazate pe
module diferi te.
Dup gradul de integrare al bazelor de date eterogene
distingem:
,ul ti baze , mai mul te baze de date eterogene
interopereaz ntre ele cu o aplicaie via un limbaj comun;
$aze federati ve , mai mul te baze de date eterogene
sunt accesate ca una singur via un model comun.
Avantaj ele lucrul ui cu baze de date distri bui te:
Posibili tatea implementri i n organizaii cu reparti i e
geografic a sistemelor informa i onal e distri bui te;
O mai bun folosire a resurselor comune (hardware,
software, baze de date);
O mai bun disponi bili tate a datelor n prezena unei
pane sau a unei disfunci onal i ti ;
Lucrul cu baze de date distri bui te nu nseamn numai
avantaj e. El atrage dup sine i dificul ti ndeosebi n cazul
integrri i n BDD a bazelor de date eterogene. Aceste
dificul ti sunt date n pri mul rnd de limi tel e sistemel or de
gestiune a bazelor de date distri bui te cu baze de date
eterogene.
- 160 -
Baze de dat e
?.1. Sist eme de "esti une a +a&elo de dat e disti+uit e
?.1. 1. Com#onent e esen i al e
Pentru gestiunea bazelor de date distri bui te se utilizeaz
un SGBDD. Un SGBDD trebui e s furnizeze clienil or iluzia unei
baze de date unice.
- 161 -
Server 1 Server i
+ntero!are
distribui t
Baze de dat e
Principalele componente pentru gestiunea bazelor de date
distri bui te sunt:
Sistem de %estiune a $azelor de Date /elaional e
are rolul de a gestiona colecii de baze de date, legate logic
ntre ele, distri bui te ntr- o reea de calculatoare, furniznd
mecanisme de acces care fac, pentru utilizatori, reparti i a
transparent.
Client al S%$D/, aplicai e care accede la date
distri bui te folosind interfaa SGBDD;
Server al S%$D/, SGBD care gestioneaz o baz de
date local integrat ntr- o baz de date distri bui t;
3ot: un calculator conectat n reea (un site) poate s fie
n acelai ti mp client i server al SGBDD.
n baza celor prezentate putem sintetiza i defini un
SGBDD:
Defini i
e
Se numete Sistem de %estiune a $azelor de Date
Distribui t e un ansambl u de programe ce gestioneaz date
distri bui te pe un ansambl u de site- uri, integrnd module client
i modul e server. Modulele client i modul ele server
colaboreaz prin mediatori specifici.
?.1. 2. O+iectivel e unui Sist em de 'estiune a %a&elo de Dat e
Disti+uit e
Principalele obiecti ve ale unui SGBDD sunt:
). .ucrul mul ti client i mul tiserver . Pentru atingerea
acestui obiecti v el trebuie s furnizeze mecanisme de control
al concurenei i s permi t executarea de interogri
distri bui te. ,punem c o cerere este distri bui t dac e#ecui a
necesi t e#ecui a a n sub1 cereri pe n servere (figura O.!.) .
Tranzacia
1
care pune n lucru mai mul te servere este i ea
numi t tranzaci e distribui t (adesea tranzaci ile distri bui te
comport interogri distri bui te).
Figura 7.2.
1
O tranzacie este construi t dintr- un ansamblu de interogri, dintre care unele pot fi de actualizare a bazei de
date.
- 162 -
Client
Server n
Schem
ext ern
Schem
ext erna
Schem
export at /import at
Schem
export at /import at
Schem l ocal
Schem
global
Baze de dat e
>. 2ransparena la localizarea datelor. Aplicaiile trebui e
scrise fr a lua n calcul localizarea fizic a datelor. Spre
exempl u, interogri le SQL se vor formul a similar interogri lor
locale. Transparena la localizare prezint totui i
inconveni ente pentru sistem: el trebuie s caute site- urile n
msur s furnizeze elementel e de rspuns. Compromisul
poate fi s se adauge la numele tabelei un nume ierarhic ce
consti tui e, n fapt, numele de localizare. n acest caz, la
formul area interogri i nu se mai beneficiaz de independen a
de localizare.
&. 8 mai bun disponi bili tate a datelor . SGBDD-urile
opereaz cu replici (copii) i asigur atomici tatea unei
tranzaci i. O tranzaci e trebui e executat corect n ntregi me
sau neexecutat deloc.
*. )utonomi a local . Un SGBDD trebuie s evite
necesi tatea unei administrri centralizate a BDD.
?. ,uport pentru eterogeni tate . n perspecti v, un SGBDD
trebuie s fie capabil s unifice modele (relai onal, obiect,
fiier) i limbajele de acces pentru a putea gestiona baze de
date federati ve. ntegrarea semantic a datelor este departe
de a fi gsit soluii viabile n practic.
?.1. 3. Nivelui de e# e&ent a e a dat el o
Arhi tectura unui SGBDD cuprinde:
Figura 7.3.
Schema local , descrie datele locale gestionate cu
SGBD-ul local;
Schem exportat , descrie datele exportate de ctre
un site ctre site- urile client;
Schema import at 3 schema exportat pri mi t de ctre
un site client;
- 163 -
Schem local
Baze de dat e
Schema !lobal3 schema construi t pe un site client
prin integrarea global a schemel or importate descriind BDD
vzut din partea acestui site. Ea nu este, n general,
materi al izat pe fiecare site client al unui SGBDD. Se prefer
s se defineasc pentru fiecare aplicaie sau grup de aplicai i
o schem extern (care consti tui e o integrare parial a
schemel or importate);
- 164 -
Baze de dat e
Schema inte!rat , schema ce descrie datele BDD
accesate de ctre o aplicai e sau un grup de aplicaii (ele sunt
scheme externe la nivel SGBD-ului client i sunt construi te
porni nd de la tabelele importate combi nate eventual cu
tabelele generate de ctre SGBD a site- ului client).
ntr- un sistem cu baze de date omogene schema exportat
este un ansambl u de scheme externe al bazei locale i este
direct gestionat de ctre SGBD-ul local. Schema importat
devine un ansambl u de scheme de tabele pentru care o
versiune este pstrat ntr- un cache la nivel ul SGBD pe site- ul
client.
Arhi tectura de referi n a unui SGBDD este axat pe trei
componente funci onal e:
2iv elul local , este prezent pe fiecare server i permi te
s se exporte date locale dup un model pivot al SGBDD;
2ivelul de comunicare , permi te transmi terea sub-
interogri lor proveni nd de la un site client la server n limbaj ul
pivot de schimb;
2ivelul interoperabi l , permi te formul area de
interogri utiliznd scheme integrate ale bazei; el asigur
descompunerea n sub- interogri i trecerea de la scheme
integrate la diferi te scheme importate.
Figura 7.4.
?.2. Conce#e e a =i admi ni st a e a +a&elo de dat e disti+uit e
Conceperea bazelor de date distri bui te este subordonat
direct sistemul ui BDD i presupune reprezentarea datelor pe
- 165 -
Acces
Obiect e di st ant
Gest iune
Obiect e
i nt egrat e
Acces
Obiect e locale
Adapt or local
X
Ni vel
l ocal
SGBD X
Ni vel
comuni car
e
Ni vel
i nt eroperabil
Schema
i nt egrat
Schema
i mport at
SGBD X
Schema exportat
Schem local
server
Client
Model
pivot
Model
de
acces
Baze de dat e
nivel uri le sale ierarhice. n prezent, majori tatea sistemelor
BDD sunt axate pe utilizarea bazelor de date omogene si pe
folosirea modelul ui relai onal n organizarea datelor.
Determi narea structuri l or de date presupune, n principal,
respectarea metodol ogiei specifice modelrii relai onale a
datelor. Elementel e specifice in de: tehnica de distri bui re a
datelor adoptat, autonomi a acordat bazelor de date locale,
de tehnicile de opti mizare a cererilor.
Un caz particul ar l reprezint BDD cu admi nistrare
central (global). n acest caz se poate proceda la distri bui re
prin fragmentare (pe un site se va memora un fragment al
tabelei globale), prin replicare (pe fiecare site se memoreaz o
replic a tabelul ui global) sau prin fragmentare i replicare (un
fragment poate fi replicat pe mai mul te site- uri).
Fiecare baz de date din BDD este admi nistrat de ctre
un server local, dar comunic cu celelal te baze de date n
scopul meni neri i consistenei ntregul ui sistem.
Se cunoate c un server de baze de date admi nistreaz
baza de date, n ti mp ce un client emi te cereri ctre server pe
care acesta din urm le rezolv. Fiecare computer pe care
sunt stocate date din cadrul unei baze de date distri bui te se
numete, n general, nod i se poate afla ori n postura de
server , ori n cea de client , ori n ambele simul tan.
ntr- o baz de date distri bui t, sistemul admi nistreaz o
singur copie a tuturor datelor, aplicaiile pentru baze de date
distri bui te folosind, n general, tranzaci i distri bui te pentru a
accesa att datele locale ct i datele la distan i modific
baza de date global n ti mp real. Fiecare server care face
parte dintr- o baz de date distri bui t este admi nistrat n mod
independent, deci, putem spune c fiecare baz de date
component a unei BDD se comport ca o baz de date
nedistri bui t.
Dei unele baze de date pot colabora ntre ele, fiecare
baz de date reprezint un depozi t de date distinct, care este
administrat indi vi dual. Acest mod de lucru prezint o serie de
avantaj e:
Administratori i bazelor de date locale control eaz numai
datele locale, ceea ce conduce la o restrngere a ariei de
responsabili ti i la o gestionare mai facil.
n cazul apari iei unor probleme la nivel local, este pui n
probabil ca acestea s se propage n ntreaga baz de date,
disfunci onal i t i l e aprute ntr- o baz de date local
nedetermi nnd, n general, oprirea ntregul ui sistem.
Dei este posibil administrarea n mod indi vi dual a
fiecrei baze de date, nu trebuie s fie ignorate cerinel e
- 166 -
Baze de dat e
globale ale sistemul ui . De exempl u, prezena unui cont care
s permi t stabilirea unei conexi uni server- la-server este
necesar n toate bazele de date ale sistemul ui, precum i
acordarea drepturi l or de actualizare unor utilizatori.
ntr- un sistem de baze de date distri bui t, trebui e conferi t o
ateni e spori t modul ui n care are loc definirea conturil or de
utilizator i a drepturi l or aferente acestora n vederea unei
bune funcionri a ntregul ui sistem.
n ceea ce privete proteci a i securi tatea datelor i a
accesului la date, o baz de date distri bui t trebui e s
beneficieze de o serie de servicii i standarde de securi tate
(de exempl u: parole i servicii de autenti ficare a utilizatori lor,
criptarea pachetel or de date transmise pe conexi uni client- to-
server i server- to- server).
n vederea realizrii securi ti i datelor i a unei bune
funci onri a sistemul ui , este necesar existena unor facili ti
spori te n ceea ce privete asigurarea unui schi mb de date
sigur ntre bazele de date ale unui sistem de baze de date
distri bui t. Astfel, se impune prezena unui serviciu de
criptare/decri ptare a datelor care s nu permi t vizualizarea
datelor de ctre utilizatori neautorizai, a unui serviciu de
autenti ficare a emi tentul ui , precum i a unui serviciu de
verificare a corecti tudi ni i datelor recepi onate ( c7ecBsummi ng
service ) care se asigur c datele nu au fost alterate
(modi ficate, terse sau nlocui te) n ti mpul transmi teri i.
ntr- un sistem de baze de date distri bui t fiecare baz de
date trebuie s aib un nume global unic, nume care identi fic
n mod unic baza de date. Un nume de baz de date global
este format din dou pri: numel e bazei de date i numel e
domeni ul ui care conine baza de date. Numele domeni ul ui
trebuie s respecte standardele nternet, nivelele domeni ul ui
fiind separate prin punct de la frunze spre rdcin, de la
stnga spre dreapta.
?.3. .ani#ul a ea +a&elo de dat e disti+uit e
Opiunea pentru modelul relai onal de organizare a
datelor, n cazul BDD omogene, permi te utilizatoril or s
foloseasc limbaj ul SQL pentru mani pularea datelor. Dup
cum s-a meni onat, n mani pul area bazelor de date distri bui te
trebuie s se fac abstraci e de localizare acestora.
O tranzaci e n cazul BDD trebuie s verifice propri eti l e
ACD (atomicitat e , coeren , izolare de alte tranzaci i,
durabili tat e n caz de pan).
Este important s se asigure c actualizrile unei tranzaci i
se efectueaz pentru toate site- urile ce particip la tranzaci e.
- 167 -
Baze de dat e
Cum un site poate decide de a valida sau de a anula o
tranzaci e, este necesar coordonarea procesului de validare.
Control ul sistemel or distri bui te este centralizat sub direcia
unui site coordonator, celelal te fiind site- uri partici pante.
- 168 -
Baze de dat e
n sistemele &lientL,erver , clientul joaca rol de coordonator
iar serverele de partici pani . ntr- o pri m etap, coordonatorul
verific dac celelal te site- uri sunt gata pentru a comi te
actualizri, pri mi nd rspunsul printr- un mesaj adecvat. Dac
toi partici pani i rspund poziti v coordonatorul difuzeaz un
mesaj, participani i efectund validarea lor la ordinul
clientul ui. Dac un partici pant rspunde negati v,
coordonatorul cere celorlal i partici pani de a abandona
tranzaci a. Exist protocoale special defini te pentru validarea
tranzaci ilor.
Deosebi t de important este i control ul tranzaciil or. Exist
protocoale specializate care permi t sincronizarea actualizrilor
pentru a evi ta astfel pierderi le de actualizare i apari i a de
incoerene.

- 169 -
Baze de dat e
?. ?. % %12E 12E DE DE D1TE D1TE ON ON0 03INE 3INE
A.1. Intenet 8Int anet =i +a&e de dat e
Reelele ntranet inaugureaz o nou generai e a
sistemelor informati ce care permi t utilizarea total sau
pari al a tehnologi ilor i infrastructuri l or nternet pentru
transmi terea i prelucrarea fluxuril or de informai e interne ale
unui grup de utilizatori .
Figura 8.1.
ntranet este o soluie ideal pentru organizaii le cu un
numr de utilizatori mai mare dect 1000 i/sau cu localizarea
lor distri bui t pe o suprafa geografic exti ns. nternet
utilizeaz reelele locale, protocoalele de comunicai e TCP/P,
servicii nternet ca: Web, e-mail, FTP, news etc. i n egal
msur, software personalizat i instrumente pentru
consul tarea bazelor de date (figura 8.1).
La baza tehnologiei nternet este serverul Web, configurat
pe reeaua local. Funciile serverul ui Web pot fi exti nse, prin
accesul la bazele de date existente sau la alte aplicaii. Prin
utilizarea standardul ui CG, un program sau script se poate
executa pe server, ca urmare a unei cereri adresate printr- o
pagin Web.
- 170 -
TCP/P
TCP/P
AP
Java
Java
Cl i ent
mail
Cl i ent
mail
Browser
Web
FTP
FTP
Di rect oar
e cu
fi i ere
Di rect oar
e cu
fi i ere
Server
=eb
K55.
Server
=eb
K55.
Mesageri e
SMTP/POP
Mesageri e
SMTP/POP
Groupware
sau
News
Groupware
sau
News
Document e
HTML
Document e
HTML
AP
AP
CG
CG
Program
e
Program
e
Baz
mesaj e
Baz
mesaj e
Baz
di scu i i
Baz
di scu i i
Baz
dat e
t ext
Baz
dat e
t ext
Baz
dat e
obi ect e
Baz
dat e
obi ect e
Al t e
apl i ca ii
Al t e
apl i ca ii
Baz
dat e
rel a i onal

Baz
dat e
rel a i onal

Baze de dat e
eirile programul ui sau scriptul ui CG ( &ommon ;ate4ay
%nterface ), n format text/ht ml , pot fi returnate n mod
dinamic. Pentru realizarea unui Web interacti v, n paginile
HTML pot fi incluse applet- urile Java
1
. Un ntranet nu implic
neaprat i conectarea sa la reeaua public global nternet,
totui, aceasta aduce mul te beneficii.
Un ntranet este consti tui t din servicii destinate
utilizatori lor finali i echipelor informati ce ce pot fi divizate n
opt niveluri.
Serviciile de transport sunt cele care permi t: transferul
ntr- o reea local, accesul de la distan la sistemel e
informati ce, accesul la nternet, interconexi unea LAN/WAN.
Serviciile pentru accesul la distan permi t agenil or mobili
ai organizaiei s aib acces la sistemul informati c. Accesul de
la distan se poate face n dou moduri : prin acces direct la
sistemul informati c sau utiliznd nternet- ul ca mijloc de
transfer al informa i ei. De cele mai mul te ori, accesul la
nternet se face printr- un fire4all .
Un ntranet poate include servicii de administrare i
gestiune a reelei cum sunt: supervizarea, telentrei nerea,
servere cache.
,upervizarea unui ntranet permi te supravegherea fiecrui
element al ansambl ul ui : reele, rutere, impri mante,
calculatoare, software etc., avnd la baz standardul ,3:6
(,imple 3et4orB :anagement 6rotocol ) din nternet. Muli
productori furnizeaz instrumente de management
specializate pentru SNMP, care asigur administratori l or de
reea o viziune uni tar asupra ntregii reele a corporai ei.
Aceste sisteme de management pot fi distri bui te de- a lungul
unei reele internai onale cu o admi nistrare ierarhizat.
,erverele cac7e sau pro#y au fost folosite mai nti n
nternet pentru a reduce fluxul informai onal prin sistemul de
comunicai e. Un server proxy reprezint un mecanism ce
permi te o selecie a rspunsuril or.
Serviciile de securitat e pe ntranet sunt asigurate prin
mecanismele nternet- ului. Dintre serviciile de securi tate care
sunt la baza ntranet- ului aminti m:
)utenti ficarea se face prin mecanisme simple (cum ar
fi parolele) sau mecanisme mai complexe (tip )ctiv&ard sau
,ecure%*)
&ifrarea are ca scop garantarea integri ti i fluxul ui de
informa i i din ntranet. Tehnicile de cifrare sunt numeroase.
Multe provi n din sectorul aprrii i nu sunt specifice nternet-
1
Applet- urile sunt programe scrise pentru a fi executate ntr- o aplicaie browser (program de navigare)
- 171 -
Baze de dat e
ului, exceptnd programul de cifrare PGP (6retty ;ood
6rivacy) ;
5iltrarea serviciilor, adreselor i coni nutul ui n mod
clasic, este o funci e realizat prin mecanismul de tip fire4all ,
ce autorizeaz sau interzice anumi te tipuri de pachete
conform setul ui de reguli stabili t prin politica de securi tate a
reelei.
- 172 -
Baze de dat e
Serviciile de parta( are a informai ei din ntranet sunt
destinate arhi vrii i resti tui ri i informai i l or pe care le conine.
ntr- un ntranet se disting dou tipuri de servicii pentru
stocare:
Serviciile de stocare i acces: servere de fiiere, servere
de date (bazele de date), servere de documente;
Serviciile pentru producerea i publicarea informa i i l or.
$azele de date din ntranet sunt realizate prin
intermedi ul standardel or existente pe pia, n particular prin
SQL. Pentru a putea fi consul tate cu un navigator, ntre baza
de date i serverul Web este necesar o interfa. n ulti mul
ti mp, principalele baze de date relaionale integreaz servere
Web sau middl e4are necesar (Oracle WebServer pentru
Oracle i Web SQL pentru Sybase).
Serverul de documente dintr- un ntranet permi te
utilizatorul ui s caute i s consul te ansambl ul documentel or
produse n organizai e. Aceste servere sunt n general servere
Web i de cele mai mul te ori, ele sunt cuplate cu motoarel e de
cutare. Serverele de documente consti tui e nucleul unui
ntranet, deveni nd placa turnant a sistemul ui informati c.
Mecanismul pentru generarea informai ei sunt integrate
direct instrumentel or de birotic (Word, Excel, HTML Assistant
pentru produsele Microsoft) sau sunt produse specifice
(FrontPage realizat de Microsoft sau Netscape Composer de la
Netscape).
irculai a document el or (XorBflo4 ) este o extensie
natural a potei electronice. Ea permi te circulai a unui
document dup o schem prestabi li t. Produse ca Metro sau
Live Link ale OpenText i-au fcut apari ia pe pia.
%ehnologiile video &i audioconferi n el e utilizate pe
nternet sunt deja prezente pe ntranet- uri. Conferi nel e pot fi
transmise punct cu punct sau mul ti punct. Produsul cel mai
utilizat pentru videoconferi ne este CU-SeeMe.
Serviciile de lucru 'n grup 'n timp parta( at reprezint o
extensie a workfl ow, prin care se permi te mai mul tor
persoane, situate n puncte geografice diferi te, s lucreze
mpreun la acelai document. n acest sens au aprut
produsele ca WebShare de la Radnet sau OpenMind de la
Attachmate.
Pentru comunicarea ntre salariai i firmei, ntranet face
apel la o serie de servicii specializate n acest sens, cum
sunt: pota electronic i listele de difuzie, circulai a
documentel or, videoconferi ne i audio- conferi ne, lucru n
comun n ti mp partaj at, forumuri .
)o&ta electronic ntranet are la baz mecanismele
- 173 -
Baze de dat e
nternet: SMTP (,imple :ail 2ransfer 6rotocol ), POP3 (6ost
8ffice 6rotocol ) i MAP (%nteracti ve :ail )ccess 6rotocol ).
O mesageri e ntranet poate avea n completare un sistem
de liste de difuzie. Aceste mecanisme permi t unui utilizator s
se aboneze la o list de difuzie pe o anumi t tem prin
intermedi ul potei.
Forumuril e permi t utilizatori lor ntranet- ului s schi mbe
idei. Exist dou tipuri de forumuri :
5orum interacti v 'n ti mp real , cnd ceea ce se tasteaz
de ctre un utilizator va aprea imediat pe ecranele celorlal i .
Este vorba de model ul RC (%nternet $elay &7at ) din nternet.
5orum interacti v 'n ti mp diferi t , cnd ceea ce este scris
este difuzat imediat, dar fiecare poate citi cnd dorete.
Acesta respect model ul News Usenet.
Serviciile pentru dezvol tarea aplicaiilor se refer la:
limbajele de programare ce sunt adaptate mediul ui reelei
(limbaj ul Java) i atelierele de software ce permi t realizarea
propriilor aplicaii ntranet.
Serviciile pentru accesul la informai il e &i aplicaiile
ntranet sunt incluse n navi gatoare.
Dac exist informai e partajat de mai mul te ntranet- uri
se utilizeaz noi unea de ?#tranet . Diferena esenial ntre
ntranet i Extranet se situeaz la nivel ul drepturi l or de acces
la informai i i la partajarea acestora.
Reelele ntranet nu pot fi vzute ca sistemele informati ce
tradi i onal e. Ritmuril e sale de evolui e, capaci tatea sa de
exti ndere, posibili tatea de proteci e, puterea de adaptare
permanent l impun ca un sistem dintr- o nou generai e,
unde restrici il e tehnice se ascund pui n cte puin, lsnd
cale liber comunicrii ntre oameni.
A.2. Element el e s#eci!ice +a&elo de dat e on0 line
O baz de date utilizat ntr- un medi u nternet/Extranet
este considerat o baz de date on- line. Accesarea bazelor de
date on-line este posibil prin intermedi ul paginilor web
dinamice.
n conti nuare se va face o trecere n revist a principalelor
metode de interconectare ntre bazele de date i paginile
Web.
6# Common %ateFa4 +nterface L C%+ (figura 8.2.) este
un standard de comunicare ntre paginile Web i alte aplicaii
care se execut pe server.
- 174 -
HTTP
Navigat or
Server
CG
SGB
D
Baz de
dat e
paramet
ri
rezult at e
Baze de dat e
Figura 8.2.
Principal ul avantaj al acestei metode const n faptul c exist
posibili tatea alegerii unui limbaj de programare pentru a
implementa accesul la baza de date (limbaj ul n care va fi scris
CG-ul).
Dezavantaj el e acestei metode sunt:
nu asigur un management al tranzaci ilor, nu permi te accesul
simul tan;
nu exist o sincronizare ntre navigatorul care a lansat cererea
de interogare i programul de acces la baza de date.
M# Server capabil s realizeze comenzi de acces la baza de
date (SS ,erver ,ide %nclude ), altfel spus, un server Web
care include un SGBD mini mal (figura 8.3.)
Aceast metod este implementat prin componenta
, 2etscape *ive=ire , care este capabil s neleag
comenzi de acces la baza de date i care se execut pe
server. Comenzile sunt introduse n paginile HTML prin tag- uri
specializate. n momentul ncrcrii paginii, navigatorul le
trateaz drept comentari i, iar serverul le execut furniznd
navigatorul ui rezul tatel e. Aceast metod nu permi te accesul
simul tan la baza de date. Din punctul de vedere al
management ul ui tranzaci ilor, ca i metoda CG, conexiunea la
baza de date este valabil atta ti mp ct este prelucrat
fiierul HTML din care face parte.
Figura 8.3.
n plus, aceast metod necesit un server dedicat
accesului la baza de date. Netscape LiveWire suport accesul
direct prin limbaj ul SQL la bazele de date ORACLE, Sybase i
nformi x i prin intermedi ul standardul ui ODBC ( 8pen
*ata>ase &onnecti vi t y ) la toate bazele de date care suport
acest standard. Avantaj ul principal al acestei metode const n
faptul c serverul acceseaz direct baza de date.
N# $aze de date K55. (figura 8.4.)
Conform acestei metode, comenzile HTML care se adreseaz
unei baze de date sunt direcionate ctre o interfa ntre
- 175 -
Server
Navi gat or
HTTP
Baz de
dat e
SS
SGB
D
Baze de dat e
protocol http i SGBD-ul aferent.
Figura 8.4.
Principalul avantaj al acestei metode const n faptul c
navigatorul acceseaz direct baza de date. Dezavantaj ul
const n faptul c interfaa HTTP este dedicat unui anumi t
SGBD, ceea ce nu permi te o interacti vi tate real a paginilor
Web.
O# Accesul direct din navi!ator la o baz de date prin
limba(ul >A9A
Aceast metod este implementat prin componenta >ava
Database Conecti vi t4 (>D$C) care face parte din >ava
Development Eit (>DE 6#6 )
Figura 8.5.
Deoarece clientul are acces direct din navigator la baza de
date, metoda mai este cunoscut i sub numele de &lient ,ide
%nclude (CS+ ).
Metoda se bazeaz pe ideea c navigatorul ncarc un
program specializat (Applet JAVA), fie de pe calculatorul local
sau de pe un server Web i apoi acesta se ocup de
conexi unea i accesul la baza de date. Apelul applet- ului JAVA
se face printr- un document HTML cu ajutorul unui tag
specializat n acest sens.
Aceast metod prezint mai mul te avantaj e:
management ul complet al tranzaci ilor i control ul
accesului concurent;
posibili tatea implementri i acestei metode pe orice
platform ca urmare a posibili ti i limbajul ui JAVA;
asigur o interacti vi tate de nivel nalt n interiorul
- 176 -
Navigat or
HTTP
Baz de
dat e
nt erfa a
HTTP
SGBD
SERVER
Navi gat or
Baz de
dat e
Appl et
JAVA
Document
HTML
con innd
cod
JAVASCRP
T
HTT
P
SGBD
Baze de dat e
paginilor Web;
permi te accesul la baze de date relaional e i orientate
obiect;
permi te comunicarea i schi mbul de date ntre applet-
urile JAVA i programel e JavaScript;
permi te accesul mai mul tor pagini HTML la aceeai baz
de date printr- o singur conexi une la aceasta, deoarece
applet- ul rmne persistent n medi ul navigatorul ui .
P# 9izualizarea datelor n afara navi!atorul ui
&-xternal 9ieFer'
Aceast metod apeleaz din navigator un program de
vizualizare a informa i i l or care este dependent de tipul
acestora.
Figura 8.6.
Metoda asigur un management complet al tranzaciilor i
control ul accesului concurent.
Q# -xtinderea navi!atoarel or cu posibiliti de .lu!8
ins
Plug-ins sunt programe cu funci i speciale care exti nd
capabili ti l e navigatoarel or. Aceast metod este similar
celei de utilizare a unui program de vizualizare extern.
Deosebirea const n faptul c afiarea rezul tatel or se face tot
n fereastra navi gatorul ui .
R# .rox4 server pentru accesarea bazelor de date
Metoda const n redireci onarea cererilor de acces la baze
de date ctre un server specializat n acest sens, numi t http
proxy server. Acest server acceseaz baza de date i transfer
rezul tatel e ctre navi gator. Prin aceast metod nu se poate
asigura management ul complet al tranzaciil or i control ul
accesului concurent.
S# 1tilizarea unui server K4perFave (figura 8.7.)
Aceast metod utilizeaz o pasarel ( gate4ay server )
ntre server i baza de date.
- 177 -
Navigat or
Ext ernal
Vi ewer
SGBD
SERVER
DB
Navi gat or
SERVER
HyperWave
SQL
gat eway
server
Baz de
dat e
SGBD
Baze de dat e
Figura 8.7.
,-. ;ate4ay ,erver reduce numrul de conexi uni la baza
de date i implici t ti mpul de rspuns.
A.3. 1ccess 2BB2 =i +a&el e de dat e on0 line
Access 2002 ofer un suport puternic pentru elaborarea
paginilor WEB care acceseaz baze de date, categorii le de
pagini WEB puse la dispozii e fiind:
.a!ini =-$ statice n aceast categorie se includ
paginile WEB scrise numai n limbaj ul HTML;
.a!ini =-$ dinamice n aceasta categorie se includ
paginile de tip AS. (Active Server .ages) sau DC/HTX;
0biecte de tip pa!in =-$ (Data Access .ages),
obiecte ce sunt salvate n baza de date cu celelal te obiecte ale
acesteia.
A.3. 1. Ela+o a e a #a"inilo CE% st atice
Sunt pagini care se pot genera prin funcia de export
oferi t de Access (meni ul File -xport ). Aceste pagini se pot
crea din coninutul unui tabel, interogri, formul ar sau raport.
Generarea propri u- zis a paginii WEB se poate realiza prin
selectarea unui obiect n fereastra bazei de date sau prin
deschiderea unui obiect din categori ile meni onate i apoi din
meniul File, se selecteaz opi unea -xport , iar n caseta Save
as 54pe se selecteaz K5,* Documents . Pagina WEB este
generat exclusi v n limbajul HTML i nu conine defini i i
pentru actualizarea coni nutul ui obiectul ui din care a fost
generat pagina (nu exist o defini i e pentru conexi unea cu
baza de date). Practic pagina este generat pentru coninutul
obiectul ui din momentul operai ei de generare a paginii,
modificarea datelor n obiectul Access nu se reflect i n
coninutul paginii WEB. Pentru a se reflecta i pe WEB
actualizrile interveni te n baza de date, trebuie generat
pagina WEB din nou.
Este cea mai slab categorie de pagini WEB oferi t de
Access, utili tatea acestora regsindu- se doar n cazul n care
datele publicate pe WEB se modific foarte rar, sau n cazul
utilizatori lor novici, care nu cunosc alte modali ti de publicare
pe Web a datelor dintr- o baz de date Access.
A.3. 2. Ela+o a e a #a"inilo dinami ce
Paginile WEB dinamice nltur practic neajunsuril e
paginilor WEB statice, descrise anterior. O pagin WEB
dinamic reflect permanent modificrile datelor interveni te
- 178 -
Baze de dat e
n baza de date, pagina WEB odat generat, nu mai are
nevoie dect, eventual, de ajustri din partea utilizatorul ui cel
mai des n sensul design- ului paginii. Pagina se poate genera
din nou dac se modific structura obiectul ui, ns n nici un
caz din cauza actualizrii datelor. n toate cazurile utilizatorul
poate s intervi n cu un editor peste codul generat de Access,
pentru modificarea elementel or de design sau pentru
modificri legate de datele accesate, putnd s-i defineasc
propriile prelucrri asupra datelor dintr- o baz de date chiar n
pagina WEB. De asemenea i poate aduga n pagin i alte
categori i de script- uri cum ar fi cele realizate cu ajutorul
limbaj ul ui JavaScript. Pentru a interveni ntr- o pagin dinamic
generat de Access (sau pentru crearea uneia fr a folosi
generatorul din Access), sunt necesare cunoti ne de K5,*3
9$Script3 AD03 S)*.
Paginile WEB dinamice generate cu Access sunt de tip ASP
()ctive ,erver 6ages) sau de tip DC/HTX i pot fi generate
numai pentru obiecte de tip tabel, interogare sau raport .
Aceste pagini pot fi publicate pe servere WEB ,icrosoft
+nternet +nformati on Server (++S) sau .ersonal =eb
Server (.=S).
++S poate fi executat pe sistemel e de operare Microsoft
Windows NT 4.0, Windows 2000, Windows XP. .=S poate fi
executat pe toate versiunile din Windows ncepnd cu
Windows '95. Publicarea unei pagini se poate executa manual
sau automat cu ajutorul utili tarelor de care dispun serverel e
meni onate. Conexiunea dintre pagina WEB i baza de date
mai are nevoie de definirea unui DS2 (Data Source 2ame) n
cadrul interfeei 0D$C (0pen Data$ase Connecti vi t y).
Generarea unei pagini WEB dinamice cu Access 2002 trebuie
s fie precedat de crearea DSN-ului, numel e acestuia
trebui nd s fie precizat n momentul generrii paginii.
A.3. 3. O+iect e de ti# #a"ina CE%
Obiectele de tip Data Access .ages sunt gestionate n
seciunea Pagini din fereastra bazei de date. La salvarea unui
astfel de obiect se creeaz automat un fiier separat de baza
de date, care va conine pagina WEB generat din obiectul
Access. Obiectul din baza de date memoreaz o legtur
(shortcut) ctre aceast pagin. Stergerea fiierul ui HTML de
pe disc este echivalent practic cu tergerea obiectul ui din
baza de date, acesta chiar dac nu este ters fizic, deveni nd
inutilizabil fr pagina WEB. Acest obiect este asemntor cu
un obiect de tip formul ar, numai c se utilizeaz n contextul
accesrii bazei de date de pe nternet. Obiectul salvat n baza
de date se poate utiliza i n baza de date Acces, ns el este
conceput pentru a fi accesat de pe nternet. Paginile WEB de
- 179 -
Baze de dat e
tip Data Access Pages sunt procesate corect n programul de
navigare pe Microsoft nternet Explorer, ncepnd cu
versiunea 5.0.
Pentru crearea unui obiect de tip pagin WEB se
acioneaz unul din shortcut- urile memorate n seciunea
Pagini:
&reare pagin de acces la date 'n modul
<izualizare proiect permi te proiectarea manual a
paginii WEB. Pentru proiectarea manual este pus
la dispozii e un set de controal e grupate ntr- o bar
de instrumente Toolbox, utilizarea acestora fiind
asemntoare cu a celor din cadrul obiectel or de
tip formul ar sau raport.
&reare pagin de acces la date utiliz(nd ?#pertul
permi te crearea unei pagini Web cu ajutorul
asistentul ui . Utilizatorul va selecta cmpuril e ce vor
fi afiate n pagin i va preciza ti tl ul paginii.
Expertul pune la dispozi ie o bar de opiuni ce
permi te deplasarea ntre nregistrri , filtre, ordonri
de date, butoane pentru adugare, tergere,
salvare, etc.
?ditarea unei pagini Xeb e#istente .
- 180 -
Baze de dat e
A. A. 3 3UCRDRI UCRDRI 6R1CTICE 6R1CTICE
E.1. Studi u de ca&F #oiect a e a unei +a&e de dat e la nivelul
teitoiului admi ni st at iv #ent u eali&a ea #lanul ui cadast al
inde9 =i inteo"5i in S<3
La realizarea unei bazei de date textual e la nivelul
teri tori ul ui administrati v pentru realizarea planul ui cadastral
index se vor folosi informai i l e extrase din documenta i i l e de
amplasament i deli mi tare a corpul ui de proprietate, ti tl uri le
de propri etate eliberate conform Legii 18/1991,
documenta i i l e executate conform HG 834/91 i avizate tehnic
precum i cele culese pe teren i nscrise n fia datelor
cadastral e pri mare.
denti ficarea tabelelor i a atri butel or de memorat n baza
de date:
2abelul !
*umel e tabel ul ui Descriere
)ddress
2abelul de adrese ale propri etari l or. )dresele de
domicil i u at(t ale propri etari l or persoane 0uridice c(t
i fizice se regsesc 'n acest tabel.
)dmi n 2abelul conine uniti l e admi nistrati v teritori al e
)p
2abel cu informai i privi nd apartamentel e (sau alte
uni ti de construci e care pot fi legate de sc7i mbul
de drepturi de propri etate).
>dest
2abelul 'n care sunt defini te destinai i l e
construci i l or conform 32183&;&.
>o4ners7i p
2abelul ce coni ne legturi l e 'ntre construci i i
proprietari
>uild 2abelul ce coni ne construci i l e permanente
&ounty 2abelul ce coni ne 0udeel e
&sector 2abelul cu sectoarele cadastral e
.dest 2abelul cu destinai i l e terenul ui
.ocality 2abelul cu localiti l e
.o4ners7i p
2abelul ce coni ne legturi l e 'ntre terenuri i
proprietari
.use
2abelul ce coni ne categori il e de folosin, aa cum
sunt specificate 'n 32183&;&
84ner 2abelul cu proprietari i
6arcel 2abelul cu parcele
6roperty
2abelul ce coni ne corpuri l e de proprietate (bunuri
imobil e) aa cum sunt defini te 'n 32183&;&
6type
2abelul cu tipuril e de proprietate, aa cum sunt
specificate 'n 32183&;&.
2itluriI.P 2abelul cu datele colectate din titl uri l e de
- 181 -
Baze de dat e
proprietate emise 'n baza .egii PLYY
2rup 2abelul cu intravi l anel e (inclusi v cele izolate ).
- 182 -
Baze de dat e
*icionarul de date cuprinde atributel e din tabelul "9
2abelul "
*ume
tabel
+tribut Descri erea atri but ul ui
)ddress
address,id &od de identi fi care al adresei
address?st 3umele strzii
address?no 3umr potal
address?ext
)lte elemente din adres cum ar fi9
blocul, scara, etc. Gn cazul persoanel or
strine se va completa cu locali tatea i
ara de domicil i u.
address?postal?code &odul potal
Address?locali t4?id $eferin la tabelul de locali ti
)dmi n
+dmin,id
&odul ,%$,V6 al teritori ul ui
admi nistrati v
Admi n?name 3umele teritori ul ui admi nistrati v
Admi n?count4?id $eferin la tabelul cu 0udee
)p
+p,id
%denti ficator al apartament ul ui sau al
ane#ei (gara0, depozi t, etc.) din
interiorul sau e#teriorul cldirii
+p,build,id $eferin la tabelul construci i l or
Ap?cno
3umrul cadastral al apartament ul ui
aa cum este precizat 'n documentai a
de cadastru sporadic
Ap?etno 6recizarea scrii (intrri i)
Ap?fno ?ta0ul
Ap?apno 3umrul apartament ul ui
Ap?description
*escrierea apartament ul ui, aa cum
trebui e 'nregistrat 'n cartea funciar
Ap?larea
,uprafaa apartament ul ui, aa cum
apare 'n acte
Ap?marea ,uprafaa msurat a apartament ul ui
Ap?fla!
&odul apartament ul ui 9 L ane#ei
01apart ment, 1ane# (depozi t, gara0
etc.)
Ap?cpi
6rocent din cota comun de teren
corespunztoare apartament ul ui
Ap?csi
,uprafaa cotei indi vi ze aferente
apartament ul ui
Ap?terfl a!
&odul terenul ui corespunztor
apartament ul ui 9 0 1 'n proprietate, 1
in folosin
Ap?bdest?id
*estinai a apartament ul ui (cldire,
referi n la tabelul bdest ).
Ap?fname
3umele fiierul ui scanat care coni ne
documentai a de cadastru sporadic.
Bdest,id
%denti ficator unic al destinai ei
cldiril or
>dest $dest?code &odul destinai ei cldiri lor
$dest?desc *escriere destinai e cldire
Bo-nership,o-ner,id $eferin la tabelul cu propri etari
>o4ners7i p Bo-nership,build,id $eferin la tabelul cu cldiri
- 183 -
Baze de dat e
Bo-nership,ap,id $eferin la tabelul cu apartamente
&ontinuare tabel "
*ume
tabel
+tribut Descri erea atri but ul ui
>o4ners7i p $oFnership?pt4pe?id
$eferin la tabelul cu tipuri de
propri eti (ptype)
>uild
Build,id &od unic de identi ficare al unei cldiri
$uild?propert 4?id
$eferin la tabelul cu corpuri de
propri eti
$uild?value <aloarea construci ei
$uild?name *enumi rea construci ei
$uild?cno
3umrul cadastral provizori u aa cum
e precizat 'n 'nregistrarea sporadic de
cadastru
$uild?flats
&od pentru cldiri le cu mai mul te
apartamente (uniti 9 0 1 o singur
unitate, mai mul te uniti ).
$uild?blno
&odul blocul ui care va fi 'nregistrat,
dac cldirea este bloc cu apartamente
$uild?com
*escrierea pri lor cldiri i aflate 'n
folosin comun.
&ounty
ounty,id %denti ficator unic 0ude
Count4?name 3ume 0ude
&sector
sector,id %denti ficator unic al sectorul ui cadastral
Csector?name
3umele (toponi mi a) sectorul ui
cadastral
Csector?admi n?id
$eferin la tabelul cu teri tori i
admi nistrati ve
.dest
Ldest,id
%denti ficator unic al destinai ei
terenul ui
*desc?code
&od unic a destinai ei terenul ui (defi ni t
'n 32183&;&)
ldest?desc *escrierea desti nai ei terenul ui
Locality,id &odul ,%$V2) al unei locali ti
*ocalit4?name 3umele unei localiti
.ocality *ocalit4?admi n?id
$eferin la tabelul cu teri tori i
admi nistrati ve
*ocalit4?code
&od numeri c folosit la generarea
numrul ui cadastral (specificat 'n 321
83&;&)
Locality,postal,code &odul potal al locali ti i
Lo-nership,o-ner,id $eferin la tabelul cu propri etari
.o4ners7i p
Lo-nership,property
,id
$eferin la tabelul cu propri eti
*oFnership?pt4pe?id
$eferin la tabelul cu tipuri de
propri eti
luse,id %denti ficator unic categorie de folosin
.use luse?code &odul categoriei de folosin
luse?desc *escriere categorie de folosin
- 184 -
Baze de dat e
O-ner,id
&od unic pentru identi ficarea
propri etarul ui (persoan fizic)
0Fner?firstname 3umele proprietarul ui, persoan fizic
84ner 0Fner?lastname
3umele de fami l ie al propri etarul ui ,
persoan fizic sau firm, etc.
0Fner?initi al
%niiala numel ui proprietarul ui ,
persoan fizic
0Fner?nextension
?#tensia numel ui proprietarul ui,
persoan fizic
0Fner?plastname
3umele anteri or al propri etarul ui,
persoan fizic
&ontinuare tabel "
*ume
tabel
+tribut Descrierea atri but ul ui
84ner
0Fner?cnp
&odul numeri c personal al
propri etarul ui , persoan fizic
0Fner?sirues &odul ,%$V?, al persoanei 0uridice
0Fner?idc
,eria i numrul buleti nul ui de
identi tate al proprietarul ui
0Fner?iddat e *ata eliberri i >%
0Fner?address?id $eferin la tabelul cu adrese
0Fner?cit
&odul numeri c al ceteni ei (0 \
$om(n, \ ,trin)
0Fner?t4pe
&od numeri c ce precizeaz felul
propri etarul ui (0 \ persoan fizic, , 1
persoan 0uridic)
0Fner?ti tl e
&odul numeri c al titlul ui de proprietate
emis sub .egea PLYY. *e
asemenea referi n la tabelul
titl uriI.P, c(mpul nrItitl u.
)arcel,id
%denti ficatorul parcelei 'n interi orul
corpul ui de propri etate.
parcel,property,id $eferin la tabelul cu propri eti.
.arcel?cno
3umrul cadastral provizori u al
parcelei dac a fost 'nregistrat
conform regulamentel or referi toare la
'nregistrri sporadice.
.arcel?larea ,uprafaa parcelei 'nscris 'n acte.
.arcel?marea )ria msurat a parcelei.
)arcel,ldest,id
$eferin la tabelul cu desti nai a
terenul ui
6arcel .arcel?luse?id
$eferin la tabelul cu categori i le de
folosin a terenul ui.
)arcel,ldest,id
$eferin la tabelul cu desti nai a
terenul ui
.arcel?luse?id
$eferin la tabelul cu categori i le de
folosin a terenul ui.
.arcel?l6S?fla!
&odul surs .egea PLYY (c(nd
parcela provi ne de la .PLYY cu titl ul
de proprietate iLsau de la proiecte de
parcelare fr titl u de propri etate
.egea PLYY/(0 dac nu face parte
din .egea P, dac face parte).
- 185 -
Baze de dat e
)arcel,dno
3umrul titl ul ui de propri etate de la
.egea PLYY din care provi ne.
)cesta este 3V.. dac sursa parcelei
nu este titl ul de proprietate de la
.egea PLYY sau dac proiectul de
parcelare care conine parcela nu este
susinut de titluri de proprietate.
.arcel?tno
%denti ficatorul uniti i cadastral e
`tarl a care coni ne parcela, aa cum
se precizeaz 'n titlul de propri etate de
la .egea PLYY. *ac sursa parcelei
nu este un titl u de proprietate de la
.egea PLYY acesta este 3V...
&ontinuare tabel "
*ume
tabel
+tribut Descrierea atri but ul ui
6arcel .arcel?pno
3umrul cadastral al parcelei, aa cum
e precizat 'n titlul de propri etate de la
.egea PLYY. *ac sursa parcelei nu
este un titl ul de proprietate de la
.egea PLYY, atunci este 3V...
)roperty,id
%denti ficator unic al unui corp de
propri etate (imobi l). %nclusi v legtura
cu baza de date grafice.
Property_desc
*escrierea ampl asament ul ui
propri eti i 'n cazul 'n care nu se
gsete 'n intravi l an
.ropert 4?cno
3umrul cadastral provizori u al
corpul ui de propri etate atribui t de
8W&;&
.ropert 4?ie
&od intravi l anL e#travi l an al corpul ui
de proprietate (0R?v L R%v )
.ropert 4?larea
)ria corpul ui de propri etate din actul
0uridic
.ropert 4?marea
)ria msurat a corpul ui de
propri etate
Property_val ue <aloarea terenul ui
Property_st
3umele strzii unde se gsete
propri etatea 'n cazul intravi l anul ui
Property_no
3umrul potal al propri eti i atunci
c(nd acesta se gsete 'n intravi l an.
.ropert 4?locali t4?id
$eferin la tabelul cu locali ti
(locali ty)
6roperty .ropert 4?csector?id
$eferin la tabelul cu sectoare
cadastrale. (csector)
.ropert 4?fileno
3umrul dosarul ui 'nregistrat 'n oficiul
0udeean de cadastru.
.ropert 4?filedat e
*ata la care a fost 'nregistrat dosarul
'n oficiul 0udeean de cadastru.
- 186 -
Baze de dat e
.ropert 4?lbono
3umrul crii funciare unde se
gsete 'nregistrat terenul.
.ropert 4?lbot4pe
&odul numeri c pentru tipul crii
funciare (0 \ nedefi ni ti v, \
defini ti v).
.ropert 4?buildfl a!
&od numeri c ce indic dac pe
propri etatea respecti v se afl
construci i permanente (0R3V, R*))
.ropert 4?pdf
3umele fiierul ui scanat care coni ne
e#trase din diverse tipuri de
documentai i cadastrale, ca baz
pentru 'nregistrare.
.ropert 4?pad
3umele fiierul ui scanat care coni ne
e#trase din 'nregistrarea cadastral
folosite pentru 'nregistrarea sporadic.
ptype,id
&od numeri c de identi ficare a tipul ui
de proprietate
6type .t4pe?code
&odul tipul ui de proprietate (aa cum
este specificat 'n 32183&;&)
pt4pe?desc
*escrierea tipul ui de propri etate (aa
cum este specificat 'n 32183&;&)
&ontinuare tabel "
*ume
tabel
+tribut Descrierea atri but ul ui
2itluriI.P
*r,titlu
%denti ficator pentru titlul de propri etate
de la legea PLYY, aa cum e
meni onat 'n titl u.
Data?ti tl u
*ata emi teri i titlul ui de proprietate
.egeaPLYY, aa cum e precizat 'n
titl u.
Aria?reconst
,uprafaa de teren pe care propri etarul
este 'ndrepti t s o pri measc ca
restitui re a drepturi l or de proprietate,
aa cum e meni onat 'n titlul de
propri etate de la .egea PLYY.
Aria?const
,uprafaa de teren la care propri etarul
este 'ndrepti t, la consti tui rea
dreptul ui de propri etate, aa cum e
meni onat 'n titlul de propri etate de
la .egea YLYY.
.df?titlu
3umele fiierul ui scanat care coni ne
imagi nea celor ! pagini din titl ul de
propri etate de la .egea PLYY.
2rup
%rup,id
%denti ficatorul zonelor de intravi l an,
inclusiv a celor izolate.
*ocalit4?id
&odul ,%$V2) al locali ti i inclusiv
referi na la tabelul cu locali ti ,
locali tyIid field.
3ot9
&(mpuri 'ngroate, scrise 'nclinat9 e#. ptype,id 9 reprezint c7eia pri mar
- 187 -
Baze de dat e
a unui tabel/
&(mpuri 'ngroate, scrise drept9 e#. pt4pe?code 9 reprezi nt un c(mp 'n
tabel ce trebuie completat.
Definirea tabel elor "i a restriciilor de inte!ri t at e
%abela. address
+tribut %ip Mri me
address_id Number (Long) 4
address_st Text 50
address_no Text 7
address_ext Text 100
address_postal_code Text 5
address_locali ty_id Number (Long) 4
*e!turi ntre tabel e
locali t4 Address
locality_id 1 address_locali ty_id
$estrici i de integri tate : mpunere integri tate refereni al
2ip relaie : Unu- la-mai- mul i
address 0Fner
address_id 1 owner_address_id
$estrici i de integri tate : mpunere integri tate refereni al, Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
%abela. admin
+tribut %ip Mri me
admi n_id Number (Long) 4
admi n_name Text 50
admi n_count y_id Number (Double) 8
*e!turi ntre tabel e
Count4 admi n
county_id 1 admi n_county_id
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
admi n locali t4
admi n_id 1 locality_admi n_id
$estrici i de integri tate : mpunere integri tate refereni al
2ip relaie : Unu- la-mai- mul i
- 188 -
Baze de dat e
admi n csector
admi n_id 1 csector_admi n_id
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
%abela. ap
+tribut %ip Mri me
ap_id Number (nteger) 2
ap_buil d_id Number (Long) 4
ap_cno Text 20
ap_etno Text 3
ap_fno Number (nteger) 2
ap_apno Number (nteger) 2
ap_descri pti on Text 255
ap_larea Number (Single) 4
ap_marea Number (Single) 4
ap_flag Number (Byte) 1
ap_cpi Number (Single) 4
ap_csi Number (Single) 4
ap_terflag Number (Byte) 1
ap_bdest_id Number (Byte) 1
ap_fname Text 20
*e!turi ntre tabel e
build ap
build_id 1 ap_buil d_id
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
bdest ap
bdest_id 1 ap_bdest_id
$estrici i de integri tate : mpunere integri tate refereni al
2ip relaie : Unu- la-mai- mul i
ap boFnershi p
ap_id 1 bownershi p_ap_id
ap_buil d_id 1 bownershi p_bui l d_i
d
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
%abela. bdest
+tribut %ip Mri me
bdest_id Number (Byte) 1
bdest_code Text 5
- 189 -
Baze de dat e
bdest_desc Text 60
*e!turi ntre tabel e
bdest ap
bdest_id 1 ap_bdest_id
$estrici i de integri tate : mpunere integri tate refereni al
2ip relaie : Unu- la-mai- mul i
%abela. bo-nershi p
+tribut %ip Mri me
Bownershi p_owner_id Number (Long) 4
Bownershi p_bui l d_id Number (Long) 4
Bownershi p_ap_id Number (nteger) 2
Bownershi p_ptype_id Number (Byte) 1
*e!turi ntre tabel e
.t4pe boFnershi p
ptype_id 1 bownershi p_ptype_id
$estrici i de integri tate : mpunere integri tate refereni al
2ip relaie : Unu- la-mai- mul i
oFner boFnershi p
owner_id 1 bownershi p_owner_id
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
ap $oFnershi p
ap_id 1 bownership_ap_id
ap_build_id 1 bownershi p_build_i
d
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
%abela. build
+tribut %ip Mri me
build_id Number (Long) 4
build_propert y_i d Number (Long) 4
build_value Number (Long) 4
build_name Text 50
build_cno Text 50
build_flats Number (Byte) 1
build_blno Text 10
build_com Memo -
build_no Text 5
*e!turi ntre tabel e
- 190 -
Baze de dat e
build ap
build_id 1 ap_buil d_id
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
propert 4 $uild
property_id 1 build_property_id
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
%abela. county
+tribut %ip Mri me
county_id Number (Double) 8
county_name Text 20
*e!turi ntre tabel e
count4 admi n
county_id 1 admi n_county_id
$estrici i de integri tate : mpunere integri tate refereni al
2ip relaie : Unu- la-mai- mul i
%abel. csector
+tribut %ip Mri me
Csector_id Number (nteger) 2
Csector_name Text 40
Csector_admi n_id Number (Long) 4
*e!turi ntre tabel e
csector propert 4
csector_id 1 property_csector_id
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
admi n csector
admi n_id 1 csector_admi n_id
$estrici i de integri tate : mpunere integri tate refereni al
2ip relaie : Unu- la-mai- mul i
%abel. ldest
+tribut %ip Mri me
Ldest_id Number (Byte) 1
Ldest_code Text 3
Ldest_desc Text 40
- 191 -
Baze de dat e
*e!turi ntre tabel e
ldest parcel
ldest_id 1 parcel_ldest_id
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
%abel. locality
+tribut %ip Mri me
Locality_id Number (Long) 4
Locality_name Text 50
Locality_admi n_id Number (Long) 4
Locality_code Number (Byte) 1
Locality_postal_code Text 5
*e!turi ntre tabel e
locali t4 propert 4
locality_id 1 Property_locali ty_id
$estrici i de integri tate : mpunere integri tate refereni al
2ip relaie : Unu- la-mai- mul i
locali t4 address
Locality_id 1 Address_locali ty_id
$estrici i de integri tate : mpunere integri tate refereni al
2ip relaie : Unu- la-mai- mul i
locali t4 trup
locality_id 1 Locality_id
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
admi n locali ty
admi n_id 1 Locality_admi n_id
$estrici i de integri tate : mpunere integri tate refereni al
2ip relaie : Unu- la-mai- mul i
%abel. lo-nershi p
Atri but 5ip ,ri me
lownershi p_owner_id Number (Long) 4
lownershi p_propert y_i d Number (Long) 4
lownershi p_ptype_id Number (Byte) 1
*e!turi ntre tabel e
.ropert 4 loFnershi p
property_id 1 lownershi p_property_i
- 192 -
Baze de dat e
d
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
.t4pe loFnershi p
ptype_id 1 lownershi p_ptype_
id
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
0Fner loFnershi p
owner_id 1 lownershi p_owner_i
d
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
%abel. luse
Atri but 5ip ,ri me
luse_id Number (Byte) 1
luse_code Text 2
luse_desc Text 50
*e!turi ntre tabel e
luse parcel
luse_id 1 parcel_luse_id
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
%abel. o-ner
Atri but 5ip ,ri me
Owner_id Number (Long) 4
Owner_firstname Text 30
Owner_lastname Text 50
Owner_initi al Text 7
Owner_nextensi on Text 50
Owner_plastname Text 50
Owner_cnp Number (Double) 8
Owner_sirues Text 16
Owner_idc Text 10
Owner_iddate Date/Ti me 8
Owner_address_id Number (Long) 4
Owner_cit Number (Byte) 1
Owner_type Number (Byte) 1
Owner_ti tl e Number (Long) 4
*e!turi ntre tabel e
titl uri?*6S oFner
- 193 -
Baze de dat e
nr_titl u Owner_ti tl e
$estrici i de integri tate : Fr impunere integri tate refereni al
2ip relaie : Unu- la-mai- mul i
Address oFner
address_id 1 owner_address_id
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
0Fner loFnershi p
Owner_id 1 lownershi p_owner_id
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
0Fner boFnershi p
Owner_id 1 bownershi p_owner_id
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
%abel. parcel
Atri but 5ip ,ri me
Parcel_id Number (Byte) 1
Parcel_property_id Number (Long) 4
Parcel_cno Text 20
Parcel_larea Number (Long) 4
Parcel_marea Number (Long) 4
Parcel_ldest_id Number (Byte) 1
Parcel_luse_id Number (Byte) 1
Parcel_l18_flag Number (Byte) 1
Parcel_dno Number (Long) 4
Parcel_tno Text 20
Parcel_pno Text 20
*e!turi ntre tabel e
propert 4 parcel
property_id 1 parcel_propert y_id
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
luse parcel
luse_id 1 parcel_luse_id
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
- 194 -
Baze de dat e
5itluri?*6S parcel
nr_titl u Parcel_dno
$estrici i de integri tate : Fr impunere integri tate refereni al
2ip relaie : Unu- la-mai- mul i
ldest .arcel
ldest_id 1 parcel_ldest_id
$estrici i de integri tate : mpunere integri tate refereni al
2ip relaie : Unu- la-mai- mul i
%abel. property
Atri but 5ip ,ri me
Property_id Number (Long) 4
Property_desc Text 100
Property_cno Text 20
Property_ie Number (Byte) 1
Property_larea Number (Long) 4
Property_marea Number (Long) 4
Property_val ue Number (Long) 4
Property_st Text 50
Property_no Text 50
Property_locali ty_id Number (Long) 4
Property_csector_id Number (nteger) 2
Property_fileno Number (Long) 4
Property_filedate Date/Ti me 8
Property_lbono Number (Long) 4
Property_lbotype Number (Byte) 1
Property_buil dfl ag Number (Byte) 1
Property_pdf Text 20
Property_pad Number (Byte) 1
*e!turi ntre tabel e
propert 4 .arcel
property_id 1 Parcel_property_id
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
locali t4 .ropert 4
locality_id 1 Property_locali ty_id
$estrici i de integri tate : mpunere integri tate refereni al
2ip relaie : Unu- la-mai- mul i
propert 4 loFnershi p
property_id 1 lownershi p_property_i
d
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
- 195 -
Baze de dat e
csector propert 4
Csector_id 1 Property_csector_id
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
.ropert 4 build
property_id 1 build_property_id
$estrici i de integri tate : mpunere integri tate refereni al , Actualizare n
cascad cmpuri corelate, Stergere n cascad cmpuri corelate
2ip relaie : Unu- la-mai- mul i
%abel. ptype
Atri but 5ip ,ri me
Ptype_id Number (Byte) 1
Ptype_code Text 1
Ptype_desc Text 60
*e!turi ntre tabel e
pt4pe loFnershi p
ptype_id 1 lownershi p_ptype_i
d
$estrici i de integri tate : mpunere integri tate refereni al
2ip relaie : Unu- la-mai- mul i
pt4pe boFnershi p
ptype_id 1 bownershi p_ptype_i
d
$estrici i de integri tate : mpunere integri tate refereni al
2ip relaie : Unu- la-mai- mul i
%abel. titluri,L/0
Atri but 5ip ,ri me
nr_titl u Number (Long) 4
Data_ti tl u Date/Ti me 8
Aria_reconst Number (Single) 4
Aria_consti t Number (Single) 4
pdf_titl u Text 20
*e!turi ntre tabel e
titl uri?*6S oFner
nr_titl u Owner_ti tl e
$estrici i de integri tate : Fr impunere integri tate refereni al
2ip relaie : Unu- la-mai- mul i
titl uri?*6S parcel
- 196 -
Baze de dat e
nr_titl u Parcel_dno
$estrici i de integri tate : Fr impunere integri tate refereni al
2ip relaie : Unu- la-mai- mul i
%abel. trup
Atri but 5ip ,ri me
Trup_id Number (Byte) 1
Locality_id Number (Long) 4
*e!turi ntre tabel e
locali t4 trup
locality_id 1 locali ty_id
$estrici i de integri tate : mpunere integri tate refereni al
2ip relaie : Unu- la-mai- mul i
- 197 -
Baze de dat e
Structura bazei de date textual e
- 198 -
Baze de dat e
+ntero!ri S)*7
a) Afiarea n ordine alfabetic a tuturor proprietari l or i a
suprafeel or parcelelor pe care acetia le dei n dintr- un
anumi t sector cadastral (n exempl u dat, am ales sectorul 2).
SELECT csector.csector_id, parcel.parcel_larea, owner.owner_lastname,
owner.owner_ini ti al, owner.owner_firstname
FROM ((csector NNER JON propert y ON csector.csector_id =
propert y.propert y_csector_id) NNER JON parcel ON propert y.propert y_i d
= parcel.parcel_propert y_i d) NNER JON (owner NNER JON lownershi p ON
owner.owner_id = lownershi p.lownershi p_owner_id) ON
propert y.propert y_i d = lownershi p.lownershi p_propert y_i d
WHERE (((csector.csector_id) =2))
ORDER BY owner_lastname
b) S se afieze toate numerele ti tl uri lor de propri etate
emise n anul 1994.
SELECT titl uri_L18.nr_ti tl u, titl uri_L18.data_ti tl u
FROM ti tl uri_L18
WHERE data_ti tl u BETWEEN #01/01/1994# AND #12/31/1994#
c) S se afieze toate parcele dei nute la nivelul teri tori ul ui
administrati v de un anumi t propri etar (n acest caz
propri etarul POPA D. ON):
SELECT owner.owner_lastname, owner.owner_ini ti al,
owner.owner_fi rstname, parcel.parcel_tno, parcel.parcel_pno,
parcel.parcel_larea
FROM (ti tl uri_L18 NNER JON parcel ON titl uri_L18.nr_ti tl u =
parcel.parcel_dno) NNER JON owner ON ti tl uri_L18.nr_ti tl u =
owner.owner_ti tl e
WHERE (((owner.owner_lastname) ="POPA") AND
((owner.owner_ini ti al ) ="D") AND ((owner.owner_fi rstname) ="ON"));
d) S se afieze suma suprafeel or parcelelor avnd
categori a de folosin Arabil dintr- un anumi t sector cadastral
(n acest exempl u sectorul cadastral 2).
SELECT Sum(parcel.parcel_larea) AS Suma_parcelelor, luse.luse_code,
csector.csector_id
FROM (csector NNER JON propert y ON csector.csector_id =
propert y.propert y_csector_id) NNER JON (luse NNER JON parcel ON
luse.luse_id = parcel.parcel_luse_id) ON propert y.propert y_id =
parcel.parcel_propert y_i d
GROUP BY luse.luse_code, csector.csector_id
HAVNG (((luse.luse_code)="A") AND ((csector.csector_id) =2));
e) S se afieze numele propri etarul ui de la o anumi t
adres (de exempl u Str. DECEBAL nr. 37)
SELECT owner.owner_lastname, owner.owner_ini ti al,
- 199 -
Baze de dat e
owner.owner_fi rstname, address.address_st, address.address_no
FROM address NNER JON owner ON address.address_id =
owner.owner_address_id
WHERE (((address.address_st)="Str. DECEBAL") AND
((address.address_no)="37"))
f) S se gseasc adresa unui anumi t proprietar (n acest
caz POPA D. ON)
SELECT owner.owner_lastname, owner.owner_ini ti al,
owner.owner_fi rstname, address.address_st, address.address_no,
address.address_ext
FROM address NNER JON owner ON address.address_id =
owner.owner_address_id
WHERE (((owner.owner_lastname) ="POPA") AND
((owner.owner_ini ti al ) ="D") AND ((owner.owner_fi rstname) ="ON"));
g) Afiarea adreselor i a numel or complete pentru toi
propri etari i care au un nume de familie comun (de exempl u
POPESCU)
SELECT DSTNCT owner.owner_lastname, owner.owner_ini ti al,
owner.owner_fi rstname, address.address_st, address.address_no,
address.address_ext
FROM address NNER JON owner ON address.address_id =
owner.owner_address_id
WHERE (((owner.owner_lastname) ="POPESCU"));
h) S se afieze n ordine alfabeti c toi proprietari i care au
parcele cu o suprafa (din acte) mai mare de 1 ha.
SELECT owner.owner_lastname, owner.owner_ini ti al,
owner.owner_fi rstname, parcel.parcel_larea
FROM (ti tl uri_L18 NNER JON parcel ON titl uri_L18.nr_ti tl u =
parcel.parcel_dno) NNER JON owner ON ti tl uri_L18.nr_ti tl u =
owner.owner_ti tl e
WHERE (((parcel.parcel_larea) >1))
ORDER BY owner_lastname
i) Afiarea nregistrri lor din baza de date corespunztoare
datelor din ti tl uri le de propri etate i care s conin
urmtoarel e atri bute: nrIti tl u, o4nerIlastIname, o4nerIini ti al,
o4nerIfirstname, ariaIreconst, ariaIconsti t, dataIti tl u,
parcelItno, parcelIpno, parcelIlarea, luseIcode, ldestIcode .
SELECT titl uri_L18.nr_ti tl u, owner.owner_lastname, owner.owner_ini ti al,
owner.owner_fi rstname, ti tl uri_L18.aria_reconst, ti tl uri_L18.aria_consti t,
ti tl uri_L18.data_ti tl u, parcel.parcel_tno, parcel.parcel_pno,
parcel.parcel_larea, luse.luse_code, ldest.l dest_code
FROM ldest NNER JON (luse NNER JON ((ti tl uri_L18 NNER JON owner ON
ti tl uri_L18.nr_ti tl u = owner.owner_ti tl e) NNER JON parcel ON
- 200 -
Baze de dat e
ti tl uri_L18.nr_ti tl u = parcel.parcel_dno) ON luse.luse_id =
parcel.parcel_luse_id) ON ldest.l dest_id = parcel.parcel_ldest_id
j) Afiarea nregistrri lor din baza de date corespunztoare
elementel or nregistrate din crile funciare i care s conin
urmtoarel e atri bute: propertyIfileno, propertyIie,
propertyIcno, parcelIcno, parcelItno, parcelIpno, luseIcode,
ldestIcode, parcelImarea, o4nerIlastname, o4nerIini ti al,
o4nerIfirstname, o4nerIcnp, ptypeIcode, parcelIlarea,
propertyIfiledate .
SELECT propert y.propert y_fil eno, propert y.propert y_ie,
propert y.propert y_cno, parcel.parcel_cno, parcel.parcel_tno,
parcel.parcel_pno, luse.luse_code, ldest.l dest_code, parcel.parcel_marea,
owner.owner_lastname, owner.owner_ini ti al, owner.owner_firstname,
owner.owner_cnp, ptype.pt ype_code, parcel.parcel_larea,
propert y.propert y_filedate
FROM (propert y NNER JON ((owner NNER JON (ptype NNER JON
bownershi p ON ptype.pt ype_id = bownershi p.bownershi p_ptype_id) ON
owner.owner_id = bownershi p.bownershi p_owner_id) NNER JON
lownershi p ON owner.owner_id = lownershi p.lownershi p_owner_id) ON
propert y.propert y_i d = lownershi p.lownershi p_propert y_i d) NNER JON
(ldest NNER JON (luse NNER JON parcel ON luse.luse_id =
parcel.parcel_luse_id) ON ldest.l dest_id = parcel.parcel_ldest_id) ON
propert y.propert y_i d = parcel.parcel_propert y_i d
E.2. 6o+l eme #o#us e s#e e&olva e
6roblema
Realizarea unei baze de date relaionale pentru
gestionarea documenta i i l or tehnice cadastral e efectuate
pentru nscrierea n cartea funciar de pe cuprinsul unei
uniti admi nistrati v- teri tori al e. Se fac urmtoarel e precizri:
Fiecare corp de proprietate se caracterizeaz printr- un
numr cadastral unic, adres complet (ce conine judeul,
unitatea admi nistrati v teri tori al, codul SRUTA, strada,
numr, iar n cazul apartamentel or i numr bloc, scara,
apartament), cod intravi lan /extravi l an, poziionare (seci une
plan/nomencl atur), numr sector cadastral.
Fiecare corp de proprietate poate conine una sau mai
mul te parcele, una sau mai mul te construci i i unul sau mai
mul i propri etari .
Datele referi toare la teren sunt caracterizate prin:
numr parcel, categori e de folosin, cod grup desti nai e,
suprafaa din msurtori , clasa de calitate, zona din cadrul
locali ti i i meni uni .
Datele referi toare la construci i sunt caracterizate prin:
numr corp cldire/construci e, denumi re, suprafaa util
construi t la sol, cod grup desti nai e i meni uni .
- 201 -
Baze de dat e
Datele referi toare la propri etari sunt caracterizate prin:
Nume/ Denumi re proprietar, Domicili u/Sedi u proprietar, Cod
numeri personal/ Cod SRUES, Tipul actului de propri etate,
numrul i data nregistrri i / eliberrii, Cod grup propri etate,
Suprafaa din act (teren), Suprafaa din act (construci e), Mod
de deinere teren/construci e (exclusiv/ indi viziune), meni uni.
Fia corpului de propri etate coni ne de asemenea
numel e persoanei care a ntocmi t- o, data i numele
verificatorul ui.
- 202 -
Baze de dat e
Se cere:
a) Defini rea model ul relai onal al bazei de date prin
procesul de normalizare.
b) Defini rea tabelelor i a restrici il or de integri tate.
c) Crearea unui formul ar i a unui raport care s coni n
datele din ,Fia corpului de propri etate corespunztoare
fiecrei documentai i tehnice cadastral e nregistrate.
d) Scriei comenzile SQL pentru extragerea urmtoarel or
informa i i :
s se afieze numele proprietarul ui (proprietari l or) dac
se cunoate numrul cadastral al corpul ui de proprietate;
s se afieze numrul cadastral al corpul ui de
propri etate dac se cunoate numele proprietarul ui ;
s se afieze numel e proprietarul ui i adresa acestuia
dac se cunoate codul numeric personal;
s se afieze toate numele cadastrale emise pentru o
anumi t strad (n vederea verificri i existenei unui numr
cadastral pentru o anumi t adres)
s se afieze toate adresele proprieti l or i a
suprafeel or acestora pe care le deine un anumi t proprietar.
6roblema !
Realizarea unei baze de date relai onal e pentru evidena
punctelor geodezice de pe cuprinsul unui jude. Fiecare punct
geodezic este caracterizat printr- un nume, tip (ordin), sistem
de coordonate (Geografice, Stereo 70, Gauss-Kr ger),
coordonate (nord, est, cot), eroare medie ptrati c (plan i
pe cot), suprafa de referi n, materi alizare, descrierea cii
de acces, schia punctul ui , anul determi nri i, executantul i
lucrarea n cadrul creia s-a determi nat punctul geodezic.
Se cere:
a) Defini rea modelul ui relaional al bazei de date prin
procesul de normalizare.
b) Defini rea tabelelor i a restrici il or de integri tate.
c) Crearea unui formul ar i a unui raport care s coni n
toate datele corespunztoare fiecrei punct geodezic
nregistrat.
d) Scriei comenzile SQL pentru extragerea urmtoarel or
informa i i :
s se listeze toate punctel e de un anumi t ordin;
s se afieze toate punctel e geodezice existente ntr- o
anumi t zon (zona este caracterizat printr- un X
min
, Y
min
,
respecti v un X
max
, Y
max
sau printr- un 4
min
, /
min
, respecti v 4
max
,
- 203 -
Baze de dat e
/
max
);
- 204 -

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