Sunteți pe pagina 1din 89

BAZE DE DATE I

CUPRINS
1. DAT, INFORMAIE I CUNOTIN. ORGANIZAREA DATELOR N VEDEREA
PRELUCRRII AUTOMATE CU AJUTORUL CALCULATOARELOR ELECTRONICE
1.1. Conceptele de societate informaional societate a cunoaterii. Sistem informaional,
sistem informatic, sistem bazat pe cunotine.
1.2. Dat, informaie i cunotin
1.3. Noiuni fundamentale utilizate n or!anizarea datelor
1.". #elaiile dintre date
1.$. Structuri de date
1.%. &odele de date
2. MODELAREA DATELOR
2.1 Mod! "o#"$%&'! d #()! *#'!%
2.1.1. &odelul 'ntitate()sociere. #elaionarea datelor
2.1.2. &odelul 'ntitate()sociere '*tins
2.1.3. &odelul de date ierar+ic
2.1.". &odelul de date reea
2.1.$. &odelul de date relaional
2.1.$.1. Concepte utilizate de modelul relaional
2.1.$.2. Cerinele modelului relaional
2.1.$.3. 'lementele modelului relaional
2.1.$.". Normalizarea relaiilor
2.1.%. &odelul de date obiect
2.1.%.1 Conceptele modelului obiect
2.1.,. &odelul de date obiect(relaional
2.1.,.1. -recerea de la modelul obiect la modelul obiect( relaional
2.1... Comple*itatea datelor i a intero!rilor
+. REZOLVAREA PROBLEMELOR ECONOMICE CU AJUTORUL PROGRAMELOR PE
CALCULATOR. PROGRAMARE
3.1. Noiuni de baz specifice procesului de prelucrare automat a datelor
3.2. Noiuni de baz referitoare la pro!ramare
3.3. Noiuni de baz referitoare la pro!ramare
3.". /roblematica !eneral a limba0elor de pro!ramare
3.$. 'lementele de baz ale pro!ramrii orientate pe obiecte
,. SISTEME DE BAZE DE DATE
".1. 1eneraliti
".2. )r+itectura intern a sistemelor de baze de date
".3. Componentele unui sistem de baze de date
".". )2anta0ele oferite de sistemele de baze de date
".$. Clasificarea sistemelor de baze de date
-. LIMBAJUL DE PROGRAMARE VISUAL BASIC
$.1. Caractersticile !enerale ale mediului inte!rat de dez2oltare 3isual 4asic
$.2. Componentele de baz ale mediului inte!rat de dez2oltare 3isual 4asic
$.3. /roiectarea aplicaiilor n limba0ul 3isual 4asic
Curs 4aze de date(pa!.1 din .5
$.".1. 6iierul proiect
$.".2. Crearea interfeei aplicaiei
$.3.1. /recizarea proprietilor
$.3.2. Scrierea codului
$.3.3. '*ecuia aplicaiei informatice n 3isual 4asic
$.". 'lementele limba0ului de pro!ramare 3isual 4asic
$.".1. 7nele re!uli de scriere
$.".2. -ipuri de date
$.".3. 3ariabile i constante
$.".". 8nstruciuni 3isual 4asic
$.".$. Crearea fiierelor n limba0ul 3isual 4asic
%. 48498:1#)68'
1. DAT, INFORMAIE I CUNOTIN. ORGANIZAREA DATELOR N
VEDEREA PRELUCRRII AUTOMATE CU AJUTORUL
CALCULATOARELOR ELECTRONICE
1.1. Co#"$%! d .o"(%'% (#/o01'2(o#'!3 4 .o"(%'% ' "&#o'5%0((. S(.%1
(#/o01'2(o#'!, .(.%1 (#/o01'%(", .(.%1 6'7'% $ "&#o5%(#2.
Noiunea de societate informaional ;Information Society< descrie o economie i
o societate n care colectarea, stocarea, prelucrarea, transmiterea, diseminarea i
utilizarea informaiilor i cunotinelor, inclusi2 dez2oltarea te+nicilor de comunicaie
interacti2, au un rol decisiv. 6actorii semnificati2i n aceast dez2oltare sunt= nalta
te+nolo!ie ;HighTech<, industria, lumea lucrului ;Work World<, precum i toate formele
de cultur n societate. Societatea informatic este o parte a societii informaionale
care folosete pro!resele te+nicii de calcul n toate domeniile de acti2itate economico(
social.
Societatea bazat pe cunotine ;no!ledge"#ased Society< este o parte a
societii informatice care utilizeaz te+nolo!iile informaiei i ale comunicaiilor
;8->C< preponderent pentru prelucrarea datelor sub form de cunotine. Consider?nd
un ni2el superior ;pe modelul de dez2oltare n spiral al societii umane<, cel mai
cuprinztor concept este cel de societate a cunoaterii ;no!ledge Society<. Societatea
cunoaterii este fundamentat pe acumularea i utilizarea de date sub form de
informaii i cunotine la ni2el social. Dup acad. &i+ai Dr!nescu, societatea
cunoaterii reprezint mai mult dec?t societatea informaional i dec?t societatea
informatic, n!lob?ndu(le de fapt pe acestea. Societatea cunoaterii folosete piese
;pieces< ale cunoaterii
1
.
Societatea informaional are la baz sistemele informaionale, societatea
informatic sistemele informatice, iar societatea bazat pe cunotine se
fundamenteaz pe sistemele bazate pe cunotine ;no!ledge"#ased Systems<. Sinta!ma
folosit de #omano /rodi, fostul preedinte al Comisiei 'uropene, este de economie
1
&i+ai Dra!nescu $e la societatea informaional la societatea cunoaterii, 'd. -e+nic, 4ucureti, 2@@3
Curs 4aze de date(pa!.2 din .5
bazat pe cunotine ;no!ledge"#ased %conomy, A4'<B aceast A4' reprezint cea
mai rafinat parte a noii economii ;&e! %conomy<, prin noua economie nele!?nd
economia specific societii informaionale 4 societii cunoaterii ;S8 SC<.
Sistemul este un ansamblu de elemente dependente ;componente, principii, re!uli,
relaii, etc.< care formeaz un ntre! or!anizat, pe baza unui plan prestabilit, cu scopul
realizrii unui anumit obiecti2. Sistemul informaional reprezint acel sistem de
prelucrare a informaiilor, mpreun cu resursele or!anizaionale asociate, cum sunt
resursele umane, te+nice i financiare ce furnizeaz i distribuie informaia. Sistemul
informatic reprezint partea automatizat a sistemului informaional ce realizeaz
prelucrarea datelor i informaiilor folosind un sistem de calculB este un ansamblu de
ec+ipamente i pro!rame pe calculator ;soft!are< care asi!ur prelucrarea datelor.
Sistemul bazat pe cunotine este o parte a sistemului informatic care proceseaz
cunotine ntr(o cantitate determinant i semnificati2.
'unotina este informaie cu neles i informaie care acioneaz
1
. 'unotina
semnific ceea ce este cunoscut. Cntr(o alt percepie, cunotinele sunt informaii
dob?ndite prin instruire ;educaie< i practic ;e*perien<. 9a modul !eneral, datele sunt
reprezentate con2enional prin numere, mrimi, relaii etc. i sunt folosite la rezol2area
problemelor sau sunt obinute printr(o acti2itate de cercetare.
Informaia reprezint elementele de noutate despre un fenomen, proces etc.
&outatea caracteristic noiunii de informaie este perceput de utilizator numai n
momentul intrrii n contact cu aceast informaie. Ca urmare, din punct de 2edere
informatic, datele sunt informaii sau cunotine reprezentate simbolic i nre!istrate n
2ederea !estionrii ;e2idenei< iDsau prelucrrii. #ezultatul prelucrrii este tot o dat
care, prin interpretare, se transform iniial n informaie i apoi ;nu ntotdeauna< n
cunotin.
1.2 Dat, informaie i cunotin
'aracterul de dat( informaie sau cunotin este relativ ;adic se sc+imb n
funcie de conte*tul ce definete nsuirea de noutate pentru informaie i de )neles i
utilitate prin aciune pentru cunotin<.
E:ceanulF informaional actual necesit nu numai eforturi de stocare a datelor,
informaiilor i cunotinelor, dar mai cu seam de selecie, la momentul oportun a celor
mai rele2ante i utile dintre acestea.
Se reamintete faptul c informatica este tiina prelucrrii automate a datelor.
Informatica de gestiune este acea parte a informaticii care prelucreaz automat
datele de e2iden i control 2e+iculate n cadrul unei organizaii economice. Ca urmare,
esena tuturor sistemelor informatice prezentate mai sus este gestionarea datelor care,
interpretate de factorul uman, de2in uneori, aa cum s(a artat n acest para!raf,
informaii sau cunotine.
1.3 Noiuni fundamentale utilizate n organizarea datelor
Curs 4aze de date(pa!.3 din .5
$atele sunt stocate n memoria intern i memoria e*tern a oricrui sistem de
calcul. *rganizarea datelor se refer la procesul de definire i structurare a datelor n
colecii de date, precum i la realizarea le!turilor ntre elementele unei colecii i ntre
coleciile de date. :r!anizarea datelor se proiecteaz n scopul regsirii automate a
acestora dup di2erse criterii.
*biectivele organizrii datelor sunt, n principal, urmtoarele=
G timp de acces minim la dateB
G apariia o singur dat a datelor n sistemB
G spaiu de memorie intern i e+tern pentru date c?t mai micB
G reflectarea prin organizare a tuturor legturilor dintre procesele economice pe
care aceste date le reprezintB
G posibilitatea modificrii structurii datelor i a relaiilor dintre date fr a
produce sc+imbri n pro!ramele care le !estioneaz.
-e+nicile de or!anizare a datelor n colecii de date sunt= fiierul de date i baza
de date.
,iierul de date reprezint o colecie de date memorat pe un suport te+nic ntr(o
succesiune de nre!istrri. )ccesul la o nre!istrare din fiierul de date se obine prin
parcur!erea nre!istrrilor fiierului n sec2ena n care au fost stocate ;acces secvenial<
sau pe baza unei c+ei de identificare care s permit re!sirea rapid a nre!istrrii
;acces direct<. )ccesul direct se obine prin inde*area fiierelor, adic prin crearea unor
tabele de indeci care pentru fiecare 2aloare a atributului c+eie primar ;atribut care
permite identificarea n mod unic a unei nre!istrri din fiier< s conin adresa
corespunztoare ;n cadrul fiierului< a fiecrei nre!istrri.
Creterea necesarului de date, informaii i cunotine pentru a!enii economici i
pro!resele te+nolo!iilor informaiei i ale comunicaiilor ;8->C< au determinat
or!anizarea datelor n baze de date. : baz de date este un fiier format din )nregistrri
;records< sau r?nduri, fiecare conin?nd c-mpuri ;fields< sau coloane, i o mulime de
operaii de cutare, sortare, recombinare etc.
Cn proiectarea i nele!erea unui sistem informatic, organizarea datelor
reprezint o etap fundamental care presupune=
1< definirea, structurarea, ordonarea i !ruparea datelor n colecii de date
omogeneB
2< stabilirea le!turilor ntre date, ntre elementele unei colecii de date i ntre
coleciile de date, dup o ierarhie bine precizatB
3< memorarea datelor pe un suport informaional prelucrabil ntr(un sistem de
calcul.
Noiunile fundamentale folosite n or!anizarea datelor sunt entitatea( atributul i
valoarea. Cntre acestea e*ist le!turi de interdependen astfel=
o entitate are mai multe atribute, iar atributele au o anumit mulime de
2aloriB
Curs 4aze de date(pa!." din .5
entitatea reprezint un obiect concret sau abstract definit prin
proprietile saleB
orice proprietate a unui obiect este e*primat printr(o perec+e
;)-#847-,3)9:)#'<.
'*emple=
a< Ematerialul & are lun!imea mareF, unde Elun!imeaF este atributul, iar EmareF
este 2aloarea ;97N18&'), &)#'<B
b< un client persoan fizic al unei societi comerciale poate fi reprezentat prin
mulimea de perec+i= ;N7&', /:/'SC7<B ;/#'N7&', 8:N<B ;9:C)98-)-',
-1. H87<B ;-'9'6:N, @2$3211231<B ;4)NC), 4C#<B ;C:N-I4)NC)#,
#:1$#J4#@@@@@,@@@21,@@22<.
&ulimea atributelor &I)-# K ;N7&', /#'N7&', 9:C)98-)-',
-'9'6:N, 4)NC), C:N-I4)NC)#< poate fi asociat mai multor clieni ai
societii comerciale. Ca urmare, atributele nu caracterizeaz doar o entitate, ci o clas
de entiti care este denumit entitate de grup. 'lementele unei entiti de !rup prezint
drept caracteristic aceeai mulime de atribute. Ca urmare, entitile din cadrul unei
entiti de !rup sunt de acelai tip, definindu(se astfel un tip de entitate.
.tributul este denumit i c-mp sau caracteristic. 7n c?mp poate lua o anumit
clas de 2alori, fiind caracterizat de natura acestei clase de 2alori ;de e*emplu, atributul
este numeric dac ia 2alori numerice, atributul este alfanumeric dac clasa de 2alori este
reprezentat de iruri de caractere etc.<.
.tributele compuse se obin prin concatenarea mai multor atribute elementare.
)tributul care identific n mod unic o entitate se numete atribut"cheie.
Caracteristicile care nu identific n mod unic o entitate se numesc atribute non"
cheie.
Din punctul de 2edere al compunerii, datele se clasific n=
G date elementare sau scalare, adic data nu se mai di2ide n raport cu informaia
sau cunotina pe care o reprezintB
G date compuse, adic formate din mai multe date elementare.
$in punct de vedere logic( o dat este definit prin identificator( atribut i
valoare/
De e*emplu=
0.T%1I.2 3 identificator
41%T56&IT.1 3 atribut
789999 3 valoare
$in punct de vedere fizic( unei date )i corespunde o zon de memorie de o
anumit mrime care se afl la o adres absolut/
1.4. Relaiile dintre date
Cntre date e*ist relaii sau legturi diferite. Cntre datele care aparin unor tipuri de
entiti se pot realiza dou feluri de le!turi=
Curs 4aze de date(pa!.$ din .5
G prim le!tur se e*prim prin apartenena datelor la entitateB
G a doua le!tur se definete pentru entitile de acelai tip sau de tipuri diferite.
'*emple=
a. Dac se noteaz cu S)9)#8)-8 mulimea salariailor unei societi
comerciale, ntre datele a1 i a2 ce aparin acestei mulimi, se pot defini relaii de tipul=
a1 are aceeai funcie de ncadrare cu a2B
a1 are acelai salariu cu a2B
a1 are aceeai 2?rst cu a2 etc.
b. Se consider dou clase de entiti= /#:D7S'I4)NC)#' i C98'N-8. Cntre
datele acestor dou clase de entiti se pot defini relaiile=
un produs bancar poate fi ac+iziionat de unul sau mai muli clieni ai
bnciiB
un client al bncii poate ac+iziiona unul sau mai multe produse
bancare.
1.5. Structuri de date
Structura de date este o colecie de date ntre care s(au stabilit un ansamblu de
relaii pe baza crora funcioneaz un mecanism de selecie i identificare a
componentelor. &ulimea de date, asociat structurii de date, poate cuprinde datele unui
tip sau ale mai multor tipuri de entiti. Componentele structurii se identific prin nume
sau prin poziia pe care o dein n structur n raport cu ordinea specificat.
Cn situaia n care pentru localizarea unei componente se parcur! toate celelalte
componente dinaintea ei, structura are acces secvenial. Cn sc+imb, atunci c?nd o
component poate fi selectat fr a ine seama de celelalte, structura are acces direct.
Componentele unei structuri de date sunt date elementare sau sunt ele nsele
structuri de date.
)supra unei structuri de date se pot efectua urmtoarele operaii=
G crearea ;nseamn memorarea datelor iniiale pe suportul de stocare<B
G actualizarea ;sc+imbarea strii structurii prin adu!are, modificare sau ter!ere
de elemente, modificarea 2alorii sau relaiilor dintre elemente<B
G consultarea ;accesarea componentelor structurii de date<B
G sortarea ;aran0area elementelor unei structuri de date n conformitate cu criterii
prestabilite<B
G ventilarea ;di2izarea unei structuri de date n dou sau mai multe structuri de
date<B
G fuzionarea ;formarea unei structuri de date noi din dou sau mai multe structuri
de date< etc.
Structurile de date care prezint aceeai or!anizare i asupra crora se e*ecut
aceleai operaii formeaz un anumit tip de structuri de date. Tipul de structur de date
reprezint o mulime ordonat de date ntre care s(au stabilit anumite relaii i pentru
Curs 4aze de date(pa!.% din .5
care realizarea operaiilor se efectueaz cu un !rup de operatori de baz care au o
anumit semantic.
Dac se ia n considerare tipul componentelor, structurile de date se clasific n
omogene ;componentele sunt de acelai tip< i eterogene ;componentele au tipuri
diferite<.
C?nd structura de date se descompune n structuri de date de acelai tip, atunci
structura obinut este denumit recursiv.
Dup nivelul de structurare al datelor, se deosebesc structura fizic ;structura de
date care se refer la modul de implementare pe supori te+nici informaionali< i
structura logic ;modul de ordonare a datelor i modul de folosire a operatorilor de
tratare a datelor<.
Dac se ia n considerare posibilitatea modificrii valorilor i a structurilor, se
identific structuri statice ;pe tot parcursul e*istenei acestora prezint acelai numr de
componente i n aceeai ordine ;adic au cardinalitate finit( prin cardinalitate
nele!?nd numrul elementelor mulimii<< i structuri dinamice ;permit modificarea
2alorilor i a structurii de date prin aplicarea unor operatoriB aceste structuri de date au
cardinalitate infinit deoarece prezint un numr nelimitat de componente<.
: structur lo!ic poate fi implementat at?t ca structur static, c?t i ca structur
dinamic. '*ist ns i structuri lo!ice ce nu pot fi implementate static. Cn or!anizarea
datelor trebuie definit at?t structura lo!ic, c?t i cea fizic, deoarece cele dou ni2ele
se condiioneaz reciproc.
Din punctul de 2edere al tipului de structur de date, se deosebesc=
structura de date punctual ;o entitate de !rup izolat<B
structura de date liniar ;primul element nu are predecesoriB ultimul element
nu are succesoriB ntre date se stabilesc relaii de tipul Eunu(la(unuFB c?nd
ultimul element coincide cu primul element, structura liniar de2ine structur
circular sau inelar<B
structura de date arborescent ;este denumit i structur de date ierarhic
sau descendent: e*ist un element unic care este denumit nodul rdcin
;root node<:orice nod diferit de nodul rdcin prezint un predecesor imediat
unicB orice nod care nu este terminal prezint un numr finit de succesori
imediaiB ntre noduri se stabilesc relaii de tipul Eunu(la(muliF<B
structura de date reea ;acest tip de structur de date se definete c?nd e*ist
o relaie de preordine ntre elementele coleciei de dateB un nod prezint mai
muli predecesoriB un nod poate fi predecesor pentru propriul su predecesorB
ntre elementele reelei se stabilesc relaii de tipul Emuli(la(muliF<B
structura de date relaional ;acest tip de structur de date este format din
mai multe tabele, relaii sau tablouri de date elementare<.
$atele i structurile de date pot fi predefinite sau definite de utilizator.
Structurile de date se folosesc, n special, n programare, iar unele dintre ele sunt
fundamentale i n teoria bazelor de date ;cum este, de e*emplu, tabloul sau tabelul
;table<, care este folosit n structurarea bazelor de date relaionale<.
Curs 4aze de date(pa!., din .5
1.. !odele de date
0odelarea datelor ser2ete pentru prelucrarea datelor cu a0utorul calculatorului
electronic. Definirea unui model de date cuprinde urmtoarele=
structura modeluluiB
operatorii care se utilizeaz la manipularea structurilor de dateB
stabilirea regulilor de integritate pentru meninerea corectitudinii datelor.
$efinirea structurii modelului cuprinde definirea obiectelor ;entitilor< i a
caracteristicilor asociate ;atributelor<. Se utilizeaz urmtoarele elemente= c-mpul ;cel
mai mic element al structurii< grupul simplu sau compus ;set compus din c?mpuri
multiple i !rupuri< i )nregistrarea ;ansamblu de c?mpuri sau !rupuri care constituie i
elementul !eneric al structurii<. 1elaiile dintre nre!istrrile unei entiti ;obiect< sau
mai multor entiti ;obiecte< independente se materializeaz ntr(o legtur dintre o
realizare a nre!istrrii printe i una sau mai multe realizri ale nre!istrrii copil. /rin
entitate se nele!e un obiect al uni2ersului real ce este supus modelrii, obiect care este
caracterizat de o identitate proprie, de o e*isten proprie i de o familie de caracteristici
care semnific proprietile acestui obiect. 1elaiile sunt denumite i asocieri.
/entru realizarea unei reprezentri !rafice ;sub form de dia!rame< a structurii
modelului se utilizeaz tehnica entitate"asociere care const n identificarea
componentelor ;entitilor<, identificarea asocierilor dintre entiti i codificarea lor,
identificarea atributelor i precizarea atributelor de identificare a entitilor. 6iecare
entitate prezint mai multe realizri. 9e!turile dintre entiti sunt reprezentate prin
arce neorientate sau orientate ;fi!ura 1< care stabilesc le!tura ntre nodurile ce
reprezint entitile participante la asociere. Semnificaia le!turii este e*primat printr(
un nume acordat le!turii. 9e!tura se reprezint cu un nod etichet ;sub form de
romb< dispus pe arc ca nod intermediar.
-ipul sau forma le!turii se e2ideniaz cu a0utorul cardinalitii. Cn fi!ura 1 este
reprezentat !rafic cardinalitatea le!turii ntre C98'NL8 /#:D7S'. 'ardinalitatea
le!turilor semnific numrul minim i numrul ma*im de realizri ;instane< de entitate
care pot fi asociate cu o realizare a partenerului de asociere. 'ardinalitatea se reprezint
prin perec+i de numere, c?te o perec+e pentru fiecare entitate din cadrul le!turii. Din
fi!ura 1 se obser2 c un anumit produs poate fi ac+iziionat de mai muli clieni i un
client poate cumpra mai multe produse. /erec+ea 81,#9 este asociat entitii C98'NL8
Curs 4aze de date(pa!.. din .5
i semnific faptul c un client poate s ac+iziioneze un produs sau poate s
ac+iziioneze mai multe produse. /erec+ea 8:,#9 este asociat entitii /#:D7S' i
semnific faptul c un produs poate s nu fie ac+iziionat de nici un client sau poate s
fie ac+iziionat de mai muli clieni.
4aza de date cuprinde structurile de date i relaiile lo!ico(funcionale ntre aceste
structuri. #elaiile astfel constituite pot fi binare sau n(are.
R!'2((! 6(#'0 sunt stabilite prin e*istena unui domeniu, a unui codomeniu i a
unei corespondene ntre elementele domeniului i ale codomeniului. '*ist " tipuri de
relaii binare=
a<. relaii de tip 1(1, numite i Funu la unuF ;one to one<B
b<. relaii de tip 1(n, numite i Funu la muliF ;one to manM<B
c<. relaii de tip n(1, numite i Fmuli la unuF ;manM to one<B
d<. relaii de tip n(m, numite i Fmuli la muliF ;manM to manM<.
a<. #elaiile de tip 1(1 corespund asocierilor biuni2oce dintre o realizare din
domeniu cu o realizare din codomeniu.
'*emplu=
N#. )7-:C)&8:N N#. A&. /)#C7#N8
1H(2$(6S& ............................ $3@@@
1H($$(1SO ............................ 123@@@
b<. #elaiile de tip 1(n corespund asocierii unei realizri din domeniu cu mai multe
realizari din codomeniu.
'*emplu=
C:N-7#8 S8S-'-8C' C:N-7#8 )N)98-8C'
1@1P P 1@11
P 1@12
$32 P P $321
P $322
P $323
c<. #elaiile de tip n(1 corespund asocierii mai multor realizri din domeniu cu o
sin!ur realizare din codomeniu.
'*emplu=
/#:D7S' 67#N8J:#8
/1 P P 61
/2 P
/3 P P 61
/" P
D<. #elaiile de tip m(n corespund asocierii mai multor realizri din domeniu cu
mai multe realizri din codomeniu.
'*emplu=
Curs 4aze de date(pa!.5 din .5
7N8-QL8 /#:D7C-83' 7N8-QL8 C:&'#C8)9'
7/1 P P 7C1
7/2 P P 7C2
7/3 P P 7C3
R!'2((! #;'0 sunt constituite din ( caracteristici ;atribute< aparin?nd nunui
numr de # realizri.
'*emplu=
Cele # realizri Cele ( caracteristici
/:/'SC7 8:N ..................................... 2$ ani 2 copii .,@ leiDlun
1':#1'SC7 N. .................................. "@ ani 1 copil 112@@ leiDlun
J)&68# '. ............................................ 32 ani 2 copii 52$@ leiDlun
)semenea realizri trebuie s fie FatomiceF, adic s posede o caracteristic
distincti2 fa de oricare alt realizare, oferind posibilitatea identificrii unice n cadrul
mulimii realizrilor din baza de date. Dac de e*emplu prin Fnume i prenumeF nu se
poate obine o astfel de unicitate, c+eia atomizrii 2a fi proiectat prin Fmarca de
salariatF sau prin codul numeric personal.
.tributele reprezint proprieti distincte ale entitilor, ns ele se pot referi i la
asocierile dintre entiti. Dup comple+itate, atributele se clasific n atribute simple sau
elementare i n atribute comple+e ;compuse din mai multe atribute elementare<. Dup
realizrile pe care le pot prezenta atributele, acestea pot fi monovaloare, multivaloare,
obligatorii sau opionale. 6n atribut de identificare este denumit cheie( atunci c?nd este
caracterizat prin unicitatea 2alorii sale pentru fiecare instan a entitii ;de
e*emplu(codIclient pentru entitatea '2I%&=I( cod5produs( pentru entitatea /#:D7S'.
)tributele c+eie se marc+eaz prin subliniere sau printr(o s!eat spre entitatea
creia i aparin.
*peratorii utilizai n modelele de date sunt citire( memorare( modificare(
>onciune etc. /entru asi!urarea corectitudinii datelor se folosesc reguli de integritate.
)2?nd n 2edere statutul funcional al realiilor n cadrul bazelor de date, n
e2oluia proiectrii acestora au fost concepute di2erse modele de reprezentare a datelor
Cele mai importante modele de date sunt=
o modelul ierar+icB
o modelul reeaB
o modelul relaionalB
o modelul obiectB
o modelul obiect(relaional.
0odelul ierarhic conine ca structuri de baz tipuri de nre!istrri care !rupeaz
toate atributele unei entiti. )cest model posed ierarhia ca tip de structur. )ceast
ierar+ie dispune de un tip de nre!istrare definit ca rdcin?root i mai multe tipuri de
nre!istrri subordonate, le!ate sub form de arbore, moti2 pentru care modelul este
denumit i arborescent.
Curs 4aze de date(pa!.1@ din .5
Nodul din arbore care nu este rdcin sau nod final, are un sin!ur nod superior i
unul sau mai multe noduri inferioare. 9e!tura de la un nod superior la unul inferior este
de tipul 1;1, iar le!tura de la un nod inferior la unul superior este de tipul 1;1.
Datorit e*istenei celor dou structuri, modelul ofer operatori separai i
anume=
operatori de citire pentru tipul de )nregistrare:
operatori de citire pentru tipul ierarhie:
operatori de memorare pentru tipuri de )nregistrri:
operatori de memorare pentru ierarhie.
Cn cazul modelului reea, datele sunt reprezentate ca la modelul ierar+ic, cu
deosebirea c fiecare inferior poate a2ea mai muli superiori. Structurile specifice
modelului reea pot s fie tipul de )nregistrri ;asi!ur atributele unei entiti< i tipul de
set ;asi!ur le!turile ntre tipurile de nre!istrare<.
0odelul relaional este fundamentat pe teoria matematic a relaiilor,
caracteriz?ndu(se printr(o sin!ur structur de date i anume relaia sau tabelul. 7n
astfel de model poate fi perceput ca o mulime de tabele obinute prin metoda
normalizrii.
Normalizarea pornete de la o mulime de atribute sau c?mpuri de date i de la o
mulime de dependene funcionale dintre atribute. Normalizarea permite obinerea unei
sc+eme conceptuale a modelului relaional ntr(o form normalizat n care se elimin
anomaliile de actualizare.
0odelul orientat obiect este bazat pe structura denumit clas de obiecte ce este
definit prin abstractizare din entitile desemnate.
0odelul obiect"relaional este destinat s mbo!easc modelul relaional cu
sistemul conceptelor modelului obiect.
2. MODELAREA DATELOR
6n model este o abstractizare a unui sistem, care capteaz cele mai importante
trsturi caracteristice ale sistemului ;concepte<, rele2ante din punct de 2edere al
scopului pentru care se definete modelul respecti2. -e+nica de identificare a trsturilor
caracteristice eseniale ale unui sistem se numete abstractizare.
6n model de date stabilete re!ulile de or!anizare i interpretare a unei colecii de
date. Cn proiectarea bazelor de date se folosesc, de re!ul, mai multe modele de date,
care se pot clasifica n dou cate!orii= modele conceptuale de nivel )nalt i modele
specializate.
6n model conceptual de nivel )nalt al datelor conine o descriere concis a
coleciilor de date care modeleaz acti2itatea dorit ;numit schem conceptual de
nivel )nalt<, fr s detalieze modul de reprezentare sau de prelucrare a datelor.
0odelele specializate de date ;cum sunt= modelul ierar+ic, modelul reea, modelul
relaional, etc.< impun anumite structuri speciale de reprezentare a mulimilor de entiti
i a asocierilor dintre acestea, structuri pe baza crora sunt dez2oltate sistemele de
Curs 4aze de date(pa!.11 din .5
!estiune a bazelor de date. Cntr(un astfel de model de date, o baz de date este
reprezentat printr(o sc+em lo!ic ;conceptual< specific. -recerea de la modelul
conceptual de ni2el nalt la un model de date specific reprezint etapa de proiectare
logic a bazei de date care asi!ur corespondena dintre sc+ema conceptual de ni2el
nalt a bazei de date i sc+ema conceptual specific modelului de date respecti2.
2.1 Mod! "o#"$%&'! d #()! *#'!%
Cel mai utilizat model conceptual de ni2el nalt este modelul 'ntitate()sociere
;'()< care reprezint sc+ema conceptual de ni2el nalt a bazei de date prin mulimi de
entiti i asocieri dintre acestea. Dez2oltarea acestui model, astfel nc?t s permit
e*tinderea tipurilor de entiti, este cunosut sub numele de model 'ntitate()sociere
'*tins ;'()'<. /roiectarea modelului '() sau al modelului '()' este, de re!ul, una
din primele etape n proiectarea bazelor de date, etap numit proiectarea schemei
conceptuale .
2.1.1 Mod!&! E#%(%'%;A.o"(0
0odelul %ntitate".sociere ;%ntity"1elationship 0odel<( introdus )n 7@AB de 4/S/
'hen( este un model conceptual de nivel )nalt al unei baze de date( care definete
mulimile de entiti i asocierile dintre ele( dar nu impune nici un mod specific de
structurare i prelucrare ;gestiune< a datelor/
'lementele eseniale ale modelului 'ntitate()sociere folosit n proiectarea bazelor
de date sunt entitile ;entities< i asocierile ;relaiile< dintre acestea ;relationships<.
" entitate ;entity< este Corice poate fi identificat )n mod distinctivD: o entitate se
refer la un aspect al realitii obiective care poate fi deosebit de restul universului i
poate reprezenta un obiect fizic( o activitate( un concept( etc/ :rice entitate este descris
prin atributele sale.
#n atri$ut ;attribute< este o proprietate care descrie un anumit aspect al unei
entiti/
)tributele prin care este descris o entitate se ale! pe baza criteriului relevanei
relati2 la domeniul de interes pentru care se definete modelul respecti2, astfel nc?t s
asi!ure diferenierea acelei entiti fa de restul uni2ersului.
-oate entitile similare, care pot fi descrise prin aceleai atribute, aparin unui
acelai tip de entitate ;entity type<, iar colecia tuturor entitilor de acelai tip dintr(o
baz de date constituie o mulime de entiti ;entities set<. Cn !eneral, n modelul '() se
folosete aceeai denumire at?t pentru un tip de entitate c?t i pentru mulimea
entitilor de acel tip.
De e*emplu, tipul de entitate Can!a0atF ;al unei instituii< reprezint orice
persoan an!a0at a instituiei, care are o anumit funcie i primete un anumit salariu.
)cest tip de entitate poate fi descris prin mai multe atribute, dintre care o parte sunt
atribute de identificare a persoanei ;Nume,/renume,DataNasterii,)dresa<, iar altele sunt
atribute le!ate de acti2itatea acesteia n instituia respecti2 ;6unctie,Salariu<.
Curs 4aze de date(pa!.12 din .5
/rin analo!ie cu modelul obiect, se poate spune c un tip de entitate corespunde
unei clase, o entitate este o instan a unui tip de entitate i corespunde unui obiect, iar
mulimea entitilor de un tip dat corespunde mulimii obiectelor ;instanelor< unei clase.
Cn proiectarea bazelor de date se consider dou cate!orii de entiti= entiti
normale ;puternice, obinuite ( regular entities< i entiti slabe ;dependente ( !eak
entities<.
'ntitile normale au o e*isten proprie n cadrul modelului, n timp ce entitile
slabe nu pot e*ista dec?t dac e*ist o entitate normal ;puternic< cu care sunt asociate.
De e*emplu, o entitate EdependentF poate s reprezinte o persoan care depinde de un
an!a0at al unei instituii ;adic se afl n ntreinerea acestuia<. : entitate Ean!a0atF este o
entitate puternic, deoarece ea e*ist n mod normal n modelul acti2itii instituiei, n
timp ce o entitate RdependentF este o entitate slab= nu se 2a nre!istra o astfel de
persoan dec?t dac printele ;susintorul< acesteia este an!a0at n acea instituie.
Cn proiectarea bazelor de date se definesc asocieri ntre mulimile de entiti
componente, pentru a reprezenta anumite aspecte ale realitii pe care baza de date o
modeleaz.
" a%ociere ;relationship< este o coresponden )ntre entiti din dou sau mai
multe mulimi de entiti/
Eradul unei asocieri este dat de numrul de mulimi de entiti asociate.
)socierile pot fi binare ;de !radul 2, ntre 2 mulimi de entiti< sau multiple ;ntre k
mulimi de entiti, k S 2<.
.socierile ;relaiile< binare sunt, la r?ndul lor, de mai multe cate!orii, dup
numrul elementelor din fiecare dintre cele dou mulimi puse n coresponden de
asocierea respecti2 ;fi!. 1.$<.
6iind date dou mulimi de entiti, %
1
i %
2
, se definesc urmtoarele cate!orii de
asocieri binare=
.socierea ;relaia< de tip Funul"la"unulG ;one"to"one< este asocierea prin care
unui element ;entitate< din mulimea %
1
i corespunde un sin!ur element din
mulimea %
2
, i reciprocB se noteaz cu 1=1.
.socierea;relaia< de tip Eunul"la"multeG ;one"to"many< este asocierea prin
care unui element din mulimea %
1
i corespund unul sau mai multe elemente
din mulimea %
2
, dar unui element din %
2
i corespunde un sin!ur element n
mulimea %
1
B se noteaz cu 1=&.
.socierea Emulte"la"multeG ;many"to"many< este asocierea prin care unui
element din mulimea %
1
i corespund unul sau mai multe elemente din
mulimea %
2
i reciprocB se noteaz cu 0=&.
Cardinalitatea ;multiplicitatea< unei asocieri fa de o mulime de entiti
;cardinality( multiplicity< este numrul ma+im de elemente din acea mulime care pot fi
asociate cu un element din alt mulime a asocierii/
Curs 4aze de date(pa!.13 din .5
De e*emplu, asocierea 1=& dintre mulimile %
1
i '
2
prezint multiplicitatea 1 fa
de mulimea %
1
i multiplicitatea & ;se nele!e o 2aloare oarecare & S 1< fa de
mulimea %
2
. #aportul dintre 2alorile cardinalitilor unei asocieri binare fa de cele
dou mulimi de entiti se numete raport de cardinalitate ;cardinality ratio<. Se poate
obser2a c cele trei cate!orii de asocieri descrise mai sus difer ntre ele prin raportul de
cardinalitate.
.socierile multiple ;k(are, k S 2< prezint c?te un raport de cardinalitate pentru
fiecare perec+e de mulimi de entiti pe care le asociaz.
: asociere ntre dou sau mai multe mulimi de entiti este, n acelai timp, o
asociere ntre tipurile de entiti corespunztoare.
Diagrama &ntitate'(%ociere ;%ntity"1elationship $iagram< reprezint modelul
%ntitate".sociere prin mulimile de entiti i asocierile dintre acestea/
'*ist numeroase 2ariante de notaii pentru redarea dia!ramei %(.. 7na dintre
cele mai folosite notaii reprezint un tip de entitate ;precum i mulimea de entiti de
acel tip< printr(un dreptun!+i, iar atributele tipului de entitate prin elipse conectate
printr(o linie continu la acesta ;fi!. 1.%<. /entru entitile puternice se utilizeaz un
dreptun!+i ncadrat cu o linie simpl, iar pentru entitile slabe se utilizeaz un
dreptun!+i ncadrat cu linie dubl.
Curs 4aze de date(pa!.1" din .5
: asociere ;tip de asociere< dintre dou sau mai multe tipuri de entiti se
reprezint printr(un romb conectat prin linT(uri ;linii continue, formate din unul sau mai
multe se!mente< la tipurile de entiti asociate. : asociere poate s aib sau nu un numeB
dac are un nume, acesta poate fi nscris n rombul respecti2 sau n 2ecintatea acestuia.
Cate!oria asocierii se noteaz prin nscrierea multiplicitii pe fiecare linT care conduce
la un tip de entitate. 'ste posibil ca o asociere s prezinte ea nsi atribute, i aceste
atribute se reprezint prin elipse conectate la asocierea respecti2.
&)em*lul 1.1. Cn continuare se e*emplific dez2oltarea modelului conceptual de
ni2el nalt al unei baze de date a unei instituii i dia!rama %(. corespunzatoare,
definind c?te2a tipuri de entiti i asocierile ntre acestea. Dia!rama %(. a acestui mic
model de baz de date este prezentat n fi!ura. 1.,.
-ipul de entitate EsecieF reprezint o unitate de or!anizare a instituiei i este un
tip de entitate puternic ;de sine stttoare<. )cest tip se caracterizeaz prin mai multe
atribute, de e*emplu, un numr al seciei, numele seciei i bu!etul alocat. &ulimea de
entiti care !rupeaz toate entitile de acest tip se poate denumi SECTIE sau
SECTII ;oricare 2ariant poate fi folosit< i este caracterizat prin aceleai atribute
care caracterizeaz tipul entitii=
SECTIE(Numar,Nume,Buget)
-ipul de entitate Ean!a0atF reprezint o persoan an!a0at n instituie i este de
asemenea un tip de entitate puternic. )cest tip de entitate, ca i mulimea de entiti
care !rupeaz toate entitile de acest tip, se poate defini astfel=
ANGAJAT(Nume,Prenume,DataNasterii,Adresa,Functie,Salari
u)
-ipul de entitate EproiectF reprezint o acti2itate a instituiei, i este de asemenea
un tip de entitate puternic, care poate fi caracterizat prin numele proiectului, data
nceperii, termen de realizare, bu!etul proiectului=
Curs 4aze de date(pa!.1$ din .5
P!IECT(Nume,DataInce"erii,Termen,Buget)
-ipul de entitate EdependentF reprezint o persoan care depinde de un an!a0at al
instituiei ;adic se afl n ntreinerea acestuia<. )cest tip de entitate este un tip de
entitate slab= nu se 2a nre!istra o astfel de persoan dec?t dac ntreintorul acesteia
este an!a0at n acea instituie. )cest tip se poate defini astfel=
DEPENDENT(Nume,Prenume,DataNasterii,Gradudenie)
)socierea SECTIE#ANGAJAT este o asociere 1=&, dac se consider c o secie
cuprinde mai muli an!a0ai, iar un an!a0at aparine unei sin!ure secii.
)socierea ANGAJAT#P!IECT este o asociere 0=&, dac se consider c la
fiecare proiect lucreaz mai muli an!a0ai, i fiecare an!a0at poate lucra la mai multe
proiecte.
)socierea ANGAJAT#DEPENDENT este o asociere de tipul 1=&, deoarece un
an!a0at poate )ntreine mai multe persoane ;fii, prini etc.<, iar o persoan dependent
este n ntreinerea unui sin!ur susintor.
#aportul de cardinalitate al unei asocieri este stabilit de proiectant astfel nc?t s
reflecte c?t mai corect modul de or!anizare a acti2itii modelate. De e*emplu, asocierea
ANGAJATI#P!IECTE are raportul de cardinalitate 0=& dac n instituia respecti2
se admite ca un an!a0at s lucreze la mai multe proiecteB dac s(ar impune ca un an!a0at
s lucreze la un sin!ur proiect, atunci asocierea respecti2 ar a2ea raportul de
cardinalitate &=1. Cn ambele situaii se admite c la un proiect lucreaz mai muli
an!a0ai.
Sunt de remarcat c?te2a caracteristici !enerale ale modelului %(.=
a< &odul de stabilire a tipurilor de entiti i a asocierilor dintre acestea nu este
unic, deoarece !rania dintre entiti i asocieri nu este, n !eneral, una bine precizat.
)ceeai funcionalitate se poate obine printr(o 2arietate de dia!rame '(), depinz?nd de
felul n care proiectantul dez2olt modelul conceptual. : asociere poate fi considerat i
ca un tip de entitate. De e*emplu, pentru baza de date a unei faculti ;coli< se definesc
tipurile ;mulimile< de entiti=
ST$DENTI (N$%E, Prenume, Adresa,&&&)
DISCIP'INE(Denumire,Credite,&&&)
Cntre aceste mulimi de entiti se poate defini asocierea ST$DENTI#
DISCIP'INE, cu raportul de cardinalitate 0=&. )ceast asociere reprezint ;n !eneral<
studierea unor discipline de ctre studeni, cu atribute ca= Nota ;e*amenului la
disciplina respecti2<, DataE(amen, etc. Dar, la fel de bine, este posibil s se
defineasc tipul de entitate N!TE, aflat n asociere N=1 cu fiecare din tipurile de entiti
ST$DENTI i DISCIP'INE ;fi!. 1..<.
Curs 4aze de date(pa!.1% din .5
b< Cn modelul %(., tipul de entitate ;i mulimea de entiti corespunztoare<
semnific un substanti2, n timp ce o asociere semnific un 2erb. 4ineneles, nu este
obli!atoriu ca numele dat unei asocieri s fie un 2erb ;i, de cele mai multe ori, nici nu
este<, dar o asociere reprezint o interaciune ntre tipurile de entiti ;i mulimile de
entiti corespunztoare<, care poate fi e*primat printr(un 2erb. De e*emplu, n
dia!rama %(. din fi!ura 1.,, asocierea SECTIE#ANGAJAT poate fi e*primat prin
2erbul cuprinde, asocierea ANGAJATI#DEPENDENTI poate fi e*primat prin 2erbul
)ntreine, asocierea ANGAJATI#P!IECTE poate fi e*primat prin 2erbul lucreaz
etc.
c< &odelul %(. nu precizeaz modul cum sunt realizate asocierile ntre mulimile
de entiti. )cest aspect depinde de modelul de date specializat utilizat pentru definirea
bazei de date. De e*emplu, n modelele ierar+ic i reea, asocierile sunt realizate e*plicit,
prin pointeri de la o entitate la entitile asociate, n timp ce n modelul relaional
asocierea se realizeaz prin e!alitatea 2alorilor unor atribute comune ale entitilor
;c+ei<.
2.1.2 Mod!&! E#%(%'%;A.o"(0 E<%(#.
0odelul %ntitate".sociere %+tins ;%nhanced %ntity"1elationship 0odel< permite
definirea de subtipuri ale unui tip de entiti( care motenesc atribute de la tipul de
entitate pe care il e+tind ;i care( )n acest conte+t( se numete supertip< i au )n plus
atribute specifice semnificaiei lor/ 4rin definirea tipurilor i a subtipurilor de entiti
se pot crea ierarhii de tipuri de entiti pe mai multe niveluri/
&odelul %(. prezentat n capitolul precedent este suficient pentru modelarea
aplicaiilor de baze de date EtradiionaleF, adic bazele de date utilizate pentru acti2iti
financiare i industriale, n care se folosesc tipuri de date simple. :dat cu dez2oltarea
sistemelor de baze de date, domeniile n care acestea se folosesc au de2enit tot mai
numeroase, ca, de e*emplu= telecomunicaiile, proiectarea te+nolo!ic, sistemele de
informaii !eo!rafice, se2iciul Ueb, etc. -ipurile de entiti definite n astfel de baze de
date sunt mult mai comple*e i pentru reprezentarea lor c?t mai intuiti2 i mai
compact au fost propuse mai multe concepte noi, care au fost introduse n modelul %(.
e*tins.
Curs 4aze de date(pa!.1, din .5
&odelul %(. e*tins se reprezint printr(o dia!ram %(. e*tins. 8erar+iile de
tipuri se pot crea prin specializare sau generalizare.
S*ecializarea ;specialization< este un proces de abstractizare a datelor prin care(
pornind de la un tip de entitate dat( se definesc unul sau mai multe subtipuri(
difereniate )ntre ele )n funcie de rolul specific pe care )l au )n modelul de date/
De e*emplu, pornind de la tipul de entitate ANGAJAT se definesc prin
specializare subtipurile SECETAA, TE)NICIAN, INGINE, pentru a diferenia
funciile pe care an!a0aii le pot a2ea n ntreprinderea respecti2 ;fi!. 1.5<. 9itera RdF
din marca0ul de specializare a tipurilor indic o constr?n!ere de dis0uncie impus
specializrii, care 2a fi descris mai 0os.
Subtipurile de entiti motenesc atribute ale tipului iniial i fiecare dintre ele are
atribute suplimentare, specifice rolului lor. De e*emplu, atributele
;Nume,Prenume,DataNasterii,Adresa,Salariu< ale tipului de entitate
ANGAJAT sunt motenite de fiecare din subtipurile acestuia. )tributul Functie nu
este motenit, deoarece specializarea subtipurilor s(a efectuat dup acest atribut. Ca
atribute specifice, subtipul SECETAA are atributul *ite+aedactare, care este
o msur a calificrii, subtipul TE)NICIAN are atributul Cali,icare, care
reprezint !radul de calificare, iar subtipul INGINE are atributul S"ecialitate,
care este o precizare a domeniului in care lucreaz ;mecanic, electric, etc.<.
+eneralizarea ;generalization< este procesul de abstractizare invers specializrii(
prin care se creaz un supertip de entitate pornind de la mai multe tipuri de entiti/
/entru definirea unei !eneralizri, se identific atributele comune ale mai multor
tipuri de entiti i aceste atribute 2or caracteriza supertipul de entitate, iar atributele care
difer de acestea rm?n specifice fiecrui tip.
De e*emplu, dac au fost definite tipurile de entiti=
A$T!%!BI'(NrInregistrare,%arca,*ite+a%a(ima,Pret,NumarPasag
eri)i CA%I!N(NrInregistrare,%arca,*ite+a%a(ima,Pret,Tona-),se
poate defini un supertip al acestor tipuri=
*E)IC$'(NrInregistrare,%arca, *ite+a%a(ima,Pret).
)cest tip 2a cuprinde toate atributele comune, iar tipurile iniiale, A$T!%!BI' i
CA%I!N, de2in subtipuri ale tipului *E)IC$', fiecare conin?nd atributele specifice
;NumarPasageri pentru tipul A$T!%!BI' i Tona- pentru tipul CA%I!N<.
#ezultatul obinut prin !eneralizare este, ca i n cazul specializrii, o ierar+ie de
tipuri de entitiB ceea ce difer este modul n care se definesc ni2elurile ierar+iei.
Curs 4aze de date(pa!.1. din .5
!otenirea atri$utelor. /roprietatea principal a ierar+iilor de tipuri de entiti
create prin specializare sau !eneralizare este motenirea atributelor= atributele tipurilor
de entiti de ni2el ridicat ;supertipuri< sunt motenite de tipurile de entiti de ni2el
sczut ;subtipuri<.
&otenirea dintre un subtip de entiti i supertipul acestuia se reprezint n
dia!rama '() e*tins printr(o le!tur ;link< ntre subtip i supertipul de entitate
corespunztor pe care este plasat un semicerc orientat ctre subtip ;aa cum se poate
2edea n fi!ura 1.5<.
'ste e2ident asemnarea dintre ierar+iile de tipuri de entiti din modelul '()
e*tins i ierar+iile de clase din modelul obiect(orientat, dar modelul %(. e*tins este un
model de date mult mai !eneral ;de ni2el inalt<, care poate fi transpus n diferite modele
de date specializate, inclusi2 modelul obiect(orientat. )ceste transpuneri se fac n
funcie de suportul oferit de modelul specializat respecti2 pentru reprezentarea
entitilor, asocierilor, motenirilor, etc.
2.1.+ Mod!&! d d'% (0'0=("
Hn modelul ierarhic ;Hierarchical 0odel< o baz de date se reprezint printr"o
structur ierarhic de )nregistrri de date ;records< conectate prin legturi ;links</
&odelul de date ierar+ic a fost primul model folosit pentru dez2oltarea bazelor de
date. Cea mai cunoscut realizare de S14D ierar+ic este sistemul 8&S ;Information
0anagement System< dez2oltat de firma 84& n cadrul pro!ramului de cercetri )pollo,
n perioada anilor 15%@.
: nre!istrare de date n modelul ierar+ic este o instan a unui tip de )nregistrare
;record type< i const dintr(o colecie de c?mpuri ;fields<, fiecare c?mp conin?nd
2aloarea unui atribut. 7n tip de nre!istrare corespunde unui tip de entitate, iar o
nre!istrare corespunde unei entiti din modelul '().
Curs 4aze de date(pa!.15 din .5
7n tip de legtur n modelul ierar+ic este un tip de asociere cu raportul de
cardinalitate 1=N ;de tip printe(fiu< ntre dou tipuri de nre!istrri. -ipul de nre!istrare
din partea cu multiplicitatea 1 a asocierii este numit tip de nre!istrare printe, iar tipul
din partea cu multiplicitatea N a asocierii este numit tip de nre!istrare fiu.
Sc+ema conceptual a unei baze de date n modelul ierar+ic se reprezint printr(un
numr oarecare de sc+eme ierar+ice ;fi!. 1.12<. : sc+em ierar+ic este un arbore
direcionat, reprezentat pe mai multe ni2eluri, n care nodurile sunt tipurile de
nre!istrri, iar arcele sunt tipurile de le!turi. 6iecare nod ;cu e*cepia nodului
rdcin< are o sin!ur le!tur ctre un nod de pe un ni2el superior ;nodul printe< i
fiecare nod ;cu e*cepia nodurilor frunz< are una sau mai multe le!turi ctre noduri de
pe ni2elul imediat inferior ;noduri fii<.
Se poate stabili o coresponden ntre o sc+em conceptual ierar+ic i o
dia!ram '()= tipurile de nre!istrri corespund tipurilor de entiti, iar tipurile de
le!turi corespund tipurilor de asocieri. ;fi!. 1.12, a i b<.
Cn modelul ierar+ic nu sunt admise dec?t le!turi de tipul printe(fiu, care
corespund asocierilor 1=1 i asocierilor 1=N din modelul '(). )socierile &=N din
modelul '() nu se pot reprezenta n mod direct n modelul ierar+ic, ci numai prin
multiplicarea nre!istrrilor de tip fiu, atunci c?nd sunt referite de mai multe nre!istrri
de tip printe. )cest lucru conduce la o mare redundan a datelor.
Corespunztor sc+emei ierar+ice a unei baze de date se pot reprezenta mai muli
arbori de instaniere a datelor, care sunt, de asemenea, arbori direcionai ;fi!. 1.12, c<.
6iecare arbore de instaniere contine ierar+ii pe mai multe ni2eluri de nre!istrri ntre
care e*ist le!turi de tipul printe(fiu.
Corespunztor sc+emei ierar+ice a unei baze de date se pot reprezenta mai muli
arbori de instaniere a datelor, care sunt, de asemenea, arbori direcionai ;fi!. 1.12, c<.
Curs 4aze de date(pa!.2@ din .5
6iecare arbore de instaniere contine ierar+ii pe mai multe ni2eluri de nre!istrri ntre
care e*ist le!turi de tipul printe(fiu.
A)'#%'>! modelul ierar+ic sunt simplitatea i eficiena de calcul, dar n
momentul de fa, pentru realizarea bazelor de date sunt preferate modele de date mai
puternice ;modelul relaional, modelul obiect(orientat<.
2.1., Mod!&! d d'% 02'
0odelul reea ;&et!ork 0odel< folosete o structur de graf pentru definirea
schemei conceptuale a bazei de date: nodurile grafului sunt tipuri de entiti
;)nregistrri " records<( iar muchiile grafului reprezint )n mod e+plicit asocierile
;legturile"links< dintre tipurile de entiti/
)prut dup modelul ierar+ic, modelul reea de reprezentare a bazelor de date a
fost standardizat n 15,1, de o comisie D4-1 ;$atabase Task Eroup<. &odelul reea a
a2ut mai multe implementri ca sisteme de !estiune comerciale= 8DS 88 ;OoneMVell<,
7N8SWS ;4urrou!+s<, 8D&S ;'omputer .ssociates<.
Deosebirea fa de modelul ierar+ic const n aceea c n modelul reea asocierile
&=N se reprezint fr duplicarea nre!istrrilor, fiecare nre!istrare put?nd fi referit de
mai multe nre!istrri, ceea ce elimin redundana.
9a fel ca i la modelul ierar+ic, d7')'#%'>&! $0(#"($'! al modelului reea este
acela c fiecare intero!are trebuie s fie pre2zut nc din faza de proiectare, prin
memorarea e*plicit a le!turilor ntre tipurile de entiti. Cn plus, comple*itatea
reprezentrii datelor n modelul reea este deosebit de ridicat, iar pro!ramatorii trebuie
s o cunoasc pentru a putea realiza aplicaiile necesare.
Cn momentul de fa modelul de date reea este foarte rar utilizat pentru baze de
date de uz !eneral ;care implic operaii de intero!are<, dar e*ist unele domenii n care
structurarea ca !raf a datelor permite o parcur!ere eficient a acestora. De e*emplu,
ma0oritatea bazelor de date !rafice folosite n modelarea scenelor tridimensionale din
realitatea 2irtual sunt baze de date reea.
2.1.- Mod!&! d d'% 0!'2(o#'!
0odelul relaional ;1elational 0odel< se bazeaz pe noiunea de relaie ;relation<
din matematic( care corespunde unei mulimi de entiti de acelai tip/
&odelul de date relaional a fost propus de cercettorul '.6. Codd de la compania
84&, care a publicat n anul 15,@ lucrarea X7n model #elaional de Date pentru 4nci
&ari de Date /arta0ateX. )lte lucrri ale lui Codd, ca i ale altor cercettori ;C.H. Date, /.
C+en, #. 4oMce, H.D. 7llman, #. 6a!in, U.U. )rmstron!, &. StonebraTer, etc.< au
perfecionat modelul de date relaional i au permis dez2oltarea fr precedent a
sistemelor de !estiune a bazelor de date, datorit simplitii i a fundamentrii
matematice a modelului.
/rimul Sistem de 1estiune a 4azelor de Date #elaionale ;S14D#< a fost
prototipul System 1, dez2oltat la compania 84& n anii 15,@, dup care numeroase
Curs 4aze de date(pa!.21 din .5
companii au realizat sisteme de !estiune relaionale ;:racle, &icrosoft, 8n!res, SMbase,
etc.< iar aplicaiile de baze de date relaionale au cptat o amploare deosebit.
/e l?n! ')'#%'>&! unui model de date precis i simplu, sistemele de baze de date
relaionale mai beneficiaz i de un limba0 de pro!ramare unanim recunoscut i acceptat,
limba0ul SY9 ; Structured Iuery 2anguage <, pentru care au fost emise mai multe
standarde de ctre 8S: ; International Standardization *ffice <. &a0oritatea S14D(urilor
relaionale actuale implementeaz 2ersiunea SY952 ;sau SY92<.
&odelul relaional constituie efectul tendinei de !eneralizare(dez2oltare a
relaiilor din cadrul bazei de date. &odelul relaional se bazeaz pe o mulime
interconectat de relaii definite n cadrul uneia sau mai multor colecii de date ;relaii #(
are<. Structura conceptual a modelului de date relaional este formulat printr(o
mulime de tabele ;liste sau fiiere< ntre care e*ist o asociere lo!ic. )socierea se
realizeaz prin aa numitele "=( de le!tur care constituie, totodat, calea de acces la
nre!istrrile subcoleciilor. Din punct de 2edere fizic, subcoleciile de date sunt
constituite din articole lo!ice, nre!istrate pe un suport te+nic de date.
2.1.-.1 Co#"$% &%(!(7'% d 1od!&! 0!'2(o#'!
Conceptele utilizate n modelul relaional sunt determinate de principiul
fundamental al acestui model= tabelul bidimensional format din r?nduri i coloane.
)ceste concepte sunt= *#0?(.%0'0' ;tuplul<, "@1$&! ;atributul, caracteristica<,
0'!(7'0' ;instana<, do1#(&!, ?0'd&!, "'0d(#'!(%'%', "=('.
/entru a ilustra sinoptic elementele termonolo!iei utilizate de un model relaional,
considerm un e*emplu de tabel ;fi!. 2.1<.
#0?(.%0'0' este definit ca fiind un r?nd din tabel.
C@1$&! este dat de numele ;antetul< unei coloane i e*prim semnificaia
2alorilor coloanei.
R'!(7'0' este o 2aloare luat de un c?mp din structura tabelului.
Do1#(&! este dat de mulimea 2alorilor luate de un c?mp sau mai multe c?mpuri
;proprieti<.
G0'd&! definete numrul de coloane dintr(un tabel.
Curs 4aze de date(pa!.22 din .5

MARC NUME SALARIU REINERI
"*1$&0(
8"'0'"%0(.%("(A'%0(6&%9
"@1$ "=(

1@@1 )N) 8:N ,$@ 1.5
1@@2 4)N 3)S89' .2, 2$" *#0?(.%0'0
1@@3 C:N 9838) 5.2 32,
do1#(&
F(?. 2.1 T01(#o!o?(' &%(!(%'%3 *# do1#(&! 6'7!o0 d d'%
C'0d(#'!(%'%' este dat de numrul de nre!istrri ;rnduri< din tabel.
C=(' este definit de un c?mp sau mai multe cmpuri ale cror 2alori identific
nre!istrarea.
Cn funcie de rolul pe care l dein n cadrul tabelului, c+eile sunt proiectate astfel
;2ezi tabelul 2.2<=
4'N'68C8)#8 C:&'NJ8 /#:D7S'
codbenef nrcda codprod
nume codbenef denumire
adresa codprod um
contbanca cantitate pretli2rare
datali2rarii
F(?. 2.2 S%0&"%&0' ($o%%("3 ' &#&( %'6!
B C=(' $0(1'03 ;principal<= este acel c?mp prin a crui realizare se poate
identifica n mod unic o anumit nre!istrare din cadrul unui tabel. Cn tabelul
din fi!ura 2.2 c+eia primar o constituie codul beneficiarului ;"od6#/<
pentru tabelul BENEFICIARI, numrul de comand ;#0"d'< pentru tabelul
COMENZI, codul produsului ;"od$0od< pentru tabelul PRODUSE.
B C=(' ."&#d'03C este reprezentat printr(unul sau mai multe c?mpuri prin a
cror realizare se identific apartenena mai multor nre!istrri la o colecie de
date. C+eia secundar permite identificarea tuturor nre!istrrilor care au
proprieti identice. De e*emplu, c+eie secundar ar putea fi codul
beneficiarului ;"od6#/< n tabelul COMENZI, oferind posibilitatea de
returnare a comenzilor care aparin aceluiai beneficiar.
B C=(' <%0#3C acel cmp prin a crui realizare se poate stabili asocierea
lo!ic cu alte tabele. C+eia e*tern poate fi, totodat, c+eie primar sau c+eie
secundar ntr(un alt tabel. #e2enind la e*emplul de tabel din fi!. 2.2, c+eile
e*terne ale tabelului COMENZI sunt "od6#/ ;prin care se obine relaia
lo!ic cu tabelul BENEFICIARI< i "od$0od ;prin care se obine relaia
lo!ic cu tabelul PRODUSE<.
B C=( "'#d(d'%C unul sau mai multe c?mpuri care ofer identificarea unei
nre!istrri. De e*emplu, c?mpul #&1 din tabelul BENEFICIARI ;fi!. 2.2<
poate constitui o c+eie candidat pentru identificarea unui anumit beneficiar.
2.1.-.2. C0(#2! 1od!&!&( 0!'2(o#'!
Cerinele eseniale ale modelului relaional pot fi rezumate prin noiunile de
F0!'2(F, F'%o1(7'0F, F.o0%'0F i F0.%0("2(( 80?&!(9 d (#%?0(%'%F.
&odelul relaional este reprezentat prin tabele bidimensionale. #elaiile sunt
constituite n cadrul i ntre tabelele bazei de date. )ceasta nseamn c relaia constituie
cerina de baz a modelului relaional, baza de date fiind un ansamblu de date ntre care
e*ist totdeauna o interdependen lo!ic ;un ansamblu de relaii<.
Curs 4aze de date(pa!.23 din .5
#elu?nd e*emplul din fi!. 2.2 i in?nd cont de conceptul c+eilor primare i
e*terne, relaiile din cadrul unei asemenea baze de date sunt=
a<. 0!'2(( .%'6(!(% *# (#%0(o0&! /("30&( %'6!, prin conceptul entitii ca unitate
de obser2areB totalitatea atributelor care formeaz o nre!istrare constituie relaia
intrinsec a tabelului.
b<. 0!'2(( .%'6(!(% *#%0 %'6! ca relaii de asociere a elementelor componente
ale unei entiti mai 2aste ;baza de date n ntre!ul su<.
Cn concluzie principiul relaiei presupune relaia lo!ic de nre!istrare i relaia
lo!ic ntre tabele.
Cn fi!ura 2.3 se reprezint posibilitatea de asociere a tabelelor prin 2aloarea
;realizarea< c+eilor e*terne.
4'N'68C8)#8 C:&'NJ8 /#:D7S'
22
S.C. )4C S#9
Str. 7nirii 22
123".$....
......
1111$
2$
%,.
".@@
2$.@5.@.
/#:D7S )
A1.
12@@@,@@
......
2$
S.C. )96) S#9
Calea 4ucureti $%
3"$%.@....
1111%
25
$$$
3$"@
1$.1@.@.
......
$$$
/#:D7S 4
47C.
1$2,@@
......
25
S.C.:&'1) S#9
Str. 3ictoriei ,.
$,.5.@....
......
etc.
1111,
22
31.
%,.5
1,.11.@.
.............
etc.
%,.
/#:D7S C
98-.
.,,$@
.........
etc.
6i!ura 2.3
/rin cele ilustrate n fi!ura 2.3 se nele!e faptul c acces?nd tabela C:&'NJ8
pot fi e*ploatate i datele lo!ic(nrudite din tabelele 4'N'68C8)#8 iDsau /#:D7S'.
)ceast posibilitate este !arantat prin unicitatea 2aloric a c+eilor primare n cadrul
fiecrui tabel.
7nicitatea 2aloric a c+eii primare n cadrul tabelului impune e2itarea
redundanelor, adic a repetrii 2alorii unei nre!istrri n cadrul altor nre!istrri din
cadrul aceluiai tabel. Ca cerin a modelului relaional, '%o1(7'0' nseamn
nerepetarea unei relaii n cadrul bazei de date.
Curs 4aze de date(pa!.2" din .5
Cnre!istrarea trebuie s fie atomic. 6iecare nre!istrare trebuie s fie distinct fa
de toate celelalte nre!istrri din cadrul tabelului din care face parte. 9iteratura de
specialitate definete aceast cerin a modelului relaional drept atomizarea relaiilor.
)tomizarea se obine prin c+eia principal a tebelului. C+eia principal este deci acel
atribut care indi2idualizeaz o nre!istrare din cadrul mulimii acestora, n cadrul unui
tabel.
Not= Nu trebuie confundat structura tabelului cu cerina de atomizare a tuplurilor.
Structura tabelului este aceeai pentru toate nre!istrrile ;ordinea c?mpurilor n cadrul
nre!istrrii<. #ealizrile ;2alorile< nre!istrate n cadrul c?mpurilor difer, ns, de la un
tuplu la altul. C+iar dac am considera identitatea 2aloric a unor atribute n cadrul a
dou sau mai multe nre!istrri, nre!istrrile difer, cel puin prin c+eia principal a
nre!istrrii.
De e*emplu=
nrcda codbenef codprod cantitate ZZ..
11223 .. "1" $.@ ZZ..
1122" .. "1" $.@ ZZ.
: alt cerin a modelului relaional o constituie posibilitatea de sortare a
nre!istrrilor. &odelul relaional, ca atare, nu cere o ordine predefinit a efecturii
nre!istrrilor. 8ntroducerea nre!istrrilor n tabele nu impune o anumit ordine n
funcie de 2aloarea sau dimensiunea cmpurilor. Dac, ulterior, se 2a dori o sortare
anume a nre!istrrilor, n ordinea cresctoare a 2alorii unor c?mpuri ;de obicei a
cmpurilor c+eilor primare, secundare sau candidat< procedeul este deosebit de simplu.
Cerina posibilitilor de ordonare a nre!istrrilor n cadrul tabelului este impus
prin sistem, n cazul nedeclarrii c+eii primare ;principale< n procesul de constituire a
tabelelor. )stfel, atunci c?nd proiectantul bazei de date nu a impus o c+eie principal,
sistemul impune o c+eie(tabelar, n ordinea numerelor naturale a nre!istrrilor, ca un
c?mp distinct fa de cele proiectate.
)2?nd n 2edere cerinele modelului relaional analizate anterior, acest model i
impune aa numitele 0?&!( 80.%0("2((9 d (#%?0(%'%C
a<. Denumirea tabelelor n cazul bazei de date i a domeniilor n cadrul tabelului
trebuie s fie diferiteB
b<. C+eia principal este obli!atorie pentru oricare tabel. Ca inte!ritate a relaiei
de nre!istrare, c?mpul destinat c+eii principale nu poate fi nul i nu poate fi
e!al cu c+eia principal a altei nre!istrriB
c<. C+eile e*terne trebuie s fie e!ale cu realizarea unui c?mp din tabelele
asociate, ca relaie ntre tabele. Cn situaia unor tabele neasociate ;cazuri foarte
rare n concepia bazelor de date<, nu este necesar definirea unor asemenea
c+eiB
d<. Domeniul este format din 2alori de acelai tip ;tip numeric, tip ir(caractere,
tip dat calendaristic, etc.<. Nu este admis combinarea acestor tipuri, caz n
care sistemul 2a considera un asemenea c?mp drept ir(de(caractere.
e<. 6iecare nre!istrare constituie un ansamblu de c?mpuri cu cel puin o realizare
diferit de celelalte nre!istrri.
Curs 4aze de date(pa!.2$ din .5
'*ist i unele restricii particulare, impuse de utilizator, n funcie de aplicaie.
De e*emplu data pensionrii s nu fie anterioar datei an!a0rii, etc.
2.1.-.+ E!1#%! 1od!&!&( 0!'2(o#'!
'lementele modelului relaional sunt acelea care formuleaz relaia intrinsec a
tabelelor i prin care se obine relaia de interconectare a acestora, precum i operatorii
care asociaz relaiile elementare n 2ederea unor relaii noi, prin care s se asi!ure
informarea utilizatorilor ;cererile formulate de acetia<.
)2?nd n 2edere cerinele modelului relaional, proiectantul bazei de date trebuie
s structureze datele elementare la ni2elul fiecrui tabel i s formuleze posibiliti de
comunicare ntre tabele.
#elu?nd e*emplele din fi!urile 2.2 i 2.3, structurarea datelor la ni2elul tabelelor
este prezentat n cele care urmeaz, e*emplificare n care c+eile principale sunt marcate
cu caractere n!roate.
( tabela 4'N'68C8)#8
cod$enef, nume, adresa, contbanca ZZ
( tabela C:&'NJ8
#0"d', codbenef( codprod, cantitate, datali2rariiZZ..
( tabela /#:D7S'
cod*rod, denumire, um, pretli2rareZZZ.
/e baza acestor structuri se prezint sc+ema relaiei, conform fi!urii 2."
BENEFICIARI COMENZI PRODUSE
"od6#/ #0"d' "od$0od
nume codbenef denumire
adresa codprod um
contbanca cantitate pretli2rare
datali2rarii
6i!. 2." Sc+ema relaional conform e*emplelor din
fi!urile 2.2 i 2.3
/roiectantul bazei de date poate impune anumite re!uli de inte!ritate particulare
ca restricii de inte!ritate a datelor n cadrul tabelelor.
De e*emplu=
pentru tabela 4'N'68C8)#8=
( niciunul dintre c?mpuri s nu fie 2id ;2aloare nul<B
/entru tabela C:&'NJ8=
( niciunul dintre c?mpuri s nu fie 2id ;2aloare nul<B
( d'%'!()0'0(( s nu fie anterioar datei curenteB
pentru tabela /#:D7S'=
Curs 4aze de date(pa!.2% din .5
( niciunul dintre c?mpuri s nu fie 2id ;2aloare nul<B
( $0%!()0'0 s nu fie mai mare dec?t e2entualul pre de ac+iziie sau cost de
fabricaie, etc.
:peratorii prin care se asociaz datele din cadrul tabelelor unei baze de date sunt
denumii o$0'%o0( 0!'2(o#'!( i sunt destinai satisfacerii cererilor a2ansate de ctre
utilizatorul final, cu structuri rezultate ale prelucrrilor. )ceti operatori sunt definii ca
!1#% '! '!?60( 0!'2(o#'!.
9iteratura de specialitate !rupeaz operatorii relaionali n operatori de baz,
operatori unari i operatori de e*tensie=
O$0'%o0(( d 6'73 sunt= reuniunea, produsul cartezian, intersecia i
diferena. 'fectul aplicrii acestor operatori const n obinerea unei tere
relaii din dou relaii surs.
O$0'%o0(( d <%#.( sunt= compunerea i diferena. Caracteristica acestor
operatori este asemntoare reuniunii i diferenei, proces?nd la ni2elul
structurilor intersectate.
O$0'%o0(( &#'0( se refer la= proiecie i selecie. Caracteristica acestor
operatori este obinerea unei relaii deri2ate dintr(o sin!ur relaie(surs.
)2?nd n 2edere 2arietatea fenomenelor economice care se cer stocate sub forma
unor di2erse structuri de date, este necesar inter2enia operatorilor al!ebrici pentru
obinerea unor relaii necesare constituirii bazei de date.
/entru a elimina confuziile posibile, !enerate de efectul procedural al operatorilor
relaionali, stabilim c pot e*ista=
#elaii ;tabele< cu aceeai structur, dar cu nre!istrri suplimentare una fa
de alte relaiiB
#elaii cu structuri diferite, adic domenii neidentice i neintersectateB
#elaii ;tabele< cu structuri intersectate, adic parte din domenii ale unei
relaii se re!sesc n cealalt relaie.
R&#(&#'= obine o relaie nou ;#N< din dou relaii primare ;#1 i #2<, care=
au aceeai structurB
au nre!istrri diferiteB
nsumeaz relaiile.
P0od&.&! "'0%7('#C obineo relaie nou ;#N< din dou relaii primare ;#1 i
#2<, care=
au structuri diferite, adic domenii diferiteB
au nre!istrri diferiteB
Curs 4aze de date(pa!.2, din .5
R1
)4Ca1b1c1a2b2c
2a3b3c3
R2
)4Ca"b"c"a$b$c
$
RN
)4Ca1b1c1a2b2c
2a3b3c3a"b"c"a$b
$c$
multiplic relaiile.
I#%0." ('C obineo relaie nou ;#N< din dou relaii primare ;#1 i #2<, care=
au aceeai structurB
au nre!istrri diferiteB
preia n ter a relaie numai nre!istrrile comune din #1 i #2.
D(/0# 'C obineo relaie nou ;#N< din dou relaii primare ;#1 i #2<, care=
au aceeai structurB
au nre!istrri diferiteB
preia n ter a relaie numai nre!istrrile care nu se confund cu cele din
relaia asociat.
Co1$&#0'C obineo relaie nou ;#N< din dou relaii primare ;#1 i #2<, care=
au structuri intersectateB
nsumeaz domeniile i realizrile nre!istrrilor.
D()(7'0'= obineo relaie nou ;#N< din dou relaii primare ;#1 i #2<, care=
Curs 4aze de date(pa!.2. din .5
R1
)4Ca1b1c1a2b2c
2
R2
D'6d1e1f1d2e2f2
RN
)4CD'6a1b1c1d1e1f1a1b1c1d2e2f
2a2b2c2d1e1f1a2b2c2d2e2f2
R1
)4Ca1b1c1a2b2c
2
R2
)4Ca2b2c2a3b3c
3
RN
)4Ca2b2c2
R1
)4Ca1b1c1a2b2c
2
R2
)4Ca2b2c2a3b3c
3
RN
)4Ca1b1c1a3b3c
3
R1
)4Ca1b1c1a1b2c
2
R2
4CDb1c1d1b2c2d
2
RN
)4CDa1b1c1d1a1b1c1d2a2b2c2d1
a2b2c2d2
au structuri intersectateB
elimin domeniile comune din #1 i #2.
P0o("2('C obine o relaie nou ;#N< dintr(o sin!ur relaie surs ;#S< prin care
conform unui criteriu de selecie, se 2alideaz anumite domenii, e*cluz?ndu(se
altele=
S!"2('= obine o relaie nou ;#N< dintr(o sin!ur relaie surs ;#S< prin care
conform unui criteriu de selecie, se 2alideaz anumite domenii, care ndeplinesc
;sau nu ndeplinesc< anumite criterii de filtrare a datelor.
D <1$!&= a1[ $@@
d, K 1@@@@@ ZZZetc.
2.1.-., No01'!(7'0' 0!'2((!o0
)rmoniz?nd conceptele modelului relaional cu cerinele impuse de acest model i
a2?nd n 2edere posibilitile oferite de de operatorii relaionali, se impune procesul de
normalizare a relaiilor.
Scopul normalizrii relaiilor este un sumum de re!uli, printre care=
s fie asi!urat posibilitatea de compunere a relaiilor n 2ederea rspunsului
la cererile a2ansate de ctre utilizatorul finalB
s nu fie impietate principiile de atomizare a relaiilorB
s e*clud redundana relaiilorB
s asi!ure coerena lo!ic de asociere a datelor.
Curs 4aze de date(pa!.25 din .5
R1
)4Ca1b1c1a2b2c
2
R2
4CDb1c1d1b2c2d
2
RN
)Da1d1a2d2
RS
)4Ca1b1c1a2b2c
2
RN
)Ca1C1a2c2
Criteriu= ), C
RS
)4Ca1b1c1a2b2c2a3b3c3
a"b"c"
RN
)4Ca2b2c2a"b"c"
Criteriu= 4Kb2 i CKc"
7tilizatorii finali solicit liste de informare cu un !rad mai mare sau mai mic de
comple*itate n asocierea datelor ;2ezi e*emplul din fi!ura 2.$<.
PRODUSE CONTRACT BENEFICIARI
C:D D'N7&8#' 7& N# D)-) C:D N7&' 4)NC) C:N-
F(?. 2.-;E<1$!& d 0!'2( #o01'!(7'%3
Datele incluse n lista e*emplificat n fi!ura 2.$ sunt o relaie normalizat, n
sensul c e*ist posibilitatea ca articolele incluse n asemenea list=
s repete acelai produs contractat cu mai muli beneficiariB
s repete acelai beneficiar care a contractat mai multe produse prin mai
multe contracte.
Dar, pe de alt parte, o asemenea list de ieire trebuie s fie posibil de realizat
prin compunerea datelor din cadrul relaiilor care formeaz baza de date.
Se consider utile trei /o01 d #o01'!(7'0 ' 0!'2((!o0, prin care s fie
satisfcut scopul acestui proces de proiectare a bazei de date= FN1, FN2, FN+.
Cn principiu, procedura de normalizare a relaiilor const n descompunerea
formulrilor comple*e de relaii n relaii elementare.
FN1 realizeaz forma de baz a cerinelor modelului relaional, prin care=
nu sunt admise atribute compuse, de tipul=
PRODUSE
C:D D'N7&8#' 7&
se e*clude repetarea atributelor compuse, prin formularea unei relaii distincte
i atomiceB
se stabilete o c+eie primar pentru fiecare relaie.
Dar aceast soluie nu este corect, deoarece n relaiile intertabelare nu e*ist
c+ei e*terne. De aceea, cu riscul unei minime redundane la ni2elul ansamblului de
relaii din cadrul bazei de date, sunt necesare urmtoarele structuri ;2ezi fi!urile 2.% i
2.,<=
PRODUSE CONTRACT BENEFICIARI
;CODPROD ;NRCONTR ;CODBENEF
(D'N (D)-) (N7&'
(7& (4)NC)
(C:N-
F(?. 2.D 4E%'$' d "o#.%(%&(0 ' /o01( #o01'!
PRODUSE BENEFICIARI CONTRACT
;CODPROD ;CODBENEF ;NRCONTR
(D'N (N7&' (D)-)
Curs 4aze de date(pa!.3@ din .5
(7& (4)NC) (C:D4'N'6
(C:N-
(C:D/#:D
F(?. 2.E; I#"!&d0' "=(!o0 <%0# *# /o01! #o01'!
)ceast formul se nscrie n FN1 i asi!ur relaiile e*terne, conform fi!urii 2.%.
9a ni2elul FN1 se poate constata urmtoarea imperfeciune= un contract cu un
beneficiar poate s includ mai multe produse contractate cu acel beneficiar, ceea ce
impieteaz asupra unicitii relaiilor. FN2 presupune e*istena n FN1, n plus
eliminarea dependenei uor atribute fa de c+eia relaiei din FN1.
Cn condiiile descompunerii ilustrate n fi!ura 2.. relaia CONTRACT poate
admite multiplicarea articolelor pri2ind un produs la ni2elul mai multor contracte iDsau
mai multe contracte la ni2elul unui beneficiar.
FN2 restricioneaz astfel de posibiliti prin redistribuirea relaiilor n forme
restr?nse. Cn fi!ura 2.5 este prezentat modelul FN2 fa de relaia definit iniial
CONTRACT.
-otui, FN2 pstreaz o dependen tranziti2 a relaiilor, n sensul c atributul
BANCA poate a2ea multiplicri de relaii= un beneficiar poate a2ea conturi desc+ise la
mai multe bnci. Cum rezol2m problema\ -recem la a treia form de normalizare FN+.
6N3 implic e*istena relaiilor n FN1 i FN2, n plus faptul c atributele care nu
constituie c+eia relaiei s nu fie dependente de aceast c+eie.
6a de e*emplele precedente, 6N3 presupune disocierea relaiilor care implic
dependena tranziti2. Cn cazul n care un beneficiar are conturi desc+ise la mai multe
bnci, relaia FN2 ;fi!. 2.5< este redistribuit conform fi!urii 2.1@.
Curs 4aze de date(pa!.31 din .5
PRODUSE
;CODPROD
(D'N
(7&
BENEFICIARI
;CODBENEF
(N7&'
(4)NC)
(C:N-
(C:D/#:D
CONTRACT
;NRCONTR
(D)-)
(C:D4'N'6
6i!. 2..(#elaii n FN1
PRODUSE
;CODPROD
(D'N
(7&
BENEFICIARI
;CODBENEF
(N7&'
(4)NC)
(C:N-
CONTRACT
;NRCONTR
(D)-)
(C:D/#:D
6i!. 2.5 ( #elaii n FN2
CONTRACTARI
;NRCONTR
(C:D4'N'6
PRODUSE
;CODPROD
(D'N
(7&
BENEFICIARI
;CODBENEF
(N7&'
(4)NC)
CONTRACT
;NRCONTR
(D)-)
(C:D/#:D
6i!. 2.1@ ( #elaii n FN+
CONTRACTARI
;CODBENEF
(N#C:N-#
BANCI
;BANCA
(C:N-
/ractica proiectrii bazelor de date admite normalizri n funcie de situaie.
)stfel, atunci c?nd nu este periclitat coerena lo!ic a relaiilor, nu este neaprat
disocierea forat a relaiilor.
2.1.D Mod!&! d d'% o6("%
0odelul obiect ;*b>ect 0odel< este un concept unificator )n tiina
calculatoarelor( fiind aplicabil )n programare( )n proiectarea hard!are"ului( a
interfeelor( a bazelor de date( etc/ Sistemele de baze de date obiect se bazeaz pe
limba>e de programare orientate obiect cu capaciti de persisten( )n care datele sunt
independente de timpul de via al programelor care le creeaz( prin memorare pe
suport magnetic ;disc</
:ric?t de folositor este modelul de date relaional pentru realizarea bazelor de
date, e*ist unele domenii ;n special acele domenii n care se mane2reaz tipuri de date
comple*e<, n care modelul relaional s(a do2edit a fi insuficient de e*presi2 i cu
performane de e*ecuie reduse. Domenii ca= proiectarea asistat de calculator, sisteme
de informaii !eo!rafice, medicin ;i altele< au impulsionat cercetri pentru !sirea
unor modele mai performante, dintre care modelul obiect(orientat i modelul obiect(
relaional au cunoscut i cunosc n continuare o dez2oltare semnificati2.
Dintre ')'#%'>! cele mai importante ale sistemelor de baze de date dez2oltate n
modelul obiect se e2ideniaz capacitatea acestora de a defini i mane2ra tipuri de date
comple*e ;clase<, care se pot e*tinde prin mecanismul de motenire, ceea ce contribuie
la creterea performanelor n aplicaiile de baze de date a2ansate.
'*ist, bineneles, i deza2anta0e ale sistemelor de baze de date obiect(orientate,
care le fac s aib o utilizare limitat, mult mai redus dec?t cea a sistemelor de baze de
date relaionale ;sub $] din piaa sistemelor de baze de date<. /rincipalul d7')'#%'> l
constitue comple*itatea de dez2oltare a bazei de date i a aplicaiilor, datorit faptului c
proiectanii i pro!ramatorii trebuie s pre2ad n structura obiectelor toate asocierile
;le!turile< necesare tuturor intero!rilor. Cu c?t intero!rile sunt mai comple*e, cu at?t
sunt necesare mai multe asocieri ntre obiecte i deci se complic structura acestora. 9a
acest deza2anta0 se adau! i altele, cum ar fi lipsa unui standard de limba0 de intero!are
care s fie unanim ;sau c?t mai lar!< acceptat.
2.1.D.1 Co#"$%! 1od!&!&( o6("%
Cn esena ei, baza de date este un sistem comple* de date i relaii ntre acestea.
Curs 4aze de date(pa!.32 din .5
Noiunea de sistem este definit, uneori, drept Run set de obiecte interconectateF.
Sistemul este o entitate. 'lementele sale structurale sunt ele nsele entiti. )sadar,
obiectele sunt entiti ncorporate n cadrul unui sistem. Sistemul i poate menine i
perpetua identitatea sa particular printr(o stare de ec+ilibru. Starea de ec+ilibru a
sistemului impune compatibilitatea relaiilor care se stabilesc ntre subsistemele
componente, adic ntre obiectele constituti2e. Starea !eneral a sistemului depinde de
starea particular a obiectelor, de comportamentul acestora.
:biectul de2ine, astfel, unitatea de obser2are n conducerea unui sistem.
&odelul(obiect ;denumit uneori model orientat(obiect< are la baz urmtoarele
concepte=
obiectB
abstractizareB
ncapsulareB
motenireB
polimorfism.
:biectul se caracterizeaz prin structur i interfa i este nmatriculat printr(o
anumit identitate.
Structura const n componena elementelor constituti2e. Cn cazul modelului(
obiect, elementele constituti2e ale obiectului sunt atributele ;caracteristicile< acestuia.
De e*emplu=
/#:D7S'
( C:D
( D'N7&8#'
( 7&
8nterfaa este faeta de prezentare a obiectuluiB este ceea ce reprezint obiectul in
e*teriorul structurii sale. /rin interfa se poate ptrunde in compoziia intim a
obiectului. De e*emplu, interfaa unui tuplu poate fi reprezentat prin c+eia sa
principal. 8n principiu, interfaa unui obiect este constituit din procedurile care se pot
aplica elementelor sale structurale.
8dentitatea obiectului este formalizat printr(o denumire si printr(o adres lo!ic.
/rin identitate, un obiect al bazei de date este personalizat in mod distinct fa de
celelalte obiecte. De e*emplu, denumirea unei tabele.
)bstractizarea se refer la posibilitatea de !enerare a unor tipuri de date si care
aparin unor asa(numite clase. Clasa este o abstractizare a datelor. 8nscrierea unor date
reale in modelul clasei conduce la realizarea instanelor de clasa, adic la un anumit tip
de date elementare sau comple*e.
Clasa este un model de reprezentare a obiectelor cu aceleasi caracteristici si
comportament. &odelul este ideal, n sensul c el e*ist prin re!uli proprii de
comportament, dar poate s nu fie real, n sensul c poate s fie 2id, adic s nu cuprind
obiecte. )tunci cand se creeaz un obiect care respect caracteristicile unei clase,
obiectul de2ine o instaniere a clasei.
Curs 4aze de date(pa!.33 din .5
)2?nd n 2edere caracteristicile comune i re!ulile de comportament ale
obiectelor, e*emplificm formularele= Structura acestui model conceptual este= antet,
detalii, subsol. '*ist posibiliti cum ar fi= antet cu detalii, detalii cu subsol, numai
detalii. )semenea modele deri2ate constituie subclase.
Subclasa are aceleasi re!uli de comportament, ca metode ale clasei.
8n fi!ura 2.11. este prezentat compoziia funcional a claselor de obiecte, ca
sc+em de principiu.
)bstractizarea, ca model al clasei de obiecte, implic noiunile de stare si
comportament.
S%'0' obiectului const in 2alorile reale care sunt atribuite caracteristicilor de
structura.
De e*emplu=
/#:D7S'
( C:D K 12+,
( D'N7&8#' K COOLER
( 7& K BUC
6iecare atribut are un nume si o anumit 2aloare asociat ca 2ariabil de instan.
V'0('6(!' d (#.%'#23 este o anumit compoziie a caracteristicilor obiectului la un
moment dat. 3ariabilele de instan definesc proprietile obiectului.
Co1$o0%'1#%&! defineste asa(numitele 1%od posibil de administrat
obiectului. &etodele includ ansamblul de proceduri adresate atributelor unui obiect.
Comportamentul 2izeaz modul in care un obiect reacioneaz fa de o cerere care ii
este adresat din e*terior. )nsamblul rspunsurilor la asemenea mesa0e constituie
comportamentul obiectului.
De e*emplu=
$0od&..C!o.
#spunsul la acest mesa0 2a fi suprimarea accesului ;C!o.< la datele din tabela cu
identificatorul $0od&..
Curs 4aze de date(pa!.3" din .5
&etodele pot fi atasate si unei comenzi.
De e*emplu=
DoC1d.O$#T'6! F$0od&.G, '"V(HD.(?#, '"Add
#spunsul la acest mesa0 2a fi desc+iderea tabelei cu identificatorul $0od&.
;O$#T'6! RproduseF<, n format de ;re<proiectare ;'"V(HD.(?#<, in 2ederea
adu!rii ;'"Add<.
&esa0ul DoC1d solicit e*ecutarea unei comenzi. &etoda poate fi diferit siDsau
poate fi transmis asupra di2ersitii obiectelor care compun baza de date. &etoda
transmite obiectului cererea e*ecutrii unei anume aciuni.
#"'$.&!'0' poate fi considerat ermetizarea caracteristicilor proprii unui obiect
fa de alte obiecte interconectate n sistem.
Structura unui obiect constituie o relaie intern, intim, prote0at fa de mediul
e*terior. Structura si 2alorile caracteristicilor unui obiect nu pot fi cunoscute si nici
modificate din e*teriorul acestuia.
Si, totusi, obiectele ( ca subsisteme ale bazelor de date ( comunic prin mesa0e.
'rmetizarea caracteristicilor obiectelor poate fi spart prin metode.
De e*emplu=
DoC1d.O$#T'6! Z
/e de alt parte, fiecare tip de obiect are metodele sale. Nu se poate aplica o
anumit metod la toate obiectele care formeaz o baz de date.
De e*emplu, metoda O$#T'6! nu poate fi utilizat n cazul formularelor, al
rapoartelor etc.
&etodele obiectului realizeaz accesul utilizatorului la 2ariabilele de instan ale
obiectului.
)tunci cand se creeaz un obiect, el este inclus ntr(o clas de obiecte cu un
anume comportament.
&etoda declanseaz o anumit procedura comportamental a obiectului.
/rocedurile sunt aplicate obiectului prin interfaa acestuia.
/rin intermediul interfeei pot fi testate 2ariabilele de instan ale elementelor
structurale. Structura este prote0at.
/rotecia structurii este rele2at i prin ima!inea din fi!ura 2.11.
Sinta*a de adresare la un obiect aparinand unei anumite claseDsubclase, n
2ederea selectrii acelui obiect prin proprietile sale este=
"!'.'IJ.&6"!'.'IKo6("%.$0o$0(%'%
De e*emplu=
Fo01.I/o01&!'0LI/(!%0&.V'!& M -
Cn acest caz, se face apelul claseiDsubclasei formulare ;6orms<, prin care se solicit
obiectul /o01&!'0L, a crui 2ariabil de instan /(!%0& are 2aloarea $. 3ariabilele
structurale ale obiectului sunt testate, fr a fi afectate. Structura este, deci, ncapsulat.
/rin faptul c o6("%&! constituie o entitate care se poate crea, utiliza i distru!e,
este ine2itabil i procedura de eliminare a obiectelor din sistemul bazei de date.
Mo5%#(0' este conceptul prin care subclasa mprumut atributele i metodele
clasei din care face parte. &otenirea nu e*clude posibilitatea ca subclasele s adau!e
Curs 4aze de date(pa!.3$ din .5
alte atribute la cele motenite din clas. Subclasa de2ine, astfel, o instan a clasei, iar
obiectele pe care le cuprinde sunt instane ale subclasei.
&etodele pot fi suplimentate n funcie de atributele adu!ate subclaselor.
8n fi!ura 2.12. este reprezentat e*emplul unei structuri, prin care se poate
demonstra mostenirea elementelor de structur.
&otenirea implic transmitere elementelor structurale ale clasei n subclase i de
la acestea la di2ersele instanieri de subclas.
De e*emplu, subclasa PRODUSFINIT sau subclasa SEMIFABRICAT 2or
implica realizrile din SECIE i VALOAREPROD. -ot astfel, instana
CARACTERISTICI implic pe cele din subclasa PRODUSFINIT.
/rin conceptul motenirii, accesand instana CARACTERISTICI, se 2or putea
returna toate 2alorile elementelor structurale din PRODUSFINIT i PRODUCIE.
/rin e*emplul din fi!ura 2.12. se e2ideniaz faptul c subclasele i cele deri2ate
din acestea pot adu!a atribute fa de structura clasei de ori!ine.
Cn mod implicit, metodele aplicate subclaselor se multiplic, n funcie de
elementele structurale suplimentare sau diferite. De e*emplu, dac se utilizeaz ca
metoda actualizeaz, aceasta se 2a referi distinct n subclasele PRODUSFINIT,
respecti2 SEMIFABRICAT, fa de atributele $0%!()0'0, respecti2 "o.%$0od.
Cn concluzie, motenirea se adreseaz unei ierar+ii de clas, conform cu fi!ura 2.13.
Curs 4aze de date(pa!.3% din .5
Po!(1o0/(.1&! const n efectul diferit pe care poate s(l !enereze un mesa0
asupra unei clase ;consider?nd ntrea!a ierar+ie a acesteia<.
De e*emplu, recur!?nd la structura prezentat in fi!ura 2.12, prin cererea de a
ster!e codul 123"$, 2a fi eliminat numai produsul cu acest cod.
Dar dac se 2a cere ter!erea ;aceeai metod< produsului cu preul de li2rare
1$3",@@ 2or fi eliminate toate produsele care au acest pre de li2rare.
Cn concluzie, o anumit metod particular unei clase poate a2ea efecte diferite n
subclase, n funcie de parametrii care sunt specificai.
2.1.E.1 T0"0' d !' 1od!&! o6("% !' 1od!&! o6("%;0!'2(o#'!
Cntre modelul obiect i cel relaional e*ist o similitudine conceptual.
&odelul obiect i propune focalizarea aciunilor asupra o6("%!o0. &odelul
relaional i propune acionarea prin 0!'2((. Dac 2om considera %&$!&! ca noiune a
modelului relaional ( drept obiect ( ca unitate de obser2are n modelul orientat(obiect,
atunci=
c+eile primare ale tabelelor sunt identificatorii de obiectB
caracteristicile ;atributele< unui tuplu sunt 2ariabile de instanB
relaiile dintre tabelele bazei de date sunt mesa0ele de comunicare ntre
obiecteB
cate!oriile de obiecte relaionale sunt clasele de obiecte, fiecare element
component fiind o instan de clas.
Ne propunem, n continuare, s rele2m particularitile simbiotice ntre modelul
de reprezentare relaional i modelul obiect, rezultand modelul obiect(relaional.
&odelul relaional este, actualmente, cel mai utilizat n proiectarea bazelor de
date.
&odelul obiect(relaional este destinat s imbo!easc modelul relaional cu
sistemul conceptelor modelului(obiect.
Conceptul de abstractizare a datelor st la baza conceperii tabelelor. -abelele
rman relaia fundamental i real a modelului, dar sunt supuse unei tipolo!ii abstracte.
-ipul abstract de date poate constitui un model de clas pentru definirea structurii unei
cate!orii de tabele care pot a2ea aceleai re!uli de comportament.
Curs 4aze de date(pa!.3, din .5
T($&0(! '6.%0'"% d d'% sunt abre2iate, n literatura de specialitate, prin TAD.
7n TAD este conceput de proiectant n funcie de ceea ce i doreste utilizatorul drept
comportament al obiectului fa de solicitrile pe care i le 2a adresa.
-abela si pastreaz tipurile de date cunoscute ;numeric, ir(de(caractere, data(
calendaristic etc.<, n timp ce TAD(ul reprezint o structur !eneralizat pentru mai
multe instane tabelare.
De e*emplu= -abela P0od&"2(, cu atributele=
( cod ;numeric<
( denumire ;ir(de(caractere<
( um ;ir(caractere<
poate rspunde solicitrilor de returnare a realizrilor, ca 2ariabile de instan, at?t
pentru cazul produselor finite, c?t i pentru cazul semifabricatelor. )spectul
comportamental al celor dou cazuri este identic.
-ipul abstract de date se poate realiza n=
G tabela /#:D7S68N8- G tabela S'&86)4#8C)-
( cod ( cod
( denumire ( denumire
( um ( um
conin?nd, suplimentar=
( pretli2rare ( costproductie
Cazul e*emplificat demonstreaz, pe de alt parte, adopia conceptului 1o5%#(0((
n modelul obiect relaional ;fi!. 2.1".<.
&odelul obiect(relaional admite includerea altor relaii de tip abstract sau colecie
de date ;set de inre!istrri<.
De e*emplu, a2and ca -)D tipul VNNZRI cu structura "od, $0%)'#7'0,
campul cod refer la un alt -)D= P0od&"2( ;fi!. 2.1$.<.
Cn mod similar, pot fi incluse i seturile de nre!istrri.
)tunci cand un -)D conine un alt -)D sau o colecie ( set de nre!istrri, acel
-)D ncapsuleaz celelalte structuri de date.
Curs 4aze de date(pa!.3. din .5
-recerea de la modelul obiect la modelul obiect(relaional implic pe de o parte
simbioza ntre conceptele modelului(obiect i relaiile dintre tabele iar, pe de alt parte,
utilizarea unor limba0e specializate.
#elaiile dintre tabelele bazei de date, ca model relaional, de2in relaii comple*e
ntre tipurile abstracte de date, care admit motenirea structurilor i comportamentului.
Conform celor ilustrate n fi!ura 2.1$, se obser2 elementul relaional, ca le!atur
ntre c+eile tabelei VNNZRI i PRODUCIE i, pe de alt parte, relaiile -)D ntre
PRODUCIE, PRODUSFINIT i SEMIFABRICAT. )semenea relaii implic, n
principal, motenirea i ncapsularea.
9imba0ul utilizat n domeniul sistemelor de !estiune a bazelor de date obiect(
relaional este /9DSY9 ;/rocedural 9an!ua!eDStructured YuerM 9an!ua!e<.
2.1.E Mod!&! d d'% o6("%;0!'2(o#'!
0odelul obiect"relaional ;*b>ect"1elational 0odel< reprezint e+tinderea
modelului relaional cu caracteristici ale modelului obiect( e+tindere necesar pentru
realizarea bazelor de date care definesc i prelucreaz tipuri de date comple+e/
Cn esen, modelul obiect(relaional pstreaz structurarea datelor n relaii
;reprezentate ca tabele<, dar adau! posibilitatea definirii unor noi tipuri de date, pentru
domeniile de 2alori ale atributelor. -ipurile de date definite de utilizator pot fi e*tinse
prin mecanismul de motenire i pentru fiecare tip sau subtip se pot defini metode pe
care le pot e*ecuta obiectele de acel tip.
Cn !eneral, dez2oltarea sistemelor de !estiune a bazelor de date obiect(relaionale
;S14D:#< se realizeaz prin e*tinderea sistemelor relaionale, de cele mai multe ori n
mod !radat, adu!?ndu(se de la o 2ersiune la alta c?t mai multe caracteristici posibile
ale modelului obiect i pstr?nd n continuare toate caracteristicile modelului relaional.
: astfel de abordare asi!ur rularea n continuare a aplicaiilor relaionale
e*istente n noile 2ersiuni de sisteme S14D:#, ceea ce permite productorilor s(i
Curs 4aze de date(pa!.35 din .5
pstreze clienii i domeniile de utilizare. &ai muli dintre principalii productori de
sisteme de !estiune ;:racle, 8nformi* i 84&< au e*tins n acest mod sistemele lor
relaionale pentru a de2eni sisteme obiect(relaionale. 'ste o tendin fireasc, dat fiind
c prin aceasta se pstreaz toat e*periena i rezultatele obinute cu sistemele
relaionale i se pot dez2olta i aplicaii comple*e, obiect(relaionale.
Standardele limba0elor de pro!ramare pentru sistemele de !estiune obiect(
relaionale sunt e*tensii ale standardului SY9 ;ca de e*emplu, 2ersiunea din anul 1555,
denumit SY93<.
2.1.O Co1$!<(%'%' d'%!o0 5( ' (#%0o?30(!o0
&. StonebraTer a oferit o reprezentare n patru cadrane a uni2ersului bazelor de
date ;fi!. 1.13< deosebit de simpl i de interesant, bazat numai pe comple*itatea
datelor i a intero!rilor. /ropus n anul 155%, aceast clasificare nu include modelele
prerelaionale ;modelul ierar+ic i modelul reea<, considerate depite n aceast faz de
dez2oltare a bazelor de date.
/e abscisa dia!ramei este reprezentat capacitatea de definire a tipurilor de date
comple*e, iar pe ordonat este reprezentat capacitatea de intero!are a bazelor de date.
Cn cadranul din st?n!a 0os sunt acele aplicaii care prelucreaz tipuri de date
simple i nu necesit intero!area datelor. )stfel de tipuri de aplicaii ;cum sunt
procesoarele de te*te Uord, 6ramemaTer< folosesc direct sistemul de fiiere al
sistemului de operare pentru memorarea datelor persistente.
Cn cadranul din st?n!a sus sunt sistemele de !estiune a bazelor de date relaionale
;S14D#<, care prelucreaz tipuri simple de date, dar permit intero!ri comple*e.
Cn cadranul din dreapta 0os sunt sistemele de !estiune a bazelor de date obiect(
orientate ;S14D::<, care prelucreaz tipuri de date comple*e, dar n care rezol2area
intero!rilor este destul de dificil, dat fiind c pentru fiecare intero!are trebuie s fie
pre2zute le!turile necesare n structura obiectelor.
Cn cadranul din dreapta sus sunt reprezentate sistemele obiect(relaionale
;S14D:#<, care permit prelucrarea datelor comple*e i rezol2area intero!rilor
comple*e. &odelul obiect(relaional este, e2ident, cel mai complet, deoarece admite at?t
tipuri de date definite de utilizator c?t i intero!ri comple*e. Cn aceeai lucrare,
Curs 4aze de date(pa!."@ din .5
StonebraTer denumete sistemele de !estiune a bazelor de date obiect(relaionale ca
fiind sisteme de baze de date universale.
Cn momentul de fa este e2ident tendina productorilor de sisteme de !estiune a
bazelor de date de a trece la sisteme obiect(relaionale i, n !eneral, aceast trecere se
realizeaz prin adu!area treptat a caracteristicilor modelului obiect n sistemele de
!estiune relaionale. :ferta de sisteme de !estiune a bazelor de date este deosebit de
!eneroas, pe o scar e*tins de performane i costuri, de la sisteme care se pot folosi
!ratuit ;fr licen sau cu licen public<, p?n la sisteme cu nalte performane, a cror
utilizare necesit plata licenelor respecti2e. C+iar i pentru astfel de sisteme e*ist
2ersiuni de test ;trial versions< care pot fi obinute !ratuit prin 8nternet ;de la adrese care
sunt indicate n 4iblio!rafie<, astfel nc?t pot fi folosite pentru a nele!e i a e*ecuta
e*emplele propuse n aceast lucrare.
Si%temul "racle este un sistem de !estiune a bazelor de date multi(utilizator
puternic, cu implementri pe toate platformele ;UindoVs, 7ni*, 9inu*<, care ofer at?t
performane de e*ecuie ridicate, c?t i un !rad nalt de protecie i securitate a datelor.
Cn toate 2ersiunile, :racle ofer implementarea complet a caracteristicilor modelului
relaional ;conform standardului SY92<, iar ultimele 2ersiuni ;:racle.i, :racle5i i
:racle 1@!< sunt sisteme de !estiune obiect(relaionale distribuite, implement?nd
e*tensiile obiect(orientate pre2zute n standardul SY93 i oferind posibilitatea de
dez2oltare a bazelor de date distribuite. Sistemele de !estiune :racle, ca i diferite
instrumente de dez2oltare a aplicaiilor de baze de date ;:racle )pplication Ser2er,
HDe2eloper, :racle 6orms etc.<, se pot obine de la adresa httpJ??!!!/oracle/com i
termenii licenei permit utilizarea acestor sisteme n scopuri necomerciale pe o perioad
nelimitatB pentru utilizarea n scopuri comerciale trebuie s fie pltite licenele
corespunztoare
S,- Ser.er este sistemul de !estiune a bazelor de date relaionale dez2oltat de
firma &icrosoft pentru sistemele de operare UindoVs. )u e*istat mai multe 2ersiuni,
2ersiunea actual ;2@@,< fiind SY9 Ser2er 2@@$. Cn toate 2ersiunile sistemul SY9 Ser2er
suport complet standardul SY92, cu implementarea performant a trsturilor a2ansate
de stocare i prelucrare a datelor ;inte!ritate referenial, subintero!ri, tri!!ere,
!estiunea tranzaciilor, etc<. De la adresa httpJ??!!!/microsoft/com?sKl se poate obine
!ratuit o 2ersiune de test a sistemului SY9 Ser2er sau se poate cumpra o 2ersiune
complet. Cn plus, pac+etul de dez2oltare .N'- SDA ;/&%T Soft!are $evelopment it<,
care se poate obine !ratuit de la adresa +ttp=DDmsdn.microsoft.comDdoVnloads conine o
2ersiune mai simpl de ser2er de baze de date numit &icrosoft SY9 Ser2er 2@@@
DesTtop 'n!ine ;0S$% 8999< care poate fi folosit pentru dez2oltarea i e*ecuia
e*emplelor prezentate n lucrare.
!icro%oft (cce%% este unul din cele mai cunoscute sisteme de !estiune a bazelor
de date relaionale pe platforme de calculatoare personale. &S )ccess dispune de un
sistem de control al bazei de date ;database engine< i o interfa !rafic pentru
interaciunea cu utilizatorul. )plicaiile de baze de date n &S )ccess se pot dez2olta cu
mult uurin datorit !eneratoarelor de aplicaii ;Wizards< care permit proiectarea
2izual a bazelor de date i a formularelor ;forms< pentru interfeele !rafice. &S )ccess
Curs 4aze de date(pa!."1 din .5
este folosit n special pentru aplicaii personale sau pentru mici afaceri i licena acestuia
se poate cumpra odat cu licena produsului &icrosoft :ffice.
!/S,- este un sistem de !estiune a bazelor de date relaionale cu implementri
pentru sistemele de operare UindoVs, 9inu*, 7ni*. 9a adresa httpJ??!!!/mysKl/com se
!sete ultima 2ersiune i documentaia sistemului de !estiune a bazelor de date &MSY9
care se poate utiliza !ratuit ;este open source<. )cest sistem este compatibil cu
standardul SY92, dar unele pre2ederi ale standardului sunt implementate parial.
3ersiunea actual 2@@,< este 2ersiunea $.@ care ofera 2ederi, proceduri stocate, tri!!ere
;caracteristici care lipseau in 2ersiunile precedente<.
+. REZOLVAREA PROBLEMELOR ECONOMICE CU AJUTORUL
PROGRAMELOR PE CALCULATOR. PROGRAMARE
+.1. Noiuni de $az %*ecifice *roce%ului de *relucrare automat a datelor
:rice sistem de calcul ;adic acel sistem te+nic care asi!ur e*ecuia procesului
de prelucrare automat a datelor< are n compunere, n esen, partea de +ardVare i
partea de softVare. 4ill 1ates, patronul &icrosoft, spunea n anul 2@@2 c din totalul
costurilor unui sistem de calcul, partea de +ardVare reprezint $], n timp ce partea de
softVare reprezint 5$] din totalul acelorai costuri. /roblema costurilor unui sistem de
calcul de2ine din ce n ce mai important n condiiile cerute de societatea
informaional societatea cunoaterii i n conformitate cu pre2ederile le!ale
referitoare la respectarea le!ii drepturilor de autor n domeniul softVare.
/artea de softVare a unui sistem de calcul cuprinde, la r?ndul ei, softVare(ul de
baz ;sistemul de operare sau sistemul de pro!rame de baz< i softVare(ul de aplicaie
;sau sistemul de pro!rame aplicati2e<. 7n sistem informatic are funcia de prelucrare
automat a datelor pentru obinerea informaiilor necesare procesului de conducere sau
de informare. /rocesul de prelucrare automat a datelor presupune e*istena simultan a
urmtoarelor elemente= sistemul de ec+ipamente ;+ardVare<, sistemul de pro!rame de
baz, sistemul de pro!rame aplicati2e, datele de intrare ce sunt supuse proceselor de
prelucrare automat i datele de ieire sau rezultatele prelucrrilor. Cn esen, acest
proces de prelucrare automat a datelor este format din trei etape= introducerea ;citirea<
datelor de intrare, prelucrarea datelor ;efectuarea calculelor< i e*tra!erea ;scrierea<
rezultatelor.
'ste de reinut c datele de intrare sunt introduse printr(o operaie de citire read,
iar datele ce reprezint rezultate sunt obinute printr(o operaie de scriere !rite sau de
tiprire print a rezultatelor.
$atele ce sunt prelucrate pe un sistem de calcul sunt or!anizate ntr(o form
a2anta0oas pentru aplicaia informatic i sunt reprezentate ntr(o structur accesibil
calculatorului. Datele sunt or!anizate n colecii de date n funcie de condiiile specifice
impuse de sistemul informaional e*istent i de dorinele utilizatorilor finali din procesul
de decizie.
Curs 4aze de date(pa!."2 din .5
/rocesul de prelucrare automat a datelor are loc ntr(o succesiune controlat de
operator, adic, n accepiunea clasic, de acel utilizator final specializat n operarea pe
sistemul de calcul. 'tapele procesului de prelucrare a datelor pe calculator sunt
materializate n urmtoarele operaii=
G P0?3%(0' d'%!o0 (#(2('!, de re!ul manual, n 2ederea introducerii lor n
procesul de prelucrare automat ;citire<, ce presupune verificarea( sortarea i
codificarea acestor date n funcie de documentele primare e*istenteB verificarea datelor
presupune confirmarea concordanei ntre 2alorile prezente n documentele primare i
2alorile care trebuie s e*iste n conformitate cu aplicaia informatic concret sau
problema economic cu urmeaz a fi rezol2atB sortarea datelor semnific acel tip de
prelucrare prin care datele sunt dispuse ntr(o anumit ordine, n conformitate cu un
anumit sistem sau cu anumite precizri ale utilizatoruluiB codificarea datelor nseamn
operaia de atribuire de semne numerice, alfabetice sau alfanumerice unor date cu scopul
de a optimiza numrul de semne cu care se scriu i se prelucreaz, de e*emplu,
elementele specifice sistemului informaional financiar(contabilB noiunea de document
primar ;de e2iden primar< este cea definit n contabilitate, ca prim etap a funciei
contabile, adic acel document n care se consemneaz pentru prima dat o operaie
economico(financiar ;facturi, c+itane, cecuri etc.<. 6iecare e2eniment ce prezint un
efect economic se nscrie ntr(un document primar n momentul i n locaia n care s(a
produs.
G I#%0od&"0' d'%!o0 (#(2('! *# "'!"&!'%o0, adic n memoria intern sau
memoria e*tern a sistemului de calculB introducerea datelor iniiale poate fi fcut
direct de la tastatur ;n re!im con2ersaional< sau de pe un suport te+nic accesibil
calculatorului.
G P0!&"0'0' $0o$0(&;7(.3 ' d'%!o0, ceea ce nseamn e*ecuia automat de
ctre calculator a tuturor operaiilor prestabilite prin pro!ram ;validri de date(
sortri(interclasri( comparri i testri<B validarea de date este tipul de prelucrare ce
const n 2erificarea datelor de intrare dac sunt corecte n raport cu un set de re!uli
prestabilite ;dac sunt reale, coerente, corelate, corect testate, corect transferate dintr(un
mediu ntr(altul<B interclasarea datelor reprezint tipul de prelucrare prin care se obine
un ir ;2ector< de date ce conine toate elementele unor 2ectori iniiali ordonaiB
compararea datelor este tipul de prelucrare prin care se 2erific e*istena unor relaii de
ordine ntre dou dateB relaia de ordine a fost definit la cursul de matematic i este o
relaie binar pe o mulime de date ce stabilete ordinea de parcur!ere a elementelor
mulimiiB testarea datelor este tipul de prelucrare prin care se 2erific un ansamblu de
date ce sunt pre!tite pentru buna funcionare a unui program.
G P07#%'0' 07&!%'%!o0 $0!&"030((, adic afiarea pe ecranul monitorului sau
imprimarea pe +?rtieB c?nd rezultatele sunt folosite n prelucrri ulterioare, ele sunt
stocate pe supori ma!netici.
'tapele i operaiile prezentate mai sus se ncadreaz n Etriada de aurF specific
oricrui sistem de calcul= stocare 3 prelucrare 3 prezentare date.
3.2. Noiuni de $az referitoare la *rogramare
Curs 4aze de date(pa!."3 din .5
1ezolvarea unei probleme reprezint procesul de concepere i de implementare a
unei strate!ii de !sire a unei soluii sau de con2ersie la normalitate a unor stri !enerate
de condiii nedorite sau neateptate. Cn acti2itatea de concepere a pro!ramelor destinate
calculatoarelor electronice, problema de rezolvat este definit, detaliat i transformat
ntr(un proiect pe baza cruia se poate realiza un program ce poate fi rulat pe un sistem
de calcul.
Cnainte de a se scrie efecti2 pro!ramul, se efectueaz analiza problemei de
rezolvat i se realizeaz algoritmul de calcul.
4rogramul pe calculator este un set de instruciuni ;comenzi< ce se e*ecut de
sistemul de calcul cu scopul de a efectua o succesiune de aciuni sau un tip prestabilit de
acti2itate. Instruciunea sau comanda semnific un enun ce specific o aciune ntr(un
limba> de programare. 4rogramul pe calculator ;sau, mai simplu, programul< are n
compunere, de re!ul, dou tipuri de enunuri= declaraii i instruciuni. $eclaraia este
asocierea dintre un identificator i anumite informaii. )ceast asociere este formal la
realizarea pro!ramului i de2ine efecti2 n timpul compilrii sau n timpul e+ecuiei
programului. Declaraia pri2ete modul de or!anizare a datelor de intrare, pe timpul
prelucrrii, precum i a datelor de ieire ;rezultatelor<. Identificatorul reprezint orice ir
de caractere alfanumerice ce se folosete n calitate de= nume de variabil sau constant
ntr(un pro!ramB etichet de re!sire a unui punct din pro!ramB nume de procedur sau
de funcieB nume ataat unei uniti lo!ice de memorie e*tern ;+ard disc, disc+et,
compact disc, memorie flash etc.<.
Dintr(o alt perspecti2, orice pro!ram pe calculator reprezint un ansamblu
format din date ;structuri de date< i algoritmi prezentate ntr(un limba> de programare.
Noiunea de algoritm nu are o definiie ri!uroas. .lgoritmul este o metod, un
procedeu, o reet, o soluionare a unei probleme, fr ns a realiza ec+i2alena cu aceti
termeni.
Dicionarele de informatic definesc algoritmul ca fiind=
o descriere a sc+emei de realizare a unui e2eniment cu a0utorul unei mulimi
finite de aciuni elementare predenumite, realizabile a priori i a2?nd o durat
limitat n timpB
un concept folosit pentru a desemna o mulime finit de operaii cunoscute
care, e*ecutate ntr(o ordine bine stabilit, pornind de la o mulime de 2alori
;date< de intrare conduc la obinerea n timp finit a unei alte mulimi de 2alori,
2alori ;date< de ieireB
o sec2en finit de pai prin care se rezol2 o problem lo!ic sau
matematic.
Cn realizarea unui al!oritm este necesar satisfacerea urmtoarelor patru
condiii ;proprieti<=
claritatea, ceea ce nseamn ca al!oritmul s fie bine definit ;cu specificaii
ri!uroase i fr ambi!uiti<B
Curs 4aze de date(pa!."" din .5
e+actitatea ;determinismul<( adic n fiecare moment al e*ecuiei
al!oritmului, se cunoate cu e*actitate urmtoarea operaie, precum i modul
de e*ecuie a fiecrei operaiiB descrierea cu e*actitate asi!ur e*ecuia
al!oritmului pe un sistem de calculB
universalitatea( ceea ce semnific faptul c orice al!oritm, fiind c?t mai
uni2ersal cu putin, asi!ur rezol2area unei clase lar!i de problemeB
finitudinea( ce const n faptul c al!oritmul este finit n spaiu ;ca descriere<
i asi!ur obinerea rezultatului ntr(un timp determinat de e*ecuie, adic
dup un anumit numr finit de pai.
Dup !?ndirea al!oritmului, acesta se poate reprezenta sub mai multe formeB
dintre aceste forme, cele mai uzuale sunt reprezentarea )n limba> pseudocod i schema
logic.
2imba>ul pseudocod asi!ur descrierea al!oritmilor prin intermediul a dou
enunuri= standard i nestandardB enunurile nestandard sunt fraze n limba0ul natural ce
se folosesc, de re!ul, n pro!ramare pentru reprezentarea formei iniiale a al!oritmilorB
enunurile standard e*prim operaii ce dispun de corespondene directe n instruciunile
limba0ului de pro!ramare.
Schema logic asi!ur reprezentarea sub form !rafic a al!oritmilor. Schema
logic de program se deosebete de schema logic de sistem. Schema logic de sistem
descrie operaiile de prelucrare a datelor pe sistemul de calcul, cu focalizare pe sursele
de date, documentele primare ce le conin, acti2itile ce se e*ecut asupra lor, modul de
stocare i de prezentare a rezultatelor prelucrrii. Schema logic de sistem este utilizat
pentru a oferi o ima!ine de ansamblu a flu*urilor de date din sistemul de calcul, n timp
ce schemele logice de program sunt folosite pentru detalierea anumitor procese
reprezentate n sc+ema lo!ic de sistem. Sc+emele lo!ice de pro!ram sunt independente
de limba0ul de pro!ramare utilizat. Sc+emele lo!ice utilizeaz simboluri !rafice.
/entru realizarea unui pro!ram sunt necesare trei tipuri de structuri de control,
caracterizate prin aceea c au o sin!ur intrare i o sin!ur ieire. )ceast posibilitate se
bazeaz pe teorema lui # hm i Lacopini
8
care arat c orice al!oritm poate fi
reprezentat ca o combinaie a celor trei structuri de control fundamentale= sec2enial,
alternati2e i repetiti2e. Structura de control secvenial ;liniar< cuprinde o succesiune
de blocuri care se e*ecut unul dup altul. Structurile de control alternative ;cu
ramificaii< corespund unui bloc de prelucrare care se e*ecut n functie de satisfacerea
unei condiii. )ceste structuri de control prezint urmtoarele forme= structura de control
alternati2 cu dou ramificaii ;IfMThenM%lse<B structura de control alternati2 cu mai
multe ramificaii ;imbricat<B structura de control alternati2 !eneralizat ;'ase"*f<.
Structurile de control repetitive ;de ciclare< asi!ur repetarea prelucrrii unor sec2ene
de pro!ram. 6ormele structurilor de control repetiti2e sunt= structura repetiti2 fr
contor condiionat anterior ;While $o<B structura repetiti2 fr contor condiionat
2
C. 4^+m, 1. Hacopini, X6loV dia!rams, -urin! &ac+ines and 9an!ua!es Vit+ onlM -Vo 6ormation #ulesX, 'omm/ of the
.'0, 5;$<= 3%%(3,1,15%%.
Curs 4aze de date(pa!."$ din .5
posterior ;1epeatM6ntil<B structura repetiti2 cu contor condiionat anterior ;$oM,or<B
structura repetiti2 cu contor condiionat posterior ;$oM,or<.
Din punct de 2edere structural, un program poate a2ea n compunere mai multe
subprograme sau module. /ot constitui subpro!rame, componentele pro!ramului de
tipul procedurilor iDsau al funciilor. &ai multe pro!rame alctuiesc mpreun o
aplicaie informatic. Clasic, aplicaia informatic are o structur static arborescent,
adic este format dintr(un program principal care apeleaz subprograme.
Subprogramele sunt independente n conformitate cu principiile programrii structurate
;programe constituite din subprograme sau module i folosirea structurilor de control
fundamentale<.
.plicaia informatic este dedicat unui anumit domeniu de acti2itate economic
;de e*emplu, aplicaie informatic de contabilitate, aplicaie informatic pentru
mana!ementul resurselor umane, aplicaie informatic pentru !estiunea creditelor
bancare etc.<. Noiunea de aplicaie informatic nu este similar cu aceea de sistem
informatic.
2imba>ul de programare este un limba0 artificial ce se folosete pentru definirea
unui ir de instruciuni care pot fi prelucrate i e*ecutate pe un calculator.
4rocedura ;procedure< este o parte component, cu nume, a unui pro!ram, creia
i sunt asociate constante, tipuri de date i 2ariabile i care e*ecut, de re!ul, un task
unic. Task(ul este un subpro!ram sau aplicaie autonom rulat ca o entitate
independent. ,uncia ;function< este un subpro!ram sau rutin care returneaz o
sin!ur 2aloare prin nsi numele funciei. Spre deosebire de funcie, procedura poate
returna mai multe 2alori atunci c?nd este rulat. Nariabila este, n pro!ramare, o locaie
de memorie n care se stoc+eaz date de un anumit tip i care pot fi modificate pe timpul
e*ecuiei pro!ramului. 'onstanta desemneaz o entitate cu nume ce reprezint o 2aloare
care nu se modific pe timpul e*ecuiei unui pro!ram. Structura de date este o sc+em
de or!anizare a datelor cu scopul de a simplifica operaiile de prelucrare sau de a uura
interpretarea lor. '*ist mai multe tipuri de structuri de date= 2ector, nre!istrare,
mulime etc.
Instruciunea este format din dou elemente distincte= codul operatorului i
operanzii ;datele supuse operaiei elementare reprezentate prin cod<. Cn funcie de tipul
prelucrrii pe care o e*ecut, instruciunile se clasific n=
instruciuni de prelucrare propriu(zisB
instruciuni de organizare ;structurare< care realizeaz concordana lo!ic
ntre al!oritm i succesiunea intern a sec2enelor de pro!ram.
Instruciunile de prelucrare propriu"zis se !rupeaz n=
instruciuni de intrare"ieire care stabilesc sensul flu*ului de date n sistemul
de calcul, fiierul de date asupra cruia se efectueaz operaia i ec+ipamentul
periferic pe care se !sete acest fiier de dateB fiierul de date este o colecie
de date stocat pe un suport te+nic ntr(o succesiune de nre!istrriB
instruciunile de calcul, ce precizeaz natura operaiei, adresele operanzilor
care particip la calcul i a operaiei aritmeticeB
Curs 4aze de date(pa!."% din .5
instruciunile de transfer ;atribuire<( ce realizeaz transferul datelor,
preciz?nd sensul transferului i adresele operanzilor.
Instruciunile de organizare sunt urmtoarele=
instruciunile de comparare ;decizie logic<( care asi!ur compararea a doi
sau mai muli operanzi, rezultatul fiind cate!orisit ca Eade2ratF ;True< sau
EfalsF ;,alse<B
instruciunile de salt, ce realizeaz trecerea de la sec2ena de instruciuni
curent din pro!ram la o sec2en de instruciuni situat n alt punct al
pro!ramului.
8ndiferent de limba0ul de pro!ramare folosit pentru rezol2area problemei,
realizarea unui pro!ram presupune parcur!erea urmtoarelor etape=
1. .naliza problemei de rezolvat i realizarea algoritmului( etap ce presupune
elaborarea unui enun complet al problemei, stabilirea modalitilor de or!anizare i de
reprezentare a datelor de intrare i de ieire, elaborarea sc+emei lo!ic de sistem care
definete ec+ipamentele din confi!uraia calculatorului ce particip la procesul de
prelucrare a datelor, realizarea al!oritmului ce presupune elaborarea i reprezentarea
acestuia n limba0 pseudocod sau sub forma sc+emei lo!ice de pro!ram.
2. Scrierea ;introducerea< programului, ce are drept scop codificarea
al!oritmului, adic con2ersia acestuia n conformitate cu instruciunile unui limba0 de
pro!ramareB pentru aceast codificare, se folosete un editor de te+teB acest editor poate
fi independent sau poate face parte din mediul inte!rat de dez2oltare ;8D'<B se obine
astfel programulsurs ;codul"surs al pro!ramului< care este scris ntr(un limba0 similar
cu limba0ul natural, dar nc inaccesibil sistemului de calcul.
3. 'ompilarea programului, ce realizeaz traducerea programului"surs scris
ntrun limba0 de pro!ramare de ni2el nalt n program"obiect, e*primat n instruciuni
codmain.
)ceast operaie de traducere se obine, n mod automat, prin folosirea unei
componente a sistemului de operare, numit compilator. Dup compilare, e2entualele
erori de codificare e*istente n pro!ram ;numite erori de sinta+ ce apar datorit
nerespectrii sinta*ei !enerale a unei instruciuni< sunt depistate i afiate. 'rorile de
sinta* sunt eliminate prin corecii aduse pro!ramului(surs, dup care operaia de
compilare este reluat. 'ste important de menionat faptul c n etapa de compilare nu se
depisteaz erorile logice din pro!ramB erorile logice sunt !reeli produse la realizarea
al!oritmului de calcul.
". %ditarea de legturi ;linkeditarea<, ce asi!ur includerea codului obiect al
pro!ramului ;programul"obiect< ntr(un ansamblu e*ecutabil ;programul e+ecutabil<
care cuprinde i module specifice sistemului de operare, funcii de bibliotec etc. cu
a0utorul componentei denumit editor de legturi ;linkeditor<. '2entualele erori ce apar
conduc la corecii n programul"surs.
$. Testarea logic a programului( ce realizeaz 2erificarea final a pro!ramului pe
baza unui set de date de test care acoper domeniul real de 2alori ale datelor de intrare
ce se 2or folosi n timpul e+ploatrii programului.
Curs 4aze de date(pa!.", din .5
3.3. 0ro$lematica general a lim$a1elor de *rogramare
2imba>ul de programare reprezint un limba> artificial ce se folosete pentru
definirea unui ir de instruciuni care pot fi prelucrate i e*ecutate pe un sistem de
calcul.
Spre deosebire de limba0ele naturale ;umane<, limba>ele artificiale au fost create
cu scopuri precise= limba0e de pro!ramare, limba0e de specificare a pro!ramelor, limba0e
de descriere a documentelor structurate, limba0e de sc+imb de date electronice, 'D8
;%lectronic $ata Interchange< etc.
2imba>ele de programare se definesc formal prin alfabet, vocabular i gramatici
;fapt ce permite compilarea sau interpretarea lor<. .lfabetul reprezint mulimea
simbolurilor utilizate pentru scriere n limba0ul de pro!ramare respecti2. 3ocabularul
este compus din mulimea cu2intelor ntrebuinate n limba0. Eramatica limba0ului de
pro!ramare este reprezentat de ansamblul re!ulilor de scriere, cu preponderen sub
aspect sintactic ;mulimea re!ulilor de formare a instruciunilor<, cu luarea n
consideraie a regulilor de punctuaie i a semanticii ;semnificaiilor conferite
cu2intelor< i e*trem de puin sub aspect morfologic ;ansamblul re!ulilor de modificare
a formei cu2intelor, n conte*tul utilizrii lor<. :peraia de interpretare asi!ur e*ecuia
instruciune cu instruciune ;la comanda pas cu pas a operatorului< a unui pro!ram.
7n mare !rad de utilizare l prezint sistemele de gestiune a bazelor de date
;SE#$< ce sunt fundamentate pe limba>e de descriere a structurii bazei de date i pe
limba>e de manipulare i interogare a bazei de date. S14D(urile lucreaz cu date
or!anizate n baze de date i programele sunt independente n raport cu descrierea
datelor. Se dau ca e*emple S14D(urile ,o+4ro ;cu o lar! rsp?ndire n #om?nia n
deceniul 5@ al secolului trecut<, Informi+( *racle( Sybase( 0icrosoft .ccess/
Din cate!oria limba>elor de programare specializate fac parte limba>ele
inteligenei artificiale. Se dau ca e*emple limba0ele 2isp i 4rolog.
2imba>ele de programare orientate pe obiecte sunt dez2oltate n conformitate cu
conceptual de programare orientat pe obiecte, OOP ;*b>ect"*riented 4rogramming<.
4rogramarea orientat pe obiecte semnific programarea bazat pe obiecte la
care se adau! motenirea i polimorfismul. 4rogramarea bazat pe obiecte( OBP
;*b>ect"#ased 4rogramming< utilizeaz conceptele de clas i obiect. Dintre limba0ele
de pro!ramare ::/ se menioneaz 4ascal( 'OO( 'P( SmallTalk( Simula( Lava etc.
3.4. &lementele de $az ale *rogramrii orientate *e o$iecte
4rogramarea orientat pe obiecte, OOP ;*b>ect"*riented 4rogramming<,
specific limba>elor de programare orientate pe obiecte( nseamn programarea bazat
pe obiecte la care se adau! motenirea i polimorfismul. 4rogramarea bazat pe
obiecte( OBP ;*b>ect"#ased 4rogramming< utilizeaz conceptele de obiect i clas.
*biectul este o entitate dinamic ;este creat, utilizat i apoi distrus< constituit din
oricare unitate pro!ramabil i caracterizat prin identitate, metode de comportament i
Curs 4aze de date(pa!.". din .5
stare. 8dentitatea indi2idualizeaz un obiect n comparaie cu alte obiecte. 0etodele de
comportament ale obiectului reprezint elementele comportamentale ale acestuia n
momentul accesrii. /rin comportament, obiectul i pune n e2iden apartenena la
clas, precum i indi2idualitatea sa. Starea obiectului este caracterizat cu a0utorul
atributelor lui. :rice atribut dispune de nume i valoare sau realizare ce este asociat ca
variabil de instan ;ce definete proprietile obiectului la un anumit moment<.
'lementele ce aparin coleciei de obiecte descrise ntr(o clas reprezint instane
de clas. :biectul este definit de un identificator intern unic, independent de 2aloarea
sau adresa de memorie a obiectului. )cest identificator nu este controlat de utilizator i
nu se confund cu diferitele nume utilizate de utilizator cu scopul de a(l numi. Ca entiti
comple*e, obiectele sunt constituite din alte obiecte i din 2alori. Distincia ntre obiecte
i valori se realizeaz prin intermediul strii obiectului= obiectele dispun de o stare
intern care se poate sc+imbaB 2aloarea nu se sc+imb niciodat. :biectele sunt create de
utilizatori, prin deri2are din tipuri de obiecte create anterior sau printr(o operaie de
creare ;ne!<.
'lasa reprezint o implementare a unui tip abstract de date ce ncapsuleaz dou
tipuri de atribute= c-mpuri sau proprieti i metode sau operaii ale tipului respecti2.
'-mpurile sunt private adic sunt ascunse n reprezentarea obiectului. 0etodele
sunt publice adic accesibile utilizatorului. )ltfel e*primat, clasa definete o cate!orie
de obiecte cu proprieti i metode ce se motenesc ntr(o subclas. Subclasa sau clasa
derivat definete comportamentul obiectului deri2at dintr(o clas considerat de baz.
Clasa este un model de realizare a obiectelor de acelai tip i se definete cu
a0utorul unui limba> declarativ sau pe cale !rafic. Clasa are un nume, prezint operaii
e*terne sau metode, are o reprezentare intern ;ca e*presie a 2alorilor di2erselor stri
ale instanelor de clas< i folosete cod ce implementeaz at?t operaiile e*terne c?t i
descrierile reprezentrii interne a obiectelor. Clasa e*ist conceptual c+iar i atunci c?nd
nu conine obiecte i este un ablon pentru !enerarea i manipularea obiectelor i este
accesat de utilizator cu a0utorul interfeei specifice clasei. Specificarea metodei se
numete semntur, iar modul de implementare constituie corpul metodei. Noiunea de
clas este asociat n special cu faza de e*ecuie i presupune= !enerarea de obiecte
;ne!< i memorarea mulimii de obiecte care reprezint instanele claselor. : clas
descrie obiectele, crearea unui obiect realiz?ndu(se prin luarea n consideraie a unei
e+presii de tip. Tipul reprezint o descriere abstract a unui !rup de entiti
asemntoare. :biectul prezint 2alorile lui proprii, lista atributelor i metodelor fiind
!estionate de clas. /entru ma0oritatea limba0elor ::/, ansamblul instanelor unei clase
reprezint o colecie care are acelai nume cu clasa i care se numete e+tensie a clasei.
*biectele reprezint instane ;manifestri< ale claselor din care fac parte.
Tipul de dat este folosit pentru descrierea unei mulimi de obiecte care au aceeai
reprezentare. 6iecrui tip de dat i se asociaz anumite operaii cum ar fi de e*emplu=
operaii aritmetice pentru date numerice, concatenri pentru irurile de caractere,
modificri pentru anumite articole.
Tipul abstract de dat este un tip de dat care este definit prin accentuarea
elementelor de precizare a comportamentului i de specificare a metodelor ce se pot
Curs 4aze de date(pa!."5 din .5
efectua asupra 2ariabilelor de tipul de dat respecti2 ;se specific at?t structura
obiectului, c?t i mesa0ele aplicabile lui<. -ipul abstract de dat ascunde modul n care
sunt implementate metodele asociate obiectului, reprezentarea intern a obiectelor i
prote0eaz al!oritmii interni care implementeaz cererile din e*terior. )cest tip abstract
de dat are dou componente= interfaa ;list de metode< i implementarea ;descrierea
structurii interne a datelor obiectului i realizarea procedurilor de implementare a
metodelor interfeei<. Structura aleas pentru memorarea tipului abstract de dat este
ascuns pentru utilizator, ca urmare al!oritmul de reprezentare este ncapsulat. '*ist o
interfa public, la care au acces utilizatorii, i o interfa privat ce ascunde
reprezentarea i implementarea.
Diferena dintre tipul de dat i clas este urmtoarea= tipul de dat este destinat
pentru definirea de declaraii utilizate pentru controlul static al e*presiilor de limba0, n
timp ce clasele sunt abloane destinate !enerrii i manipulrii obiectelor care prezint
proprieti i comportament comun.
Cntre clase i obiecte se stabilesc relaii astfel= asociaii binare ntre dou clase,
asociaii n(are ntre mai multe clase, relaii ntre obiect i clasa din care face parte, relaii
ntre obiectele aceleiai clase.
'*ist mai multe paradigme ale modelului folosit de **4= motenirea(
)ncapsularea( polimorfismul( abstractizarea datelor( persistena( evenimentul/
4aradigma este un ansamblu ce detaliaz conceptele specifice unui anumit termen
utilizat ca model. /aradi!ma se refer la forme de manifestare ale termenului respecti2.
0otenirea asi!ur transferarea de proprieti i metode de la clasa"printe ctre
un obiect nou. /rin motenire sunt !enerate tipuri noi de obiecte i clase ntr(o ierar+ie.
/rin motenire, n ::/ se elimin rescrierea i recodificarea pro!ramelor,
asi!ur?ndu(se reutilizarea codului. 7n obiect nou motenete operaii sau metode,
variabile de instan, atribute. Cn cazul metodelor, este 2orba de parta0area codului, iar
n cazul 2ariabilelor, de parta0area structurii ntre datele obiectelor.
/roiectarea unei aplicaii prin intermediul ::/ const !ruparea informaiilor
!enerale n clase care sunt apoi specializate pas cu pas n subclase cu comportament
particular.
0etodele reprezint operaii ce pot re!si sau actualiza starea unui obiect.
)ceast stare a obiectului este memorat n 2ariabilele instanelor sale. Cntr(o ierar+ie de
moteniri, o metod definit pentru o clas este motenit de subclasele sale. &otenirea
este implementat static sau dinamic. 0otenirea static nseamn adu!area c?mpurilor
motenite, situaie n care redefinirea unei clase obli! la actualizarea tuturor
subclaselor.
0otenirea dinamic se realizeaz fr a se copia c?mpurilor motenite i obli!
la parcur!erea le!turilor de motenire. Cn cazul motenirii dinamice, actualizarea se
efectueaz mai rapid, n timp ce e*ecuia este mai puin eficient. &otenirea poate fi
simpl sau multipl. 0otenirea simpl se produce atunci c?nd o subclas motenete
proprieti i metode ale unei sin!ure clase(printe. 0otenirea multipl se realizeaz
c?nd o subclas posed mai multe clase(printe.
Curs 4aze de date(pa!.$@ din .5
Hncapsularea reprezint proprietatea ce definete posibilitatea de a ascunde prin
mascare atributele proprii ale unui obiect i modul n care se e*ecut metodele. )stfel,
sunt prote0ate obiectele n situaia efecturii !reite a unor manipulri e*terioare. 7n
obiect poate fi accesat numai prin metodele asociate la crearea sa.
4olimorfismul definete caracteristica unei metode de a se comporta n mod diferit
n funcie de clasa de obiecte creia i aparine. /olimorfismul asi!ur in2ocarea
pentru obiectele de diferite tipuri a metodelor cu acelai nume, dar semantic i
implementare diferit. : metod se comport diferit n funcie de clasa de obiecte creia
i aparine.
.bstractizarea datelor se realizeaz prin faptul c nsi clasele sunt e*presia unei
abstracii. :biectele dintr(o clas prelucreaz datele modelului clasei creia i aparin.
7tilizatorul obine comunicarea cu obiectele prin mesa0e ce se transmit prin
interfaa ce specific metodele posibile.
4ersistena este o proprietate a obiectelor care implic e*istena acestora i dup
ncetarea procesului care le(a creat. Starea obiectului i codul corespunztor metodelor
sunt memorate n baza de date. -ipurile obiectelor pot fi declarate persistente prin
folosirea cu2?ntului c+eie persistent la momentul declarrii, 2ariabila fiind i ea
constr?ns la un tip persistent.
%venimentul reprezint o aciune efectuat de sistemul de calcul n cazul n care
utilizatorul solicit e*ecutarea unei comenzi, este aplicat un mesa0 al sistemului sau
e*ist o solicitare din partea altei aplicaii informatice. Ca urmare, e2enimentele se pot
produce n mod interacti2 sau pro!ramat. Cntr(o aplicaie informatic diri>at prin
evenimente, codul nu urmrete o cale prestabilit, ci sec2ene de pro!ram e*ecutate ca
rspuns la apariia e2enimentelor. Succesiunea n care se produc aceste e2enimente
determin sec2ena dup care se e*ecut codul, ceea ce nseamn c la fiecare rulare a
pro!ramului, el 2a parcur!e o cale diferit.
,. SISTEME DE BAZE DE DATE
4.1 +eneraliti
Sistemele de baze de date sunt o component esenial a 2ieii de zi cu zi n
societatea modern. Cn cursul unei zile, ma0oritatea persoanelor desfoar acti2iti care
implic interaciunea cu o baz de date= depunerea sau e*tra!erea unor sume de bani din
banc, rezer2area biletelor de tren sau a2ion, cutarea unei referine ntr(o bibliotec
computerizat, cumprarea unor produse etc.
4azele de date pot a2ea dimensiuni ;numr de nre!istrri< e*trem de 2ariate, de la
c?te2a zeci de nre!istrri ;de e*emplu, baza de date pentru o a!end cu numere de
telefon< sau pot a0un!e la zeci de milioane de nre!istrri ;de e*emplu, baza de date de
plat pentru plata ta*elor i a impozitelor<.
7tilizatorii unei baze de date au posibilitatea s efectueze mai multe cate!orii de
operaii asupra datelor memorate=
Curs 4aze de date(pa!.$1 din .5
8ntroducerea de noi date ;insert<B
Nter!erea unora din datele e*istente ;delete<B
)ctualizarea datelor memorate ;update<B
8ntero!area bazei de date ;Kuery< pentru a re!si anumite informaii, selectate
dup un criteriu ales.
Cn sensul cel mai lar!, o baz de date ;database< este o colecie de date corelate
din punct de 2edere lo!ic, care reflect un anumit aspect al lumii reale i este destinat
unui anumit !rup de utilizatori. Cn acest sens, bazele de date pot fi create i meninute
manual ;de e*emplu, fiele de e2iden a crilor dintr(o bibliotec, aa cum erau
folosite cu ani n urm< sau computerizat, aa cum este ma0oritatea bazelor de date
folosite n momentul de fa. : definiie ntr(un sens mai restr?ns a unei baze de date
este urmtoarea=
" $az de date ;database< este o colecie de date creat i meninut
computerizat( care permite operaii de introducere( tergere( actualizare i interogare a
datelor/
Simple colecii de fie ;documente pe +?rtie< sau fiiere de date, care conin
nre!istrri de date, dar nu permit operaii de intero!are, nu sunt considerate baze de
date. De e*empu, datele memorate n fiiere pe disc de un instrument de calcul tabelar
;ca &icrosoft '*cel< sau documentele memorate de un editor de te*t ;ca &icrosoft
Uord< nu sunt considerate baze de date.
4.2 2om*onentele unui %i%tem de $aze de date
6n sistem de baze de date ;$atabase System< este un sistem computerizat de
meninere a evidenei unei anumite activiti( folosind baze de date/ 'omponentele unui
sistem de baze de date suntJ hard!are( soft!are( utilizatori( date persistente/
3ard4are. Sistemele de baze de date sunt instalate, de re!ul, pe calculatoare de
uz !eneral, de la calculatoare /C standard, p?n la staii multiprocesor puternice.
4ineneles, performanele !enerale de operare ale calculatorului ;numrul i 2iteza
procesoarelor, dimensiunea i 2iteza de operare a memoriei principale etc.< influeneaz
n mod corespunztor performanele sistemului de baze de date. Dar, ceea ce intereseaz
n mod deosebit n utilizarea unui calculator pentru un sistem de baze de date, este
2olumul ;capacitatea< memoriei secundare, utilizat pentru memorarea coleciei de date
persistente ale bazei de date.
Dat fiind c ntr(un sistem de baze de date este necesar accesul rapid la oricare din
nre!istrrile de date, pentru memorarea acestora se folosesc discurile ma!netice ;+ard(
discuri<. 4enzile ma!netice ;care ofer acces sec2enial la nre!istrrile de date< sunt
utilizate numai pentru duplicarea ;back"up< i sal2areaDrestaurarea datelor.
Soft4are. Cntre baza de date ;colecia de date memorate fizic n fiiere pe +ard(
discuri< i utilizatorii sistemului e*ist un ni2el softVare, numit Sistem de 1estiune a
4azei de Date ;S14D< ( ;$atabase 0anagement System (D4&S< ( ;fi!. 1.1<.
Curs 4aze de date(pa!.$2 din .5
Si%temul de ge%tiune a $azei de date ( S14D ( ;$atabase 0anagement System "
$#0S< recepioneaz cererile utilizatorilor de acces la baza de date ;pentru operaii de
introducere( tergere( modificare sau interogare<( le interpreteaz( e+ecut operaiile
corespunztoare i returneaz rezultatul ctre utilizatori/
Sistemul S14D ofer utilizatorilor o 2iziune ;2edere ( vie!< a bazei de date la un
ni2el nalt i i elibereaz de necesitatea de a cunoate or!anizarea particular a
sistemului ;dri2erele de disc, structura nre!istrrilor de date, etc.<.
&ai mult, sistemul de !estiune asi!ur protecia datelor fa de accese
neautorizate sau defecte de funcionare, asi!ur?nd inte!ritatea bazei de date.
/e l?n! S14D, care este cea mai important component softVare a unui sistem
de baze de date, mai e*ist i alte componente= sistemul de operare, care asi!ur
controlul e*ecuiei pro!ramelor, biblioteci i instrumente softVare ;toolset"uri< pentru
proiectarea, dez2oltarea sau e*ploatarea sistemelor de baze de date i a aplicaiilor de
baze de date.
" a*licaie de $aze de date ;$atabase .pplication< este un program care ofer o
anumit utilizare a unei baze de date/
De e*emplu, pro!ramul care permite meninerea i urmrirea acti2itii an!a0ailor
unei ntreprinderi ;ncadrare, calificare, salarizare, etc.< folosind informaiile despre
an!a0ai memorate ntr(o baz de date reprezint o aplicaie de baze de date.
#tilizatorii unui sistem de baze de date se pot mpri n c?te2a cate!orii=
pro!ramatorii de aplicaii, utilizatorii finali i administratorul bazei de date.
4rogramatorii de aplicaii sunt cei care scriu ;dez2olt< aplicaiile de baze de
date, folosind limba0e de pro!ramare de ni2el nalt ;Cobol, /9D1, 6ortran, C, C__, Ha2a,
4asic< i biblioteci care permit ncorporarea operaiilor de acces la baza de date.
)plicaiile rezultate pot fi aplicaii cu e*ecuie independent ;batc+(processin!< sau pot
fi aplicaii interacti2e ;on(line< folosite de utilizatorii finali ai sistemului pentru a accesa
;ntr(un mod mai eficient i mai si!ur< baza de date
6tilizatorii finali sunt acei utilizatori care acceseaz baza de date prin intermediul
unui pro!ram de aplicaie care le confer drepturi limitate de acces la date pentru
anumite operaii de prelucrare. 7tilizatorii finali sunt persoane cu pre!tire te+nic
minimal, care efectueaz un 2olum mare de operaii asupra bazei de date, dar nu trebuie
s cunoasc mai mult dec?t posibilitile oferite de pro!ramul pe care l utilizeaz. De
e*emplu, utilizatorii finali ai unui sistem de rezer2are a bietelor de a2ion sunt a!enii de
Curs 4aze de date(pa!.$3 din .5
2?nzri, care folosesc pro!ramul adec2at ;scris de pro!ramatorii de aplicaii<, fr a fi
necesar s cunoasc ntrea!a structur a bazei de date.
(dmini%tratorul $azei de date ;$atabase .dministrator< este o persoan ;sau un
grup de persoane< cu )nalt calificare tehnic care are ca sarcin meninerea
funcionalitii bazei de date prin stabilirea drepturilor de acces ale diferitelor categorii
de utilizatori( prin efectuarea operaiilor periodice de salvare a datelor ;backup<( prin
monitorizarea performanelor sistemului i refacerea datelor atunci c-nd este necesar/
Datele memorate ntr(o baz de date sunt date persistente, adic date care rm?n
memorate pe suport ma!netic, independent de e*ecuia pro!ramelor de aplicaii. Datele
persistente ale unei baze de date se introduc, se ter! sau se actualizeaz folosind date de
intrare ;pro2enite de la tastatur, din citirea unor fiiere de date sau din recepionarea
unor mesa0e<. Datele de intrare sunt, n !eneral, date nepersistenteB ele sunt !enerate de
utilizatori i sunt memorate ;de2enind date persistente< numai dup ce au fost 2alidate
;acceptate< de ctre S14D. Datele de ieire ale unui sistem de baze de date sunt, de
asemenea, date nepersistenteB ele pro2in din operaii de intero!are a bazei de date i sunt
puse la dispoziia utilizatorului ;sub form de afiri, rapoarte tiprite, etc<.
)ceste tipuri de utilizatori asi!ur e*ploatarea unei baze de date dup ce aceasta a
fost proiectat i realizat. )cti2itatea de proiectare a unei baze de date implic i alte
cate!orii de personal cu nalt calificare te+nic ;proiectani, pro!ramatori< sau
administrati2 ;administrator de date<. /roiectanii bazelor de date au responsabilitatea
de a analiza realitatea reprezentat ;modelat< de baza de date respecti2, de a identifica
datele ce necesit s fie memorate, pentru a asi!ura meninerea e2idenei acti2itii
dorite. )specte pri2ind proiectarea bazelor de date 2or fi studiate n capitolele
urmtoare.
:rice S14D suport dou cate!orii de limba0e conceptuale= limba0e de descriere a
datelor i limba0e de manipulare a datelor.
-im$a1ele de de%criere a datelor ( 9DD ( ;$ata $escription 2anguages " $$2<
permit definirea conceptual a datelor( fr referire la modul de memorare fizic a
acestora/
-im$a1ele de mani*ulare a datelor ( 9&D ( ;$ata 0anipulation 2anguages "
$02< permit specificarea operaiilor de introducere( actualizare( tergere i interogare
a datelor/
4.3 (r5itectura intern a %i%temelor de $aze de date
)r+itectura intern a unui sistem de baze de date propus prin standardul
)NS8D`3DS/)#C ;15,$< conine trei ni2eluri funcionale= ni2elul e*tern, ni2elul
conceptual i ni2elul intern ;fi!. 1.2<. Ni2elul e*tern este o colecie de sc+eme e*terne,
care sunt 2ederi ale diferitelor !rupuri de utilizatori, e*ist?nd c?te o 2edere indi2idual a
datelor pentru fiecare !rup: ni2elul conceptual conine sc+ema conceptual ;lo!ic< a
bazei de date, iar ni2elul intern conine sc+ema intern ;fizic< a bazei de date.
Curs 4aze de date(pa!.$" din .5
" %c5em e)tern ;vedere utilizator< ;e+ternal schema( userQs vie!< conine o
subschem conceptual a bazei de date( mai precis descrierea datelor care sunt folosite
de acel grup de utilizatori/
Sc5ema conce*tual a $azei de date ;conceptual schema< corespunde unei
reprezentri unice ;pentru toi utilizatorii< i abstracte a datelor( descriind ce date sunt
stocate )n baza de date i care sunt asocierile dintre acestea/
Sc5ema intern 6fizic7 a $azei de date ;internal schema< specific modul de
reprezentare a datelor pe suportul fizic/
7n sistem de baze de date suport o sc+em intern, o sc+em conceptual i mai
multe sc+eme e*terneB toate aceste sc+eme sunt descrieri diferite ale aceleiai colecii de
date, care e*ist doar n ni2elul intern.
-oate aceste reprezentri ale datelor sunt !estionate de ctre S14D care asi!ur,
de asemenea, i cele dou corespondene ;mappings<= ntre sc+emele e*terne i sc+ema
conceptual i ntre sc+ema conceptual i sc+ema intern.
7nele sisteme S14D nu separ complet cele trei ni2eluri funcionale ale bazelor
de date, e*ist?nd posibilitatea de a specifica detalii ale sc+emei interne sau ale sc+emelor
e*terne n cadrul sc+emei conceptuale.
4.4 (.anta1ele oferite de %i%temele de $aze de date
6a de 2ec+ile metode de nre!istrare a datelor pri2ind diferite acti2iti pe fie
;documente scrise< sau c+iar n fiiere pe disc, sistemele de baze de date ofer a2anta0e
considerabile, ceea ce e*plic e*tinsa utilizare a acestora. C?te2a dintre a2anta0ele
oferite sunt prezentate n continuare.
'ompactitate ridicat= 2olumul ocupat de sistemele de baze de date este mult
mai redus dec?t 2olumul ocupat de documente scrise sau de fiiere necorelate.
Curs 4aze de date(pa!.$$ din .5
Nitez mare de re!sire i actualizare a informaiilor.
1edundan sczut a datelor memorate, care se obine prin parta>area
datelor ntre mai muli utilizatori i aplicaii. Cn stocarea pe fie sau n fiiere a datelor,
fiecare aplicaie coninea propriile seturi de date. Cn sistemele de baze de date, mai multe
aplicaii pot folosi date comune, memorate o sin!ur dat. De e*emplu, o aplicaie de
personal i o aplicaie de rezultate la e*amene dintr(o uni2ersitate care e*ploateaz o
sin!ur baz de date, pot folosi aceleai informaii referitoare la structurarea facultilor
i a seciilor.
4osibilitatea de introducere a standardelor pri2ind modul de stocare a
datelor, ceea ce permite intersc+imbul informaiilor ntre diferite or!anizaii.
0eninerea integritii datelor prin politica de securitate ;drepturi de acces
difereniate n funcie de rolul utilizatorilor<, prin !estionarea tranzaciilor i prin
refacerea datelor n caz de funcionare defectuoas a diferitelor componente +ardVare
sau softVare.
Independena datelor fa de suportul +ardVare utilizat. Sistemele de !estiune
a bazelor de date ofer o 2edere ;vie!< e*tern a datelor, care nu se modific atunci c?nd
se sc+imb suportul de memorare fizic, ceea ce asi!ur imunitatea structurii bazei de
date i a aplicaiilor la modificri ale sistemului +ardVare utilizat.
4.5 2la%ificarea %i%temelor de $aze de date
Se pot lua n consideraie mai multe criterii de clasificare ale sistemelor de baze
de date.
2la%ificare du* modelul de date. &a0oritatea sistemelor de baze de date actuale
sunt realizate n modelul de date relaional sau n modelul de date obiect. Dez2oltarea
continu a acestor modele a condus ctre o nou cate!orie de baze de date, numite
obiect"relaionale, care combin caracteristicile modelului relaional cu cele ale
modelului obiect. De asemenea, mai sunt nc n funciune baze de date n modele mai
2ec+i ;modelul ierarhic sau modelul reea<. &odelele de date utilizate de sistemele
S14D 2or fi prezentate n seciunea urmtoare.
2la%ificare du* numrul de utilizatori. &a0oritatea sistemelor de baze de date
sunt sisteme multiutilizator, adic permit accesul concurent ;n acelai timp< a mai
multor utilizatori la aceeai baz de date. 7n numr redus de sisteme de baze de date
sunt de tip monoutilizator, adic suport accesul doar al unui sin!ur utilizator ;la un
moment dat<.
2la%ificare du* numrul de %taii *e care e%te %tocat $aza de date. '*ist dou
cate!orii de sisteme de baze de date= centralizate i distribuite.
6n sistem de baze de date centralizat ;'entralized $atabase System< este un
sistem de baze de date )n care datele i sistemul de gestiune sunt stocate pe o singur
staie ;calculator</
7n sistem centralizat poate suporta unul sau mai muli utilizatori, dar, n orice
situaie, datele i sistemul de !estiune rezid n ntre!ime pe o sin!ur staie.
Curs 4aze de date(pa!.$% din .5
6n sistem de baze de date distribuit ;$istributed $atabase System< poate avea
at-t datele( c-t i sistemul de gestiune( distribuite )n mai multe staii interconectate
printr"o reea de comunicaie/
Sistemele de baze de date pot fi reprezentate din punct de 2edere al funcionrii
lor printr(o ar+itectur de tip client"server/
Cntr(un sistem centralizat ;fi!. 1.3< e*ist un sin!ur server, care este c+iar sistemul
S14D, care rspunde cererilor unui sin!ur client ;n sistemele mono(utilizator, fi!. 1.3,
a< sau mai multor clieni ;n sistemele multi(utilizator, fi!. 1.3, b<, care acceseaz baza
de date respecti2. 'lienii sunt pro!rame de aplicaii oferite de furnizorul sistemului de
!estiune sau dez2oltate de pro!ramatori.
)plicaiile client pot fi e*ecutate pe staii diferite, conectate printr(o reea de
comunicaie cu staia pe care ruleaz ser2erul. )ceast ar+itectur permite o prelucrare
distribuit a datelor i, mai mult, o confi!urare a sistemului adaptat cerinelor de calcul
particulare. )stfel, ser2erul bazei de date poate fi un sistem puternic, ec+ipat
corespunztor ;cu 2olum mare de memorie secundar<, n timp ce fiecare client este o
staie personal, cu putere de calcul adec2at aplicaiei e*ecutate.
Sistemele de baze de date distribuite pot fi reprezentate ntr(un mod asemntor
din perspecti2a structurrii client(ser2er ;fi!. 1."<.
: baz de date distribuit este o colecie de date care aparin din punct de 2edere
lo!ic aceluiai sistem, dar care pot s fie, din punct de 2edere fizic, memorate n mai
multe staii de calcul ;locaii ( sites< conectate printr(o reea de comunicaie. Sistemul
softVare care !estioneaz o astfel de baz de date se numete Sistem de 1estiune a
4azei de Date Distribuite ( S14DD ( ;$istributed $atabase 0anagement System "
$$#0S<. )plicaiile client ruleaz pe alte staii din reea i solicit ser2icii de la
sistemul de !estiune distribuit.
Curs 4aze de date(pa!.$, din .5
'*ist numeroase a2anta0e ale sistemelor de baze de date distribuite ;creterea
capacitii de stocare i prelucrare a datelor, creterea disponibilitii i a parta0rii
datelor, etc.<, dar i o cretere considerabil a comple*itii acestora.
Cea mai important cerin pe care trebuie s o ndeplineasc sistemele de
!estiune a bazelor de date distribuite este de a asi!ura administrarea transparent a
datelor. -ransparena se refer la capacitatea unui sistem distribuit de a ascunde detaliile
de implementare, astfel nc?t utilizatorii s poat accesa datele pe baza unui model de
ni2el nalt, fr a fi necesar cunoaterea e*act a modului de amplasare, replicare sau
comunicare a datelor.
Sistemele de !estiune a bazelor de date distribuite comerciale nu ofer n
momentul de fa un ni2el suficient de transparen a localizrii datelor, dar dez2oltarea
continu a acestora 2a putea s asi!ure n 2iitor aceast cerin. )plicaie Client S14D
4D a Ser2er #eea de comunicaie)plicaie Client )plicaie Client)plicaie Client
S14D4DSer2erb #eea de comunicaie )plicaie Client )plicaie Client)plicaie
ClientS14D 4D Ser2er S14D 4D Ser2er
$. LIMBAJUL DE PROGRAMARE VISUAL BASIC
5.1. 2aracter%ticile generale ale mediului integrat de dez.oltare 8i%ual 9a%ic
Nisual #asic ;34< reprezint un mediu integrat de dezvoltare, 8D' ;Integrated
$evelopment %nvironment<, n mod interacti2, pentru aplicaii informatice sub sistemul
de operare 0icrosoft Windo!s. Cn !eneral, un mediu de programare este un sistem de
pro!ramare care asist utilizatorul este asistat n proiectarea i codificarea al!oritmilor i
a datelor, respecti2 n editarea i depanarea pro!ramelor. C?nd acest mediu de
pro!ramare asist utilizatorul ;pro!ramatorul< n toate etapele de realizare a unui
pro!ram, el se numete mediu de dezvoltare. C?nd toate componentele de asistare a
utilizatorului ;pro!ramatorului< sunt inte!rate n cadrul aceluiai mediu de dez2oltare, el
se numete mediu integrat de dezvoltare.
Curs 4aze de date(pa!.$. din .5
-ermenul visual din denumirea 8D' 3isual 4asic semnific faptul c aplicaiile
informatice dez2oltate n 34 dispun de interfee grafice ce sunt proiectate 2izual de
ctre utilizator. /entru aceasta, utilizatorul are la dispoziie un set de elemente 2izuale
standard ce pot fi folosite la proiectarea unei interfee !rafice, denumite elemente de
control( sau( pe scurt( controale ;'ontrols</ )ceste controale sunt dispuse n ferestrele
aplicaiei, ferestre denumite formulare ;,orms<, concomitent cu stabilirea proprietilor
acestora ;n fereastra 4roperties< la dorina utilizatorului i n conformitate cu
necesitile aplicaiei.
-ermenul #asic din compunerea I$% Nisual #asic arat tipul limba0ului de
pro!ramare utilizat pentru realizarea pro!ramelor ;sec2enelor de cod< corespunztoare
evenimentelor !enerate de acionarea controalelor dispuse n formularul specific
aplicaiei. 9imba0ul de pro!ramare #asic ;acronim pro2enit din denumirea n limba
en!lez 4e!inneras )ll(purpose SMmbolic 8nstruction Code<, definit la nceputul anilor
15%@, a cunoscut numeroase 2ersiuni i dez2oltri ulterioare.
Cn anul 1551, firma &icrosoft a realizat produsul 8i%ual 9a%ic care, ulterior, a
cunoscut mai multe 2ersiuni, n concordan cu dez2oltarea sistemului de operare
UindoVs. 3ersiunea Nisual #asic B/9 face parte din pac+etul 0icrosoft Nisual Studio
B/9, iar 2ersiunea Nisual #asic/&%T este parte component a pac+etului 0icrosoft Nisual
Studio/&%T.
3isual 4asic prezint caracteristici specifice programrii structurate
;programrii bazate pe obiecte<( programrii diri>ate de evenimente( orientrii spre
prelucrarea bazelor de date ;manipulare i interogare</
3isual 4asic face parte din clasa de medii de dezvoltare rapid a aplicaiilor(
R(D ;1apid .pplication $evelopment<( alturi de &icrosoft 3isual C__, /oVer
4uilder, 4orland Delp+i .a. ce prezint urmtoarele caracteristici= realizare rapid a
aplicaiilor informatice, necesiti acceptabile de resurse informatice la e*ecuie,
separarea proiectrii prelucrrilor de proiectarea interfeei, inte!reaz proiectarea
interfeei, scrierea codului, testarea i depanarea.
Cn cadrul pac+etului de birotic 0icrosoft *ffice, a fost inclus ca limba0 de
dez2oltare un subset al 3isual 4asic, denumit Nisual #asic for .pplication 89(.
5.2. 2om*onentele de $az ale mediului integrat de dez.oltare 8i%ual 9a%ic
9ansarea n e*ecuie a 34 %.@ din mediul UindoVs se e*ecut astfel=
a< se apas butonul Start de pe bara de task(uriB
b< se parcur!e succesiunea 4rograms ;.ll 4rograms n sistemul de operare
UindoVs `/< 3 0icrosoft Nisual Studio B/9 3 0icrosoft Nisual #asic B/9:
c< la apariia ferestrei de creare a unui nou proiect &e! 4ro>ect, se apas butonul
*pen/
Dup aceste aciuni, apar simultan fereastra principal a mediului inte!rat de
dez2oltare 34 ;1<, cutia cu instrumente Toolbo+ ;2<, fereastra de proiectare a
formularului ,orm $esign ;3<, fereastra de editare a codului 'ode %ditor ;"<, fereastra
Curs 4aze de date(pa!.$5 din .5
4ro>ect %+plorer ;$<, fereastra de stabilire a proprietilor 4roperties ;%<( fereastra
,orm 2ayout ;,<, fereastra Immediate ;.<, fereastra 2ocals ;5<, fereastra Uatc+ ;1@<,
utilitarul *b>ect #ro!ser ;11<, aa cum sunt prezentate n fi!ura 2. 6erestrele care nu
apar la pornirea 34 i sunt necesare pentru lucru, pot fi acti2ate prin urmtoarea
succesiune de comenzi= bara cu meniuri Nie! poziionare pe denumirea ferestrei
click.
,ereastra principal a mediului integrat de dezvoltare N# are patru componente=
bara de meniuri ;1<, bara cu instrumente ;2< i dou zone care afieaz poziia ;3< i
dimensiunea ;"< obiectului ce a fost selectat ;obiectul curent<. 4utoanele de pe bara cu
instrumente ;Toolbar< dubleaz cele mai utilizate comenzi din bara de meniuri.
0eniurile conte+tuale cuprind comenzi rapide pentru aciunile efectuate n mod
frec2ent. /entru desc+iderea unui meniu conte*tual se poziioneaz 2?rful mouse(ului pe
obiectul care trebuie folosit, se apas butonul din dreapta mouse(ului, se selecteaz
comanda dorit concomitent cu click e*ecutat cu butonul din st?n!a mouse(ului.
Curs 4aze de date(pa!.%@ din .5
'utia cu instrumente, Toolbo+( ;fereastra 2 din fi!ura 2<, asi!ur instrumentele
predefinite folosite n timpul proiectrii formularului pentru a introduce controale pe
acesta. 7tilizatorul poate crea propriile controale, ima!ini sau !rafic prin selecia
opiunii .ddTab din meniul conte*tual.
,ereastra de proiectare a formularului( ,orm $esign ;fereastra 3 din fi!ura 2<,
este fereastra pentru realizarea interfeei dintre utilizator i sec2enele de pro!ram.
,ereastra de editare a codului( 'ode %ditor ;fereastra " din fi!ura 2<, este folosit
ca editor de te*te pentru a introduce codul aplicaiei informatice. 6iecare formular sau
modul de cod din cadrul aplicaiei informatice dispune de propria fereastr de editare a
codului.
,ereastra 4ro>ect %+plorer ;fereastra $ din fi!ura 2< ser2ete numai la proiectarea
aplicaiei pentru afiarea coleciei de fiiere ce conin formularele i modulele din cadrul
proiectului aflat n lucru ;curent<. 7nele fiiere sunt ncrcate n mod automat de ctre
sistem, iar alte fiiere sunt realizate de ctre utilizator ;pro!ramator<. 6iierele care se
!sesc n fereastr ;proiect< se pot !rupa pe cate!orii cu a0utorul butonului Toggle
,olders. 4utonul Nie! *b>ect ser2ete pentru 2izualizarea obiectului selectat ;current<,
iar butonul Nie! 'ode este folosit pentru 2izualizarea codului.
,ereastra de stabilire a proprietilor( 4roperties ;fereastra % din fi!ura 2<(
asi!ur afiarea 2alorilor proprietilor pentru formularul sau controlul selectat. :
proprietate reprezint o caracteristic a unui obiect ;titlu, dimensiuni, poziie, culoare
etc.<.
,ereastra ,orm 2ayout ;fereastra , din fi!ura 2< este folosit pentru 2izualizarea
aspectului formularului.
,ereastra Immediate ;fereastra . din fi!ura 2< este o fereastr suplimentar
utilizat n procesul de depanare a aplicaiilor informatice rulate din interiorul mediului
8D'. &ediul 34 %.@ permite funcionarea n trei moduri de lucru= $0o("%'0
;design mode<, 0&!'0 #o01'!3 ;run mode< i <"&2( "& *#%00&$0 ;break mode<.
'*ecuia cu ntrerupere ;pas cu pas< se utilizeaz la depanarea aplicaiei pe baza
punctelor de ntrerupere ;breakpoints< stabilite n prealabil. 6ereastra Immediate permite
introducerea de sec2ene de cod care se e*ecut imediat sau afiarea 2alorilor unor
e*presii.
6ereastra 2ocals ;fereastra 5 din fi!ura 2< este destinat, la depanarea pro!ramelor
34, pentru afiarea 2alorilor unor e*presii din pro!ram.
6ereastra Watch ;fereastra 1@ din fi!ura 2< este, de asemenea, o fereastr
suplimentar utilizat n procesul de depanare a pro!ramelor 34, pentru !estiunea
2ariabilelor i e*presiilor !atch( adic a 2alorilor unor 2ariabile i e*presii din pro!ram
e*istente n momentul aciunii ;curente<. 7tilizarea ferestrei Watch este posibil prin
intermediul meniului conte*tual.
7tilitarul *b>ect #ro!ser ;fereastra 11 din fi!ura 2< realizeaz afiarea obiectelor
disponibile n 8D' ce pot fi utilizate de proiect. 7tilitarul ser2ete, de asemenea, pentru a
e*amina obiecte din 34 i din alte aplicaii, pentru a constata ce metode i proprieti
sunt disponibile n cazul acestor obiecte i pentru a prelua coduri de pro!ram n propria
aplicaie informatic.
Curs 4aze de date(pa!.%1 din .5
%ditorul de meniu ;0enu %ditor< permite proiectarea meniurilor asociate
formularelor. /entru afiarea ferestrei corespunztoare, se apas butonul cu acelai nume
de pe bara cu instrumente sau prin opiunea 0enu %ditor din meniul Tools. 6iecare
meniu are nume, proprieti i mod de accesare asociat.
5.3. 0roiectarea a*licaiilor n lim$a1ul 8i%ual 9a%ic
/entru a proiecta o aplicaie informatic n limba0ul 3isual 4asic, este necesar
parcur!erea urmtoarelor trei etape=
1< crearea interfeei/
2< precizarea proprietilor/
3< scrierea codului/
'rearea interfeei se efectueaz cu a0utorul formularelor ;,orms<. )cestea
ser2esc pentru a !enera ferestre i casete de dialo!, n calitate de containere pentru
elemente care se !sesc n partea ascuns a aplicaiei. 4recizarea proprietilor se
realizeaz prin intermediul ferestrei 4roperties, dup selecia prealabil a obiectului.
Scrierea codului se e*ecut folosind fereastra de editare a codului, 'ode %ditor. Crearea
aplicaiilor n 34 se face n modul de proiectare $esign 0ode, iar e*ecuia acestora se
efectueaz n modul de rulare normal, 1un 0ode. Cnainte de prezentarea n detaliu a
celor trei etape de proiectare a unei aplicaii n 34, se trateaz fiierul proiect.
5.3.1. :iierul *roiect
-ermenul de proiect n 34 este similar cu aplicaia informatic, astfel c el
cuprinde o list a fiierelor care intr n compunerea aplicaiei. 6iierul proiect este un
fiier te*t cu e*tensia .N#4/ &ediul de dez2oltare 34 %.@ asi!ur posibilitatea lucrului
cu mai multe proiecte concomitent, proiecte ce sunt reunite ntr(un grup de proiecte
;fiierul !rup de proiecte are e*tensia .N#E<. Cn lista de fiiere a unui proiect pot fi
incluse urmtoarele tipuri de fiiere=
fiier pentru formular ;.,10<B
fiier pentru formular care cuprinde controale cu proprieti care prezint ca
2alori date binare 8.,1R<B
fiier pentru clas de module 8.'2S<B
fiier pentru modul standard 8.#.S<B
fiier pentru control utilizator 8.N#R 3 $$2(uri pentru controale pe 1% bii
i .*'R 4 $$2(uri pentru controale pe 32 de bii <.
Din punctul de 2edere al utilizatorului, proiectul are n compunere module
e+istente n mediul inte!rat de dez2oltare ;I$%< 3isual 4asic, n format binar, i module
realizate de utilizator ;formular, cod, clas<. 0odulul reprezint un termen !eneric care
desemneaz entitatea de structurare a unui pro!ram. &odulele sunt reutilizabile, ceea ce
nseamn c un modul folosit ntr(un pro!ram, poate fi utilizat ulterior i n alte
pro!rame. &odulul definete reguli de vizibilitate adic elementele declarate n
Curs 4aze de date(pa!.%2 din .5
interiorul lui pot fi sau nu pot fi 2izibile n e*teriorul acestui modul. :rice proiect
trebuie s includ cel puin un modul ;modul de formular sau modul de cod<.
)tunci c?nd au fost definite toate componentele unui proiect, acesta poate fi
transformat direct ntr(un fiier e+ecutabil ;/%R%<( astfel=
1< din meniul ,ile, se selecteaz opiunea 0ake M %R%ZB
2< se introduce numele fiierului e*ecutabil n caseta ,ile &ame i se apas
butonul *.
Crearea, desc+iderea i sal2area unui proiect se efectueaz prin intermediul
comenzilor disponibile n meniul ,ile, astfel=
&e! 4ro>ect ser2ete pentru crearea unui proiect nou, adu!?nd un nou
formular i, e2entual, module, referine i obiecte utilizator cuprinse n fiierul
.utoS8ld/N#4B
*pen 4ro>ect desc+ide un proiect e+istent, cu formularele, modulele i
obiectele utilizator listate n fiierul proiectB
Save 4ro>ect .sMasi!ur prima sal2are a proiectului n lucru sau sc+imbarea
numelui unui proiect e*istent pentru conser2area stadiului la care s(a a0uns i
continuarea lucrului cu un alt nume de proiectB
Save 4ro>ect actualizeaz, prin sal2are pe disc, fiierul proiect al aplicaiei
e*istente mpreun cu toate formularele, clasele de module i modulele
standard.
)a cum se deduce din descrierea opiunilor de sal2are a proiectului de mai sus,
realizarea aplicaiei este terminat atunci c?nd se selecteaz comanda Save 4ro>ect .sZ
din meniul ,ile sau c?nd se selecteaz butonul Save 4ro>ect din linia de butoane. &ediul
3isual 4asic solicit sal2area, pe r?nd, a formularului i apoi a proiectului prin
introducerea numelui dar i a unitii lo!ice de memorie, precum i a cii unde se
dorete a a2ea loc sal2area. Cn mod implicit, mediul 3isual 4asic asi!ur sal2area n
locaia 'JT4rogram ,ilesT0icrosoft Nisual StudioTN#@U ;Save In<. /entru sal2area unui
proiect, se recomand particularizarea numelui proiectului i folosirea unei uniti lo!ice
de memorare i a unei ci personalizate a utilizatorului pentru fiecare proiect, ca, de
e*emplu=
Homes;$J<TStudentT,acultateaTErupaT&ume5prenume5studentT&ume proiect.
C?nd se lucreaz cu mai multe proiecte, la un anume moment un sin!ur proiect
este acti2. Cntre aceste proiecte cu care se lucreaz simultan, se pot parta0a fiiere. 7n
fiier, cum este. de e*emplu, un formular, poate aparine mai multor proiecte. Crearea
unor formulare, module i controale noi se efectueaz cu comenzile din meniul 4ro>ect.
5.3.2. 2rearea interfeei a*licaiei
Crearea interfeei unei aplicaii se realizeaz cu a0utorul unui obiect denumit
formular ;,orm<. Cn multe lucrri destinate 34, ec+i2alentul rom?nesc pentru ,orm este
form. Cn lucrarea de fa s(a preferat denumirea de formular dei cea de form este mai
apropiat de termenul n limba en!lez ;crearea formularului nseamn de fapt
EturnareaF controalelor ntr(o form adec2at interfeei aplicaiei<. &oti2ul preferinei
Curs 4aze de date(pa!.%3 din .5
pentru EformularF este asi!urarea lizibilitii apariiei denumirii acestui obiect n
e*plicaiile din cuprinsul lucrrii, dei n dicionarele limbii rom?ne, formularul, n
!eneral, este definit ca un imprimat cu mai multe spaii albe ce se completeaz n
2ederea ntocmirii unui tabel.
6ormularul este un container de controale care faciliteaz dialo!ul dintre utilizator
i aplicaie. Controalele nu pot funciona n afara formularului. 'le sunt obiecte care
elibereaz pro!ramul de sarcinile le!ate de intrrile i ieirile !enerate de aciunile
utilizatorului, concentr?nd eforturile pe operaiile de prelucrare a datelor. )2anta0ul
controalelor din 34 este c ele se aseamn foarte mult cu controalele standard ce apar
n sistemul de operare UindoVs ;meniuri, butoane, casete<. Controalele uureaz munca
de pro!ramare n sensul c sunt eliminate instruciunile care s !+ideze utilizatorul
asupra aciunilor pe care acesta trebuie s le ntreprind. 9a proiectarea interfeei
aplicaiei ;$esign 0ode<, fereastra de proiectare a formularului ser2ete pentru
dispunerea controalelor necesare proiectului.
9a rularea pro!ramului ;1un 0ode<, formularul ndeplinete rolul de fereastr
principal a proiectului sau de fereastr de dialo!. 9a pornirea mediului 34, fereastra
de proiectare a formularului cu numele implicit ;default< ,orm7 este dispus n centrul
ecranului. Cn interiorul acestei ferestre se !sesc linii punctate cu rolul de a asi!ura
orientarea utilizatorului, iar la mar!inea ferestrei sunt dispuse m?nerele de
redimensionare a formularului. 'ste bine ca, nc de la crearea formularului, s se opteze
pentru o dimensiune potri2it a formularului n raport cu numrul de controale introduse
i de dimensiunile acestoraB nu este estetic i nici practic s rm?n zone mari nefolosite
pe suprafaa formularului.
7n formular include descrierea !rafic a acestuia, controalele sale, proprietile,
constantele, 2ariabilele i procedurile e*terne, subrutinele de tratare a e2enimentelor,
procedurile !enerale. 6iecrui formular i corespunde un modul de formular ;,orm
0odule<.
'lasa de module ;'lass 0odule< este asemntoare formularului, dar nu dispune
de interfa utilizator 2izibil. Clasa de module poate fi folosit pentru crearea obiectelor
utilizator, cuprinz?nd sec2ene de cod pentru metodele i proprietile obiectelor
definite.
:biectele care aparin aceleai clase nu sunt nzestrate cu e2enimente proprii.
&ediul 34 asi!ur interfa pentru un sin!ur document ;SD8< sau interfaa
multidocument ;&D8<. Cn cazul SD8, toate ferestrele mediului 34 pot fi deplasate pe
ecran, iar n cazul &D8, toate ferestrele mediului inte!rat de dez2oltare 34 ;numite fii<
sunt incluse ntr(o fereastr unic ;numit printe< ce poate fi redimensionat. /entru a
obine comutarea ntre modurile de lucru SD8 i &D8 se realizeaz urmtoarea
succesiune de aciuni=
1< se selecteaz *ptions ;opiuni< din meniul ToolsB efectul este apariia
casetei de dialo! *ptionsB
2< se selecteaz .dvancedB
3< se 2alideaz sau se in2alideaz caseta S$I $evelopement %nvironement.
Curs 4aze de date(pa!.%" din .5
Controalele standard sunt butoanele de comand ;'ommand #utton<, casetele cu
te*t ;Te+t#o+<, etic+etele ;2abel<, casetele de 2alidare ;'heck #o+<, butoanele de opiuni
;*ption #utton<, casetele cu list ;2ist#o+<, casetele cu ima!ine ;4icture#o+<, barele de
defilare ;Scroll#ar< orizontale i 2erticale, casetele combinate ;'ombo#o+<.
Introducerea unui control din cutia cu instrumente ;Toolbo+< pe suprafaa
formularului se obine prin parcur!erea etapelor urmtoare=
1< se deplaseaz cursorul mouse(ului n cutia cu instrumente ;Toolbo+<( pe
picto!rama care reprezint controlul ce urmeaz a fi introdus n formular
i se acioneaz butonul din st?n!a al mouse(luiB
2< se mut cursorul mouse(ului pe suprafaa formularului, n poziia n care
2a fi colul st?n! al controluluiB
3< se efectueaz succesiunea de operaii de tipul $rug and $rop p?n se
dimensioneaz dup dorin controlul selectatB
"< se elibereaz butonul st?n! al mouse(ului.
: alt modalitate de introducere a controlului selectat pe suprafaa formularului
este reprezentat de dublu"click(ul mouse(ului pe picto!rama ;icon(ul< controlului din
cutia cu instrumente ;Toolbo+<. Se !enereaz astfel un control cu dimensiunile implicite,
dispus n centrul formularului.
Dispunerea controalelor pe suprafaa formularului se face dup o anumit lo!ic
le!at de succesiunea operaiilor importante de introducere date, prelucrare i afiare
rezultate. 6iecare control este caracterizat de un ansamblu de proprieti ce se refer la
descrierea comportamentului sau aspectului unui control. 9imea sau nlimea unui
control se msoar n t!ip ;un t!ip reprezent?nd cel mai mic punct adresabil de pe
ecran, cu dimensiunea de 1D1""@ inc+<. )a cum se 2a arta n para!raful urmtor,
fereastra 4roperties permite modificarea ntre limite prestabilite a 2alorilor diferitelor
proprieti ale controalelor.
,ocalizarea reprezint operaiunea de punere n e2iden a unui control la un
moment datB mai precis, acel control de2ine activ prin focalizare. )cel control acti2 se
mai numete i focar ;focus<. )cest lucru se pune n e2iden printr(o linie punctat n
0urul controlului sau printr(un titlu n!roat. &utarea focarului de la un control la altul se
efectueaz prin intermediul tastelor Tab sau Shift_Tab. )psarea tastei %nter 2a
determina aciunea controlului focar sau focalizat.
*rdinea de parcurgere a controalelor )n formular reprezint ordinea n care
controalele sunt puse n e2iden prin focalizare, o dat cu apsarea succesi2 a tastei
Tab.
Cn momentul acti2rii formularului, este stabilit primul control care este focalizat.
/roprietile comune tuturor controalelor din formular care stabilesc ordinea de
parcur!ere a controalelor sunt TabInde+ ;poziia< i TabStop ;oprirea<. :rdinea de
parcur!ere a controalelor este circular i n ambele sensuri nainte ;Tab< i napoi
;ShiftOTab<.
7n control poate include o tast EfierbinteF ;Hot ey< ce este e2ideniat printr(o
liter subliniat. /rin aciunea .ltOlitera subliniat, se pro2oac aciunea controlului
Curs 4aze de date(pa!.%$ din .5
respecti2. 9itera subliniat se introduce cu a0utorul proprietii 'aption prin precedare
de un ampersand ;><.
1edimensionarea unui control introdus de0a pe suprafaa formularului se obine
astfel=
1< se selecteaz controlul de redimensionat prin click e*ecutat cu mouse(ul
n interiorul suprafeei acestui control. /e mar!inile controlului apar
m?nerele de redimensionareB
2< se fi*eaz cursorul mouse(ului n dreptul unui m?ner de redimensionare
i se mic in?nd apsat butonul st?n! al mouse(ului, p?n se obine
dimensiunea dorit.
3< &?nerele situate n colurile suprafeei controlului redimensioneaz
controalele at?t pe 2ertical, c?t i pe orizontal, iar m?nerele dispuse pe
laturi redimensioneaz controlul numai ntr(o sin!ur direcie.
"< se elibereaz butonul st?n! al mouse(ului.
0utarea unui control pe suprafaa formularului se realizeaz cu mouse(ul prin
te+nica $rug and $rop.
Dup finalizarea proiectrii formularului, blocarea tuturor controalelor pe
suprafaa formularului se obine din meniul ,ormat cu opiunea 2ock 'ontrols sau cu
butonul 2ock 'ontrols Toggle de pe bara cu instrumente ,orm %ditor.
6ormularele sau controalele 3isual 4asic au asociate, n cadrul proiectului,
proceduri e2eniment 2ide care sunt personalizate n momentul e*ecuiei aplicaiei.
5.3.3. 0recizarea *ro*rietilor
/recizarea proprietilor n etapa de proiectare ;$esign 0ode< a formularului sau a
altui obiect 2izual se realizeaz cu a0utorul ferestrei 4roperties. 6ereastra 4roperties este
format din caseta cu obiecte, *b>ects ;afieaz numele i tipul obiectului selectat, adic
obiectul curent< i caseta Settings setri ;afieaz alfabetic sau pe cate!orii lista
proprietilor st?n!a i lista cu 2alorile sau setrile proprietilor dreapta<.
)cti2area ferestrei 4roperties se poate obine prin succesiunea de comenzi meniu
principal Nie! 3 4roperties Windo! sau cu a0utorul tastei funcionale 6".
4recizarea proprietilor se obine prin parcur!erea urmtoarele etape=
1< dac nu este afiat, se acti2eaz fereastra 4ropertiesB se selecteaz
obiectul cruia urmeaz s i se precizeze proprietileB n acest moment,
se afieaz automat proprietile cu 2alorile implicite pentru obiectul
selectatB
2< din lista alfabetic sau lista pe cate!orii a proprietilor se selecteaz
denumirea proprietii la care se 2or modifica 2alorile sau setrile
e*istenteB
3< n coloana 2alorilor sau setrilor din dreapta se tasteaz sau se selecteaz
2alorile dorite pentru proprietate.
/entru a asocia o picto!ram unui formular se atribuie o 2aloare proprietii icon
pentru acel formular.
Curs 4aze de date(pa!.%% din .5
5.3.4. Scrierea codului
Dup proiectarea formularului i precizarea proprietilor, urmeaz scrierea
codului care const n asocierea unor sec2ene de cod pentru toate controalele din
formular, adic moduri de aciune la di2erse evenimente.
Codul conine constante, declaraii de variabile i instruciuni scrise n limba0ul e
pro!ramare 3isual 4asic, n conformitate cu al!oritmul de calcul. 9e!area efecti2 de
control sau fereastr a sec2enelor de cod se obine de ctre utilizator ;programator9 n
mod con2ersaional.
/entru scrierea codului se desc+ide fereastra de editare a codului ;'ode %ditor<,
prin dublu"click e*ecutat cu butonul st?n! al mouse(ului poziionat pe obiectul selectat.
,ereastra de editare a codului ;'ode %ditor< este format din fereastra principal
ce reprezint zona pentru scrierea codului i dou casete de tip list din care se
selecteaz controlul pentru care se scrie codul ;*b>ect< i, respecti2, din care se ale!e
e2enimentul la care se reacioneaz prin codul scris pentru procedur n fereastra
principal ;4rocedure<.
'odul din proiectele realizate n 34 se di2ide n blocuri de dimensiuni mai mici
numite proceduri. Codul care corespunde unui e2eniment se numete procedur
eveniment.
4rocedura"eveniment asociat unui control are numele alctuit din numele
controlului ;stabilit n proprietatea &ame<, o liniu de subliniere ;P< i numele
evenimentului.
)tunci c?nd se desc+ide fereastra de cod i se selecteaz e2enimentul pentru care
se scrie codul, se !enereaz automat prima i ultima linie a procedurii ;4rivate Sub
,orm52oad ;< i %nd Sub< ce constituie un ablon de lucru.
/entru crearea unei proceduri"eveniment se e*ecut urmtoarea succesiune de
aciuni= caseta *b>ect b se specific numele obiectului din formularul curent ;adic cel
care este focalizat< pentru care se scrie codul b caseta cu list 4rocedure b selecie
nume e2eniment asociat obiectului selectat ;de e*emplu, procedura 'lick implicit
pentru controlul buton de comand, 'ommand #utton< b ablon pentru procedura(
e2eniment b ntre declaraiile 4rivate Sub i %nd Sub, se introduce de la tastatur codul
n conformitate cu al!oritmul de calcul.
Se poate opta pentru afiarea tuturor procedurilor n aceeai fereastr de cod sau
pentru afiarea unei sin!ure proceduri la un moment dat.
/entru afiarea tuturor procedurilor n cadrul aceleiai ferestre de cod, se e*ecut
clic pe butonul de 2izualizare a ntre!ului modul, ,ull 0odule Nie!( n colul din st?n!a(
0os al ferestrei de editare a codului, 'ode %ditor sau se e*ecut urmtoarea succesiune
de aciuni= meniul Tools b caseta de dialo! *ptions b seciunea %ditor b !rupul de
setri pentru fereastr, Windo! Settings, bif n caseta de 2alidare din st?n!a lui $efault
to ,ull 0odule Nie!/ Cn acelai !rup de setri pentru fereastr, caseta de 2alidare din
st?n!a lui 4rocedure Separator ser2ete la adu!area sau eliminarea unei linii de
separaie ntre proceduri.
/entru afiarea unei sin!ure proceduri la un moment dat, se e*ecut clicT pe
butonul de 2izualizare a procedurii, 4rocedure Nie!, n colul din st?n!a(0os al ferestrei
Curs 4aze de date(pa!.%, din .5
de editare a codului, 'ode %ditor sau se e*ecut urmtoarea succesiune de aciuni=
meniul Tools b caseta de dialo! *ptions b seciunea %ditor b n !rupul de setri
pentru fereastr, Windo! Settings, se ter!e bifa din caseta de 2alidare din st?n!a lui
$efault to ,ull 0odule Nie!.
5.3.5. &)ecuia a*licaiei informatice n 8i%ual 9a%ic
Dup parcur!erea etapelor de creare a interfeei ;proiectarea formularului<, de
precizare a proprietilor i de scriere a codului, toate fiierele aplicaiei sunt sal2ate i
se trece de la modul de proiectare ;$esign 0ode< la modul de rulare ;e*ecuie< a
proiectului ;1un 0ode<.
/entru a lansa n e*ecuie aplicaia se ale!e opiunea Start din meniul 1un sau se
acioneaz tasta funcional 6$ sau se e*ecut cu butonul st?n! al mouse(ului clicT pe
butonul Start de pe bara cu instrumente.
-erminarea rulrii proiectului se efectueaz cu opiunea %nd din meniul 1un sau
prin apsarea butonului de nc+idere ;'lose< a ferestrei aplicaiei ;colul din dreapta sus
al ferestrei< sau prin apsarea butonului %nd de la bara cu instrumente. Dup terminarea
e*ecuiei aplicaiei, mediul 34 re2ine n modul de proiectare ;$esign 0ode<.
/rin rularea proiectului, se obine fiierul e*ecutabil. 6iierul e*ecutabil se poate
obine direct din meniul ,ile cu opiunea 0ake M%R%.
5.4. &lementele lim$a1ului de *rogramare 8i%ual 9a%ic
5.4.1 #nele reguli de %criere
: proprietate esenial a unui obiect n 3isual 4asic este numele ;&ame<. Numele
este folosit pentru a referi un obiect particular n cadrul codului. Numele obiectului
trebuie s fie su!esti2 i s arate, n cazul controalelor, !rupul de controale cruia i
aparine. Ca urmare, s(a adoptat con2enia conform creia un nume trebuie s fie format
dintr(un prefi* din trei litere ;dat de notaia un!ar< i numele propriu(zis cu
semnificaie pentru utilizarea obiectului. /refi*ul numelui ;tabelul 1< indic, n mod
unic, !rupul de controale din care face parte.
Curs 4aze de date(pa!.%. din .5
&umele obiectelor pot a2ea ma*im "@ de caractere, trebuie s nceap cu o liter
i pot conine numai litere, numere i underscore ; P <. Cn cadrul mai lar! al ntre!ului
limba0 3isual 4asic, cu setul de caractere )SC88 e*tins ce formeaz alfabetul acestui
limba0, se construiesc literalii i identificatorii. 2iteralii sunt compui din iruri de
caractere. 9iteralii pot fi de tipul literali iruri de caractere i sunt scrii ntre !+ilimele,
i de tipul literali numerici zecimali ;n baza 1@<, octali ;n baza .<, +e*azecimali ;n
baza 1%<. Identificatorii pot fi predefinii ;cuvinte rezervate i cuvinte"cheie ce
desemneaz instruciuni, funcii, operatori, metode< sau pot fi definii de utilizator ;ce
desemneaz obiecte, 2ariabile, tipuri de date, constante, etic+ete, proceduri<.
8nstruciunile specifice limba0ului 3isual 4asic se obin prin combinarea literalilor,
identificatorilor i cu2intelor rezer2ate. /entru lizibilitatea codului, fiecare instruciune
se scrie pe o linie separat.
Dac o instruciune nu ncape pe o linie, se poate continua pe linia urmtoare prin
caracterul underscore ;I<. Se pot folosi 2@ astfel de linii de continuare a unei
instruciuni/
&umele sunt folosite la setarea proprietilor la momentul e*ecuiei i n
stabilirea numelor procedurilor pentru e2enimentele obiectelor. Setarea proprietilor
la momentul e+ecuiei se obine prin scrierea unui cod. 6ormatul acestui cod se scrie prin
notarea cu punct i este=
&ume obiect/ proprietate V noua valoare
;*b>ect &ame/ 4roperty V &e! value</
Cn 3isual 4asic, numele obiectelor sunt utilizate n setarea unui cadru de lucru
;frame!ork< corespunztor procedurilor eveniment, pentru scrierea codului. 6ormatul
fiecrei subrutine ;n 3isual 4asic nu e*ist pro!ram principalB toate procedurile
obiectelor sunt subrutine< este=
4rivate Sub *b>ect &ame5%vent ;*ptional .rguments< M %nd Sub/
Curs 4aze de date(pa!.%5 din .5
6ormularului i se ataeaz un obiect. 3isual 4asic construiete automat un cadru
de lucru ;frame!ork< pentru fiecare dintre procedurile eveniment. 7tilizatorul care
construiete aplicaia trebuie s scrie codul procedurilor e2eniment la care corespunde
aplicaia.
5.4.2. ;i*uri de date
Tipurile de date reprezint natura datelor n cadrul unui limba0 de pro!ramare. Cn
limba0ul 3isual 4asic, tipurile de date sunt predefinite ;standard< sau definite de
utilizator. Cn tabelul 2 sunt prezentate tipurile de date predefinite cele mai utilizate.
Tipurile de date definte de utilizator se obin prin combinarea mai multor tipuri de
date e*istente n structuri de date.
$eclararea tipurilor de date definite de utilizator se efectueaz n seciunea
$eclaration ;din modulul standard< cu TypeM%nd Type care are sinta*a !eneral=
W4rivate?4ublicX Type nume5tip5data5utilizator
&ume57 .s tip5data57
NumeI2 )s tipIdataI2
M
&ume5n .s tip5data5n
%nd Type
-ipurile de date definite de utilizator se declar la ni2elul modulelor standard, de
clas sau formular ;numai /ri2ate<. )ceste tipuri de date nu pot fi declarate la ni2elul
unei proceduri.
De e*emplu, tipul de date definite de utilizator 'lient are urmtoarea structur=
Curs 4aze de date(pa!.,@ din .5
Type 'lient
&ume5client .s String Y89
4renume5client .s String Y89
.dresa5client .s .dresa
'&45client .s String Y7S
%nd Type
unde tipul de date definit de utilizator .dresa are structura=
Type .dresa
2ocalitate .s String Y89
Strada .s String Y89
&umar .s Integer
Ludet .s String Y89
%nd Type
5.4.3. 8aria$ile i con%tante
Nariabilele care se folosesc ntr(un pro!ram desemneaz locaii de memorie n
care se stoc+eaz 2alori ce se modific pe timpul e*ecuiei pro!ramului. : 2ariabil n
limba0ul 3isual 4asic are un nume ;identificator< format astfel=
ma*im "@ de caractereB
numele include= litere, numere, underscore ;<=
primul caracter trebuie s fie o literB
nu se pot folosi ca nume de 2ariabile, cu2intele rezer2ate, care fac parte din
setul de cu2inte c+eie al limba0ului.
Corespunztor 2ariabilei care se dorete a fi creat i utilizat, utilizatorul poate s
stabileasc tipul de dat asociat prin folosirea unui sufi* de natura tip de dat care 2a
putea fi stocat sau prelucrat prin intermediul respecti2ei 2ariabile.
'*ist trei moduri de declarare a unei variabile=
a<. 4rin lips ;din oficiu<. Dac 2ariabila nu este definit n nici un mod, ea este
presupus Nariant, adic un tip de dat Nisual #asic care poate conine= 2alori numerice,
iruri de caractere sau dat calendaristic.
b<. Implicit. Declararea implicit este dat prin folosirea sufi*ului corespunztor.
De e*emplu, o 2ariabil de tip String ;ir de caractere< poate fi declarat implicit
astfel=
0aterialZ V G'heresteaG
iar o 2ariabil de tip Integer se poate declara implicit astfel=
'antitatea[ V 8AS
c<. %+plicit. )cest mod de declarare a unei 2ariabile prezint mai multe a2anta0e=
asi!ur efectuarea unui calcul corect prin intermediul instruciunilor care utilizeaz
2ariabilele respecti2e i permite identificarea, !estionarea corect a apariiei literelor
mari sau a literelor mici n numele 2ariabilelor. Datorit acestor a2anta0e, se prefer
lucrul cu tipurile de 2ariabile e*plicite.
Curs 4aze de date(pa!.,1 din .5
/entru a putea lucra cu 2ariabile declarate e*plicit trebuie s fie cunoscut
domeniul de valabilitate( i anume=
1< domeniul procedurilor:
2< domeniul procedurilor n care 2ariabilele se declar static:
3< domeniul formularelor i modulelor:
"< domeniul nivelului global/
De e*emplu, pentru domeniul procedurilor, 2ariabilele sunt declarate folosind
cu2?ntul(c+eie $im=
$im DenumireImaterial .s String
$im Cantitate .s Integer
$im /retIunitar .s Single/
3ariabilele declarate la ni2elul procedurilor i 2or pstra 2alorile numai pe timpul
rulrii procedurilor respecti2e. Din acest moti2 se mai numesc i variabile locale.
/entru ca 2ariabilele s(i pstreze 2alorile i dup terminarea procedurii, se
folosete domeniul procedurilor n care 2ariabilele se declar static( cu2?ntul(c+eie $im
fiind nlocuit cu Static. De e*emplu=
Static DenumireImaterial .s String
Static Cantitate .s Integer
Static /retIunitar .s Single.
/entru domeniul domeniul formularelor i modulelor, 2ariabilele i menin
2alorile la ni2elul formularului ;modulului<, relati2 la toate procedurile prin declararea
2ariabilelor cu $im, dar n partea de declaraii a obiectului !eneral, n fereastra de cod a
formularului.
/entru domeniul domeniul nivelului global, o 2ariabil este disponibil tuturor
procedurilor prezentate n aplicaie, prin declararea n partea de declaraii a obiectului
!eneral din fereastra de cod a unui modul cu a0utorul cu2?ntului c+eie Elobal. De
e*emplu=
Elobal NrIfactura .s 2ong
Elobal DataIfactura .s $ate/
Cn cazul mai multor 2ariabile cu acelai nume, 2ariabilele locale au 2alabilitate
numai n cadrul procedurilor. 9a prsirea acestor proceduri se folosesc 2ariabilele cu
acelai nume, dar definite la ni2el superior.
/rocedura de introducere a acestor 2ariabile !lobale este urmtoarea=
se e*ecut dublu"click oriunde n fereastra formularului pentru a desc+ide
fereastra de editare a codului ;sau se selecteaz opiunea Nie! 'ode din
fereastra 4ro>ect<B
se declar 2ariabilele din formular astfel=
3 *ption %+plicit ;foreaz declararea 2ariabilelor<
1lobal NrIfactura )s 9on!
1lobal DataIfactura )s Date.
Co#.%'#% .(16o!(" &%(!(7'% *# V(.&'! B'.("
Curs 4aze de date(pa!.,2 din .5
Cn cele mai multe situaii, funciile i obiectele limba0ului 3isual 4asic necesit
ar!umente pentru efectuarea operaiilor specifice, ar!umente care reprezint constante
numerice. )cestea sunt !reu de interpretat din punct de 2edere al utilizatorului. /entru a
le face inteli!ibile, limba0ul 3isual 4asic asi!ur nume celor mai utilizate 2alori i
acestea se numesc constante simbolice.
De e*emplu, pentru setarea fondului formularului frm0at pe culoarea albastr se
poate scrie=
frm0at/ #ack 'olor V 9R,,9999 sau, folosind constanta simbolic pentru
albastru=
frm0at/ #ack 'olor V N##lue
7tilizatorul i poate defini propriile constante ca de e*emplu= const TN. V 9/7@/
Constantele de utilizator se scriu cu litere mari, pentru a le distin!e de 2ariabile.
Domeniul de 2alabilitate al unei constante este similar cu cel al 2ariabilelor.
5.4.4. <n%truciuni 8i%ual 9a%ic
\/]/]/7/ 'onstruirea e+presiilor
Cea mai simpl instruciune este cea de atribuire, formatul ei este=
2et variabil V e+presie/ De e*emplu=
2et Nmftva V 'ant Y4u
2et Nfftva VNfftva O Nmftva
2et &ume5client V CEeorgescu 'onstantinG
7tilizatorul poate tasta sau nu cu2?ntul 2et dar este obli!at s e*prime numele
2ariabilei i e*presia pe baza creia se deduce coninutul.
Nmftva V 'ant Y4u
Nfftva VNfftva O Nmftva
&ume5client V CEeorgescu 'onstantinG
8nstruciunile se scriu de obicei pe o sin!ur linie fr delimitator. /entru a putea
scrie mai multe instruciuni pe o linie se folosete separatorul ECF.
*bservaieJ se recomand folosirea atent a acestui delimitator c?nd este folosit
structura If M%nd If/ Dac o instruciune este foarte lun!, ea poate continua pe
urmtoarea linie, folosind caracterul de continuare underscore EIF.
De e*emplu=
4rint Tab;8<: D'*$50.T%1I.2D: Tab;89<: D$%&50.T%1I.2D: Tab;]7<:
D'.&TD: 5
Tab;]U<: D41%T56&IT.1D: Tab;A9<: DN.2505,.1.5TN.D:
Tab;799<: 5 DN.2505'65TN.D
Comentariile ncep cu cu2?ntul(c+eie 1em sau EQ F.
De e*emplu= 1em )cesta reprezint un comentariu Q)cesta reprezint un e*emplu
de comentariu.
\/]/]/8/ *peratori Nisual #asic
:peratorii 3isual 4asic, n ordinea claselor de preceden, sunt prezentai n
tabelul 3. /recedena operatorilor ;clasele de preceden< se refer la ordinea n care se
e*ecut operaiile ntr(o e*presie care conine mai multe tipuri de operatori. /rimii sunt
Curs 4aze de date(pa!.,3 din .5
e*ecutai operatorii de concatenare, dup care urmeaz operatorii arit+metic, operatorii
de comparare i, la sf?rit, operatorii lo!ici.
:peratorii pot fi unari ;se aplic unui sin!ur operand, de e*emplu, &ot< sau binari
;prezint doi operatori, de e*emplu, O/ "( Y( ?( .nd( *r etc.<.
\/]/]/S/ ,uncii Nisual #asic
,uncia ;,unction< reprezint o mulime ordonat de instruciuni creat n scopul
ndeplinirii unei sarcini ;tasT< bine precizat i repetabil. 6uncia returneaz un sin!ur
rezultat. 6unciile 3isual 4asic sunt predefinite sau definite de utilizator. 3isual 4asic
asi!ur o bibliotec 2ariat de funcii predefinite. Cn tabelul " sunt prezentate
principalele funcii predefinite specifice limba0ului 3isual 4asic.
-abel "
Curs 4aze de date(pa!.," din .5
S(au prezentat cele trei structuri de control fundamentale= structura de control
sec2enial ;liniar<, structurile de control alternati2e ;cu ramificaii< i structurile de
control repetiti2e ;de ciclare<. -uturor acestor structuri de control fundamentale le sunt
asociate instruciuni specifice n limba0ul de pro!ramare 3isual 4asic, cu a0utorul crora
poate fi controlat lo!ica de e*ecuie a oricrei sec2ene de pro!ram n 3isual 4asic.
)cestor instruciuni li se altur comenzile asociate operaiunilor de intrareDieire
specifice introducerii datelor de intrare, respecti2 e*tra!erii rezultatelor prelucrrilor,
precum i instruciunile de transfer.
I#.%0&"2(&#( '!%0#'%() 8.'& "& .%0&"%&03 '!%0#'%()39
G Instruciunea If 3 cea mai simpl form a acestei instruciuni este=
If condiie Then instruciune
De e*emplu= If TN.V9/7@ Then NmctvaVNmftva O TN. Y Nmftva
C?nd n instruciunea If, dup cu2?ntul c+eie Then urmeaz mai multe
instruciuni, sinta*a !eneral a instruciunii este=
If condiie Then
Secven de instruciuni
%nd If
De e*emplu=
If TN.V9/7@ Then
NmctvaVNmftva O TN. Y Nmftva
Nfctva V Nfctva O Nmctva
4rint Tab;A9<: Nmctva: Tab;799<: Nfctva
%nd If
: alt form a instruciunii If este= If MThen M %lse M%nd If/
De e*emplu=
If TN. V 9/7@ Then
NmctvaVNmftva O TN. Y Nmftva
Nfctva V Nfctva O Nmctva
4rint Tab;A9<: Nmctva: Tab;799<: Nfctva
%lse
4rint GTN. diferit de 7@[G
%nd If
G Instruciunea Select 'ase
8nstruciunea Select 'ase se folosete n cazul c?nd sunt precizate mai multe
selecii.
Sinta*a !eneral a instruciunii este urmtoarea=
Select 'ase variabil
'ase Is variabil sau e+presie instruciuni
M
'ase Is variabil sau e+presie instruciune
'ase %lse
instruciune
%nd Select
Curs 4aze de date(pa!.,$ din .5
De e*emplu, pentru selecia persoanelor dup cate!oria de 2?rst
;'ategoria5varsta< se procedeaz astfel=
Select 'ase N-rsta
'ase Is \
'ategoria5varsta V G'opii sub 78 aniG
'ase Is 7S T* 7@
'ategoria5varsta V G.dolesceniG
'ase Is 89 T* S\( \9( B9 T* B\
'ategoria5varsta V G.duliG
'ase Is ^ B\
'ategoria5varsta V G#tr-niG
'ase %lse
'ategoria5varsta V G.lte categoriiG
%nd Select
I#.%0&"2(&#( 0$%(%()
'iclarea este asi!urat prin formatul !eneral $o M 2oop. Ciclrile
implementeaz operaiile care se repet de un anumit numr de ori, ciclarea repet?ndu(se
p?n c?nd se ndeplinete o condiie specificat, nt?lnit la nceputul sau sf?ritul
ciclrii.
Instruciuni care implementeaz structuri de control repetitive condiionate
anterior
Din aceast cate!orie fac parte instruciunile $o _While`6ntilaM2oop i While M
Wend( care au urmtoarele sinta*e !enerale=
$o W_While`6ntila conditieX
Secventa5instructiuni57
W%+it $oX
Secventa5instructiuni58
2oop(
respecti2J
While conditie
Secventa5instructiuni
Wend
C?nd conditie este ade2rat ;True<, se e*ecut sec2ena imediat de instruciuni.
8nstruciunea While MWend nu permite ieirea forat din ciclare.
Instruciuni care implementeaz structuri de control repetitive condiionate
posterior
Din aceast cate!orie fac parte instruciunile $o M2oop _While`6ntila, care au
urmtoarea sinta* !eneral=
$o
WSecventa5instructiuni57X
W%+it $oX
WSecventa5instructiuni58X
Curs 4aze de date(pa!.,% din .5
2oop _While`6ntilc conditie
7n e*emplu de utilizare a instruciunii $o M2oop 6ntil este urmtorul=
$o
'ant V Input#o+;DIntroduceti cantitatea materialuluiJ D<
4u V Input#o+;DIntroduceti pretul unitar al materialuluiJ D<
Nmftva V 'ant Y 4u
Nmctva V Nmftva O tva Y Nmftva
4rint 'ant: Tab;]U<: 4u: Tab;A9<: Nmftva: Tab;799<: Nmctva
2oop 6ntil 0sg#o+;D'*&TI&6.TIbD( vbces&o< V vb&o
Ciclarea se repet p?n c?nd rspunsul la ntrebarea EC:N-8N7)-8\F 2a fi &o
;Nu<.
Instruciuni care implementeaz structuri de control repetitive cu contor
Cn acest caz, numrul de iteraii este cunoscut. Din aceast cate!orie face parte
instruciunea ,or M &e+t care are urmtoarea sinta* !eneral=
,or contorVvaloare5initiala To valoare5finala WStep pasX
WSecventa5instructiuni57X
W%+it ,orX
WSecventa5instructiuni58X
Ne*t dcontore.
7n e*emplu de folosire a acestei instruciuni este urmtorul=
,or i V 7 To &rm
'ant V Input#o+;DIntroduceti cantitatea materialului nrJ D d i<
4u V Input#o+;DIntroduceti pretul unitar al materialului nrJ D d i<
Nmftva V 'ant Y 4u
Nmctva V Nmftva O tva Y Nmftva
t+tNmftva V ,ormat;Nmftva( DPPPPPP9/99D<
t+tNmctva V ,ormat;Nmctva( DPPPPPP9/99D<
&e+t i/
3.4.5. 2rearea fiierelor n lim$a1ul 8i%ual 9a%ic
9imba0ul 3isual 4asic ofer posibilitatea lucrului cu fiiere.
6iierele pot stoca date de tipuri diferite ;date numerice, te*t, ima!ini<. )ccesul la
datele unui fiier poate fi= binarB secvenialB aleator.
/entru accesul binar trebuie localizat n fiier numrul de caractere care urmeaz
a fi citite sau scrise. /entru accesul secvenial trebuie parcurse toate nre!istrrile care
preced nre!istrarea dorit. .ccesul aleator este un acces direct la nre!istrrile de
mrime fi*, fr a necesita citirea nre!istrrilor precedente.
*peraiile care se pot e*ecuta asupra fiierelor sunt=
1< deschiderea fiierelor:
2< )nchiderea fiierelor:
3< e+ploatarea fiierelor )n acces secvenial:
"< e+ploatarea fiierelor )n acces aleator/
Curs 4aze de date(pa!.,, din .5
1<. /entru deschiderea unui fiier se folosete comanda *4%&. :rice fiier,
nainte de a se lucra cu el, trebuie s fie desc+is. Comanda *4%& aloc zone de
memorie tampon pentru operaiile de intrareDieire i specific modul de acces asociat
zonei tampon.
6ormatul !eneral al acestei comenzi este=
*4%& nume"fiier ,*1 mod deschidere .S f numr"fiier 2%& V e+presie n
care=
nume"fiier este un ir de caractere care desemneaz numele de fiier dar
poate cuprinde i un director i o unitate de disc. Dac fiierul nu e*ist n
momentul desc+iderii lui, el 2a fi creat c?nd se e*ecut comanda *4%&.
mod de deschidere specific modul n care se desc+ide acel fiier. /entru
accesul sec2enial se poate specifica= .44%&$ pentru adu!are de noi
nre!istrri la sf?ritul fiierului de0a e*istentB I&46T pentru citirea
nre!istrrilor din fiierB
*6T46T pentru crearea unui nou fiier.
/entru accesul binar se specific #I&.1c, iar pentru accesul aleator, 1.&$*0.
numr"fiier este un numr cuprins ntre 1($11. Cn modurile #inary( Input
sau
1andom se poate desc+ide un fiier utiliz?nd un numr nou, fr a nc+ide n
prealabil copia desc+is anteriorB n modurile .ppend sau *utput trebuie s se nc+id n
prealabil fiierul pentru a(l putea desc+ide cu un alt numrB pentru lucrul simultan cu
mai multe fiiere n e*presia fnumr(fiier se utilizeaz funcia ,1%%,I2% care
returneaz urmtorul numr de fiier care poate fi utilizat n instruciunea *4%&B
e+presie este un numr mai mic sau e!al cu 32,%,.
Cn cazul utilizrii fiierelor desc+ise #)ND:&, acest numr corespunde lun!imii
unei nre!istrri.
2<. Hnchiderea fiierelor se e*ecut prin intermediul comenzii '2*S% care are
urmtoarea sinta* !eneral=
'2*S% list"numere"fiiere
n care=
G list"numere"fiiere specific unul sau mai multe numere separate prin 2ir!ul.
C?nd acest ar!ument este absent, se nc+id toate fiierele. C?nd se nc+id fiierele
care au fost desc+ise n mod .ppend sau *utput toate datele care sunt n zona tampon
acordat fiierului 2or fi scrise n fiier nainte de a fi nc+is. 9a e*ecuia instruciunii
'2*S%, asocierea dintre fiier i numrul lui este dezacti2at.
3<. %+ploatarea fiierelor )n acces secvenial. -ipul de acces sec2enial este
utilizat pentru a citi sau scrie o nre!istrare de aceeai lun!ime sau pentru fiiere
compuse din nre!istrri de lun!imi diferite.
Comanda /#8N- f scrie datele linie cu linie ntr(un fiier sec2enial desc+is n
mod *utput sau .ppend.
Sinta*a !eneral a acestei comenzi este=
4rint f numr"fiier( list"e+presii
Curs 4aze de date(pa!.,. din .5
unde=
numr"fiier este numele fiierului.
lista"e+presii este o e*presie ir sau numeric sau o list de e*presii care se
scrie n fiier. /entru a scrie o linie !oal dup numr(fiier se pune 2ir!ul.
Comanda 2I&% I&46T f este folosit pentru a citi o linie dintr(un fiier
sec2enial.
9inia citit este atribuit unei 2ariabile ir. Sinta*a comenzii este=
2I&% I&46T f numr"fiier( nume"variabil n care=
G numr"fiier este numrul fiieruluiB
G nume"variabil este o 2ariabil ir.
2I&% I&46T f citete din fiier caracter cu caracter p?n nt?lnete retur de car,
c+r ;13< sau retur de car i salt la linie nou c+r ;13< _ c+r ;1@<.
"<. %+ploatarea fiierelor )n acces aleator. 9a desc+iderea fiierului n acces
#)ND:& se precizeaz lun!imea nre!istrrii. Scrierea unei nre!istrri n fiier
se face cu comanda 46T f care scrie dintr(o 2ariabil ntr(un fiier. Sinta*a comenzii
este=
46T WfX numr"fiier( numr )nregistrare( nume"variabil n care=
numr"fiier este numrul fiieruluiB
numr )nregistrare reprezint lun!imea nre!istrrii determin?nd poziia
scrieriiB
nume"variabil este numele 2ariabilei care conine datele care urmeaz a fi
scrise.
Citirea unei nre!istrri din fiier se face citind ntr(o 2ariabil dat din fiier.
Comanda este 1'- f de forma=
E%T WfX numr"fiier( numr")nregistrare( nume"variabil, n care=
numr"fiier este numrul alocat n prealabil fiieruluiB
numr")nregistrare este numrul nre!istrrii care nmulit cu lun!imea
nre!istrrii stabilete poziia citiriiB
nume"variabil este numele 2ariabilei care conine datele care urmeaz a fi
citite.
5.4.. &)em*lu de a*licaie informatic n lim$a1ul 8i%ual 9a%ic
S se realizeze un program )n limba>ul Nisual #asic care s calculeze valoarea
total ;fr -3) i cu -3)< a unei facturi de materiale. 6actura conine un numr
precizat de materiale/ $atele de intrare sunt= numrul de materiale de pe factur ;&rm<,
numr factur ;&rf<, data facturii ;$f<, codul materialului ;'odmat<, denumirea
materialului ;$enmat<, cantitate ;'ant< i preul unitar al materialului ;4u<. -3) este de
15]. Datele de intrare 2or fi introduse cu a0utorul casetelor de introducere a datelor prin
dialo! cu utilizatorul ;Input#o+<.
Datele de intrare ;&rm( &rf( $f( 'odmat( $enmat( 'ant( 4u<, datele intermediare
;Nmftva i Nmctva< i datele de ieire sau rezultatele rulrii pro!ramului ;Nfftva i
Curs 4aze de date(pa!.,5 din .5
Nfctva< se 2or afia n casetele te*t ;Te+t#o+< separate din formular. 9ucrul cu casete
te*t n formular reprezint o prim variant de rezolvare a problemei cu calculul i
afiarea 2alorii facturii de materiale cu un numr precizat de materiale.
Narianta a doua de rezolvare a problemei const n afiarea, sub form de tabel,
pe formular, a datelor de intrare, a datelor intermediare i a rezultatelor rulrii aplicaiei.
Cn aceast 2ariant de rezol2are a problemei, nu se mai folosesc casete te*t ;Te+t#o+<.
Cn ambele 2ariante de rezol2are a problemei, se pre2d butoane de comand
;'ommand #utton< pentru calculul i afiarea unui material ;fr -3) i cu -3)<
butonul C)9C79')J), pentru calculul 2alorii facturii ;fr -3) i cu -3)<
butonul )68S')J) ;pentru afiarea 2alorii facturii fr -3) i cu -3)< i pentru
ieirea din pro!ram butonul 8'S8#'.
8arianta 1 de rezol.are a *ro$lemei
Schema logic este prezentat n fi!ura 3. 'ste folosit o structur de control
repetiti2 cu contor ;i<, condiionat anterior care se implementeaz cu instruciunea ,or
M&e+t.
'odul programului n limba0ul 3isual 4asic, pentru 2arianta 1 de rezol2are, este
urmtorul=
*ption %+plicit
$im &r5factura .s 2ong
Curs 4aze de date(pa!..@ din .5
Curs 4aze de date(pa!..1 din .5
$im $ata5factura .s $ate
$im Nmftva .s $ouble
$im Nmctva .s $ouble
$im Nfftva .s $ouble
$im Nfctva .s $ouble
$im &rm .s #yte
'onst tva V 9/7@
4rivate Sub cmd'alcul5'lick;<
$im 'od5mat .s 2ong
$im $en5mat .s String
$im 'ant .s Integer
$im 4u .s Single
$im i .s #yte
&r5factura V Input#o+;DIntroduceti numarul facturiiJ D<
t+t&rf V ,ormat;&r5factura( DPPPPPP9D<
$ata5factura V Input#o+;DIntroduceti data facturii sub forma zz?ll?aaaaD<
t+t$f V ,ormat;$ata5factura( DShort $ateD<
&rm V Input#o+;DIntroduceti numarul de materiale de pe facturaJ D<
Nfftva V 9
Nfctva V 9
,or i V 7 To &rm
'od5mat V Input#o+;DIntroduceti codul materialului nrJ D d i<
t+t'odmat V ,ormat;'od5mat( DPPPPPP9D<
$en5mat V Input#o+;DIntroduceti denumirea materialului nrJ D d i<
t+t$enmat V ,ormat;$en5mat( DPPPPPP9D<
'ant V Input#o+;DIntroduceti cantitatea materialului nrJ D d i<
t+t'ant V ,ormat;'ant( DPPPPPP9D<
4u V Input#o+;DIntroduceti pretul unitar al materialului nrJ D d i<
t+t4u V ,ormat;4u( DPPPPPP9/99D<
Nmftva V 'ant Y 4u
Nmctva V Nmftva O tva Y Nmftva
Nfftva V Nfftva O Nmftva
Nfctva V Nfctva O Nmctva
t+tNmftva V ,ormat;Nmftva( DPPPPPP9/99D<
t+tNmctva V ,ormat;Nmctva( DPPPPPP9/99D<
&e+t i
%nd Sub
4rivate Sub cmd.fisare5'lick;<
t+tNfftva V ,ormat;Nfftva( DPPPPPP9/99D<
t+tNfctva V ,ormat;Nfctva( DPPPPPP9/99D<
%nd Sub
Curs 4aze de date(pa!..2 din .5
4rivate Sub cmd%+it5'lick;<
%nd
%nd Sub
1ezultatele rulrii programului n prima 2ariant de rezol2are a problemei sunt
prezentat n fi!ura ".
8arianta 2 de rezol.are a *ro$lemei
Schema logic este prezentat n fi!ura $, 'ste utilizat o structur de control
repetiti2 fr contor condiionat posterior. 8mplementarea acestei structuri n pro!ram
se 2a face cu instruciunea $o M2oop 6ntil/ /e baza acestor considerente, nu mai sunt
necesare 2ariabilele i i &rm folosite n 2arianta 1 de rezol2are a problemei.
'odul programului n limba0ul 3isual 4asic, pentru rezol2area n varianta 8, este
urmtorul=
*ption %+plicit
$im &rf .s 2ong
$im $f .s $ate
$im Nmftva .s $ouble
Curs 4aze de date(pa!..3 din .5
6i!. $. Sc+ema lo!ic pentru 2arianta 2 de rezol2are a problemei
Curs 4aze de date(pa!.." din .5
$im Nmctva .s $ouble
$im Nfftva .s $ouble
$im Nfctva .s $ouble
'onst tva V 9/7@
4rivate Sub cmd'alcul5'lick;<
$im 'od5mat .s 2ong
$im $en5mat .s String
$im 'ant .s Integer
$im 4u .s Single
&rf V Input#o+;DIntroduceti numarul facturiiJ D<
$f V Input#o+;DIntroduceti data facturii sub forma zz?ll?aaaaD<
'ls
4rint Tab;79<: D,.'T61. &1/D: Tab;8U<: &rf: Tab;]\<: D$I& $.T. $% D:
Tab;A9<: $f
4rint String;779( DVD<
4rint Tab;8<: D'*$50.T%1I.2D: Tab;89<: D$%&50.T%1I.2D: Tab;]7<:
D'.&TD: 5
Tab;]U<: D41%T56&IT.1D: Tab;A9<: DN.2505,.1.5TN.D: Tab;799<: 5
DN.2505'65TN.D
4rint String;779( DVD<
Nfftva V 9
Nfctva V 9
$o
'od5mat V Input#o+;DIntroduceti codul materialuluiJ D<
$en5mat V Input#o+;DIntroduceti denumirea materialuluiJ D<
'ant V Input#o+;DIntroduceti cantitatea materialuluiJ D<
4u V Input#o+;DIntroduceti pretul unitar al materialuluiJ D<
Nmftva V 'ant Y 4u
Nmctva V Nmftva O tva Y Nmftva
Nfftva V Nfftva O Nmftva
Nfctva V Nfctva O Nmctva
4rint Tab;8<: 'od5mat: Tab;89<: $en5mat: Tab;]7<: 'ant: Tab;]U<: 4u: 5
Tab;A9<: Nmftva: Tab;799<: Nmctva
2oop 6ntil 0sg#o+;D'*&TI&6.TIbD( vbces&o< V vb&o
4rint String;779( DVD<
%nd Sub
4rivate Sub cmd.fisare5'lick;<
4rint Tab;89<: DN.2*.1% ,.'T61. ,.1. TN. V D: Tab;B9<: Nfftva:
4rint Tab;89<: DN.2*.1% ,.'T61. '6 TN. V D: Tab;B9<: Nfctva:
%nd Sub
4rivate Sub cmd%+it5'lick;<
%nd
%nd Sub
Curs 4aze de date(pa!..$ din .5
1ezultatele rulrii programului n a doua 2ariant de rezol2are a problemei, sunt
prezentate n fi!ura %
=N;R&9>R< D& (#;"&8(-#(R&
1. Care sunt asemnrile i deosebirile eseniale ntre conceptele de dat,
informaie i cunotin\
2. 'numerai i caracterizai conceptele utilizate n or!anizarea datelor.
3. Ce este un fiier de date\
". Cum se definete relaia binar\
$. Clasificai structurile de date.
%. /rezentai tipurile de modele de date.
,. C?te tipuri de le!turi ntre entiti cunoatei i care sunt ele\
.. Ce se nele!e prin procesul de prelucrare automat a datelor\
5. Ce tipuri de structuri de control cunoatei\
1@. Ce este un pro!ram pe calculator\
11. Care sunt etapele de realizare a unui pro!ram pe calculator\
12. Ce se nele!e prin compilarea i editarea de le!turi a unui pro!ram\
13. Definii conceptele de baz ale pro!ramrii orientate pe obiecte.
1". Ce se nele!e prin metod\
1$. Care sunt elementele mediului inte!rat de dez2oltare\
1%. Cum se realizeaz o aplicaie n 3isual 4asic\
1,. Cum se stabilesc proprietile obiectelor\
1.. Cum se realizeaz scrierea codului\
Curs 4aze de date(pa!..% din .5
15. Cum se creeaz procedurile pentru e2enimente\
2@. Cum se creeaz un proiect\
21. Definii fiierul proiect.
22. Ce tipuri de 2ariabile n 3isual 4asic cunoatei\
23. Cum se declar o 2ariabil n 3isual 4asic\
2". Ce reprezint instruciunile de atribuire\
2$. Care sunt instruciunile alternati2e n 3isual 4asic\
2%. Care sunt instruciunile repetiti2e n 3isual 4asic\
2,. Care sunt instruciunile de salt n 3isual 4asic\
2.. Ce particulariti prezint accesul aleator la date\
25. Care sunt instruciunile de scriere ntr(un fiier sec2enial\
3@. Care sunt instruciunile de citire i de nc+idere a fiierelor\
;&S;& +R<->
1. Din punctul de 2edere al compunerii, datele se clasific n=
a< date elementare sau scalareB
b< date introduse cu tastaturaB
c< date memorateB
d< date compuse.
2. Dup !radul asocierii i dup obli!ati2itatea participrii la asociere, tipurile de
le!turi ntre entiti se difereniaz n=
a< asocieri pariale de tip Eunu la unuFB
b< asocieri pariale de tip Eunu la muliFB
c< asocieri totale de tip Eunu la muliFB
d< asocieri totale de tip Eunu la unuFB
e< asocieri pariale de tip Emuli la muliFB
f< asocieri totale de tip Emuli la muliF.
3. 1spundei cu .devrat sau ,als=
Noiunea de aplicaie informatic nu este similar cu aceea de sistem informatic.
". Completai cu2?ntul lips=
2imba>ul de programare este un limba0 artificial ce se folosete pentru definirea
unui ir de ZZZZZZZZZ , care pot fi prelucrate i e*ecutate pe un calculator.
$. /recizai destinaia ferestrelor mediului integrat de dezvoltare Nisual #asic,
prin indicarea corespondenei ntre denumirea ferestrei ;)Z6< i destinaia acesteia ;1Z
%<=
%. 1spundei cu $a sau &u=
Curs 4aze de date(pa!.., din .5
'iclarea este asi!urat prin formatul !eneral $o M 2oop. Ciclrile
implementeaz operaiile care se repet de un anumit numr de ori, ciclarea repet?ndu(se
p?n c?nd se ndeplinete o condiie specificat, nt?lnit la nceputul sau sf?ritul
ciclrii.
,. Care este sec2ena de pro!ram 3isual 4asic corect\
.. C?te etape sunt necesare pentru realizarea unei aplicaii 3isual 4asic\
R3.$&#.&0( !' %.%! ?0(!3C 1. ;a,d<B 2. ;toate<B 3. ;)de2rat<B ". ;instruciuni<B
$. ;1(DB2(6B3()B"(CB$(4B%('<B %. ;Da<B ,. ;b<B .. ;3</
D. BIBLIOGRAFIE
1. 1+eor!+e /opa, &atei 8liescu, 4o!dan 3asiliuc #aze de date/ .ccess, 'd. 7ni2. -itu &aiorescu,
4ucureti, 2@@".
2. 7dric &. ( 0odelare orientat obiect, 'd. Cison, 4ucureti, 2@@@.
3. 6lorescu 3., Stanciu 3. #aze de date, 'd. 'conomic, 4ucureti, 1555.
". /opa 1+., 4erbec 6. #aze de date/ .ccess, 'd. Cison, 4ucureti, 2@@1.
$. 6usaru, Doina, 1+erasim J., 4?ra )dela, Informatic de gestiune 3 limba>e de programare i
sisteme de gestiune a bazelor de date/ Teste gril( 'ditura 6undaiei 1om-nia de 0-ine, 4ucureti,
2@@$.
%. 1+. /opa, &atei 8liescu, 3aleria &are ( 4rogramarea calculatorelor/ Nisual #asic, 'd. 7ni2. -itu
&aiorescu, 4ucureti, 2@@".
,. Ja+arie, D., #oca, 8., 4roiectarea obiectual a sistemelor informatice( 'ditura Dual -ec+,
4ucureti, 2@@2.
.. Dospinescu, :., $ezvoltarea aplicaiilor )n Nisual #asic/ &%T, 'ditura /olirom, 8ai, 2@@".
Curs 4aze de date(pa!... din .5
5. &i+ai Dra!nescu $e la societatea informaional la societatea cunoaterii, 'd. -e+nic,
4ucureti, 2@@3
ggg 0icrosoft Nisual #asic B/9/ Ehidul programatorului, 'ditura -eora, 4ucureti, 2@@2
Curs 4aze de date(pa!..5 din .5

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