Sunteți pe pagina 1din 86

BOLDEA COSTIN RADU

Sisteme de Gestiune a
Bazelor de Date
Suport de curs
2010
CUPRINS
Capitolul 1. INTRODUCERE IN STUDIUL LIBA!ELOR DE PRO"RAARE##.
##########################..$
1.1. Noiuni generale privind limbajele de programare
1.2. Clasificarea limbajelor de programare
1.3. Structurarea i organizarea datelor. Tipuri de date utilizate n limbajele de programare
1.!. Caracterizarea principalelor limbaje de programare
1.". Criterii de selecie a limbajelor de programare
CAPITOLUL 2 BA%E DE DATE &I SISTEE DE "ESTIUNE A BA%ELOR DE
DATE#####.############################1'
2.1 Concepte utilizate n studiul bazelor de date i al sistemelor de gestiune a bazelor de date
2.2. #odele de structurare a datelor n baze de date
2.3. Sisteme de gestiune a bazelor de date
2.!. $r%itecturi multiutilizator pentru sisteme de gestiune a bazelor de date
2.". &rotecia i securitatea bazelor de date
2.'. $dministrarea datelor i a bazelor de date
Capitolul $. ODELUL RELA(IONAL AL DATELOR############)2
3.1. (lementele modelului relaional
3.2. $lgebra relaional)
3.3. Studiul dependenelor funcionale
3.!. Normalizarea bazelor de date relaionale
Capitolul *. LIBA!E DE INTERO"ARE A BA%ELOR DE DATE + S,L####.-'
!.1. S*+ , (voluie i performane
!.2. Comenzi pentru descrierea datelor-
!.3. Comenzi pentru interogarea bazelor de date

2
Capitolul 1. INTRODUCERE IN STUDIUL LIBA!ELOR DE PRO"RAARE
1.1. No.iu/i 0e/erale pri1i/d li23a4ele de pro0ra2are
1.2. Clasi5icarea li23a4elor de pro0ra2are
1.$. Structurarea 6i or0a/i7area datelor. Tipuri de date utili7ate 8/ li23a4ele de
pro0ra2are
1.*. Caracteri7area pri/cipalelor li23a4e de pro0ra2are
1.). Criterii de selec.ie a li23a4elor de pro0ra2are
1.1. Noiuni generale privind limbajele de programare
.dat) cu apariia calculatoarelor electronice a ap)rut i noiunea de limbaj de
programare ca mijloc de dialog om,calculator.
+imbajele de programare aparin setului de limbaje artificiale create de om i servesc
la e/primarea0 sub form) de instruciuni e/ecutabile de c)tre calculator0 a algoritmului de
rezolvare a unei probleme. $lgoritmul indic) modul de prelucrare a datelor iniiale i
modificarea lor pas cu pas p1n) la obinerea rezultatelor finale. Natura datelor0 organizarea lor
i relaiile dintre ele trebuie precizate prin program. +imbajele de programare ofer) facilit)i
corespunz)toare de descriere.
2efiniia modern) consider) limbajul de programare un instrument de dialog om,
calculator care are proprietatea c) este neles de ambii participani la dialog.
Toate limbajele de programare se bazeaz) pe un set de simboluri elementare 3de
obicei0 literele mari i mici ale alfabetului latin0 cifrele sistemului zecimal0 caractere speciale
34 , 5 60 7...80 numit al5a3etul li23a4ului. $ceste simboluri sunt asamblate n cuvinte,c%eie
sau e/presii care formeaz) 1oca3ularul li23a4ului 3instruciuni0 comenzi0 funcii0 variabile0
constante8. $nsamblul regulilor prin care se construiesc instruciunile constituie 0ra2atica
li23a4ului.
(/primarea regulilor gramaticale din limbajul de programare se realizeaz) cu ajutorul
unui 2etali23a4. (lementele de metalimbaj apar n documentaiile care nsoesc produsele,
program. Cele mai des utilizate elemente de metalimbaj sunt9
: cuvinte scrise cu majuscule reprezint) cuvinte rezervate i trebuie folosite e/act n aceeai
form). 2e e/emplu.9 comenzi0 clauze i funcii n ;isual <o/&ro , +=ST0 C>($T(0 <.>0
==<38-
: cuvinte utilizator , sunt scrise cu litere mici i reprezint) construcii care vor fi nlocuite
de utilizator. 2e e/emplu9 codprod0 um0 cant0 pretu-
: ? @, ncadreaz) o construcie opional) 3programatorul decide dac) acestea vor fi sau nu
folosite8. 2e e/emplu9 +=ST ?<=(+2S AlistaBc1mpuriC@ etc.-
: D E sau F , sau e/clusiv din elementele prezente se va alege unul singur. (/emplu9 T.
&>=NTF T. <=+(0 .NF.<<0 etc.-
Gn practic) e/ist) i ncerc)ri de standardizare a metalimbajelor0 cele mai cunoscute
fiind HN< 3HacIus Naur <orm8 i (HN<3(/tended HN<8.
+imbajele de programare servesc la transformarea ntr,un format accesibil
calculatorului a modului de rezolvare a unei probleme. Jtiliz1nd limbajul de programare0
omul va ntocmi un program care descrie problema de rezolvat n termeni inteligibili pentru
calculator. Pro0ra2ul reprezint) un ansamblu de instruciuni i6sau comenzi scrise cu
ajutorul unui limbaj de programare care descriu prelucr)rile de date pe care trebuie s) le
e/ecute calculatorul n scopul rezolv)rii unei probleme. =nstruciunile i6sau comenzile
reprezint) informaii codificate prin care se transmite calculatorului aciunea ce urmeaz) a fi
e/ecutat). +a r1ndul lor acestea pot fi structurate n dou) mari grupe9
: de prelucrare prin care se realizeaz) introducerea6e/tragerea datelor n6din
sistem0 efectuarea operaiunilor de calcul0 efectuarea transferului de date ntre
diferite zone de memorie etc.-
3
: de organizare 3de structurare intern) a programului8 ce asigur) codificarea
structurilor de control i de apelare sau de salt la alte programe.
$nsamblul activit)ilor de concepere0 dezvoltare i ntreinere a programelor poart)
denumirea de programare. &rogramul scris de om se numete program,surs). &entru a putea
fi neles de calculator el trebuie adus n format e/ecutabil. .binerea formatului e/ecutabil se
realizeaz) prin traducere0 cu ajutorul unor programe speciale0 care pot fi interpretoare sau
compilatoare.
<igura 1.1 ilustreaz) procesul de programare.
Figura 1.1. Procesul de programare
$a cum rezult) din figura 1.10 n cazul problemelor simple0 calea de la problema de
rezolvat la rezultate este relativ uoar)0 put1nd fi sintetizat) astfel9 definirea i analiza
problemei0 elaborarea algoritmului de rezolvare a problemei i reprezentarea acestuia0
codificarea algoritmului ntr,un program utiliz1nd un limbaj de programare0 transformarea
programului surs) n program e/ecutabil 3prin compilare sau interpretare80 testarea i
documentarea0 e/ploatarea i ntreinerea.
Gn cazul problemelor comple/e0 activitatea de programare cap)t) caracteristicile
activit)ilor de tip industrial0 presupun1nd implicarea mai multor categorii de specialiti0 mai
mult timp i mai muli bani. Gn acest caz0 rezultatul activitit)ii de programare este produsul9
pro0ra2. $cesta ilustreaz) tocmai trecerea de la KartizanalL la KindustrialL n programare.
&rin produs,program se desemneaz) at1t programul propriu,zis0 c1t i documentaia pentru
elaborarea0 implementarea i ntreinerea sa. 2ocumentaia poate fi inclus) n program prin
linii de documentare6linii comentariu0 care nu influeneaz) modul de derulare a e/ecuiei
programului0 facilit1nd doar nelegerea sa sau ataat) programului sub forma dosarului de
programare care la r1ndul s)u cuprinde descrierea problemei i a funciilor sale0 descrierea
structurii datelor 3de intrare i de ieire80 descrierea algoritmului de rezolvare a problemei0
programul surs)0 descrierea condiiilor de implementare i e/ploatare.
&rodusele,program sunt realizate at1t de c)tre firme specializate0 c1t i de firme care,
i dezvolt) propriile aplicaii.
=ndustrializarea activit)ii de programare a determinat apariia0 n 1M'N0 a conceptului
de i/0i/eria pro0ra2:rii ;so5t<are e/0i/eeri/0=0 un domeniu al informaticii care se ocup)
cu identificarea celor mai adecvate soluii0 metode0 procedee i instrumente care s) conduc)0
n condiii optime de productivitate i eficien)0 la elaborarea de produse,program
&rogramator
pe baza analizei
problemei de rezolvat
instruciuni
pentru calculator
Scrie
programul
Traducere automat)
n limbaj main)
>eguli i restricii ale
limbajelor de programare
&rogram
Calculator
&roblema
3utilizator8
e/ecut)
programul
>ezultat
!
performante. 2e la ingineria program)rii s,a trecut apoi la i/0i/eria pro0ra2:rii asistate de
calculator 3C$S(, Computer $ided SoftOare (ngineering8. $ltfel spus0 calculatorul i face
singur programele0 numai c) trebuie s),i furniz)m singuri intr)rile ntr,un mod ordonat0 dup)
anumite reguli.
+a primele limbaje de programare trecerea de la programele surs) la programele
e/ecutabile se realiza prin comenzi distincte n care se specificau e/plicit operaiunile de
efectuat. Jlterior0 evoluia s,a orientat c)tre 2edii de pro0ra2are. #ediile de programare
reprezint) pac%ete de programe care asigur) integrarea urm)toarelor funcii9 introducerea i
editarea programului surs)0 interpretarea sau compilarea0 respectiv editarea de leg)turi0
nc)rcarea i lansarea n e/ecuie0 depanarea programului. $ctualmente majoritatea limbajelor
de programare sunt integrate n medii de programare. Spre e/emplu0 ;isual Hasic se poate
considera c) reprezint) un mediu de programare care ofer) un editor de te/te0 un interpretor0
un nc)rc)tor de programe0 un depanator de programe. Gn puls0 ofer) facilit)i de gestionare a
fiierelor prin meniul <=+( i o informare complet) i rapid) prin sistemul P(+&.
1.2. Clasificarea limbajelor de programare
Cea mai folosit) clasificare este cea care grupeaz) limbajele de programare pe
generaii i urm)rete periodizarea evoluiei calculatoarelor.
Qeneraiile de limbaje care pot fi identificate sunt9
Qeneraia = , limbajele n cod main)0 n care toate instruciunile sunt numerice 3iruri
de R i 180 fiind redactate plec1nd de la un cod binar propriu fiec)rei maini 3calculator8.
Jtilizatorul trebuia s) in) minte toate codurile numerice0 ceea ce la calculatoarele moderne ar
nsemna mii de coduri i adresele de memorie utilizate0 astfel c) productivitatea este foarte
redus). &rogramele scrise n limbaj mainS puteau fi e/ecutate numai pe calculatorul pentru
care au fost elaborate 3nu erau portabile8. &rincipalele deficiene ale acestor limbaje sunt
legate de dificult)ile de corectare a programelor0 aceste programe fiind mari0 iar erorile greu
de identificat.
Qeneraia a ==,a , limbajele de asamblare0 care nlocuiesc codurile numerice cu cele
mnemonice0 adresele fiind alocate de sistem. Jtilizarea acestor limbaje presupune e/istena
unor programe speciale numite asambloare care s) traduc) instruciunile n limbaj cod
main). =nstruciunile se traduc 1 la 10 adic) fiec)rei instruciuni n limbaj de asamblare i
corespunde o instruciune n cod main). .peraia poart) numele de asamblare0 iar rezultatul
se numete program obiect executabil. &entru a reprezenta codurile de operaii i poziiile din
memorie se folosesc simboluri0 motiv pentru care aceste limbaje se mai numesc i limbaje
simbolice.
(/ecuia unui program surs) scris ntr,un limbaj de asamblare are loc pe parcursul a
dou) etape9 asamblarea i e/ecuia propriu,zis). Sc%ematic se obine urm)toarea reprezentare
3figura nr. 1.289
Fig. nr.1.2. Tratarea programelor n limbaje de asamblare
+imbajele de asamblare permit utilizarea de abrevieri alfabetice 3mnemonice8 care
sunt mai uor de memorat dec1t adresele scrise n binar 3 (/. $22 , adunare0 2=; T
&.S.
&rogram
e/ecutabil
1. $samblare
2. (/ecuie
>ezultate
finale
2ate
$samblor
"
mp)rire8. (le simplific) enorm programarea0 deoarece elimin) memorarea poziiilor din
memorie pentru date i instruciuni. Totodat)0 limbajul de asamblare r)m1ne un limbaj
orientat main) deoarece instruciunile n limbaj de asamblare corespund instruciunilor n
limbaj main) conform modelului de calculator utilizat. . singur) instruciune n limbaj de
asamblare corespunde unei singure instruciuni n limbaj main) i deci este nevoie de acelai
num)r de instruciuni n ambele cazuri.
$ceste limbaje sunt utilizate pentru elaborarea softOare,ului de sistem0 datorit)
vitezei de e/ecuie ridicate0 c%iar dac) limbajele evoluate solicit) un efort de programare mai
mic.
(/emplu9 S) se calculeze media aritmetic) a trei numere #U3V4W4X863
+2$ V , ncarc) V n registrul $
$22 W , adun) W la coninutul registrului $
$22 X ,adun) X la coninutul registrului $
2=; 3 , mparte rezultatul la 3
ST$ H , stoc%eaz) rezultatul final n H
+imbajele n cod main) i de asamblare sunt limbaje de nivel redus.
Qeneraia a ===,a , limbajele de nivel nalt sau evoluate0 care au dominat peste 3R de
ani piaa informaticii. >eprezentative sunt9 <.>T>$N pentru ingineri i matematicieni i
C.H.+ pentru mediul economic. Caracteristica lor principal) este proceduralitatea 3adic)
urm)resc pas cu pas procedura de rezolvare a unei probleme8. $u fost create mii de astfel de
limbaje0 unele av1nd destinaii precise 3<.>T>$N i $+Q.+ sunt destinate calculelor
tiinifice0 C.H.+ este destinat aplicaiilor economice0 S=#J+$ fiind un limbaj de simulare0
etc.80 iar altele av1nd utilizare larg) 3H$S=C0 &$SC$+0 C8. Yi instruciunile scrise n aceste
limbaje trebuie traduse n cod main)- pentru aceasta se utilizeaz) dou) categorii de
translatoare9
: compilatoare , sunt translatoare care citesc tot programul n limbajul n care
este scris 3n cod surs)8 i apoi l traduc n cod main) 3sunt utilizate pentru C.H.+0
<.>T>$N8-
: interpretoare , sunt translatoare care citesc pe r1nd fiecare instruciune din
programul surs)0 o traduc i o e/ecut) 3sunt utilizate pentru H$S=C0 &$SC$+8.
&rin urmare programele surs) redactate n limbaje evoluate sunt supuse unui proces
de KtratareL desf)urat pe trei faze9
: compilarea 6interpretarea-
: editarea de leg)turi-
: e/ecuia propriu,zis).
Sc%ematic se obine urm)toarea reprezentare 3figura nr.1.3 89
<ig.1.3. Tratarea programelor n limbaje evoluate
$vantaje9 sunt mai uor de nv)at i utilizat dec1t limbajele de asamblare- sunt
portabile 3pot fi utilizate i pe un alt calculator8- pot fi oric1nd modificate i actualizate.
&.S.
>ezultate
finale
2ate
1. Compilare6
interpretare
2. (ditare de
leg
)
turi
3. (/ecu

ie
&... imagine
memorie
e/ecutabil
&rogram ..
Compilator6
interpretor
(ditor de
leg
)
turi
'
C1tigul de productivitate este remarcabil9 o linie de program scris cu un limbaj de generaia a
===,a reprezint) mai mult de 1RR de linii de instruciuni n cod,main). 2ezavantaje9 au reguli
i sinta/e rigide i deloc uor de nv)at pentru un utilizator nespecialist- solicit) mult timp
pentru translatare n cod main) 3descoperirea unei erori nseamn) nu numai corectarea ei0 ci
i traducerea din nou n cod main)8.
(/emplu9 <olosind limbaje din generaia a 3,a s) se codifice V U W T X
Gn C.H.+ SJHST>$CT X <>.# W Q=;=NQ V
Gn H$S=C +(T V U W , X
GN &$SC$+ V 9 U W,X
$ceste limbaje se caracterizeaz) prin proceduralitate0 adic) evenimentele se succed
secvenial0 unul dup) altul. (/ist) n literatura de specialitate o mp)rire a +Q3 n generaii.
Cu meniunea c) e/ist) i e/cepii0 iat) care sunt acestea9
: generaia = se ncadreaz) n intervalul 1M"! T 1M"N. Comenzile erau bazate pe
e/presii matematice. >eprezentani9 <.>T>$N =0 $+Q.+ "N-
: generaia a ==,a acoper) intervalul 1M"M T 1M'1 3<.>T>$N ==0 $+Q.+ 'R0
C.H.+8. $par subrutinele programate0 se definesc structurile de date i lucrul cu
fiierele de date-
: generaia a ===,a cuprinde intervalul 1M'2 , 1MZR i este reprezentat) de limbaje
de programare structurate 3$+Q.+ 'N0 &+610 &$SC$+0 H$S=C0 C.H.+
strucutrat8. Se impun principiile program)rii structurate. >ealizarea unui program
ncepe cu definirea principalilor pai i continu) n aceast) manier) p1n) c1nd
ntregul program este dezvoltat. =deea structur)rii a ap)rut datorit) problemelor ce
ap)reau la dezvoltarea de aplicaii comple/e0 cea mai relevant) fiind lipsa viziunii
de ansamblu asupra programului. 2ei primele concepte ale program)rii
structurate au ap)rut nc) de la nceputul anilor ['R0 implementarea lor s,a f)cut n
timp0 n sprijinul acesteia cre1ndu,se metodologiile care ofereau direciile de
urmat n proiectarea de aplicaii0 pas,cu,pas.
: dup) anii [ZR au ap)rut tot mai multe tipuri de +&0 astfel ca ncadrarea lor n
generaii a devenit tot mai dificil). &rogramarea structurat) s,a generalizat. Gn
domeniul aplicaiilor economice0 C.H.+ deinea NR7 din totalul acestora.
Qeneraia a =;,a 3!Q+8 , limbajele de nivel foarte nalt0 care au ap)rut n primul r1nd
pentru utilizatorii nespecialiti0 numii i utilizatori finali. Se caracterizeaz) prin
neproceduralitate 3utilizatorul trebuie s),i spun) calculatorului C( S\ <$C\0 i nu CJ# S\
<$C\8 i este un limbaj conversaional0 interactiv. Se bazeaz) n mare m)sur) pe utilizarea
meniurilor i interfeelor grafice0 fiind uor de nv)at 3ofer) facilit)i de tip P(+& sau
]izard8.
(venimentul ce a perturbat evoluia limbajelor procedurale a fost apariia i0 mai ales0
r)sp1ndirea &C,urilor. +a mijlocul anilor [NR a nceput declinul mainframe,urilor si al
prelucr)rii centralizate a datelor. #anagerii erau nc1ntai de posibilit)ile pe care le oferea
&C,ul n a,i rezolva singuri multe din probleme0 mai ales odat) cu apariia interfeelor
grafice. Jtilizatorii de &C,uri nu,i propuneau s) rezolve probleme complicate i s) dezvolte
aplicaii comple/e0 astfel c) nu aveau nevoie de limbaje declarative. (i cereau limbaje grafice0
prietenoase0 de aceea limbajele procedurale au evoluat altfel dec1t c)tre declarativ. $ =;,a
generaie de limbaje de programare a fost orientat) c)tre utilizatori0 fiind numit) i generaia
utilizatorilor finali. &roduc)torii de softOare s,au orientat c)tre crearea de instrumente i
medii de lucru prietenoase0 iar accentul s,a mutat pe interfaa cu utilizatorul. . interfa)
grafic)0 simpl)0 dar nu simplist)0 care s) ofere utilizatorului un mediu de lucru eficient i
prietenos n acelai timp a devenit c%eia unui soft de succes.
Caracteristicile limbajelor de generaia a I!a pot "i rezumate ast"el#
neproceduralitate$ inter"a% prietenoas% &i e"icacitate.
#ajoritatea specialitilor grupeaz) limbajele din generaia a,!,a n urm)toarele clase
de produse9
: limbaje 3instrumente8 de interogare-
: generatoare de rapoarte-
: generatoare de aplicaii i 6sau proiecte-
Z
: generatoare de grafice-
: instrumente de sprijinire a deciziilor.
+a ora actual) constructorii de softOare ofer) produse care integreaz) toate aceste
funciuni. 2e e/emplu0 programul de calcul tabelar (VC(+ este un instrument de sprijinire a
procesului decizional0 dar care ofer) i o vast) gam) de alte facilit)i9 generarea graficelor0
obinerea0 actualizarea i interogarea bazelor de date0 generarea rapoartelor etc.
Li23a4ele de i/tero0are la r1ndul lor pot fi de dou) tipuri9
: limbaje de interogare simpl% care permit consultarea fiierelor i bazelor de date pe un
singur tip de nregistrare logic) utiliz1nd un criteriu de selecie mai puin comple/-
: limbaje de interogare complex% care permit consultarea mai multor tipuri de nregistr)ri
logice din una sau mai multe baze de date devenind posibil) asocierea unor structuri
foarte diferite.
Gn cea de a doua subgrup) intr) S*+ 3Structure *uer^ +anguage80 *H( 3*uer^ H^
(/ample80 Piper TalI0 =NTT(+(CT0 etc. Cea mai mare r)sp1ndire o cunoate S*+0 un
nucleu S*+ fiind prezent n orice sistem de gestiune a bazelor de date 3$cces0 <o/&ro0
.racle8.
"e/eratoarele de rapoarte ndeplinesc0 n principal0 trei funcii eseniale9 selecia
informaiilor solicitate0 ordonarea datelor dup) criterii prestabilite i editarea rapoartelor ntr,
o structur) formalizat) folosind un num)r minim de instruciuni de programare.
Gn general0 toate sistemele de gestiune a bazelor de date precum i programele de
calcul tabelar 3spreads%eet,urile8 au ncorporate generatoare de rapoarte. Cele mai populare
instrumente din aceast) categorie sunt9 (as^trieve &lus0 2atatrieve0 #arI ;
1
.
(/ist) i generatoare de rapoarte care sunt proiectate pentru a fi utilizate de c)tre
specialiti T >&Q === 3>eport &rogram Qenerator8.
"e/eratoarele de aplica.ii 6i>sau proiecte se adreseaz) n special utilizatorilor
cunosc)tori ai te%nicilor de programare. (le permit ca pe baza unor descrieri e/terne a datelor
i a modului de organizare0 prelucrare i afiare a acestora s) se accelereze generarea
3codarea8 programelor0 folosind un limbaj specific sau c%iar un limbaj de generaia a,3,a
3C.H.+8. =ntr) n aceast) clas) de generatoare CS& 3Cross S^stem &roduct80 <.CJS0
#antis0 Natural0 N.#$220 >$#=S 10 =2($+ #$&&(>0 modulele de tip >$2 pentru
dezvoltarea rapid) a aplicaiilor.
. categorie aparte o reprezint) pac'etele!aplicaii specializate pentru aplicaii
economice generale 3finane,contabilitate8 sau c%iar numai pentru proces)ri de te/te0
te%noredact)ri 32esITop &ublis%ing8.
"e/eratoarele de 0ra5ice sunt instrumente ce permit reprezentarea sub form) grafic)
3%istograme0 bare0 linii0 cercuri etc. bi sau tridimensionale0 cu opiuni de culoare0 te/t0
legend)80 a rezultatelor prelucr)rii datelor. (le sunt independente 3Tell,al Qrap%0 S$S0
$2>S6H'8 sau ncorporate n spreads%eet,uri 3+.TJS0 *J$TT>.0 (VC(+8 sau SQH2,uri
3<o/Qrap%8.
I/stru2e/tele de spri4i/ire a deci7iilor se adreseaz) e/perilor din diferite domenii
de activitate 3finane0 management0 contabilitate0 marIeting etc.8 pentru elaborarea i
urm)rirea bugetelor0 analiza investiiilor0 studiul pieei etc. permi1nd realizarea simul)rii i
model)rii matematice a fenomenelor economice. =ntr) n aceast) clas) programele de calcul
tabelar 3*J$TT>.0 +.TJS0 (VC(+ .a.80 pac%etele program statistice 3S&SS0 S$S etc.8.
Qeneraia a ;,a cuprinde limbajele care sunt sau vor fi ndreptate spre e/ploatarea
bazelor de cunotine0 crearea sistemelor e/pert i0 mai general0 spre rezolvarea problemelor
legate de inteligena artificial).
2up) cum se observ) limbajele au evoluat continuu0 aa cum rezult) din figura 1.!.
1
.prea0 2.0 Premisele &i consecinele in"ormatiz%rii contabilit%ii0 (d. Qrap%i/0 =ai0 1MM!0 p. M'
N
Fig. nr. 1(. )voluia limbajelor de programare
$a cum rezult) i din figura 1.!0 dou) sunt tendinele care au marcat evoluia
limbajelor de programare. &rima este trecerea de la programele specializate pe un tip de
probleme0 elaborate de programatori profesioniti la pac%etele de softOare cu destinaii
diverse adaptate la nivelul utilizatorilor finali neinformaticieni. $ceast) tendin) s,a
amplificat odat) cu apariia microcalculatoarelor. Tendina principal) n prezent este c)tre
instrumente avansate de dezvoltare a aplicaiilor orientate pe obiect. $ doua tendin) este
ndep)rtarea de limbajele de programare te%nice0 foarte dificil de utilizat0 specifice
nceputurilor program)rii 3limbaje de generaia = i a ==,a8 i de limbajele procedurale.
Tendina este c)tre limbajele neprocedurale i limbajele naturale0 apropiate de limbajul uman0
tendin) care s,a accentuat odat) cu apariia celei de,a =;,a generaii de limbaje. (a continu)
prin mbun)t)irea interfeelor grafice i dezvoltarea inteligenei artificiale0 care produce
ateptatele limbaje naturale. (ste vorba de cea de,a ;,a generaie de limbaje de programare0
reprezentat) de pac%ete de programe asistate de e/peri. Yi n pac%etele de programe actuale
sunt ncorporate unele module de ajutor sau module de sprijin inteligente 3*izard8 care ofer)
utilizatorului asisten) n rezolvarea unor probleme 3realizarea unui grafic sau tabel8.
. alt) clasificare a limbajelor de programare a fost realizat) de +.). ,ammet ntr,o
lucrare publicat) n 1M'M
2
0 el av1nd n vedere urm)toarele clase de limbaje9 procedurale0
neprocedurale0 orientate pe problem) i speciale. Gncadrarea unui limbaj de programare
anume ntr,o clas) este uneori dificil de realizat.
Li23a4ele procedurale 3numite i limbaje de nivel nalt8 sunt utilizate pentru a
descrie un algoritm de rezolvare a unei probleme. Se descriu complet operaiunile care se
e/ecut) i ordinea de e/ecuie a acestora. (le r)spund la ntrebarea C-./. (/emple9
C.H.+0 <.>T>$N0 H$S=C0 $+Q.+0 &$SC$+.
Li23a4ele /eprocedurale 3numite i limbaje de nivel foarte nalt8 ofer) soluia de
rezolvare a unei probleme0 dar f)r) a da detalii asupra modului concret de rezolvare. (le
r)spund la ntrebarea C)/. (/emplu9 limbajele din SQH20 &>.+.Q0 +=S&.
Li23a4ele speciale descriu funcii specifice ale produselor,program. 2e e/emplu0
procesorul ]ord are inclus un limbaj de scriere a macrourilor.
Li23a4ele orie/tate pe pro3le2: deservesc domenii restr1nse de activitate. $stfel
de limbaje sunt limbajele de simulare0 ca0 de e/emplu0 Q&SS 3Qeneral &urpose S^stem
Simulation8 care este conceput pentru descrierea i rezolvarea problemelor de simulare.
2
Sammet0 _.0(.0 &rogramming +anguages9 Pistor^ and <undamentals0 N._. &rentice,Pall0 1M'M
"e/era.ia I "e/era.ia II "e/era.ia III "e/era.ia I? "e/era.ia ?
Tendina9 c)tre limbajele de programare conversaionale0 naturale
E1olu.ie
li23a4e
limbaje n
cod main)
limbaje de
asamblare
limbaje de
nivel inalt-
primele
sisteme de
operare
limbaje de
gen. a =;,a
3!Q+8 orien,
tate c)tre
utilizator
limbaje
naturale-
sisteme
e/pert
Tendina9 c)tre aplicaii cu scop general0 orientate spre utilizatorul nespecialist
Tendine majore n softOare
M
1.3. Structurarea i organizarea datelor. Tipuri de date utilizate n limbajele de
programare
2ezvoltarea rapid) i comple/) a societ)ii a dus n mod inevitabil la o sporire
nsemnat) a volumului de date0 care tind s) aglomereze i s) bloc%eze canalele informaionale
n aceeai m)sur) n care crete continuu nevoia de informaie.
>ezult) c) orice organism economic se confrunt) cu un volum mare de date0 supus
unor prelucr)ri relativ simple0 dar cu un caracter repetitiv i cu o frecven) mare. Gn acelai
timp datele se caracterizeaz) printr,o structur) uniform) rezultat) din structura documentelor
primare specifice operaiilor economice. Toate acestea reprezint)0 de fapt0 restricii n
activitatea de structurare i organizare a datelor economice n sistemele informatice.
1.$.1 Co/cepte utili7ate 8/ or0a/i7area datelor
.rganizarea datelor reprezint) procesul de identificare0 definire0 structurare i
memorare a datelor.
3
. bun) organizare a datelor impune folosirea unor structuri care s) permit) o
prelucrare cu un cost c1t mai redus. . colecie de date pe care s,a definit o structur)0 c)reia i
este specific un anumit mecanism de selecie i identificare a elementelor componente
constituie o structur) de date. Toate structurile de date care au aceeai organizare i sunt
supuse acelorai operaii formeaz) un anumit tip de structur) de date. &entru specificul
activit)ilor economice fiecare nivel de abstractizare implic)9 date elementare i date
structurate.
Noiunea de dat: ele2e/tar: se refer) la mulimea ordonat) i finit) de valori0 de un
anumit tip0 asupra c)rora se pot efectua operaii. 0 dat% care apare ca entitate indisolubil%
at1t n raport de in"ormaia pe care o reprezint%$ c1t &i n raport de procesorul care o
prelucreaz% se numete dat) elementar).
Cel mai des nt1lnite tipuri de date elementare n limbajele de programare sunt9
tipul /u2eric T se includ numerele ntregi0 reale i comple/e i asupra c)rora se pot
realiza operaii de adunare0 sc)dere0 etc.-
tipul lo0ic 3boolean8 T este utilizat pentru precizarea st)rilor de adev)r 3T>J(0 W(S8
sau neadev)r 3<$+S(0 N.8 ale unui enun. $supra acestora se pot efectua operaii
logice9 $N20 .>0 N.T-
tipul caracter , conine o mulime de caractere alfanumerice0 n cadrul acestora
put1ndu,se defini operaii de concatenare0 ordonare etc.-
tipul poi/ter , conine adrese c)tre alte date elementare.
$ceste tipuri de date sunt elemente invizibile ale limbajelor de programare0 iar
structura lor intern) nu este accesibil) programatorului.
Datele structurate sunt colecii de date elementare care0 ntr,un anumit sens0 sunt n
relaii unele cu altele. Natura relaiei se stabilete la crearea structurii i poate diferi n funcie
de nivelurile de abstractizare.
Cele mai utilizate date structurate sunt9
articolul-
fiierul-
tabloul.
Articolul este o structur) de tip arborescent ale c)rui c1mpuri 3c1mpul reprezent1nd o
m)rime ce poate lua valori diferite dintr,o multitudine de valori posibile0 face e/cepie c1mpul
boolean care poate lua doar dou) valori8 sunt descendenii r)d)cinii 3nivelul 180 subc1mpurile
sunt descendenii c1mpurilor 3nivelul 28 .a.m.d. C1mpurile unui articol pot fi date elementare
sau grupuri de date de diverse tipuri. Gn principiu fiecare c1mp sau subc1mp se definete prin
urm)toarele atribute9
3
Cristea 0 ;. 0 2icionar de informatic)0 (ditura Ytiinific) i enciclopedic)0 Hucureti 0 1MN10 p. 2!R
1R
nume , un cod unic de identificare-
tip , natura datei-
lungime , num)rul total de caractere-
partea zecimal) T specificat) numai pentru datele numerice.
2e e/emplu0 articolul &>.2JS( poate avea n structur) urm)toarele c1mpuri9
Nu2e Tip Lu/0i2e Partea 7eci2al:
C.2&>.2 N " R
2(NJ#=>( C 1R
&>(` N M 2
ST.C N N 2
@i6ierul este o structur) de date omogene din punct de vedere a semnificaiilor i a
cerinelor de prelucrare0 nregistrate pe un suport i care pot fi e/ploatate individual.
Gntr,un fiier trebuie s) distingem articolul tip 3structura articolului8 care este o
modalitate de a descrie dac) un obiect aparine sau nu la o clas) de obiecte0 de realiz)rile
3articolele8 care sunt elemente ale clasei de obiecte descrise.
Ta3loul este o colecie de date de acelai tip0 aranjate ntr,o structur) rectangular)0 cu
una sau mai multe dimensiuni. Tablourile cu o dimensiune se numesc 1ectori0 iar cele cu mai
multe dimensiuni se numesc 2atrici sau 2asi1e. &entru fiecare dimensiune se asociaz) un
indice ale c)rui valori sunt folosite pentru referirea elementelor tabloului.
(/. T 3i
1
0 i
2
...i
I
80 unde I reprezint) num)rul de dimensiuni0 iar i
1
0 i
2
....i
I
sunt
elementele tabloului T.
2e e/emplu0 pentru introducerea notelor obinute de studeni n cele 2 sesiuni0 fiecare
sesiune av1nd c1te " e/amene0 definim variabila Nota320"8. ;om obine un tablou de variabile
astfel9 Nota310180 Nota310280 Nota310380 Nota310!80 Nota310"80 Nota320180 etc.
Gn ;isual <o/&ro0 de e/emplu0 declararea unui tablou poate fi realizat) cu comanda
2=#(NS=.N9
2=#(NS=.N ;(CT3380 #$T>3"01R8
N.T( se definete vectorul ;(CT cu 3 elemente i matricea #$T> cu
" linii i 1R coloane.
&relucrarea datelor presupune parcurgerea unei succesiuni ordonate de operaii care
acioneaz) asupra m)rimilor. (le se pot grupa n urm)toarele categorii9
: operaiuni de atribuire-
: operaiuni de calcul-
: operaiuni de decizie-
: operaiuni de intrare 6ieire-
: operaiuni de transfer a controlului.
Opera.iu/i de atri3uire sunt acelea prin care unui c1mp i se atribuie o anumit)
valoare predefinit) sau rezultatul evalu)rii unei e/presii.
T.T;$+ U R
S< U S=2 4 >2 T >C
Opera.ii de calcul se definesc pe mulimea numerelor reale. 2intre acestea fac parte
operaia de adunare0 sc)dere0 nmulire0 mp)rire0 ridicare la putere0 calculul unor e/presii
numerice etc.
Ca operatori se utilizeaz)9
A pentru adunare-
, pentru sc)dere-
5 pentru nmulire-
> pentru mp)rire-
BB pentru ridicare la putere.
11
2e asemenea0 n cadrul e/presiilor se pot utiliza i parantezele0 evaluarea acestora
f)c1ndu,se dup) regulile din algebr).
(/emplu9 S$+$> N(T U 33N>.>+JC> 5 T.8 4 S&.>;8 , =#&.X
a U 3b 5 c8552 4 '"R
Opera.iu/ile de deci7ie sunt utilizate pentru a delimita valoarea logic) a unei
propoziii9 adev)rat sau fals. (le condiioneaz) e/ecutarea unor operaii sau grupuri de
operaiuni. .peratorii utilizai pentru scrierea condiiilor pot fi operatori relaionali 3U0 C0 A0
a8 i operatori logici 3$N20 .> i N.T8.
(/emplu9
=< ST.CS=QJ> A 1RRRR TP(N &>=NT b$T(N`=(c ( N(C(S$>\
>($&>.;=X=.N$>($b
(N2=<
sau
<.> #(2=$ C M."R .$N2. 2.#=C=+=J UdN.N =$Y=d &>=NT d2>(&T 2(
C$X$>(d
Opera.iu/ile de i/trare>ie6ire vizeaz) realizarea transferului de date ntre memoria
e/tern) i cea intern) i invers. &entru optimizarea operaiei de intrare6ieire se interpun zone
tampon 3buffere80 at1t pentru intrare0 c1t i pentru ieire conform sc%emei urm)toare 3figura
nr. 1."89
<ig. 1.". Trans"erul de date ntre memoria intern% &i cea extern%
Cele mai utilizate operaii de =6( sunt cele de desc%idere i nc%idere a fiierelor i de
citire i scriere date.
Opera.iu/ile de tra/s5er a co/trolului sunt operaii de salt i de apelare. Cele de
salt au rolul de a preda controlul unei alte operaiuni dec1t cea imediat urm)toare0 iar cele de
apel0 determin) lansarea n e/ecuie a unor proceduri 3grupuri de operaiuni80 evit1ndu,se
descrierea lor0 de mai multe ori0 n cadrul algoritmului.
Sc%ematic derularea unei secvene de operaiuni de apel se prezint) astfel 3figura nr.
1.'.89
Xona tampon
Xona tampon
2(N
2(N
C.2
C.2
J#
J#
C$NT
C$NT
&>(e
&>(e
X. $>T=C.+
;$+.$>(
;$+.$>(
V
X. $>T=C.+
Xonf de
intrare
Xonf de
lucru
Xonf de
iegire
12
<ig. 1.'. 2erularea operaiunilor de apel
1.!. Caracterizarea principalelor limbaje de programare
2in multitudinea limbajelor de programare practica a consacrat at1t limbaje de tip
universal0 c1t i limbaje specializate pe domenii de activitate. Gn continuare0 f)r) pretenia de a
fi e/%austivi0 prezent)m limbajele care s,au impus n domeniul economic i n cel te%nico,
tiinific.
@ORTRAN 3<.>mula T>$Nslation8 este un limbaj cu orientare matematic)0 fiind
utilizat cu prec)dere n aplicaii te%nice 3ecuaii0 operaii cu matrici0 programare liniar)0
simulare8. (ste primul limbaj de nivel nalt. &rima versiune a ap)rut n 1M"!0 fiind realizat) de
o ec%ip) de la =H# i urmat) de alte versiuni perfecionate. 1M'! este anul n care <.>T>$N
a fost standardizat n SJ$. $ fost foarte criticat n anii [ZR0 conferindui,se atributele greoi0
dezordonat0 infantil i f)r) speran) de a deveni adecvat. Totui0 ultimele versiuni <.>T>$N
au fost aduse n concordan) cu noile standarde ale program)rii structurate. Cu toate acestea0
este destul de puin utilizat ast)zi. Cele mai utilizate versiuni au fost9 <.>T>$N =;0
<.>T>$N =; &+JS0 <.>T>$N ZZ T pentru minicalculatoare0 specializat pentru prelucr)ri
n timp real0 <.>T>$N MR T variant) mbun)t)it) cu atributele program)rii orientate obiect.
COBOL 3C.mmon Husiness .riented +anguage8 a fost primul limbaj orientat
e/clusiv c)tre rezolvarea problemelor economice0 cum reiese i din numele s)u. 2intre
limbajele din generaia a 3,a este cel mai rSsp1ndit0 dup) <.>T>$N. Se utilizeaz) pentru
e/ploatarea unui volum mare de date cu structuri diverse 3arbori0 tablouri0 fiiere etc.8.
C.H.+ a fost lansat n 1M'!0 fiind dezvoltat de o ec%ip) de specialiti0 condus) de o femeie
3cpt. Qrace Pooper8 de la 2epartamentul $p)r)rii SJ$. $ fost standardizat prima oar) n
1M'N. Succesul lans)rii i utiliz)rii n urm)torii ani 3la sf1ritul anilor [NR0 ntre 'R i Z"7 din
aplicaiile economice erau scrise n C.H.+8 a fost nsoit de mai multe controverse.
$vantaje9 posibilitatea manipul)rii unor volume mari de date0 descrierea complet) a
structurilor de date0 rapiditate n e/ecuie 3datorit) compil)rii8.
Cea mai important) produc)toare de compilatoare C.H.+ 3firma britanic) #icro
<.CJS8 a lansat n 1MM! C.H.+ orientat pe obiecte pentru microcalculatoare. +a ora
actual)0 pentru microcalculatoare0 firma #icro <ocus ofer) compilatoare C.H.+ care permit9
: dezvoltarea de aplicaii 3inclusiv cu facilit)i grafice8 pentru lucrul n reelele de
calculatoare-
: dezvoltarea de aplicaii cross,platform destinate unei game largi de ec%ipamente i
sisteme de operare-
: asigurarea portabilit)ii la nivel de programe surs).
C.H.+ reprezint) un softOare comple/ cu un nalt grad de generalizare i care
asigur) independena programelor fa) de componentele %ardOare.
13
BASIC 3Hegginner[s $ll &urpose =nstruction Code8 este unul din cele mai utilizate
limbaje de generaia a ===,a0 poate i pentru faptul c) a fost livrat odat) cu sistemul de operare
#S,2.S0 fiind inclus ntre aplicaiile acestuia 3universalitatea i simplitatea limbajului a
determinat includerea sa n sistemele de operare8. Totul a nceput n 1M'30 c1nd profesorii
hurtz i hemen^ de la colegiul 2armout%0 SJ$ ncep lucrul la un nou limbaj0 care s)
nlocuiasc) <ortran i lucrul cu cartele perforate. Gn 1M'! este lansat) prima versiune0 sub
numele H$S=C care avea 12 instruciuni. &rima versiune pentru microcalculatoare a fost
lansat) n 1MZ2. Gn 1MZ"0 Hill Qates i &aul $llen au scris primul interpreter H$S=C pentru
microcalculatoare care ocupa doar Z hH de memorie0 compania #icrosoft care a ap)rut apoi
susin1nd H$S=C,ul prin includerea lui n pac%etul sistemului de operare #S,2.S 3ncep1nd
de la versiunea ".R8. $u ap)rut apoi zeci de versiuni de H$S=C0 cu diferii autori0 multe dintre
ele incompatibile0 ajung1nd s) fie denumit de unii Klimbajul programatorilor neprofesionitiL.
2e aceea0 n 1MN3 $NS= %ot)r)te elaborarea unui standard pentru limbajul H$S=C. $cest
limbaj a cunoscut diverse variante0 cele mai r)sp1ndite fiind H$S=C$0 Q]H$S=C0 *H$S=C0
Turbo Hasic i0 nu n ultimul r1nd0 ;isual Hasic.
PASCAL este un limbaj popular n mediul universitar 3mai ales n facult)ile de
informatic) i matematic)8. $ ap)rut n 1M'N i a fost denumit dup) matematicianul francez
Hlaise &ascal. (ste un limbaj universal0 caracterizat prin simplitate0 eficien)0 accesibilitate
3c%iar i pentru ncep)tori8 i care prezint) 3nc) de la prima versiune8 toate elementele
specifice program)rii structurate. Sunt p)reri care apreciaz) c) nv)area limbajului &$SC$+
este indispensabil) pentru formarea unor informaticieni. 2ezavantaje9 slaba gestionare a
datelor organizate n fiiere i incapacitatea de a manipula volume mari de date. +imbajul a
cunoscut mai multe versiuni adaptate diverselor metode de prelucrare 3&ascal secvenial0
&ascal concurent0 &ascal obiectual8. &ascal a stat la baza elabor)rii de noi limbaje precum
#.2J+$,10 #.2J+$,20 $2$. Jltimele versiuni0 produse de firma Horland0 au ap)rut sub
numele Turbo &$SC$+0 cu un succes remarcabil pe pia).
ADA0 3$utomatic 2ata $ciuisition i totodat) numele contesei de +ovelace $ugusta
Ada H^ron0 considerat) a fi primul programator din lume80 elaborat la 2epartamentul
$p)r)rii SJ$ pentru aplicaii te%nico,tiinifice n 1MZM. $re multe din elementele limbajului
&$SC$+0 dar este mult mai comple/0 fiind considerat unul din cele mai dificile limbaje.
<olosit iniial n domeniul militar0 la ora actual)0 datorit) @facilit)ilor oferite este larg utilizat
i n aplicaiile economice.
C a fost produs de Hell +aboratories la nceputul anilor [ZR 3dezvolt) limbajul H
elaborat de laboratoarele Hell8. (ste un limbaj orientat spre asigurarea flu/urilor de
instruciuni0 conduc1nd la elaborarea de programe compacte0 bine structurate. 2estinat iniial
programatorilor de sistem0 i,a l)rgit aria de utilizatori odat) cu e/tinderea sistemului de
operare JN=V. (ste limbajul de programare cu cea mai impresionant) evoluie i e/tindere n
anii [MR. C,ul preia de la limbajele de tip &$SC$+ gradul ridicat de portabilitate0 iar de la
limbajele de asamblare rapiditatea n e/ecuia i gestionarea eficient) a memoriei. >)m1ne
totui un limbaj pentru profesioniti0 multe aplicaii 3procesoare de te/te0 spreads%eet,uri sau
SQH2,uri8 fiind scrise cu ajutorul limbajului C. Gn plus0 ultimele versiuni ale acestui limbaj
au transformat C ntr,un limbaj orientat pe obiect 3C448. &rincipalii produc)tori sunt Horland
3C4480 #icrosoft 3*uicI C0 ;isual C80 S^mantec.
RP" 3>eport &rogram Qenerator8 este un limbaj dezvoltat de c)tre firma =H# la
mijlocul anilor ['R odat) cu lansarea unei noi linii de minicalculatoare proiectate pentru
afacerile mici i mijlocii. +imbajul permite ca pe baza unor specificaii ale utilizatorului0 s) se
genereze codul unui program care lansat n e/ecuie va conduce la obinerea rapid) i cu un
cost relativ redus0 a rapoartelor dorite. PL>1 3&rogramming +anguage 18 este un limbaj lansat
de c)tre firma =H# la nceputul anilor ['R0 mbin1nd facilit)ile din <.>T>$N pentru
aplicaii tiinifice cu cele din C.H.+ pentru aplicaiile economice. +a ora actual) acesta nu
este foarte popular0 utilizarea lui fiind limitat) datorit) faptului c) este comple/ i greu de
nv)at
LISP 3+=St &rocessing8 este un limbaj adecvat inteligenei artificiale0 utilizat mai ales
n cercetare i n domeniul inteligenei artificiale. $ ap)rut n 1M"N la =nstitutul Te%nologiei
din #assac%ussets0 dar a fost considerat prea avansat pentru te%nologia vremii. Spre deosebire
1!
de celelalte limbaje prezentate0 care sunt imperative0 +=S& este un limbaj funcional. +=S& nu
face deosebirea ntre date i prelucr)ri0 acestea fiind considerate obiecte i tratate la fel. Se pot
declara douS tipuri de obiecte9 atomi i liste.
PROLO" 3&>.gramming in +.Qic8 a fost fundamentat n 1MZ2 la Jniversitatea din
#arsilia pentru aplicaii de inteligen) artificial) i face parte din familia limbajelor
declarative 3nu algoritmice8. $ fost orientat spre demonstrarea de teoreme i nelegerea
limbajului natural. &ermite reprezentarea i utilizarea cunotinelor0 fiind utilizat n crearea de
sisteme e/pert. &>.+.Q este considerat o r)zvratire mpotriva modului de programare impus
de modelul ;on Neumann0 iar n 1MN2 proiectul japonez de realizare a calculatoarelor de
generaia a ;,a prevede folosirea ca limbaj de baz) a limbajului &>.+.Q.
S2alltalC a fost dezvoltat la mijlocul anilor [ZR de c)tre firma Vero/ Corporation i a
fost primul limbaj specific program)rii orientat) pe obiecte. $cest limbaj nu este greu de
nv)at i utilizat dar reclam) sc%imbarea n ntregime a modului de g1ndire a unui program.
Se prevede ca n viitor SmalltalI al)turi de celelalte limbaje orientate pe obiect s) cunoasc) o
dezvoltare i utilizare deosebit).
!A?A este un limbaj orientat pe obiecte dezvoltat de firma Sun #icros^stems. $re ca
scop asigurarea comunic)rii ntre ec%ipamente eterogene i distribuirea formatului e/ecutabil
al programelor n reea0 fiind limbajul cel mai utilizat n reeaua =NT(>N(T. $cest limbaj
opereaz) cu tipuri obinuite de date0 dispune de instruciuni speciale de protecie i ofer)
facilit)i de programare de tip animaie0 orientare obiect0 distribuie. Codul _ava este portabil0
acelai program put1nd fi rulat pe orice platform) care deine acest mediu de e/ecuie.
. parte din limbajele de programare0 prin diversele lor versiuni0 nu pot fi ncadrate
strict ntr,o anume generaie. <iind supuse continuu perfecion)rii0 ele tind spre generaia
superioar) celei n care au fost proiectate iniial.
1.". Criterii de selecie a limbajelor de programare
+a alegerea unui limbaj de programare trebuie avute n vedere o serie de aspecte care
s) asigure eficien)0 siguran) i fle/ibilitate n rezolvarea aplicaiilor utilizator. Criteriile care
stau la baza opiunii de selectare a limbajului privesc urm)torii factori9
!
1. tipul problemei ce urmeaz) a fi rezolvat) i cunotinele utilizatorului 3m)sura n care
limbajul de programare este convenabil at1t la clasa de probleme0 c1t i pentru utilizator8
2. tipul ec%ipamentelor disponibile utilizatorului
3. gradul de dependen) fa) de ec%ipamentul folosit i sistemul de operare
!. evaluarea rezultatelor obinute prin folosirea anterioar) de c)tre ali utilizatori
". eficiena scontat) prin e/ploatare
'. caracteristicile te%nice i funcionale generale
Z. cerine de ordin economic
: Tipul problemei ce urmeaz% a "i rezolvat% &i cuno&tinele utilizatorului
$cest criteriu are n vedere selectarea acelui limbaj care s) r)spund) cel mai bine tipului
6tipurilor de aplicaii utilizator0 s) asigure concomitent uurin) n utilizare0 un timp minim
pentru prelucrarea datelor confidenialitatea i securitatea acestora.
: Tipul ec'ipamentelor 'ard*are disponibile utilizatorului
Gnaintea alegerii limbajului trebuie efectuat) o analiz) a resurselor fizice e/istente i a celor
care urmeaz) s) fie ac%iziionate. $ceast) analiz) trebuie s) stabileasc) dac) sunt asigurate
resursele minime pentru dezvoltarea i e/ploatarea aplicaiilor. Gn felul acesta se urm)rete
utilizarea eficient) a limbajului pe ec%ipamentele din dotare.
: 3radul de dependena "a% de ec'ipamentul "olosit &i sistemul de operare
Conform acestui criteriu trebuie ales un limbaj de programare care s) poat) fi folosit f)r)
probleme sub sistemul de operare sub care lucreaz) ec%ipamentele din dotare. Gn plus0 trebuie
asigurat) portabilitatea programelor n cazul n care se vor ac%iziiona noi resurse informatice.
Trebuie asigurat) creterea gradului de portabilitate cel puin la nivel de program surs).
: )valuarea rezultatelor obinute prin "olosirea anterioar% de c%tre ali utilizator
4
Sammet0 _.0(.0 &rogramming +anguages9 Pistor^ and <undamentals0 N._. &rentice,Pall0 1M'M
1"
$cest criteriu cere realizarea unei document)ri prealabile privind problemele cu care s,au
confruntat ali utilizatori ai limbajului 3e/istena 6ine/istena unei documentaii de nv)are i
utilizare0 posibilit)ile6facilit)ile de rezolvare a problemelor practice etc.8.
: )"iciena scontat% prin exploatare.
$ceast) eficien) implic) stabilirea parametrilor de e/ploatare pe fiecare etap) de realizare a
programelor 6produselor,program3scriere0 testare0 implementare0 utilizare8. Se are n vedere
at1t eficiena e/ecuiei programului0 mai ales la programele des utilizate c1t i eficiena
global) care ia n considerare toate fazele de elaborare i utilizare 3scriere0 testare0 e/ploatare
i ntreinere8. Gn acest conte/t performana limbajului poate deveni o problem) mai puin
important).
: Caracteristicile te'nice &i "uncionale generale.
$legerea unui limbaj trebuie sa in) seama i de gradul de standardizare a acestuia0 tiut fiind
c)0 n general0 la standardizarea unui produs informatic se au n vedere parametrii ce privesc
simplitatea n e/ploatare0 generalitatea n aplicare0 naturaleea0 consistena i conciziunea n
e/primare.
: Cerine de ordin economic
$ceste cerine in seama de resursele financiare de care dispune utilizatorul 0 resurse care
trebuie s) acopere at1t ac%iziionarea i e/ploatarea propriu,zis) a limbajului0 c1t i
organizarea i preg)tirea prealabil) a personalului.
$v1nd n vedere cele de mai sus rezult) c) alegerea unui limbaj este o decizie care
trebuie susinut) printr,o serie de analize de ordin te%nic0 funcional i economic.
1'
CAPITOLUL 2. BA%E DE DATE &I SISTEE DE "ESTIUNE A BA%ELOR
DE DATE
2.1 Co/cepte utili7ate 8/ studiul 3a7elor de date 6i al siste2elor de 0estiu/e a 3a7elor de
date
2.2. odele de structurare a datelor 8/ 3a7e de date
2.$. Siste2e de 0estiu/e a 3a7elor de date
2.*. Protec.ia 6i securitatea 3a7elor de date
2.). Ad2i/istrarea datelor 6i a 3a7elor de date
Sistemele de baze de date reprezint) cea mai important) dezvoltare n domeniul
ingineriei program)rii0 ele devenind din ce n ce mai accesibile penru o larg) varietate de
utilizatori.
2.1. Co/cepte utili7ate 8/ studiul 3a7elor de date 6i al siste2elor de 0estiu/e a
3a7elor de date
2.1.1. etoda prelucr:rii pri/ 5i6iere i/depe/de/te
Sistemul bazat pe fiiere reprezint) sistemul anterior bazelor de date. #odul de lucru
bazat pe fiiere independente0 demodat ast)zi0 are o serie de neajunsuri care limiteaz)
eficiena i eficacitatea aplicaiilor utilizator
"
.
Specific metodei prelucr)rii prin fiiere0 ilustrat) n fig. nr. 2.1.
'
0 este faptul c) fiecare
dat) 32ata10 2ata20 ...0 2atan8 este descris) n toate fiierele n care apare0 iar fiecare fiier
trebuie descris n toate programele n care este utilizat. Nu e/ist) nici o posibilitate de a stabili
n mod e/plicit o relaie ntre dou) fiiere de date.
Fig. nr. 2.1.0rganizarea datelor n "i&iere
2e asemenea0 dac) spre e/emplu0 2ata2 din <iier1 este modificat)0 modificarea nu
se face automat i n <iier20 ceea ce determin) inconsistena datelor.
2ezavantajele organiz)rii datelor n fiiere pot fi sistematizate astfel9
1. 4edundana &i inconsistena datelor$ datorit% prezenei aceleia&i date n mai multe
"i&iere independente-
$celeai date sunt nregistrate i stocate n mai multe fiiere0 ceea ce reclam) programe
distincte pentru actualizarea fiec)rui fiier. Gn plus0 duplicarea datelor conduce la un consum
mare de memorie i incoeren) la trecerea datelor stocate dintr,un fiier n altul. $ceasta duce
la alterarea integrit)ii datelor 3datele nu mai concord)80 gestionarea comple/) i actualizarea
greoaie a acestora0 precum i la o monopolizare inutil) a spaiului de memorie.
2. Complexitatea actualiz%rilor 3ad)ugarea0 tergerea sau modificarea datelor8-
3. 2i"icultatea obinerii de in"ormaii neplani"icate 5spontane sau ad!'oc60 c%iar i
pentru o simpl) interogare fiind necesar) scrierea unui program-
2ispersia datelor n diverse fiiere independente complic) accesul utilizatorilor la
informaiile cerute ad,%oc0 necesit1nd crearea de programe particulare pentru e/tragerea
5
.[Hrian0 .p. cit.$ pp. 2!!,2!'
6
<otac%e0 #.0 Haze de date relaionale0 .rganizare0 interogare i normalizare0 (diia a ==,a0 (ditura
_unimea0 =ai0 1MMZ0 p. 2"
1Z
2ata1
2ata2
2ata2
2ata3
2ata2
2ata!
2ata3
2ata1
2ata"
...
...
...
<=Y=(> 1
<=Y=(> 2
<=Y=(> 3
Prelucrare 1
Prelucrare 2
Prelucrare 7
>aport
1
>aport
2
>aport
3
>aport
!
DATE @I&IERE PRELUCRDRI IE&IRI
datelor solicitate. Gn lipsa acestor programe0 pentru obinerea informaiilor dorite utilizatorul
procedeaz) la e/tragerea manual).
!. Costul ridicat de exploatare ca urmare a dubl)rii datelor-
(/ploatarea fiierelor independente presupune un cost ridicat0 at1t n ceea ce privete
resursele informatice 3%ardOare i softOare80 c1t i cele legate de personalul utilizat.
". ,epararea &i izolarea datelor-
$tunci c1nd datele sunt izolate n fiiere separate0 programatorul de aplicaii trebuie s) se
asigure c) sunt e/trase datele corecte0 fiind astfel necesar) sincronizarea prelucr)rii datelor
din fiiere diferite0 aceast) operaiune fiind dificil) c1nd sunt solicitate date din mai mult de
dou) fiiere.
'. Formate de "i&iere incompatibile$ ceea ce face dificil) prelucrarea lor simultan)
2eoarece structura fiierelor este ncorporat) n programele de aplicaii0 ea este
dependent) de limbajul de programare n care sunt scrise acestea. 2e e/emplu0 structura unui
fiier generat de un program scris cu limbajul C.H.+ poate s) fie diferit) de cea a unuia
generat cu un program n limbajul C. 2e aceea sunt necesare programe de transformare a
fiierelor ntr,un format comun.
8. 2ependena datelor "a% de programele de aplicaii
.rganizarea fiierelor0 adresa lor fizic) n memorie i programele de aplicaii folosite
pentru accesarea fiierelor sunt interdependente. $stfel0 sc%imb)rile legate de dispunerea pe
suportul de memorie0 de structura datelor i modificarea nregistr)rilor unui fiier presupun
modific)ri n toate programele n care este referit fiierul respectiv. Gntreinerea acestor
programe este dificil) put1nd genera incoerene n fiierele de date. =ncoerena i lipsa de
integritate sunt e/trem de dificil de corectat deoarece nu e/ist) un dicionar central pentru
urm)rirea definirii datelor.
Toate aceste probleme care apar n sistemul ce prelucreaz) fiiere i g)sesc rezolvarea prin
folosirea bazelor de date i a sistemelor de gestiune a bazelor de date. 2atele stocate n baze
sunt independente at1t fa) de programele de aplicaii care le folosesc0 c1t i fa) de tipul de
memorie utilizat.
2.1.2. Ba7e de date
&e m)sura evoluiei sistemelor de prelucrare automat) a datelor i0 n mod special0 a
componentei %ardOare i softOare0 dar i ca urmare a creterii volumului datelor de prelucrat
s,a dezvoltat un nou concept0 cel al bazelor de date. (l i face apariia n a doua parte a anilor
['R0 aduc1nd un element de noutate0 respectiv e/istena unui fiier de descriere global) a
datelor0 ceea ce asigur) independena datelor de programe i invers0 fiier denumit dicionar
de date 3vezi fig. nr. 3.28. +a momentul respectiv0 n cadrul sistemelor informatice
implementate n ntreprinderi0 informaiile erau organizate n fiiere de date 3secveniale0
inde/ate etc.8 create cu ajutorul unor programe scrise n limbaje din generaia a ===,a9
C.H.+0 <.>T>$N etc.
&rincipiul fundamental al bazelor de date l constituie unicitatea informaiilor0 adic)
orice informaie este nregistrat) o singur) dat) i poate fi utilizat) ori de c1te ori este nevoie0
de c)tre diferii utilizatori i n diferite momente.
Haza de date reprezint) un ansamblu integrat de nregistr)ri sau de fiiere reunite i
structurate n mod logic. Gn felul acesta datele stocate anterior n fiiere independente6distincte
sunt concentrate ntr,un fond comun de nregistr)ri cu posibilitatea utiliz)rii lor n numeroase
aplicaii.
Haza de date este o colecie partajat) de date ntre care e/ist) relaii logice i o
descriere a acestor date0 proiectat) pentru a satisface necesit)ile informaionale ale unei
organizaii. (a reprezint) un depozit de date unic care este definit o singur) dat) i este
utilizat simultan de c)tre mai multe departamente i utilizatori. Gn loc de a mai e/ista fiiere
separate cu date redundante0 toate datele sunt integrate0 cu o dublare minim). Haza de date nu
mai este deinut) de un singur departament0 ci constituie acum o resurs) comun)0 partajat). (a
conine nu numai datele operaionale ale organizaiei0 ci i o descriere a acestora. 2e aceea ea
este definit) i ca o colecie autodescris) de nregistr)ri integrate. $ceast) descriere a datelor
este cunoscut) sub denumirea de catalog de sistem sau dicionar de date sau meta,date 3date
1N
despre date8. Natura autodescriptiv) a bazelor de date este cea care determin) independena
program,date.
BA%A DE DATE
<iier de date 1
<iier de date 2
<iier de date n
...
Dic.io/ar
de
date
$plicaia 1 $plicaia m $plicaia 2 ...
Fig. nr .2.2. ,tructura unei baze de date
Conceptul de baz) de date a ap)rut n 1M'! n cadrul primului raport C.2$SW+
Z
prezentat la lucr)rile unei Conferine pe probleme de limbaje de gestiune a datelor
K2evelopment and #anagement of Computer T centered date,baseL. +a aceast) conferin) a
fost lansat) ideea organiz)rii datelor prin intermediul unui fiier de descriere global)0 numit
dicionar de date care are menirea de a asigura independena programelor fa) de date i a
datelor fa) de programe
N
.
$tunci c1nd se analizeaz) necesit)ile informaionale ale unei organizaii se urm)rete
identificarea entit)ilor0 a atributelor i a relaiilor dintre entit)i. 2e aceea0 abordarea bazelor
de date presupune i tratarea urm)toarelor elemente9 entitate 3articol0 nregistrare logic)80
atribut 3caracteristic)0 c1mp8 i valoare6realizare
M
.
&rin entitate se nelege un obiect concret sau abstract 3operaie economic)0 mijloc
economic etc.8 reprezentat prin propriet)ile sau nsuirile sale. .rice proprietate poate fi
e/primat) printr,o perec%e atribut,valoare sau caracteristic),realizare. . entitate este
identificat) printr,un nume i cuprinde0 n general0 mai multe valori sau realiz)ri.
$tributul are rolul de a descrie nsuirile sau propriet)ile obiectului0 stabilind natura
valorilor pe care acesta le poate lua.
;aloarea reprezint) m)rimea ce se atribuie fiec)rei caracteristici din cadrul unei
entit)i.
>elaia reprezint) o asociaie ntre mai multe entit)i.
$ceste elemente sunt prezentate n tabelul nr. 2.19
Tabelul nr. 2.1. (lemente specifice bazelor de date
(ntitate Caracteristici 3atribute8 >ealiz)ri 3valori8
Produs
CodBprodus
2enumireBprodus
JnitBm)s
&reB unitar
Cantitate
Nr.Bfactur)
2ataBrecepiei
1"2
&antofi
&erec%e
11"
1RR
2!"2
2!,1R,2RRZ
7
C.nference on 2$ta SWstems +anguages T Conferina despre +imbajele Sistemelor de 2ate
8
+ungu0 =.0 .a.0 Haze de date0 .rganizare0 proiectare i implementare$ (ditura $ll0 Hucureti0 1MM"0
p.13
9
$ceste elemente sunt numite diferit n literatura de specialitate. ;ezi >oca0 =.0 .a. Haze de date i
SQH20 Hucureti0 1MN'- +ungu0 =.0 .a.0 .p.0 cit.0- <otac%e0 #.0 Haze de date relaionale0 (ditura
_unimea0 1MMZ
1M
. baz) de date trebuie s) satisfac) cinci condiii eseniale
1R
9
0 bun% reprezentare a realit%ii nconjur%toare$ adic) baza de date trebuie s)
ofere ntotdeauna o imagine fidel) a realit)ii prin informaii fiabile i actualizate-
0 non!redundan% a in"ormaiei$ informaia coninut) n baza de date trebuind s)
fie unic) din punct de vedere semantic i fizic-
0 independen% a datelor "a% de prelucr%ri- datele constituie imaginea fidel) a
lumii reale0 programele de aplicaii trebuind s) fie concepute n raport cu aceast)
structur) a datelor-
,ecuritatea &i con"idenialitatea datelor- securitatea datelor trebuie asigurat) prin
proceduri fizice0 iar confidenialitatea prin proceduri care s) mpiedice accesul
utilizatorilor neautorizai-
Per"ormane n exploatare$ orice cerere de prelucrare trebuind s) fie satisf)cut)
ntr,un timp convenabil utilizatorului0 ceea ce presupune folosirea unor te%nici de
optimizare pentru reducerea timpului de prelucrare.
Dic.io/arele de date
$ccesul utilizatorilor la informaiile despre structura unei baze de date se realizeaz) prin
intermediul dicionarului de date.
Gn principal0 un dicionar ndeplinete urm)toarele funcii9
definirea i gestionarea datelor elementare ale ntreprinderii 3cod0 etic%et)0 atribute0
reprezentare etc.8-
definirea i gestionarea ansamblurilor de date-
definirea i gestionarea relaiilor0 de dependen) sau ierar%ice0 dintre date-
descrierea din trei puncte de vedere a utiliz)rii datelor9
administrativ9 care sunt posturile de lucru ce vor apela datele i care va fi utilizarea
acestor datej
logic9 care sunt fiierele sau bazele de date n care intr) elementele descrisej-
organic9 n care unit)i de prelucrare vor fi utilizate elementele descrisej
Gn plus dicionarele de date permit automatizarea operaiilor de scriere0 de descriere a
fiierelor sau ecranelor0 de control etc. utile pentru ntreinerea i dezvoltarea dosarelor de
programe.
Hazele de date sunt concepute pentru a prelucra un volum mare de informaii.
Qestiunea acestora impune nu numai o structurare riguroas) a datelor0 dar i o raionalizare a
procedurilor de acces i prelucrare. &entru a putea fi e/ploatat) de c)tre utilizatori o baz) de
date trebuie s) aib) asociat un set de programe0 numit generic sistem de gestiune a bazelor de
date care s) permit) e/ploatarea raional) a datelor coninute. .biectivul esenial al unui
sistem de gestiune a bazelor de date este0 deci0 furnizarea unui mediu eficient0 adaptat
utilizatorilor care doresc s) consulte sau s) actualizeze informaiile coninute n baza de date.
Sistemul de gestiune a bazelor de date reprezint) un ansamblu coordonat de programe
care permite descrierea0 memorarea0 manipularea0 interogarea i tratarea datelor coninute ntr,o
baz) de date. (l trebuie0 de asemenea0 s) asigure securitatea i confidenialitatea datelor ntr,un
mediu multi,utilizator.
Pri/cipalele 3e/e5icii ale 3a7elor de date co/stau 8/E
i/te0rarea 8/ aceea6i structur: a tuturor datelor perti/e/te ale u/ui siste2F
0estio/area acestor date pri/tr9u/ so5t<are speciali7at ;S"BD=F
o5erirea u/ei 1ederi par.iale asupra a/sa23lului de date /ecesare 5iec:rui
utili7atorF
asi0urarea parta4:rii datelor 8/tre di5eri.i utili7atori.
10
#orkjon0 _.0 &rincipes et conception d[une base de donnkes relationnelle$ +es (ditions d[organisation0
&aris0 1MM20 p. 2R
2R
Ni1eluri de a3stracti7are a datelor 8/ 3a7ele de date
$bordarea datelor n conte/tul bazelor de date se face pe trei niveluri0 considerate
niveluri de abstractizare9
9ivelul intern este nivelul elementar la care pot fi considerate datele i se refer) la
modul n care sunt stocate datele pe suporturi , disc magnetic0 band) magnetic)0 disc optic etc.
+a acest nivel structura datelor este foarte detaliat). Nivelul intern cuprinde structurile de date
i organiz)rile fiierelor utilizate pentru stocarea datelor pe dispozitivele de stocare. (l
trateaz) probleme cum ar fi9 alocarea spaiului de stocare pentru date i inde/uri0 descrierile
nregistr)rilor pentru stocare0 cu dimensiunile de stocare pentru articolele de date0 plasarea
nregistr)rilor0 te%nicile de comprimare i de codificare a datelor. Nivelul intern
interacioneaz) cu metodele de acces al sistemului de operare 3te%nici de administrare a
fiierelor0 pentru stocarea i reg)sirea nregistr)rilor de date8 pentru a plasa datele pe
suporturile de stocare0 a reg)si datele0 a realiza inde/urile.
9ivelul conceptual corespunde administratorului bazei de date care proiecteaz)
structura logic) a bazei de date. $sigur) o viziune global). a bazei de date0 descriind ce date
sunt stocate n baza de date i relaiile dintre acestea. +a acest nivel structura bazei de date se
concretizeaz) n sc%ema conceptual). Nivelul conceptual asigur) at1t transpunerea0 c1t i
independena dorit) dintre nivelul e/tern i cel intern.
Nivelul conceptual reprezint) toate entit)ile0 atributele i relaiile dintre ele0 contr1ngerile
asupra datelor0 informaii semantice despre date0 informaii privind securitatea i integritatea.
9ivelul extern reprezint) vederea utilizatorului asupra bazei de date ce descrie acea
parte a bazei de date relevant) pentru fiecare utilizator. >ecurgerea la acest nivel de
abstractizare se face pentru simplificarea interaciunii utilizator,baz) de date. $cest nivel
corespunde utilizatorilor care pot avea viziuni diferite asupra bazei de date pe baza unor
subsc%eme proprii. ;ederea e/tern) include numai acele entit)i0 atribute i relaii din lumea
real) de care este interesat utilizatorul. Se urm)rete satisfacarea cerinelor tuturor utilizatorilor
n condiiile unei redundane minime i controlate a datelor.
;)zut) prin prisma celor trei niveluri0 baza de date poate fi reprezentat) ca n figura
nr.2.3.
11


Jtilizator $1 Jtilizator H1 Jtilizator H2
$plicaie
Jtilizator $2
Comenzi
autonome
$plicaie
Comenzi
autonome
=magine $
3nivel e/tern8
=magine H
3nivel e/tern8
l.
...
l.
,c'ema
extern% :
,c'ema
extern% ;
=NT(><$`$ $ =NT(><$`$ H
=magine global)
3nivel global8
,c'ema conceptual%
5global%6
Siste2 de
0estiu/e a
3a7ei de date
=NT(><$`$
BA%A DE DATE EORATD PE DISC

,c'ema intern%
Fig. nr.2.7. 9ivele de abstractizare a datelor n bazele de date
=ncluderea n baza de date a descrierii structurii acesteia o deosebete calitativ de
fiierele de date0 deoarece prin aceasta se asigur) independena datelor din baz) fa) de
programele de aplicaii i invers. &osibilitatea modific)rii structurii la un nivel0 f)r) a afecta
11
<otac%e0 #.0 Haze de date relaionale. .rganizare0 interogare i normalizare0 (ditua _unimea0 =ai0
1MMZ0 p.32
21
structura celorlalte niveluri este nt1lnit) sub numele de independena datelor0 prezent) sub
dou) forme9
independena fizic) de date0 adic) posibilitatea modific)rii structurii bazei de
date la nivel intern 3cum ar fi utilizarea unor organiz)ri ale fiierelor sau structuri de
stocare diferite0 a unor dispozitive diferite de stocare0 modificarea de inde/uri sau de
algoritmi %as%80 f)r) a fi necesar) sc%imbarea structurii conceptuale i rescrierea
programelor de prelucrare a datelor. $semenea modific)ri sunt necesare pentru
ameliorarea performanelor de lucru 3vitez) de acces0 m)rimea fiierelor etc.8. $utonomia
fizic) este cea care asigur) i portabilitatea bazei de date de pe un sistem de calcul pe
altul f)r) modificarea sc%emei conceptuale i a programelor-
independena logic) de date se refer) la faptul c) modificarea sc%emei
conceptuale a bazei de date 3cum ar fi ad)ugarea sau eliminarea unor entit)i0 atribute
sau relaii8 nu necesit) i modificarea sc%emei e/terne sau rescrierea programelor de
aplicaii.
(ste important s) se fac) distincie ntre descrierea bazei de date i baza de date
ns)i. 2escrierea bazei de date constituie sc%ema bazei de date. (a este specificat) n timpul
procesului de proiectare a bazei de date i este sc%imbat) rareori. Setul de date din baza de
date se numete instana bazei de date. #ai multe instane ale bazei de date pot corespunde
aceleiai sc%eme a bazei de date.
2.1.$. B:/ci de date
Gn accepiunea cea mai larg)0 banca de date reprezint) un set de informaii gestionate
i accesate prin intermediul unor programe speciale. =nformaiile0 n ansamblul lor reprezint)
ceea ce este consacrat sub numele de baz) de date0 iar programele speciale constituie sistemul
de gestiune a bazei de date. Hanca de date reprezint) un sistem de colecii de date aflate n
interdependen)0 mpreun) cu descrierea datelor i a relaiilor dintre ele i cu sistemul de
programe pentru gestiunea datelor care asigur) independena programelor aplicative fa) de
modul de structurare a datelor0 o redundan) minim) i controlat) n memorarea lor0 precum i
un timp minim de r)spuns la solicit)rile utilizatorilor.
12

(a reprezint) un ansamblu de informaii organizate0 nregistrate pe suporturi
magnetice sau optice care pot fi consultate local sau la distan) prin intermediul
calculatoarelor i a reelelor de comunicaie. 2eoarece permit accesul unui mare num)r de
utilizatori la datele stocate0 b)ncile de date sunt considerate sisteme de documentare.
Se pot organiza b)nci de date n toate sferele de activitate9 b)nci de date bibliografice0
de documentare statistic)0 pentru evidene financiar,contabile i bancare0 diagnosticare i
informare medical)0 pentru rezervarea tic%etelor de c)l)torie i a locurilor n staiunile
turistice etc.
n unele lucr)ri0 banca de date este redus) la dou) componente9 baza de date i
SQH2,ul asociat. $li autori e/tind noiunea de banc) de date0 ea nglob1nd baza de date0
sistemul de gestiune a bazei de date0 sistemul electronic de calcul0 ec%ipamentele de
teleprelucrare0 programele de aplicaii0 sistemul de operare0 utilizatorii. Sc%ematic structura
unei b)nci de date poate fi prezentat) ca n figura nr. 2.!.
12
&escaru0 ;.0 .a.0 <iiere0 baze de date i b)nci de date0 (ditura Te%nic)0 Hucureti0 1MZ'0 p. 13
22
C o l e c i i
d e d a t e
C o l e c i i
d e d a t e
C o l e c i i
d e d a t e
C o l e c i i
d e d a t e
Fig.2.(. ,tructura unei b%nci de date
2ac) n anii mZR i la nceputul anilor [NR0 noiunea cvasi,utilizat) era cea de banc) de
date0 n lucr)rile din ultimii ani0 termenul devine din ce n ce mai puin invocat0 majoritatea
lucr)rilor de profil0 ca i toi marii furnizori de softOare fac trimitere0 aproape e/clusiv0 la
noiunile de baz) de date i SQH2.
2.1.*. Depo7ite de date
Conceptul de depozit de date a ap)rut la sf1ritul deceniului N0 dar s,a conturat i
dezvoltat n anii mMR. Conceptul dataOare%ouse 3depozit de date8 este definit de ]illiam
=nmon 3vicepreedintele firmei &rism Solution8 ca fiind o Kcolecie de date destinate
fundament)rii deciziei manageriale0 colecie care este tematic)0 integrat)0 plasat) ntr,un
conte/t temporal i permanent)L.
2epozitul de date reprezint) o alt) direcie de dezvoltare i evoluie a bazelor de date.
(l desemneaz) o baz% de date special conceput% pentru analiza datelor &i suportul deciziilor$
prin consolidarea tuturor datelor ntreprinderii.
2eosebirile fa) de o baz) de date sunt urm)toarele9
scopul pe care l au datele stocate , acestea nu sunt utilizate n scop operaional0 ci pentru
sarcini analitice0 de la identificarea unui nou segment de pia) p1n) la brainstorming-
dac) o baz) de date este utilizat) pentru prelucrarea tranzaciilor on,line0 depozitele de
date se bazeaz) pe prelucrarea analitic) on,line0 o nou) aplicaie strategic)-
dac) o baz) de date nregistraz) i raporteaz) ce s,a nt1mplat0 un depozit de date arat) i
de ce.
&atru elemente determinante caracterizeaz) depozitul de date9
datele stocate privesc o funciune sau un proces din ntreprindere 3sunt orientate pe
subiect8-
datele sunt integrate i redefinite penteu a putea fi e/ploatate-
informaiile sunt conservate mai muli ani0 acesta reprezent1nd un atu al depozitelor de
date 3se asigur) continuitatea i comparabilitatea8-
datele nu pot fi modificate sau terse.
2atele organizate n depozite provin din datele preluate din sistemul operaional0 din
datele de ar%iv) 3n perioada de constituire a depozitului80 precum din surse e/terne 3baze de
date publice0 date din recens)minte0 date de prognoz) economic) etc.8. Jtilizarea depozitelor
de date se concretizeaz) n e/tragerea unor rapoarte 3la cerere sau pe baza unui abonament cu
o anumit) periodicitate80 e/tragerea unor date pentru a putea fi utilizate de aplicaiile de
birotic) 3programe de calcul tabelar0 procesoare de te/te0 programe de prezentare etc.80 dar
mai ales pentru a putea fi utilizate n aplicaii specializate de analiz).
23
Componentele unui depozit de date sunt urm)toarele9
13

1. instrumente pentru modelarea datelor0 asociate adesea cu instrumente de tip C$S(-
2. o enciclopedie a metadatelor care p)streaz) informaiile relevante despre fiecare
dat) a depozitului de date 3ce reprezint)0 tipul s)u0 unde se g)sete0 cum poate fi accesat)0
formatul s)u0 etc.8-
3. baza de date , nucleu care este centrul depozitului i ia forma bazelor de date
3foarte rar a fiierelor independente8-
!. instrumente pentru transpotul datelor0 proiectate pentru a muta copii ale datelor din
sistemul operaional n baza de date-
". instrumentele pentru e/tragerea0 rafinarea i standardizarea datelor0 sarcini foarte
dificile n condiiile n care informaiile sunt foarte comple/e0 iar instrumentele de lucru
eterogene-
'. middleOare care asigur) conectivitatea n cadrul reelelor de calculatoare atunci
c1nd datele sunt preluate din mai multe baze de date sau o baz) de date este distribuit) pe mai
multe noduri ale unei reele-
Z. instrumente pentru accesul utilizatorilor la date i furnizarea informaiilor care
cuprind instrumente de tipul interfa) grafic) utilizator 3QJ=8 sau navigatoare 3broOsere8 ]eb
ce permit utilizatorilor s) acceseze i analizeze informaiile din depozitul de date.
Jna din preocuparea actual) a produc)torilor de instrumente de construire a
depozitelor de date este integrarea celor apte categorii de instrumente prezentate mai sus ntr,
un produs atotcuprinz)tor0 ceea ce unii au reuit ntr,o oarecare m)sur).
1!
2in punct de vedere al ariei de ntindere0 se nt1lnesc trei modele de depozite de date9
depozite de ntreprindere0 data marts i depozite virtuale.
Jn depozit de ntreprindere colecteaz) toate informaiile despre subiecte care privesc
ntreaga organizaie. (l necesit) c%eltuieli mai mari pentru modelare i ani de zile pentru
proiectare i realizare. (l conine de regul) date detaliate0 dar i date agregate0 iar ca ordin de
m)rime pornete de la c1iva gigab^tes p1n) la sute de gigab^tes0 terab^tes sau mai mult.
Jn data marts poate fi considerat un subansamblu al unui depozit de date0 mai uor de
construit i ntreinut i mai puiin scump. (l conine un subset al volumului de date din
organizaie0 specific unui grup de utilizatori. 2omeniul este limitat la subiecte specifice. 2e
e/emplu0 un data mats pentru marIeting limiteaz) subiectele la clieni0 articole0 v1nz)ri. Jn
depozit virtual este un set de viziuni 3vieOs8 asupra bazelor de date operaionale. (ste uor de
construit0 dar necesit) capacit)i suplimentare pe serverele de baze de date. &entru eficiena
proces)rii interog)rilor0 numai unele din viziunile de agregare pot fi materializate.
Haza de date reprezint) binimab depozitului. Gn practic)0 baza de date nucleu se poate
reg)si sub forma fiierelor independente de date 3mai rar80 poate fi o baz) de date relaional)
sau multidimensional). Gn prezent se pune tot mai mult accent pe bazele de date
multidimensionale care sunt concepute pentru optimizarea analizei indicatorilor 3cifr) de
afaceri0 marj)l8 n raport cu dimensiunile care le sunt asociate 3timp0 produs0 regiunel8. (le
simplific) gestiunea volumelor mici sau mijlocii de date0 sunt adaptate la rezolvarea unor
probleme concrete 3fiind utilizate mai ales pentru analize sofisticate cum ar fi simul )rile sau
prediciile80 adapt1ndu,se astfel foarte bine n conte/ul depozitelor de date.
Gn ceea ce privete instrumentele de analiz) i acces la informaii0 dou) categorii0
instrumentele de interogare i cele .+$& se reg)sesc pentru a combina accesul liber la
informaii i funciile de analiz)0 fiind concepute pentru a r)spunde nevoilor foarte diverse ale
utilizatorilor finali. $stfel0 anumii utilizatori sunt autonomi i doresc un acces liber la
informaii f)r) a se ngriji de c)ile de acces la date. =nstrumentele de tip interogare r)spund
nevoilor lor. $ceste instrumente favorizeaz) formularea de interog)ri baz1ndu,se pe logica
asamblist) a bazelor de date relaionale. (le permit0 de e/emplu0 obinerea listei cu numele i
prenumele clienilor care au cump)rat un anumit produs n cursul ultimelor trei luni. $li
utilizatori e/prim) cerine de analiz)0 ceea ce necesit) o informaie bine preg)tit) i foarte
organizat). =nstrumentele de tip .+$& 3.n,+ine $nal^tical &rocessing8 sunt mai bine
13
<otac%e0 #.0 .p. cit.0 p. "'
14
<otac%e0 #.0 2epozitul de date0 n Tribuna economic) nr.3' 61MMN0 p.!M
2!
adaptate e/igenelor lor. &relucrarea analitic) on,line este un nou instrument la dispoziia
managerilor i analitilor pentru e/aminarea interactiv) i manipularea unui volum mare de
date analitice sau agregate sub diverse forme. .+$& nseamn) analiza relaiilor comple/e
ntre mii i c%iar milioane de date pentru a descoperi tendine0 modele i e/cepii. .peraiile
fundamentale n .+$& sunt consolidarea0 forajul 3drill doOn8 i disecarea 3slice and dice8.
Consolidarea nseamn) agregarea datelor ce poate fi o simpl) sumarizare sau o grupare
comple/)0 implic1nd date aflate n leg)tur). <orajul este operaiunea invers) i se refer) la
afiarea datelor detaliate0 pornind de la cele consolidate. 2isecarea pornete de la capacitatea
.+$& de a privi o baz) de date din mai multe perspective. (a se realizeaz) cel mai adesea de,
a lungul unei a/e de timp pentru a analiza tendinele i a descoperi modele de evoluie.
$li utilizatori au nevoie de instrumente de data mining care permit structurarea
informaiei f)r) preocuparea pentru modul n care datele sunt puse n corelaie0 prin punerea
n funciune a unor mecanisme de inducie.
&relucrarea analitic) on,line0 referit) de regul) ca .+$& 30n <ine :nal=tical
Processing8 r)spunde la ntreb)ri pe care managerii i le pun la modul concret. Singura
tr)s)tur) comun) a acestor ntreb)ri este caracterul lor multidimensional. (/ist) totui c1teva
tipuri uzuale de ntreb)ri0 care pot arunca o lumin) asupra comple/it)ii instrumentelor care
trebuie s) furnizeze r)spunsuri9
4aporturi multidimensionale. 2e e/emplu9 Care este contribuia la v1nz)rile
s)pt)m1nale totale a produselor informatice v1ndute prin magazinele situate n regiunea
#oldova ntre 1R i 2R septembriej
Comparaii. 2e e/emplu9 Care este media abaterii procentuale de la planul de v1nz)ri
n lunile acestui an comparativ cu anul trecutj
Clasi"ic%ri &i pro"iluri statistice. 2e e/emplu9 Care este volumul v1nz)rilor i media
profitului pentru primii 2R7 dintre distribuitori i care este contribuia acestora la totalul
v1nz)rilor pe trimestrul trecutj
:greg%ri libere. 2e e/emplu9 Care sunt veniturile realizate n ultimele patru trimestre
de filialele judeene din regiunea #oldovaj
)valu%ri >'at!I". 2e e/emplu9 Gn ce m)sur) ar influena profitul total o cretere cu 1R
procente a v1nz)rilor n judeele din #oldovaj
=nstrumentele de data mining e/ploreaz) bazele de date i e/trag din acestea o
multitudine de informaii asupra tendinelor i previziunilor. C1mpul de aciune al data
mining cuprinde nu numai analiza datelor0 ci i a te/telor.
2epozitele de date nu nseamn) totui numai avantaje0 ci ele ridic) o serie de
probleme nre care menion)m9
dimensiunile e/trem de mari la care pot ajunge0 de ordinul gigaocteilor0 ceea ce
ridic) problema suporturilor de stocare0 ca i asigurarea unei viteze rezonabile de
acces la date-
costuri de dezvoltare foarte mari i timp ndelungat necesar pentru construirea lor-
dificultatea integr)rii diferitelor platforme %ardOare i softOare e/istente n cadrul
ntreprinderii.
2.1.). Proiectarea 3a7elor de date
>ealizarea unei baze de date presupune parcurgerea urm)toarelor etape9
analiza sistemului 3domeniului8 pentru care se realizeaz) baza de date0 precum i a
cerinelor informaionale asociate-
proiectarea structurii bazei de date 3sc%ema conceptual)0 intern) i e/tern)8-
nc)rcarea datelor n baza de date -
e/ploatarea i ntreinerea bazei de date
1"
.
15
vezi +ungu0 =. i colab. 0Haze de date. .rganizare0 proiectare i implementare0 (ditura $++0
Hucureti0 1MM"0 p. 2'.
2"
$ctivit)ile desf)urate n etapa de proiectare depind n mare m)sur) de specificul
activit)ii pentru care se dorete realizarea unei baze de date0 dar e/ist) i o serie de elemente
cu caracter general.
Gn literatura de specialitate se nt1lnete i concepia potrivit c)reia proiectarea unei baze de
date este un proces n doi pai
1'
9
etapa proiect)rii conceptuale 3independent) de SQH28 , ar consta n analiza
sistemului-
etapa proiect)rii fizice 3n funcie de un anumit SQH28 , grupeaz) activit)ile de
proiectare a structurii0 nc)rcare0 e/ploatare i ntreinere a bazei de date.
0biectivele proiect)rii bazei de date pot fi grupate n dou) categorii9
1. cerine funcionale9
rapoartele 3situaiile de ieire8 necesare-
cererile0 interog)rile care pot ap)rea-
alte ieiri care ar putea fi trimise altor sisteme de prelucrare a datelor-
toate actualiz)rile necesare-
toate calculele necesare-
toate restriciile sistemului 3de e/emplu0 restricii funcionale sau restricii de
comportament8-
toate sinonimele utilizate pentru un atribut dat-
2. restriciile fizice 3volumul prelucr)rilor i evaluarea performanelor89
num)rul0 dimensiunile i frecvena rapoartelor-
timpul de r)spuns pentru fiecare interogare-
timpul de r)spuns pentru fiecare actualizare-
m)surile de securitate prin restricionarea accesului.
:naliza preliminar% &i identi"icarea cerinelor in"ormaionale
$ctivitatea de analiz) cuprinde trei laturi importante9
analiza componentelor sistemului i a leg)turilor dintre acestea 3analiza structural%
sau static%8modelul structural sau static al sistemului-
analiza st)rilor sistemului i a tranziiilor posibile ntre aceste st)ri 3analiza
comportamental% sau temporal%8modelul dinamic 3temporal8 al sistemului-
analiza cerinelor informaionale0 respectiv a transform)rilor de date din cadrul
sistemului prin care sunt satisf)cute necesit)ile de informare ale organismului
studiatmodelul funcional al sistemului-
integrarea celor trei modele n scopul complet)rii i corel)rii lor.
Gn urma acestei analize se trece la definirea structurii bazei de date. =mportana analizei
preliminare pentru definirea structurii difer) dup) modelul de organizare a bazei de date.
$stfel0 pentru modelele ierar%ic i reea analiza structural) sau static) este foarte important)0
pentru modelul relaional toate etapele au cam aceeai importan)0 iar pentru modelul ..
trebuie acordat ma/imum de atenie analizei temporale i celei funcionale.
$naliza structural) sau static)
$ceast) etap) are rolul evidenierii componentelor 3obiectelor8 din cadrul sistemului pentru
care se proiecteaz) baza de date0 precum i a leg)turilor dintre aceste componente.
Se cunosc n acest sens mai multe te%nici de analiz)9
modelul canonic 3_ames #artin8
modelul (ntitate,$sociere 3&eter C%en8-
te%nica S2# , Semantic 2ata #odel 3#ic%ael Pammer0 2ennis #c+eod8 .a.
16
&ratt0 &._.0 $damsIi0 _._.0 2atabase ,=stems. .anagement and 2esign0 Ho^dn<raser0 Hoston0 1MM10
p. 2N"
2'
$naliza dinamic) 3de comportament8
$re drept scop e/plicarea comportamentului elementelor sistemului analizat. Construirea
modelului dinamic presupune9
identificarea st)rilor n care se afl) componentele sistemului-
identificarea evenimentelor care determin) trecerea unei componente dintr,o stare n
alta-
stabilirea succesiunii evenimentelor i construirea unei diagrame care s) descrie
flu/ul acestora 3diagram) a st)rilor de tranziie0 a flu/ului de evenimente8.
$naliza cerinelor informaionale 3analiza funcional)8
Jrm)rete determinarea transform)rilor pe care le suport) datele n sistemul studiat0
n scopul satisfacerii cerinelor informaionale aferente acestui sistem. Transform)rile de date
se prezint) sub forma unui flu/ al prelucr)rilor0 in care nodurile reflect) procesele i arcele
flu/urile informaionale.
Construirea modelului funcional implic) o serie de etape9
identificarea datelor de ieire i a celor de intrare-
construirea de diagrame de flu/-
identificarea restriciilor pentru anumite date-
precizarea unor criterii de optimizare a prelucr)rilor.
=ntegrarea modelelor sistemului
Gn etapa de proiectare0 modelele static i dinamic sunt complet independente de
SQH2 3aplicaiile8 ce urmeaz) a se folosi0 pe c1nd modelul funcional este orientat
preponderent spre acestea.
>ezultatele cercet)rii din etapele anterioare sunt supuse unui proces de integrare0 n
urma c)ruia se obine o viziune de ansamblu a sistemului studiat. Cu aceast) ocazie se
testeaz) completitudinea i consistena modelelor static i dinamic0 anume dac) informaiile
dispun de coeren) i dac) nu au fost omise la analiz) unele elemente informaionale. Gn caz
de necesitate0 n aceast) etap) se pot aduce complet)ri modelului.
Ca urmare a integr)rii0 dispare independena fa) de aplicaii a modelelor static i dinamic0 ca
i orientarea spre aplicaii a modelului funcional. (ste un avantaj0 deoarece pe de o parte
orientarea e/cesiv) spre aplicaii complic) n mod inutil modelul i,i scad adaptabilitatea0 iar
pe de alt) parte efectuarea unei analize complet independente de aplicaii presupune un mare
consum de resurse de toate tipurile.
Proiectarea structurii bazei de date
Gn urma analizei sistemului0 se obin aa,numitele modele semantice sau conceptuale0
care sunt independente de instrumentul care le va pune n aplicare. (ste foarte important ca
analiza s) nu fie tributar) vreunui SQH20 deoarece9
n cazul sc%imb)rii SQH2 ar fi nevoie de reproiectarea H2-
caracteristicile unui anume SQH2 pot limita activitatea de analiz)0 f)c1nd modelul
foarte puin fle/ibil-
dac) utilizatorul final nu cunoate nimic despre un anume SQH20 este imposibil s),i
formuleze cerinele de informare n mod adecvat.
Spre deosebire de analiza preliminar)0 proiectarea structurii bazei de date impune
focalizarea ateniei asupra unui SQH2. $stfel0 modelul conceptual este transpus ntr,un
model al datelor care are caracteristicile proprii SQH2,ului ales de proiectant.
&roiectarea structurii bazei de date implic) urm)toarele activit)i
1Z
9
alegerea SQH2 utilizat pentru implementarea i e/ploatarea H2-
proiectarea sc%emei conceptuale a H2-
proiectarea sc%emei e/terne 3subsc%emei8 H2-
proiectarea sc%emei interne 3de memorare8 a H2.
17
+ungu0 =. i colab.0 .p. cit.0 p. "3
2Z
$legerea sistemului de gestiune a bazei de date
Gn alegerea unui SQH20 se au n vedere mai multe aspecte9
1. cerinele utilizatorilor0 sub aspectul9
tipurilor de aplicaii-
timpului de r)spuns-
confidenialit)ii i securit)ii datelor-
uurinei n utilizare-
2. cerinele de ordin te%nic9
portabilitatea SQH2-
portabilitatea datelor i programelor de aplicaii-
condiiile de nc)rcare0 e/ploatare i ntreinere a H2-
3. cerine de ordin economic9
ncadrarea n bugetul destinat acestui scop-
timpul necesar pentru implementarea sistemului 3inclusiv preg)tirea
utilizatorilor8.
Gn urma analizei acestor cerine0 ca i a SQH2,urilor disponibile i a modului cum ele ofer)
r)spuns la cerinele utilizatorilor0 se decide care va fi SQH2 utilizat.
&roiectarea sc%emei conceptuale
Gn accepiunea cea mai simpl)0 sc%ema conceptual) semnific) descrierea datelor i a
relaiilor dintre acestea. (laborarea sc%emei conceptuale presupune9
stabilirea coleciilor de date i a coninutului acestora-
determinarea leg)turilor dintre coleciile de date-
testarea i revizuirea eventual) a sc%emei obinute-
descrierea sc%emei conceptuale n maniera proprie SQH2 ales.
Gn stabilirea coleciilor de date i a leg)turilor dintre acestea se pornete de la
entit)ile identificate n etapa de analiz). $stfel0 n cazul unui proces economic oarecare0
aceste entit)i vor fi participanii la procesul n cauz). Spre e/emplu0 n cazul unei activit)i
comerciale0 putem identifica la prima vedere c1teva entit)i9 cump)r)tor0 v1nz)tor0 marf) etc.
&entru aceste entit)i se vor preciza atributele sau propriet)ile care prezint) interes
pentru utilizatorii informaiei0 eventual i o serie de atribute au/iliare0 utilizate pentru a
e/prima leg)turi ntre entit)i.
$ceste entit)i alc)tuiesc modelul semantic. Nu este obligatoriu ca fiecare
component) a acestui model s) atrag) constituirea unei colecii de date distincte. on practic)0
pentru mbun)t)irea performanelor aplicaiilor 3n special optimizarea timpului de acces la
date80 poate opera o sporire0 dar i o reducere a num)rului de colecii de date proiectate iniial.
Gn realizarea coleciilor de date se poate porni i de la documentele de ieire 3cele care
conin informaiile de care are nevoie utilizatorul80 caz n care toate atributele identificate
concur) la alc)tuirea unui dicionar de date i urmeaz) a fi grupate n funcie de anumite
leg)turi identificabile ntre atribute.
#odul de reprezentare a leg%turilor dintre coleciile de date identificate difer) n
funcie de modelul datelor pe care,l implic) SQH2 utilizat. Spre e/emplu0 pentru modelele
ierar%ic i reea se utilizeaz) pointeri0 iar pentru modelul relaional0 c'ei externe 5str%ine6.
Testarea sc'emei conceptuale presupune verificarea corectitudinii 3a modului n care
aceasta ilustreaz) cerinele utilizatorilor8 i consistenei acesteia 3a corespondenei dintre
leg)turile determinate i lumea real)8. 2e asemenea0 trebuie ca redundana datelor s) se
situeze la un nivel minim. 2ac) n aceast) etap) se identific) erori0 se poate reveni la etapa de
proiectare i uneori c%iar la cea de analiz) a sistemului.
Gn ceea ce privete descrierea sc'emei conceptuale0 aceasta comport) transpunerea sc%emei n
limbajul de manipulare a datelor specific SQH2 ales. >ezultatul acestui proces l constituie
sc'ema 3n accepiune C.2$SW+
1N
8 bazei de date.
18
abreviere de la bConference on 2ata S^stems +anguagesb
2N
&roiectarea sc%emei e/terne
&rin sc%em) e/tern) se nelege forma sub care un utilizator oarecare percepe sc%ema
conceptual). &rin programele de aplicaii se ofer) fiec)rui utilizator o viziune oarecum
bcompartimentat)b a H20 n funcie de necesit)ile sale specifice 3e/ist) aici i puternice
raiuni de securitate i confidenialitate a datelor8. $cest mod de acces restrictiv la baza de
date se materializeaz) prin aa,numitele vie*,uri0 ca i prin drepturi de acces0 acolo unde
SQH2,ul face posibil acest lucru.
Gn general0 elementele care compun sc%ema e/tern) sunt similare elementelor care
compun sc%ema conceptual). Totui0 accepiunea C.2$SW+ definete sc%ema e/tern)
3subsc%ema8 ca pe o parte component) a sc%emei conceptuale0 dar care poate nregistra
diferene n ceea ce privete alc)tuirea0 fa) de sc%ema conceptual).
&roiectarea sc%emei interne
Sc%ema intern)0 numit) de unii autori i sc'em% de memorare0 se refer) e/plicit la
modul de memorare a datelor pe suport 3purt)torul de informaie8. $cest mod de memorare
este specific SQH2 utilizat. 2in punctul de vedere al utilizatorului0 aceast) sc%em) nu trebuie
s) fie vizibil).
?nc%rcarea datelor n baza de date
$ceasta este o etap) inerent) proiect)rii bazei de date0 i const) n specificarea
coninutului acesteia 3a datelor pe care le va memora8. 2ei activitatea nu este pretenioas)0 ea
este destul de delicat)0 dat fiind volumul mare de date care trebuie ve%iculate.
Jn detaliu important este acela al nc)rc)rii H2 numai cu date corecte0 scop n care
sunt necesare proceduri de validare i corectare a datelor.
Sursele de date pot consta ndocumente primare0colecii de date aflate deja pe
suporturi 3de e/emplu0 sisteme de fiiere80 date preluate direct0 f)r) intervenia documentelor
3prin sc%imb electronic de date8.
Nu trebuie s) se e/agereze n direcia procedurilor de validare utilizate0 deoarece
productivitatea introducerii datelor poate sc)dea n mod drastic.
)xploatarea &i ntreinerea bazei de date
(/ploatarea bazei de date este de resortul utilizatorilor finali i implic) utilizarea de
c)tre acetia a datelor din baza de date0 n scopul satisfacerii cerinelor informaionale. &entru
aceasta0 SQH2,urile dispun de limbaje de manipulare a datelor0 ca i de alte instrumente
specializate 3mai ales cele din categoria generatoarelor8.
Gntreinerea bazei de date implic) pe de o parte operaii de actualizare 3modificare a
coninutului80 dar i de reproiectare a structurii 3aceasta din urm) fiind rezervat)
administratorului bazei de date8.
Ca oricare alt sistem informatic0 o baz) de date poate ajunge ntr,o faz) de declin0
c1nd ntreinerea sa devine nerentabil). Gn acest caz se poate decide proiectarea unei noi baze
de date.
2.2 ODELE CONCEPTUALE DE STRUCTURARE &I OR"ANI%ARE A
DATELOR GN BA%E DE DATE
&entru descrierea structurii datelor unei baze de date i a relaiilor dintre acestea sunt
folosite procedee formale0 concretizate n modele conceptuale. $cestea se particularizeaz)
prin terminologia utilizat) i prin relaiile dintre date.
Tipuri de rela.ii 6i structuri de repre7e/tare a rela.iilor 8/ cadrul u/ei 3a7e de date
(ntit)ile aceluiai sistem informaional sunt rareori izolate unele de altele0 ele
antren1nd0 cel mai adesea0 leg)turi sau relaii. Gntre datele diverselor tipuri de entit)i pot
e/ista dou) categorii de leg)turi sau relaii. &rima privete relaiile dintre datele aparin)toare
2M
aceleiai entit)i0 iar a doua se refer) la relaiile dintre mai multe entit)i care pot fi i de tipuri
diferite.
+a r1ndul lor relaiile pot fi binare i n,are.
Rela.iile 3i/are presupun e/istena unui domeniu0 a unui codomeniu i a unei
corespondene ntre entit)ile acestora. Gn practica bazelor de date se utilizeaz) patru tipuri de
relaii binare9
1,1 3una,la,una8 n care unei realiz)ri din domeniu i corespunde o realizare i
numai una din codomeniu. 3<igura nr.2." 8
X 1
X
X
2
.
.
n
Y
Y
Y
1
2
.
.
n
D o m e n i u C o d o m e n i u
<ig. 2." 4elaia de tip 1!1
1,n 3una la mai multe8 n care unei realiz)ri din domeniu i corespunde R0 una sau
mai multe realiz)ri din codomeniu. 3figura nr. 2.'8
X 1
X 2
Y
Y
Y
Y
Y
1
2
. 3 .
4
5
D o m e n i u C o d o m e n i u
<ig. 2.' 4elaii de tip 1!n
n,1 3mai,multe,la,una8 n care mai multe nregistr)ri din domeniu corespund unei
realiz)ri din codomeniu. 3<igura nr.2.Z8
X 1
X
X
2
3
Y
D o m e n i u C o d o m e n i u
<ig. 2.Z. 4elaia n!1
n,m 3mai,multe,la,mai,multe8 n care unei realiz)ri din domeniu i corespund R0
una sau mai multe realiz)ri din codomeniu0 iar unei realiz)ri din codomeniu i
corespund R0 una sau mai multe realiz)ri din domeniu 3figura nr. 2.N89
X 1
X 2
Y
Y
Y
Y
1
2
. 3 .
4
D o m e n i u C o d o m e n i u
<ig. 2.N.4elaia n!m
3R
Rela.iile /9are presupun e/istena unei interdependene logice ntre realiz)rile unei
mulimi de caracteristici definit) pe o mulime de tupluri.
#ecanismul de selecie i de identificare a componentelor unei baze de date
presupune e/istena unei structuri de date. Concret o structur) de date reprezint) o colecie
de date ntre care s,au stabilit anumite relaii. Structurile de date care au aceeai organizare i
sunt supuse prelucr)rilor cu un grup de operatori de baz) cu o semantic) predefinit) formeaz)
un anumit tip de structur).
&rincipalele tipuri de structuri sunt
1M
9 punctual)0 liniar)0 arborescent)0 reea0
relaional). 2intre acestea sunt considerate de baz) structurile liniar) i arborescent). &rin
combinarea lor n funcie de opiunile utilizatorilor0 pot fi construite i alte structuri cu grade
diferite de comple/itate.
2.2.2 .odele de organizare a datelor n bazele de date
Jn 2odel de date este un ansamblu de instrumente conceptuale care permit
descrierea datelor0 a relaiilor dintre ele0 a semanticii lor0 ca i a restriciilor la care sunt
supuse acestea. Se pot clasifica n9 modele orientate pe obiect0 modele orientate pe
nregistrare i modele fizice. Cum ne vom ocupa doar de descrierea nivelurilor conceptual i
e/tern0 vom trata primele dou) categorii de modele.
odelele orie/tate pe o3iect se caracterizeaz) prin fle/ibilitate i e/plicitate n
reprezentarea structurilor de date i a restriciilor pe care trebuie s) le respecte acestea. Cele
mai cunoscute sunt9 modelul entit)i,asociaii0 modelul semantic0 modelul funcional i
modelul orientat pe obiecte.
odelul e/tit:.i9asocia.ii are la baz) percepia lumii reale sub forma unei colecii de
obiecte0 denumite entit%i0 unite prin intermediul unor asociaii. . entitate este un obiect care
poate fi difereniat de alte obiecte printr,un ansamblu de atribute care permit descrierea
precis) a acestuia. . asociaie reunete dou) sau mai multe entit)i. 2e e/emplu0 atributele
9um%r i 2isponibil descriu entitatea Cont la banc%. $tributele 9ume0 :dres%0 etc. descriu
entitatea Client. (/ist) o asociaie care leag) un client de fiecare din conturile pe care le are
desc%ise la banca respectiv). $nsamblul entit)ilor de acelai tip formeaz) o clas% de entit%i0
iar ansamblul asociaiilor de acelai gen reprezint) o clas% de asociaii.
Gn reprezentarea unei structuri de baze de date cu ajutorul modelului (,> se realizeaz)
o diagram)0 care utilizeaz) simbolurile9
dreptung%i0 pentru clase de entit)i0
elipse0 pentru atribute0
romburi0 pentru clase de asociaii0
linii0 pentru a lega atribute de clase de entit)i i clasele de entit)i de clasele
de asociaii.
(/emplu
<urnizor
$dresa
+ocalitate
<J>N=X.>= Cumparare <$CTJ>=,&>=#=T(
Numar
2ata
;aloare
<ig. nr. 2.1R. #odelul (ntitate,$sociaie
odelul de date orie/tat spre o3iecte e/tinde definiia unei entit)i pentru a include
nu numai atributele care descriu starea obiectului0 ci i aciunile asociate acestuia0 respectiv
comportamentul. Se spune c) obiectul ncapsuleaz) at1t starea0 c1t i comportamentul.
19
+ungu0 =.0 0p. cit.$ p. '
31
#odelul de date orientat pe obiecte reprezint) un model logic de date care conine
semantica obiectelor0 acceptat) n programarea orientat) pe obiecte.
#odelarea orientat) obiect devine din ce n ce mai popular) datorit) abilit)ii de a
reprezenta relaii comple/e ca i de a reprezenta datele i procesarea acestora cu ajutorul unor
notaii consistente.
Jn model al datelor este o abstractizare a lumii reale ce permite btratareab
comple/it)ii inerente n cazul problemelor din lumea real) prin concentrarea ateniei asupra
caracteristicilor eseniale i interesante ale datelor de care are nevoie o organizaie. Jn model
orientat obiect este construit n jurul bobiectelorb tot aa cum modelul (,$ are la baz)
entit)ile. Totui un obiect ncapsuleaz) at1t datele c1t i comportamentul0 ceea ce permite
utilizarea unei abord)ri orientate obiect nu doar pentru modelarea datelor0 ci i pentru
modelarea proceselor. &entru a modela cu strictee o aplicaie din lumea real) trebuie s) se
modeleze at1t datele0 c1t i procesele ce acioneaz) asupra datelor. #odelarea orientat) obiect
asigur) un mediu puternic pentru dezvoltarea unor sisteme comple/e0 datorit) posibilit)ii de
captare a datelor i a proceselor i datorit) mai ales0 motenirii i reutiliz)rii codului.
Ciclul de via) al proiect)rii orientate obiect const) din reprezentarea progresiv) a
obiectelor n cadrul a trei faze9 analiz)0 proiectare i implementare. $cest ciclu de via) este
similar cu cel al dezvolt)rii sistemelor. Gn primele etape0 modelul pe care l cre)m este
abstract0 concentr1ndu,se asupra calit)ii e/terne a sistemului. &e m)sur) ce modelul
evolueaz)0 acesta devine din ce n ce mai detaliat0 atenia deplas1ndu,se spre cum va fi
construit sistemul i mai ales0 cum va funciona. $ccentul n modelare trebuie pus pe analiz)
i proiectare0 n special pe problemele conceptuale front,end0 fa) de problemele de
implementare bacI,end ce restricioneaz) opiunile de proiectare
2R
.
Gn etapa de analiz) este dezvoltat un model al aplicaiei din lumea real) ce reprezint)
propriet)ile sale importante. #odelul abstractizeaz) concepte din domeniul aplicaiei i
descrie ce anume trebuie s) realizeze sistemul mai degrab) dec1t cum va fi realizat acest
lucru. #odelul specific) n special comportamentul funcional al sistemului0 independent de
problemele legate de mediul n care va fi implementat n final. Trebuie s) se aloce suficient
timp pentru nelegerea clar) a tuturor cerinelor problemei n discuie. #odelul de analiz)
capteaz) aceste cerine n mod precis0 concis i cu acuratee.
Gn faza de proiectare orientat) obiect se definete cum va fi realizat modelul de
analiz) orientat) obiect n cadrul mediului de implementare. (/ist) trei motive pentru
utilizarea proiect)rii orientate obiect9
1. #odelul de analiz) nu este suficient de formal pentru a fi implementat direct ntr,un
limbaj de programare. &entru a ne deplasa c)tre codul surs) trebuie s) rafin)m mai nt1i
obiectele prin adoptarea unei decizii privind operatorii ce vor fi asigurai de un obiect0
cum ar trebui s) arate comunicaia ntre obiecte0 ce mesaje vor fi transmise etc.
2. Sistemul actual trebuie s) fie adaptat mediului n care sistemul va fi implementat. &entru a
realiza acest lucru0 modelul de analiz) trebuie s) fie transformat ntr,un model conceptual
de proiectare0 lu1nd n considerare diferii factori cum ar fi9 cerinele de performan)0
cerinele de timp real i concuren)0 %ardOare,ul i softOare,ul implicat0 SQH2,ul i
limbajele de programare ce vor fi adoptate etc.
3. >ezultatele etapei de analiz) pot fi validate cu ajutorul proiect)rii orientate obiect. Gn
acest) etap) putem verifica dac) rezultatele furnizate de analiz) sunt adecvate pentru
construirea sistemului i dac) este necesar s) se efectueze modific)ri asupra modelului de
analiz).
&entru dezvoltarea modelului de proiectare trebuie s) fie identificate i investigate
consecinele pe care le va avea mediul de implementare asupra proiect)rii. Toate deciziile de
proiectare strategice 3cum va fi implementat SQH2,ul0 cum vor fi asigurate comunicaiile
ntre procese i tratarea erorilor0 care componente vor fi reutilizate8 vor fi adoptate i vor fi
apoi ncorporate ntr,un prim model de proiectare adaptat mediului de dezvoltare. Gn final0
20
>umbaug%0 _.0 Hla%a0 #.0 &remerlani0 ].0 (dd^0 <.0 +orensen0 ].0 .bject,.riented #odelling and
2esign0 &retice,Pall0 1MM1
32
modelul este formalizat pentru a descrie modul n care obiectele interacioneaz) unele cu
altele pentru fiecare scenariu sau caz.
>umbaug% separ) activitatea de proiectare n dou) etape9 proiectarea sistemului i
proiectarea obiectelor.
+a proiectarea sistemulul trebuie propus) o ar%itectur) global) a sistemului care l
organizeaz) n componente0 numite subsisteme i asigur) conte/tul necesar adopt)rii
deciziilor cum ar fi identificarea concurenei0 alocarea subsistemelor pe procesoare i tasI,uri0
asigurarea accesului la resursele globale0 selectarea modalit)ilor de implementare a
controlului softOare etc.
Gn etapa de proiectare a obiectelor va fi construit un model de proiectare prin
ad)ugarea unor detalii de implementare cum ar fi9 restructurarea claselor pentru eficien)0
structurile interne de date i algoritmii pentru implementarea fiec)rei clase0 implementarea
controlului i a asociaiilor 3leg)turilor80 precum i mp)rirea n module fizice n concordan)
cu strategia adoptat) n timpul proiect)rii sistemului. Clasele de obiecte specifice domeniului
aplicaiei din cadrul modelului de analiz) vor fi mbog)ite cu o serie de elemente specifice
procedurilor de calcul n scopul optimiz)rii performanelor.
(tapa de proiectare este urmat) de o etap) de implementare. Gn aceast) faz)0 proiectul
este implementat cu ajutorul unui limbaj de programare sau a unui SQH2. Translatarea
proiectului n cod surs) este un proces relativ uor datorit) faptului c) modelul de proiectare
ncorporeaz) deja o serie de aspecte ale limbajului de programare i SQH2,ului ales.
Jnele din avantajele des citate n favoarea orient)rii spre obiecte sunt9
2efiniia unui sistem prin intermediul obiectelor faciliteaz) construcia de
componente softOare care seam)n) ndeaproape cu domeniul de aplicaie0 contribuind
astfel la proiectarea i nelegerea sistemelor-
2atorit) ncapsul)rii i ascunderii informaiilor0 ntrebuinarea obiectelor i mesajelor
ncurajeaz) proiectarea modular)-
=mplementarea unui obiect nu depinde de structura intern) a acestuia0 ci de modul
cum acesta r)spunde la mesaje-
Gntrebuinarea claselor i a motenirii promoveaz) dezvoltarea de componente
reutilizabile i e/tensibile n contrucia de noi sisteme sau pentru actualizarea celor
e/istente.
. baz) de date orientat) spre obiecte este o colecie de obiecte persistente i
partajabile care sunt definite de un model de date orientat pe obiecte. Jn sistem SQH2
orientat pe obiecte este administratorul unei baze de date orientat) pe obiecte.
:specte structurale ale modelului de date orientat pe obiecte#
.biectele sunt entit)i de baz) care ncorporeaz) structuri de date i operaii-
<iecare obiect are un identificator unic0 atribuit de sistem-
Clasele descriu tipuri generice de obiecte-
Conceptul de clas) este str1ns legat de conceptul de motenire-
Clasele formeaz) ierar%ii de clase-
2efinirea unei clase este mecanismul de specificare a sc%emei bazei de date-
Sc%ema bazei de date se poate e/tinde prin definirea de noi clase-
2efinirea unei clase poate include atribute de tipuri definite de utilizator 3imagine0
sunet8-
Se admit referiri recursive.
0peraii ale modelului de date orientat pe obiecte#
.biectele comunic) prin mesaje-
Jn mesaj poate fi trimis instanelor din mai multe clase-
#etodele pot fi definite0 terse sau modificate-
Clasele pot fi definite0 terse sau modificate-
=nstana unei clase poate fi actualizat) prin metode ce modific) valorile variabilelor
propriei instane.
33
4eguli de integritate ale modelului de date orientat pe obiecte#
.biectele trebuie s) respecte caracteristicile clasei din care fac parte-
.biectele sunt ncapsulate-
Jn obiect nu e/ist) f)r) s) aib) un identificator- dac) obiectul este ters0 se terge i
identificatorul-
>estricia de integritate cunoscut) de la modelul relaional nu este implementat) 3nu
e/ist) posibilitatea de tergere n cascad)8.
odelele orie/tate pe 8/re0istrare sunt utilizate pentru reprezentarea at1t a
structurii logice a bazei de date0 c1t i a coninutului acesteia. Jn dezavantaj principal este
absena instrumentelor prin care s) se specifice restriciile datelor. Cele mai utilizate sunt9
modelul relaional0 modelul ierar%ic i modelul reea.
odelul rela.io/al reprezint) datele i leg)turile dintre ele sub forma unor tabele0 n
care liniile i coloanele reprezint) un element distinct al bazei de date. (/emplu ,
<J>N=X.>= <$CTJ>=,&>=#=T(
<urnizor $dresa +ocalitate <urnizor Num)r 2ata ;aloare
$lfa
S>+
Jnirii 2 =ai $lfa S>+ 12"!R 126R26RZ 12"M.N
Heta S$ $pelor " Hac)u Heta S$ 1!NZR 1!6R26RZ 32'"
Qama
S$
;iilor "' =ai $lfa S>+ 2!""R 226R26RZ 2MNZ."
Qama S$ 1NM'R 2N6R26RZ "!2R
odelul ierarHic reprezint) structura datelor sub forma unui arbore0 alc)tuit din mai
multe noduri- unele sunt noduri,p)rinte0 altele sunt noduri,copil. &artea superioar) este
r)d)cina. Jn fiu nu poate e/ista independent de tat)l s)u0 iar orice fiu poate fi la r1ndul s)u
tat)0 deci poate avea unul sau mai muli fii.
&rimul model utilizat pentru organizarea datelor n baze de date0 modelul ierar%ic se
bazeaz) deci pe structura arborescent) i pe relaiile 1,1 i 1,n0 prezent1ndu,se sub forma unui
arbore0 n care se reg)sesc pe un prim nivel T r)d)cina 3nodul,p)rinte80 iar pe nivele urm)toare
diferite elemente subordonate 3noduri,copil8. Nodul,p)rinte poate avea subordonate mai multe
noduri,copil n timp ce un nod,copil poate avea un singur p)rinte. >ezult) c) relaia p)rinte,
copil poate fi de tip 1,n0 iar relaia copil p)rinte poate fi doar de tip 1,1.
$cest model asigur) organizarea datelor pe orice tip de suport magnetic i reducerea
timpului de acces la nregistr)ri. (l are ns) o serie de limite n special n operaiile de
actualizare c1nd ad)ugarea de noi nregistr)ri0 cu e/cepia celor din colecia de date r)d)cin)0
se poate efectua numai cu specificarea coleciilor de date superioare0 iar tergerea unei
nregistr)ri duce la eliminarea fizic) a tuturor nregistr)rilor subordonate.
Gn figura nr.2.11 este prezentat un e/emplu de model ierar%ic9
Fig. nr.2.11. .odelul ierar'ic
odelul re.ea este o dezvoltare a modelului ierar%ic. Gnregistr)rile sunt privite n
baza de date ca o colecie de grafuri.
<$CTJ>=,
(#=S(
<actura 1 <actura 2 <actura 3
Produs B
Produs B
Produs
C
Produs
D
Produs A Produs E
Produs @
Produs A Produs A
3!
#odelul reea elimin) redundanele specifice modelului ierar%ic i se bazeaz) pe
structurile reea i pe relaiile de tip 1,10 1,n i n,m. Caracteristica principal) a acestui model
este c) accept) ca orice colecie de date s) se situeze pe nivelul 10 astfel fiind permis accesul
direct la realiz)rile coleciilor superioare 3operaie imposibil) n modelul ierar%ic8.
Gn plus0 prin acest model este permis) reprezentarea unic) a realiz)rilor n baza de
date.
+eg)turile fizice pe suport sunt asigurate prin intermediul unor caracteristici care
e/prim) pointer,ul 3adresa de pe suport8 a realiz)rii superioare sau a realiz)rii subordonate.
$stfel reeaua este un graf orientat alc)tuit din noduri conectate prin arce. Nodurile corespund
tipurilor de nregistrare0 iar arcele pointerilor. Gn felul acesta este permis) introducerea
nregistr)rilor artificiale pentru a reprezenta leg)turile n,are 3nC28
<$CTJ>=,(#=S(
<actura 1 <actura 2 <actura 3
Produs A Produs B Produs C Produs D Produs E Produs @
Fig. nr. 2.12. .odelul reea
2up) cum se observ) din figura nr. 2.120 modelul admite relaii de tip n,m0 ceea ce
are ca efect reducerea redundanei datelor.
#odelele ierar%ic i reea nu permit realizarea unei independene logice satisf)c)toare
ntre date i programe0 deoarece relaiile dintre date e/ist) i sunt referite n programele de
aplicaii.
odelul ENTITD(I + ASOCIA(II
2efinirea entit)ii este n acelai timp uoar) i dificil)0 e/ist1nd o multitudine de
opinii. Cel mai simplu0 o e/titate este un obiect care poate fi delimitat clar de alte obiecte.
Sau9 ceva ce are o e/isten) distinct)0 concret) sau imaginar).
&entru o organizaie0 o entitate reprezint) un obiect al sistemului informaional0 care
are e/isten) proprie0 prezint) importan) pentru gestiunea organizaiei i este nzestrat cu o
serie de propriet)i. . entitate se caracterizeaz) prin9
e/isten) proprie-
poate fi abstract) sau concret)-
aparine unei familii de obiecte de aceiai natur)0 numit) clas: de e/tit:.i-
fiecare entitate este identificabil) i caracterizat) f)r) ambiguitate.
Clasa de entit)i este deci un ansamblu de entit)i care au propriet)i comune. 2e
e/emplu0 firma >TC este furnizor de %1rtie pentru tipografia &olirom0 deci >TC va fi un
membru al clasei de entit)i <J>N=X.>= pentru firma &olirom.
Qruparea entit)ilor n clase este arbitrar)0 iar clasele nu sunt ntotdeauna disjuncte0
ceea ce nseamn) c) este posibil ca o entitate care este ncadrat) ntr,o clas) s) poat) face
parte simultan i din alt) clas) de entit)i. 2e e/emplu9 dac) firma >TC comand) la tipografia
&olirom "RRR de calendare de birou devine client al acesteia0 deci >TC va fi i membru al
clasei de entit)i C+=(N`= pentru firma &olirom.
.rice entitate poate fi caracterizat) printr,un ansamblu de atribute. Jn atribut este o
proprietate comun) tuturor entit)ilor dintr,o anumit) clas). 2e e/emplu atributele clasei
<J>N=X.>= sunt9 nume0 adres)0 localitate0 telefon0 cod fiscal0 etc.
. entitate este legat) cu una sau mai multe entit)i dintr,o alt) clas) prin intermediul
unei asocia.ii. . asociaie este o relaie stabilit) ntre dou) sau mai multe entit)i care0 dei nu
are o e/isten) proprie0 poate fi purt)toarea unor propriet)i. #ai multe asociaii cu aceleai
propriet)i se reunesc n clase de asociaii. . clas: de asocia.ii este o relaie definit) pe una
3"
sau mai multe clase de entit)i. &entru denumirea unei clase de asociaii se alege un substantiv
care reflect) logica leg)turii dintre cele dou) clase de entit)i.
(V(#&+J9 consider)m clasa <J>N=X.>= 3cu atributele nume0 localitate0 cod
fiscal8 i clasa <$CTJ>=,&>=#=T( care reunete toate facturile primite de la furnizori0 cu
urm)toarele atribute9 num)r factur)0 data0 valoare factur). 2efinim clasa de asociaii
CJ#&\>$>( pentru a lega furnizorii de facturile pe care le,au ntocmit. $nsamblul
leg)turilor dintre cele 2 clase de entit)i este ilustrat n figura 2.13.
2"!' 136R26RZ 23'"
$lfa S>+ Jnirii 2 =ai >12"!N1Z1
3"'R 1"6R26RZ 1NZM
Heta S$ &loii 21 Hac)u >1MN"Z1!! 2!ZN 1N6R26RZ 3'"!
12'' 2R6R26RZ 1!"N.Z
Qama S$ ;iilor "R =ai >1MNZ!RR1
1'NZ 216R26RZ 1NMZ.1
<ig. nr. 2.13. #odelul entitate,asociaii
<uncia care atrage o entitate ntr,o asociaie se numete rol. Clarificarea rolului
fiec)rei clase de entit)i este esenial) n proiectarea bazei de date. 2e e/emplu0 pentru clasa
de asociaii CJ#&\>$>(0 rolul fiec)rei entit)i din clasa <J>N=X.>= este ntocmete0 iar
rolul fiec)rei entit)i din clasa <$CTJ>=,&>=#=T( este,ntocmit). <ormularea rolului pemite
identificarea unui cuplu entit)i,asociaii.
&entru reprezentarea grafic) a unei diagrame entit)i,asociaii0 n literatura de specialitate au
fost propuse mai multe soluii. Jna din cele mai utilizate este prezentat) mai n figura nr.
2.1!.
<ig. nr. 2.1!. 2iagrama entitate,asociaii
#etoda #(>=S( de proiectare a bazelor de date propune reprezentarea grafic) din
fig. nr. 2.1".
<ig. nr. 2.1". >eprezentare grafic) prin metoda #erise
<J>N=X.>=
Nume
$dres)
+ocalitate
CodBfiscal
CJ#&\>$>(
<$CTJ>=
Num)r
2at)
;aloare
ntocmete este
ntocmit)
<J>N=X.>=
Nume
$dres)
+ocalitate
CodBfiscal
CJ#&\>$>(
<$CTJ>=
Num)r
2at)
;aloare
3'
Gn caracterizarea oric)rei clase de asociaii se au n vedere trei elemente9 dimensiunea0
cardinalitatea i caracterul obligatoriu sau facultativ al asociaiei.
Di2e/siu/ea 3sau ordi/ul8 unei asociaii reprezint) num)rul claselor de entit)i
implicate ntr,o clas) de asociaii. 2in acest punct de vedere0 e/ist)9
asociaii unare0 care se stabilesc ntre entit)ile aceleiai clase-
asociaii binare0 prin care se stabilesc leg)turi ntre entit)i din dou) clase
diferite-
asociaii ternare0 n care apar 3 clase de entit)i-
asociaii de ordinul n0 care stabilesc relaii ntre n clase de entit)i.
Cele mai simple0 dar i cele mai utilizate sunt asociaii binare. Gn practic) apar deseori
i asociaii ternare.
Cardi/alitatea definete num)rul de entit)i dintr,o clas) de care poate fi legat) o
entitate dat) prin intermediul unei asociaii. Consider1nd cazul unei asociaii binare0 e/ist)
patru cardinalit)i posibile 3vezi fig nr. 2.1' i 2.1N89
I
1
I
2
I
$
I
*
J
1
J
2
J
$
J
*
TIP 1 la 1
I
1
I
2
I
$
J
1
J
2
J
$
J
*
TIP 1 la /
Fig. nr.2.1@
9 cardi/alitatea de tip 1 la 10 n care unei entit)i din clasa V i este asociat) o
singur) entitate din clasa W i reciproc. &entru e/emplul clasei de asociaii CJ#&\>$>(0 ar
avea o astfel de cardinalitate dac) fiecare factur) ar fi ntocmit) de un singur furnizor 3perfect
adev)rat8 i fiecare furnizor ar ntocmi o singur) factur) 3nerealist8.
9 cardi/alitatea de tip 1 la /0 n care o entitate din clasa V poate fi asociat) la n
entit)i din clasa W0 n timp ce fiecare entitate din clasa W poate fi asociat) unei singure
entit)i din clasa V. Clasa de asociaii ;pNX$>( are o astfel de cardinalitate0 pentru c)
pentru fiecare client se pot ntocmi mai multe facturi0 dar o factur) are un singur client 3figura
2.1Z8.
.bservaie9 Gntr,o diagram) entit)i,asociaii0 cardinalitatea este reprezentat) prin
indicarea0 n dreptul clasei de entit)i a num)rului ma/im de asociaii la care poate participa o
entitate din clasa respectiv). Jn client poate fi asociat la n facturi emise0 dar o factur) poate fi
asociat) unui singur client. 2e remarcat c) reprezentarea grafic) cardinalit)ii se face invers
fa) de modul de citire al acesteia.
C+=(NT=
Nume
$dresa
+ocalitate
CodBfiscal
;$NX$>(
<$CTJ>=
Numar
2ata
;aloare
/ 1
Fig. nr. 2.18
9 cardi/alitatea de tip / la 10 n care o entitate din clasa V este asociat) unei singure entit)i
din clasa W0 iar orice entitate din W poate fi asociat) la n entit)i din V. (ste inversa
cardinalit)ii de tip 1 la n.
3Z
9 cardi/alitatea de tip / la /0 n care orice entitate din V poate fi asociat) mai multor entit)i
din W0 iar o entitate din W este asociabil) mai multor entit)i din V.
I
1
I
2
I
$
I
*
J
1
J
2
J
$
TIP / la 1
I
)
I
1
I
2
I
$
I
*
J
1
J
2
J
$
TIP / la /
Fig nr .2.1A
Caracterul o3li0atoriu sau 5acultati1 este legat de conceptul de restric.ie de
depe/de/.:. 2ac) e/istena entit)ii $ din clasa V depinde de e/istena entit)ii H din clasa W
se spune c) $ este dependent) de H. Gn acest caz0 tergerea entit)ii H din H2 atrage dup) sine
tergerea i a entit)ii $. (ntitatea H este numit) entitate dominant). Gn clasa de asociaii
;pNX$>(0 clasa de entit)i <$CTJ>= este dependent) de clasa de entit)i C+=(N`=0 deci
C+=(N`= este o clas) dominant).
Gn lucr)rile de specialitate0 restricia de dependen) dintre dou) clase de entit)i se
e/prim) prin sintagma Kclase de asociaii obligatorii sau faculativeL. $stfel0 clasa de asociaii
;pNX$>( este obligatorie pentru <$CTJ>= 3nu poate apare o factur) emis) n absena unei
v1nz)ri8 i facultativ) pentru clasa de entit)i C+=(N`=. Se spune c) num)rul minim de
asociaii din ;pNX$>( n care poate apare o entitate din <$CTJ>= este 10 iar num)rul
minim de asociaii n care poate apare un client este R. Gn diagramele (,$0 n dreptul fiec)rei
clase de entit)i apare o perec%e de valori9 prima arat) cardi/alitatea 2i/i2:0 care este
legat) de caracterul obligatoriu6facultativ al clasei de asociaii pentru clasa de entit)i
respectiv)0 iar a doua valoare reprezint) cardi/alitatea 2aIi2: 3ceea ce s,a prezentat mai
sus8 3vezi figura nr. 2.1M8.
C+=(NT=
Nume
$dresa
+ocalitate
CodBfiscal
;$NX$>(
<$CTJ>=
Numar
2ata
;aloare
0K/ 1K1
<ig. nr. 2.1M
2iagrama din figura 2.1M poate fi interpretat) astfel9 fiecare entitate din clasa
C+=(N`= poate apare n ma/im n asociaii din clasa ;pNX$>( i minim n R 3nici una80 iar
fiecare entitate din clasa <$CTJ>= poate apare n ma/im 1 asociaiidin clasa ;pNX$>( i
minim 1 asociaie din aceast) clas).

2.$ SISTEE DE "ESTIUNE A BA%ELOR DE DATE
SQH2,urile reprezint) un softOare comple/ care realizeaz)6asigur) independena0
relaiile logice ntre date i o redundan) minim) a acestora. (le trebuie s) permit) dezvoltarea
rapid) i la un cost avantajos a programelor de aplicaii pentru e/ploatarea datelor dintr,o
structur) comple/)0 precum i accesul rapid la date i asigurarea securit)ii lor.
SQH2,ul reprezint) un sistem de programe care permite utilizatorului definirea0
crearea i ntreinerea bazei de date i accesul controlat la aceasta.
Sistemul SQH2 const) n elemente de softOare care interacioneaz) cu
programele aplicaie ale utilizatorului i cu baza de date. 2e obicei0 un SQH2 ofer)
urm)toarele facilit)i
3N
1. &ermite utilizatorilor s) defineasc) baza de date0 de obicei printr,un limbaj de definire a
datelor 322+8. +imbajul 22+ permite utilizatorilor specificarea tipurilor de date i a
structurilor0 n timp ce constr1ngerile asupra datelor sunt stocate n baza de date
2. &ermite utilizatorilor s) insereze0 s) reactualizeze0 s) tearg) i s) e/trag) date din baza de
date0 de obicei printr,un limbaj de manipulare a datelor 32#+8. <aptul c) e/ist) un
depozit central al tuturor datelor i descrierilor acestora permite limbajului 2#+ s) ofere
o facilitate de interogare general) a acestor date0 denumit) limbaj de interogare. (/istena
unui limbaj de interogare elimin) dificult)ile sistemelor bazate pe fiiere unde utilizatorul
este constr1ns s) lucreze cu un set fi/ de interog)ri pentru a evita proliferarea de
programe care creeaz) probleme majore privind gestionarea acestora. (/ist) dou) tipuri
de limbaje 2#+ , procedurale i neprocedurale care se deosebesc n funcie de operaiile
de e/tragere. 2e obicei0 cele procedurale trateaz) baza de date nregistrare cu nregistrare0
n timp ce cele neprocedurale opereaz) asupra unor seturi de nregistr)ri. Gn consecin)0
limbajele procedurale specific) cum se obine rezultatul unei instruciuni 2#+0 iar cele
neprocedurale descriu numai ce date vor fi obinute. Cel mai obinuit tip de limbaj
neprocedural este limbajul structurat de interogare 3S*+8 care reprezint) acum at1t
limbajul standard0 c1t i cel de facto pentru SQH2 relaionale.
3. .fer) accesul controlat la baza de date. 2e e/emplu0 poate furniza
- un sistem de securitate care previne accesarea bazei de date de c)tre utilizatori
neautorizai
- un sistem de integritate care menine concordana datelor stocate
- un sistem de control al concurenei care permite accesul partajat la baza de date
- un sistem de control al refacerii care restaureaz) baza de date ntr,o stare precedent)
concordant) ca urmare a unei defeciuni n %ardOare sau softOare
- un catalog accesibil utilizatorilor care conine descrieri ale datelor din baza de date
SQH2,ul prezint) i o facilitate cunoscut) sub denumirea de mecanism de
vizualizare care permite fiec)rui utilizator s),i defineasc) propriul mod de vizualizare a bazei
de date. +imbajul 2#+ permite definirea de moduri de vizualizare n care acestea reprezint)
un subset al bazei de date.
A1a/ta4ele S"BD
- controlul redundanei datelor
- coerena datelor
- mai multe informaii de la aceeai cantitate de date
- partajarea datelor
- integritatea crescut) a datelor
- securitatea crescut)
- aplicarea standardelor
- economia de scal)
- ec%ilibru ntre cerine aflate n conflict
- mbun)t)irea accesibilit)ii datelor i capacit)ii de r)spuns
- productivitatea crescut)
- capacitatea de ntreinere mbun)t)it)0 prin independena de date
- concurena mbun)t)it)
- mbun)t)irea serviciilor de salvare de siguran) i refacere
2.$.1 ArHitectura siste2elor de 0estiu/e a 3a7elor de date
Teoria i practica SQH2,urilor ofer) diferite ar%itecturi difereniate n funcie de
componentele0 limbajele utilizate i posibilit)ile de prelucrare a datelor0 e/ist1nd totui
preocup)ri de standardizare a cestora.
Gn general0 intr) n ar%itectura unui SQH2 cel puin " clase de module9
programe de gestiune a bazei de date-
limbajul de definire6descriere a datelor 3+228-
limbajul de manipulare a datelor 3+#28-
3M
utilitare de ntreinere a bazei de date-
componente de control a programelor de aplicaii.
Pro0ra2ele de 0estiu/e a 3a7elor de date ;P"BD= $ceast) clas) de module
realizeaz) accesul fizic la date ca urmare a unei comenzi primite printr,un program de
aplicaii sau interactiv prin intermediul ecranului.
Li23a4ul de descriere a datelor ;LDD= permite traducerea 3compilare sau
interpretare0 dup) caz8 i descrierea naturii datelor i a leg)turilor lor logice fie la nivelul
global 3sub forma sc'emei conceptuale80 fie la nivelul specific fiec)rei aplicaii 3sub forma
sc'emei externe sau sub!sc'em%8.
Li23a4ul de 2a/ipulare a datelor ;LD= permite gestionarea i actualizarea
datelor dintr,o baz) de date.
Utilitare de 8/tre.i/ere a 3a7ei de date
Jn SQH2 trebuie s) ofere o gam) variat) de programe utilitare care s) permit)
gestionarea de c)tre un operator a bazei de date. Jtilitarele variaz) de la un sistem la altul i
depind de comple/itatea SQH2,ului. $cestea pot efectua urm)toarele operaii
21
9
crearea versiunii iniiale a bazei de date i nc)rcarea acesteia folosindu,se fie o
copie creat) anterior0 fie date neorganizate-
crearea i actualizarea jurnalelor tranzaciilor realizate asupra bazelor de date.
$cest utilitar controleaz) fiecare tranzacie rein1nd n jurnal urm)toarele
informaii9
identificatorii de program0 de utilizator i terminalul folosit-
determinarea Ktimpului,main)L-
structura i coninutul bazei nainte i dup) tranzacie-
natura tranzaciei 3sistem sau aplicaie8-
nscrierea datelor transmise tampoanelor SQH2,ului n jurnalul
sistemului-
reorganizarea bazei de date pentru recuperarea spaiului vid-
reorganizarea structurii fizice i logice dup) tranzacie-
restructurarea bazei de date dup) un incident logic sau fizic0 cu refacerea st)rii
e/istente anterior acestuia. >estaurarea este determinat) de e/istenta n cadrul
SQH2,urilor a aa,numitelor puncte,de,reluare 3C%ecIpoint8
22
n cazul unor
ntreruperi n e/ploatarea unei baze de date0 reluarea e/ploat)rii se va face nu de
la nceputul bazei de date0 ci de la C%ecIpointul precedent-
diverse statistici ce permit cunoaterea activit)ii i utiliz)rii bazei de date-
actualizarea sc%emei i sub,sc%emei f)r) rescrierea i compilarea lor-
detectarea Ksp)rg)torilorL regulilor de integritate definite0 f)r) a fi necesar)
intrarea n baza de date-
realizarea unei copii permanente a bazei de date n scopuri de securitate.
Co2po/e/tele de co/trol
$cestea constituie mijloace de prevenire i corectare a anumitor erori ce pot s) apar)
n condiii Kmulti,utilizatorL.
=ntegritatea bazei de date poate fi privit) din mai multe puncte de vedere9
dac) datele trebuie s) fie modificate printr,o aplicaie0 atunci secvena complet) a
acestei operaii trebuie protejat) de orice propagare sau interferen) cu alte
aplicaii-
dac) o aplicaie efectueaz) doar o citire a datelor0 atunci e/ecuia acesteia trebuie
s) interzic) modificarea datelor astfel nc1t s) se evite riscul invalid)rii datelor
citite n prealabil. Se asigur) astfel blocarea actualiz)rii n timpul operaiei de
citire-
21
Sale%0 =.0 0p. cit.$ p. 13
22
Qingua^0 #.0 +auret0 $.0 2ictionnaire dBin"ormatiCue$ (d. #asson0 &aris0 1MMR0 p. 21"
!R
n cazul n care cel puin dou) aplicaii acceseaz) concurent aceeai dat) n cadrul
unei operaii de actualizare0 atunci integritatea bazei de date este Kameninat)L.
Sc%ematic structura unui SQH2 pate fi prezentat) ca n figura 2.2R9
S t r u c t u r a B D
L D D
P G B D
L M D
P r o g r a m e d e
a p l i c a i i
C o m p . c o n t r o l t . ! n t r e i n e r e
B a " a
d e
d a t e
S G B D
# d m i n i $ t r a t o r u l
B D
t i l i " a t o r i
<ig. 2.2R. ,tructura general% a unui ,3;2
2.$.2 @u/c.iile u/ui S"BD
.rice SQH2 trebuie s) ndeplineasc) urm)toarele funcii9 de descriere0 de
manipulare0 utilizare.
@u/c.ia de descriere permite definirea structurii bazei cu ajutorul limbajului special
+220 stabilind criterii de validare a datelor0 metode de acces la date i de asigurare a
confidenialit)ii i integrit)ii datelor. Toate aceste elemente se reg)sesc n ceea ce se
numete sc'ema bazei de date. (/ecuia definiiilor limbajului se materializeaz) ntr,un
ansamblu de tabele0 memorate ntr,un fiier special denumit dicionar de date 3repertoar de
date8
23
.
@u/c.ia de 2a/ipulare asigur) prin intermediul limbajului special +#2 derularea
urm)toarelor activit)i9 nc)rcarea bazei de date0 ad)ugarea de noi nregistr)ri0 tergerea unor
nregistr)ri0 editarea total) sau parial) a unor nregistr)ri0 ordonarea nregistr)rilor0 c)utarea
logic) sau fizic) a nregistr)rilor etc.
@u/c.ia de utili7are permite comunicarea ntre utilizatori i baza de date prin
intermediul unor interfee0 cre1ndu,se astfel un mediu favorabil utilizatorului care la ora
actual) beneficiaz) de prelucrarea n timp real0 ar%itecturile client,server0 servicii =nternet etc.
Gn cadrul realiz)rii acestei funcii interacioneaz) diveri utilizatori0 literatura de
specialitate oferind mai multe clasific)ri sau grup)ri. 2intre acestea am selectat doar c1teva
astfel de grup)ri. >aportul $NS=6S&$>C 1MZ" prezint) trei categorii de utilizatori 3roluri
umane8 ce definesc sc%emele dintr,o ar%itectur) de sistem bazat pe SQH2.
persoana sau grupul de persoane care definete sc%ema conceptual) a bazei de date.
$ceast) sc%em) furnizeaz) o viziune pe termen lung i este baza pentru declaraiile de
securitate,integritate i standardizare impuse celorlalte tipuri de utilizatori-
administratorul bazei de date care are responsabilitatea definirii sc%emei interne a bazei
de date i a ntreinerii acesteia. Gn acelai raport sunt prezentate trei categorii de
administratori9
administratorul ntreprinderii care asigur) gestionarea global) a aplicaiilor
curente i identificarea celor viitoare-
administratorul aplicaiilor care are rolul de a dezvolta sc%emele e/terne 3sub,
sc%emele8 pentru aplicaiile utilizator-
23
<otac%e0 #.0 0p. cit.$ p. 3Z
!1
administratorul de date care opereaz) la nivelul sc%emei de date preciz1nd
necesarul i disponibilitatea datelor-
programatorii de aplicaii i utilizatorii finali care comunic) cu SQH2,ul prin
intermediul limbajului de manipulare sau a limbajului de interogare.
Gntr,o alt) viziune utilizatorii pot fi structurai astfel
2!
9
1. utilizatorii liberi sau conversaionali0 reprezint) beneficiarii 3utilizatorii neinformaticieni8
a informaiilor care nu dispun de cunotine despre structura bazei de date i nici despre
sistemul de calcul pe care este implementat) baza de date. Gn sc%imb au la dispoziie
limbaje de interogare a bazei de date ntr,o form) simplist)-
2. utilizatori programatori care utilizeaz) limbaje de manipulare realiz1nd proceduri
comple/e de e/ploatare a bazei de date. $ceti utilizatori cunosc at1t structura bazei de
date c1t i particularit)ile sistemului de operare0 ceea ce le d) posibilitatea s) e/ploateze
toate facilit)ile oferite de baza de date-
3. administratorul bazei de date care are cel mai important rol n funcionarea i e/ploatarea
optim) a ntregului sistem0 asigur1nd realizarea obiectivelor i funciilor SQH2,ului.
. ultim) clasificare asupra c)reia ne,am oprit grupeaz) utilizatorii n trei mari
categorii
2"
9
utilizatori finali T care interacioneaz) cu baza de date prin intermediul unui limbaj de
interogare sau care apeleaz) programe scrise de programatorii de aplicaii-
programatorii de aplicaii care au rolul de a crea programele de aplicaii ale bazei de date0
utiliz1nd limbajul de manipulare a datelor-
administratorul bazei de date care este o persoan) sau un grup de persoane responsabil cu
controlul general al sistemului.
&e l1ng) aceste categorii de utilizatori0 bazele de date pot fi accesate fraudulos de
persoane cu cunotine de specialitate care ncearc) s) sustrag) sau s) distrug) informaii0
provoc1nd daune proprietarilor b)ncilor de date. $ceti utilizatori sunt cunoscui sub numele
de %acIer,i.
2.*. ArHitecturi 2ultiutili7ator pe/tru siste2e de 0estiu/e a 3a7elor de date
$r%itecturile uzuale utilizate pentru implementarea sistemelor de gestiune a bazelor
de date multiutilizator sunt teleprelucrarea0 ar%itectura fiier,server i client T server.
2.!.1. Teleprelucrarea
&rima metod) de realizare a unei baze de date multiutilizator a fost teleprelucrarea la
care e/ist) un calculator cu o singur) unitate central) de prelucrare i un num)r de terminale
3figura nr. 2.218.
Figura nr.2.21. ,istem cu teleprelucrare
24
+ungu0 =.0 .a. 0p. cit.$ p. 1M
25
Sab)u0 Q%e.0 0p. cit.$ p. 1N
Utili7ator 1
Utili7ator 2
Utili7ator /
Siste2
operare
;co/trol
co2u/ica.ii=
S"BD
Siste2
operare
;date=
Pro0ra2 de
aplica.ie 1
Pro0ra2 de
aplica.ie 2
Pro0ra2 de
aplica.ie $
Ba7a de

date
!2
Toat) procesarea este efectuat) pe acelai calculator. Terminalele utilizatorilor sunt
incapabile s) funcioneze singure0 ele fiind legate la calculatorul central. Jtilizatorii transmit
mesaje i date de la terminale c)tre calculatorul central. Subsistemul de control al
comunicaiilor din cadrul sistemului de operare primete mesajele i datele i le transmite
programului de aplicaii al utilizatorului corespunz)tor0 acesta apel1nd la serviciile SQH2,
ului. Gn acelai mod0 mesajele sunt transmise napoi la terminalul utilizatorului.
SQH2,ul utilizeaz) partea de management a datelor din cadrul sistemului de operare
pentru a procesa datele din baza de date. Toate comenzile din cadrul unui astfel de sistem sunt
generate de calculatorul central i transmise pe canale de comunicaie0 sistemul numindu,se
Kcu teleprelucrareL 3teleUdistan)8.
&e l1ng) sarcina rul)rii programelor aplicaie i a sistemului SQH20 calculatorul
central trebuie s) preia i o cantitate semnificativ) de munc) din partea terminalelor 3de
e/emplu0 formatarea datelor pentru afiarea pe ecran8.
&e m)sur) ce raportul pre6performan) al calculatoarelor a crescut0 tendina a fost de
utilizare a altor alternative ce implic) mai multe calculatoare9 ar%itecturile fiier , server i
client , server.

2.!.2. $r%itectura fiier,server
Gntr,un mediu fiier,server0 procesarea este distribuit) n reea , de obicei o reea
+$N. $r%itectura fiier,server cuprinde fiierele cerute de aplicaii i sistemul SQH2.
$plicaiile i sistemul de gestiune sunt e/ecutate pe fiecare staie de lucru0 solicit1nd c1nd
este necesar fiiere de la serverul de fiiere. $stfel0 serverul de fiiere acioneaz) ca o unitate
de %ard,disc partajat). SQH2,ul local de pe fiecare staie de lucru trebuie s) cear) serverului
de fiiere s),i transmit) toate tabelele de care are nevoie pentru a efectua interog)rile.
$ceast) ar%itectur) are urm)toarele dezavantaje9
1. (/ist) un trafic intens pe reea-
2. (ste necesar) o copie complet) a sistemului SQH2 pe fiecare staie de lucru-
3. Controlul simultaneit)ii0 reconstituirii i integrit)ii este mult mai comple/ deoarece
acelai fiier poate fi accesat de mai multe sisteme SQH2.
Figura nr. 2.22. :r'itectura "i&ier!server

Utili7ator
1
Utili7ator
2
Utili7ator
N
Clie/t
N
Clie/t
2
Clie/t
1
S"BD
S"BD
S"BD
BD
Ser1er de 5i6iere
Siste2 de
operare
;re.ea=
Siste2 de
operare
;date=
Siste2 de
operare
;re.ea=
Siste2 de
operare
;re.ea=
Siste2 de
operare
;re.ea=
Pro0ra2
aplica.ii 1
Pro0ra2
aplica.ii 2
Pro0ra2
aplica.ii 2
Pro0ra2
aplica.ii 2
Pro0ra2
aplica.ii $
LAN
.
.
.
!3
2.!.3. $r%itectura client6server
Toate organizaiile din ziua de azi 3guvernamentale0 economice8 i majoritatea
ntreprinderilor mari i mici recunosc rolul central pe care aplicaiile softOare l au n cadrul
lor0 aplicaiile av1nd rolul reducerii costurilor i mbun)t)irii serviciilor fa) de competiie.
$ceast) dezvoltare i necesitatea utiliz)rii pe o arie mare a unor date de interes comun
a dus la apariia0 utilizarea i proiectarea modelului client6server0 care ofer) date distribuite0
portabilitate ntre platforme i un acces standardizat la resurse.
Termenul de client6server provine de la metoda tradiional) de accesare a unui
computer central numit server de c)tre computere aflate la distan) sau clieni ntr,o
infrastructur) de reea..
#odelul client6server 3figura nr. 2.238 implic) o entitate softOare 3clientul8 care
efectueaz) cereri0 acestea fiind ndeplinite de o alt) entitate softOare 3serverul8. Clientul este
cel ce transmite o cerere server,ului0 acesta o interpreteaz) i apoi o efectueaz). &entru a putea
ndeplini cererea0 serverul poate referi o surs) de informaie 3baze de date80 poate s) efectueze
proces)ri asupra datelor0 s) controleze periferice sau s) efectueze cereri adiionale altor
servere. Gn foarte multe ar%itecturi0 un client poate face cereri la multiple servere i un server
poate deservi mai muli clieni.
>elaia ntre client i server este una de comand)6control0 clientul iniiaz) cererea i
serverul este cel care o ndeplinete0 transmi1nd rezultatul clientului0 aplicaia fiind procesat)
prin divizarea ei ntre cele dou) entit)i0 iar transferul de date este bidirecional. Jn server nu
iniializeaz) niciodat) un dialog cu clienii. Clientul poate funciona pe un server %ardOare i
s) efectueze cereri de la un server care ruleaz) pe un alt server %ardOare sau pe un &C sau
clientul i serverul pot funciona pe acelai computer.
Spre deosebire de un sistem file6server n care datele sunt aduse de pe file server
pentru a fi procesate pe o main) local)0 n acest sistem comenzile sunt transmise asupra
bazelor de date localizate pe server0 rezultatul fiind transmis napoi clientului pentru a fi
vizualizat.
$r%itectura afecteaz) toate aspectele softOare0 ea trebuie s) ia n considerare
comple/itatea aplicaiei0 nivelul de integrare i interfaare cerut0 num)rul utilizatorilor0
r)sp1ndirea lor geografic)0 natura reelelor i toate tipurile de tranzacii necesare. 2e
asemenea0 alegerea ar%itecturii afecteaz) timpul de dezvoltare0 fle/ibilitatea0 precum i
ntreinerea aplicaiei. +a majoritatea aplicaiilor end user se urm)rete9 prezentare0 procesare
i date. $r%itecturile client6server definesc cum aceste trei componente sunt mp)rite ntre
entit)ile softOare i distribuite n reea0 e/ist) o varietate de moduri n care pot fi divizate i
implementate0 utilizarea unor astfel de ar%itecturi put1nd aduce multe beneficii firmelor0
permi1nd adaptarea la diferite standarde i te%nologii.
. ar%itectur) client6server descrie un model de calcul pentru dezvoltarea unor sisteme
automate0 model ce se bazeaz) pe distribuirea funciilor ntre dou) tipuri independente i
autonome de procese0 respectiv procese server i procese client.
Jn client este un proces oarecare care solicit) servicii specifice de la procese server0
n timp ce un server este procesul care furnizeaz) serviciile cerute de c)tre clieni.
$t1t procesele client0 c1t i cele server pot fi amplasate pe acelai calculator sau pe
calculatoare diferite din cadrul unei reele0 reeaua leg1nd serverele i clienii i asigur1ndu,le
mediul de comunicaie. Teoretic0 calculatoarele implicate pot fi mainframe,uri0
minicalculatoare sau microcalculatoare. 2atorit) costurilor0 cel mai adesea n cadrul unei
ar%itecturi client,server sunt implicate microcalculatoare.
Cele trei componente fundamentale ale unei ar%itecturi client6server sunt9
Clientul0 cunoscut i sub denumirea de baplicaie front,endb0 datorit) faptului c)
utilizatorii finali interacioneaz) cu procesele client-
,erverul0 cunoscut i sub denumirea de baplicaie bacI,endb0 datorit) faptului c)
procesele server furnizeaz) serviciile de baz) sau elementare pentru procesele client-
!!
Componenta comunicaie 3communication middleOare8 care reprezint) mulimea
proceselor de comunicaie ntre procesele server i procesele client0 av1nd rolul de
supervizare a transmisiei datelor i informaiilor de control ntre servere i clieni.
Componenta de comunicaie este asociat) ntotdeauna cu o reea de comunicaie ce
asigur) suportul pentru circulaia sub form) de mesaje a tuturor cererilor clienilor i a
r)spunsurilor serverelor.
Gn cadrul ar%itecturii client6server0 clienii au urm)torul rol9
$sigur) interfaa bazei de date cu utilizatorul-
$ccept) i verific) sinta/a intr)rilor 3datelor8 utilizatorilor-
Qenereaz) cererile utilizatorilor pentru baza de date i le transmite serverului-
>ecepioneaz) rezultatele de la server-
<ormateaz) rezultatele.
Serverul are urm)torele funcii9
&rimete i proceseaz) cererile clienilor pentru baza de date-
;erific) autorizarea-
Qaranteaz) c) nu sunt nc)lcate contr1ngerile de integritate-
(fectueaz) procesarea interogare6reactualizare i trimite clientului r)spunsul-
Gntreine catalogul de sistem care descrie datele-
.fer) acces simultan la baza de date-
$sigur) restaurarea i refacerea bazei de date-
.ptimizeaz) interogarea bazei de date.
&rocesele client sunt procese proactive0 iniiind comunicaia cu procesele server0 n
timp ce procesele server sunt reactive0 atept1nd cererile proceselor client.
Figura nr. 2.27. :r'itectura client!server

Jn proces server poate asigura urm)toarele categorii de servicii9
Ser1icii de 5i6iere pentru o reea local) de calculatoare n care fiecare calculator
client acceseaz) discul dur al calculatorului server ca i cum ar fi un disc dur local-
Ser1icii de i2pri2are n cadrul unei reele n care fiecare calculator client acceseaz)
imprimanta sau imprimantele calculatorului server ca i cum ar fi locale-
Ser1icii de 5aI0 calculatorul server fiind ec%ipat cu o plac) de fa/6modem i
gestion1nd toate problemele legate de transmisia datelor-
Utili7ator
1
Utili7ator
2
Utili7ator
N
Clie/t
N
Clie/t
2
Clie/t
1
BD
Ser1er de BD
Siste2 de
operare
;re.ea=
Siste2 de
operare
;date=
Siste2 de
operare
;re.ea=
Pro0ra2
aplica.ii 1
Pro0ra2
aplica.ii 2
Pro0ra2
aplica.ii 2
Pro0ra2
aplica.ii 2
Pro0ra2
aplica.ii $
LAN
Siste2 de
operare
;re.ea=
Siste2 de
operare
;re.ea=
S"BD
.
.
.
!"
Ser1icii de 3a7e de date , calculatorul server stoc%eaz) datele propriu,zise i motorul
sistemului de gestiune a bazelor de date0 n timp ce pe calculatoarele client se g)sete
aplicaia front,end pentru accesarea datelor-
Ser1icii de tra/7ac.ii oferite de c)tre un server de tranzacii conectat la un server de
baze de date-
Alte ser1iciiK incluz1nd servicii audio0 video0 C2,>.#0 bacIup etc.
Componenta comunicaie se refer) la un softOare cu rol special care9
(ste amplasat logic ntre procesele client i server-
$sigur) servicii specializate pentru a bascundeb clienilor detaliile protocoalelor de
comunicaie n reea i a protocoalelor propriu,zise ale serverului.
&entru a,i ndeplini funciile0 softOare,ul de comunicaie posed) urm)toarele dou)
nivele9
Nivelul fizic se refer) la modul n care calculatoarele client i server sunt conectate
fizic-
Nivelul logic se ocup) de comunicaia dintre procesele client i server0 fiind nivelul
protocoalelor de comunicaie interprocese care asigur) bconversaiab.
Componentele unei ar%itecturi client,server trebuie s) se conformeze urm)toarelor
principii fundamentale pentru a interaciona corect9
- I/depe/de/.a Hard<are care impune ca procesele server0 client i de comunicaie s)
funcioneze pe diferite platforme %ardOare f)r) diferene funcionale.
- I/depe/de/.a so5t<are 5a.: de siste2ele de operareK 5a.: de siste2ele de operare 8/
re.eaK 5a.: de aplica.ii care impune ca procesele server0 client i de comunicaie s)
funcioneze n condiiile e/istenei unor diferite sisteme de operare0 protocoale softOare i
aplicaii0 f)r) diferene funcionale.
- Accesul li3er la ser1iciile o5erite de ser1ere trebuie asigurat tuturor clienilor unui
sistem. $ceste servicii nu trebuie s) depind) de locaiile clienilor sau serverelor. Jn alt
factor c%eie este acela c) serviciile sunt furnizate doar la cerere.
- Distri3uirea proceselor impune respectarea urm)toarelor reguli9
&rocesele client i server trebuie s) fie entit)i autonome cu funciuni bine definite0
conduc1nd astfel la creterea modularit)ii i fle/ibilit)ii ntregului sistem.
#a/imizarea utiliz)rii locale a resurselor0 at1t la nivelul clienilor0 c1t i la nivelul
serverelor
$sigurarea scalabilit)ii0 n sensul e/istenei posibilit)ii de e/tensie rapid) a sistemului
$sigurarea interoperabilit)ii i integr)rii.
9 Sta/dardele trebuie s) guverneze interfaa cu utilizatorii0 accesul la date0 protocoalele de
reea0 comunicaia interprocese. Gn prezent0 din multitudinea de procese se remarc) dou)0
pentru accesul la date i anume .2HC 3.pen 2ata Hase Connectivit^8 i =2$&= 3=ntegrated
2atabase $pplication &rogramming =nterface8.
(/ist) multe avantaje ale ar%itecturii client6server9
&ermite un acces mai larg la bazele de date e/istente-
$re performane crescute , dac) clienii i serverul se afl) pe calculatoare diferite0
atunci diferite unit)i centrale de prelucrare pot procesa aplicaii n paralel- reglarea
serverului este mai uor de efectuat dac) singura sa sarcin) este de a efectua
prelucrarea bazei de date-
>educe costurilor dispozitivelor %ardOare , numai serverul necesit) o capacitate de
stocare i o putere de prelucrare suficiente pentru a stoca i gestiona baza de date-
>educe costurile comunicaiilor , aplicaiile e/ecut) o parte din operaii la client care
trimite prin reea numai cererea de acces la baza de date0 ceea ce face ca pe reea s)
circule mai puine date-
#)rete coerena , serverul poate trata verific)rile de integritate astfel nc1t
constr1ngerile trebuie definite i validate ntr,un singur loc0 f)r) a fi necesar ca fiecare
program aplicaie s) e/ecute propriile verific)ri.
!'
&rincipalul dezavantaj al ar%itecturii client6server este cel legat de control.
Calculatoarele client opereaz) simultan i din acest motiv proceseaz) aplicaiile n paralel0
ceea ce determin) posibilitatea apariiei unor pierderi de date la actualiz)ri.
Gn conte/tul bazelor de date0 ar%itectura client6server nseamn)9
Clientul administraz) interfaa cu utilizatorul i logica aplicaiei0 acion1nd ca o staie
de lucru sofisticat) pe care sunt e/ecutate aplicaiile bazei de date.
Clientul preia cererea utilizatorului0 verific) sinta/a i genereaz) cererea pentru baza
de date n limbajul S*+ sau n alt limbaj de baze de date0 adecvat logicii aplicaiei. &e
urm) transmite mesajul serverului0 ateapt) un r)spuns i l formateaz) pentru
utilizatorul final.
Serverul accept) i proceseaz) cererea pentru baza de date dup) care transmite
rezultatul clientului. &rocesarea implic) verificarea autoriz)rii0 asigurarea integrit)ii0
ntreinerea catalogului de sistem i procese de interogare i reactualizare. Gn plus0 se
asigur) controlul simultaneit)ii i reconstruciei.
Nu putem nc%eia abordarea privind bazele de date n ar%itectura client6server f)r) s)
amintim de adaptabilitatea organic) pentru =nternet. #ajoritatea serviciilor =nternetului se
desf)oar) n regim client6server 3banala navigare nseamn) un utilizator acces1nd datele
dintr,un site,server prin intermediul unei aplicaii client care este broOserul de ]eb80 astfel c)
devine natural) implicarea SQH2>,urilor n aplicaii =nternet de genul e,business sau e,
commerce
2@
.
2.". #rotecia i securitatea bazelor de date
&rin protecia bazei de date se nelege un ansamblu de activit)i umane i de facilit)ti
oferite de SQH2 prin care se urm)rete asigurarea integrit%ii datelor 3corectitudinii datelor
memorate n baza de date8 i securit%ii datelor 3restricionarea accesului la date8. Cu c1t aria
de cuprindere a SQH2 este mai vast)0 cu at1t aceste dou) obiective sunt mai importante i
mai dificil de realizat.
Cu privire la integritatea datelor0 pot s) apar) trei situaii practice9
1. Asi0urarea i/te0rit:.ii se2a/tice a datelor. .biectivul impune de fapt
evitarea introducerii de date incorecte sau efectuarea unor prelucr)ri incorecte. (rorile trebuie
sesizate la un interval de timp c1t mai scurt dup) apariia lor.
2. Co/trolul accesului co/cure/t la date. $cesta implic) evitarea obinerii de
rezultate neverosimile ale prelucr)rilor ca urmare a e/ecuiei concurente a mai multor
prelucr)ri n regim multiutilizator.
3. Sal1area 6i restaurarea 3a7ei de date. Gn cazul funcion)rii anormale a
sistemului0 bazele de date trebuie s) poat) fi readuse la starea avut) nainte ca defeciunea s)
survin).
$ntegritatea semantic% se poate asigura at1t prin proceduri de validare incluse n
programele de aplicaii0 c1t i prin instituirea unor reguli de integritate asupra bazei de date.
(/ist) restricii de integritate implicite i e/plicite 3acestea din urm) se mai numesc i
restricii de comportament8. Ca restricii implicite0 la modelul relaional avem integritatea
entit%ii 3se refer) la valori nenule ale c%eii8 i integritatea re"erenial%. >estriciile e/plicite
de integritate 3e/9 nici un salariu s) nu fie mai mare de 1RRRRRRR lei8 pot fi definite n
programele de aplicaii sau0 dac) SQH2 o permite0 pot fi memorate n dicionarul de date0 sub
form) de proceduri stocate$ declan&atori etc. 3avantaj considerabil8.
Controlul accesului concurent la baza de date
Gn sistemele multiutilizator0 sistemul de operare asigur) accesul programelor la
resurse dup) o disciplin) intern) 3uneori be/ecuie ntreesut)b8. Gntreruperea accesului unui
program la baza de date pentru a permite accesul altuia poate avea consecine grave asupra
operaiunii n curs0 alter1nd datele.
&entru controlul accesului concurent0 SQH2 multiutilizator opereaz) cu mecanismul
tranzaciilor. Tranzacia este o secven) de operatii care din punctul de vedere al SQH2 se
constituie ca un tot unitar0 accept1ndu,se fie derularea ei complet)0 fie anularea tuturor
26
H)du0 #.0 . perspectiv) asupra bazelor de date0 &C >eport nr.1261MMN
!Z
modific)rilor aduse bazei de date 3derularea invers)8. .rice tranzacie are un punct de nceput
i unul de sf1rit. Tranzaciile sunt de dou) tipuri9
implicite0 care au puncte de nceput i de sf1rit automat definite 3de e/.0 comenzile
=NS(>T0 J&2$T(0 2(+(T( din S*+8-
explicite0 adic) acelea care prezint) clauze pentru stabilirea punctelor de nceput i de
sf1rit 3H(Q=N T>$NS$CT=.N0 C.##=T6(N2 T>$NS$CT=.N0 >.++H$Ch8.
Tranzaciile nu produc anomalii dac) au loc de o manier) succesiv) 3e/ecuie serial)8.
Cum din motive de performan) e/ecuia seriala nu este posibil) pe sisteme multiutilizator0 se
apeleaz) la te'nica bloc%rii pentru a asigura o e/ecuie serializabil) a tranzaciilor. Gn cea mai
simpl) form)0 blocarea const) n interzicerea accesului altor procese la datele implicate ntr,o
tranzacie0 p1n) ce aceasta nu se finalizeaz). Hlocarea poate avea loc la nivel de baz) de date0
fiier0 grup de nregistr)ri0 nregistrare sau c%iar c1mp. Totui0 blocarea nu este at1t de
restrictiv)0 n sensul c)9
se permite citirea de c)tre un utilizator a datelor accesate spre citire de alt utilizator
3blocare partajabil)8-
nu se permite citirea de c)tre ali utilizatori a datelor accesate n scopul actualiz)rii
de alt utilizator 3blocare e/clusiv)8.
Hlocarea se realizeaz) prin emiterea de c)tre o tranzacii a unei cereri e/plicite de
blocare.
$ccesul concurent i comple/itatea mecanismului de blocare sunt influenate de
granularitatea bloc%rii. Se intuiete uor faptul c) blocarea ntregii baze de date este mai
neeconomicoas) dec1t alte tipuri de blocare0 dar blocarea unui singur c1mp complic) foarte
mult mecanismul de blocare. Gn practic)0 SQH2 e/ecut) blocarea la nivel de nregistrare0 grup
de nregistr)ri sau fiier.
. problem) special) o constituie interblocarea 3deadlocI80 care const) n blocarea de c)tre
dou) tranzacii a anumitor resurse0 apoi fiecare solicit) resursele blocate de cealalt). (/ist)
dou) strategii de rezolvare a interbloc)rii9
prevenirea interbloc)rii9 fiecare tranzacie bloc%eaz) de la nceput toate resursele de
care are nevoie0 astfel c) alte tranzacii nu le vor putea accesa- cum este imposibil de cunoscut
dinainte ce resurse sunt necesare0 metoda are o slab) aplicabilitate practic)-
soluionarea interbloc)rii9 se bloc%eaz) resursele pe m)sura ce tranzacia le solicit)0
deci interblocarea poate surveni0 dar apoi se folosesc metode pentru detectarea i eliminarea
sa. &entru aceasta0 sistemul poate s) in) evidena tranzaciilor n curs0 deci a nregistr)rilor
accesate. 2ac) survine interblocarea0 una dintre p)ri va fi victima0 adic) tranzacia sa va fi
abandonat). Toate resursele vor fi deblocate iar utilizatorul va fi anunat despre acest lucru.
&rocesul ntrerupt poate fi9 cel cu cele mai multe resurse blocate- cel cu cele mai putine
resurse blocate- cel mai vec%i- cel mai recent- cel cu cea mai mic) prioritate la e/ecuie- cel
care nu a realizat nc) actualizarea H2 etc.
$ceste preciz)ri sunt valabile pentru calculatoarele mari0 SQH2 micro av1nd facilit)i mult
mai modeste de control al tranzaciilor concurente.
Salvarea i restaurarea bazei de date
$ceste operaii au ca scop readucerea bazei de date n starea consistent) n care se
afla nainte de unele evenimente care au alterat consistena datelor0 precum9 funcionare
anormal) a SQH2,ului sau sistemului de operare0 defeciune a suportului fizic pe care este
memorat) baza de date.
. stare consistent) este una n care sunt reflectate rezultatele finale ale e/ecuiei unor
tranzacii0 nici o tranzacie nu este n curs de e/ecuie i sunt satisf)cute restriciile semantice
necesare.
(/ist) mai multe te%nici de restaurare. Jna dintre ele const) n terminarea
tranzaciilor active la momentul defeciunii. =nformaiile necesare restaur)rii pot mbr)ca
forma unor copii de siguran%0 jurnale ale tranzaciilor 3succesiunea cronologic) a
prelucr)rilor80 puncte de control 3c%ecIpoints8 i jurnale ale imaginilor 3rezultatele
prelucr)rilor succesive8. >estaurarea se poate face automat sau manual.
!N
,ecuritatea bazei de date
=nterzicerea accesului neautorizat la date mbrac) forma unui set de m)suri de
protecie umane0 %ardOare i softOare.
&rima i cea mai simpl) m)sur) este izolarea fizic) a sistemului de calcul de
persoanele neautorizate 3acolo unde este posibil8.
$ccesul la resursele sistemului poate avea loc prin facilit)i ca parole0 profile
utilizator sau matrici ale drepturilor de acces 3privilegii0 reguli de autorizare8.
Jtilizator .biect $ciune >estricie
J1 salariati.dbf citire sectorUb&ersonalb
J2 furnizori.dbf citire0 modificare0 stergere ,
J3 salariati.dbf citire sectorqbT(S$b
Jn alt mecanism este cel al sc%emelor e/terne 3referite in literatura de specialitate i
ca vieO,uri80 reprezent1nd acea parte a bazei de date care poate fi accesat) de un anumit
utilizator. 2e obicei0 privilegiile pentru un vieO sunt precizate independent de cele pentru
obiectele pe baza c)rora este definit.
2e asemenea0 datele pot fi memorate pe suportul e/tern n form) criptat)0 astfel nc1t
citirea lor f)r) aplicaia proprietar) 3de e/emplu cu ajutorul comenzilor sistemului de operare8
s) fie imposibil). Criptarea presupune folosirea componentelor urm)toare9
c%eie de criptare-
algoritm de criptare-
c%eie de decriptare-
algoritm de decriptare.
#ai cunoscute sunt metodele de criptare 2(S 3c%eie privat) pe '! de bii80 >S$0 &Q&
3c%eie public) i c%eie privat)8.
2.-. Ad2i/istrarea datelor 6i a 3a7elor de date
Gn prezent este larg recunoscut) importana critic) a gestiunii datelor n cadrul unei
organizaii economice. 2atele i informaiile asociate reprezint) o resurs) mult prea valoroas)
pentru a nu beneficia de o atenie sporit) n ceea ce privete activitatea de administrare a lor.
$dministrarea ineficient) a datelor duce la o slab) valorificare a acestora i se poate
caracteriza prin9
- definiii multiple ale aceleiai entit)i de date i6sau reprezent)ri inconsistente ale unor
aceleai elemente de date n baze de date diferite0 conduc1nd la imposibilitatea integr)rii
datelor
- lipsa unor elemente c%eie ale datelor0 fapt ce determin) pierderea valorii datelor pentru
organizaie
- nivele sc)zute ale calit)ii datelor datorate unor surse inadecvate de date sau timpilor
pro%ibitivi de transfer de la un sistem la altul
- lipsa unei familiariz)ri cu datele e/istente la dispoziie0 inclusiv lipsa cunoaterii locaiilor
i semnificaiilor datelor n procesele de adoptare a deciziilor strategice sau de planificare.
$v1nd n vedere aceste aspecte negative0 majoritatea organizaiilor au creat dou) funcii
speciale9 pentru administrarea datelor0 respectiv pentru administrarea bazei de date.
Ad2i/istratorul datelor este custodele datelor organizaiei0 fiind direct r)spunz)tor
de controlarea utiliz)rii i de protejarea resurselor de date. 2e asemenea0 administratorul
datelor are ca sarcini9
- determinarea cerinelor organizaiei privind datele0 estimarea volumului de date i a
creterii probabile a acestuia
- dezvoltarea unui model de date general
- realizarea proiect)rii conceptuale i logice a bazei de date
- gestionarea dicionarului de date
- soluionarea conflictelor cauzate de accesul concurent la o aceeai resurs) de date
3partajarea unei resurse de date8
!M
- adoptarea deciziilor privitoare la memorarea datelor
- impunerea i meninerea unor definiii ale datelor i a unor standarde
- mbun)t)irea performanelor bazei de date
- asigurarea mijloacelor de instruire a utilizatorilor
- implicarea ntr,o gam) larg) de activit)i ca planificarea0 analiza0 proiectarea0
implementarea i asigurarea securit)ii bazei de date
- asigurarea unei documentaii complete care s) includ) modelul ntreprinderii0 standardele0
politicile0 procedurile0 utilizarea dicionarului de date i controlul asupra utilizatorilor
finali
- meninerea contactului cu utilzatorii pentru a determina noile cerine i a rezolva
dificult)ile privind accesul la date sau performanele
Ad2i/istratorul 3a7ei de date este implicat n proiectarea fizic) a bazei de date i n
implementarea efectiv) a acesteia pe suporturile fizice de memorare0 n impunerea
standardelor de securitate i protecie0 precum i n activit)ile de salvare i restaurare a bazei
de date.
<unciile generale ale administr)rii datelor i bazelor de date sunt urm)toarele9
- sta3ilirea politicilorK procedurilor 6i sta/dardelor or0a/i7a.iei 8/ 2aterie de dateK ca
m)suri de protecie a datelor i a bazei de date
- politicile datelor sunt reprezentate de o serie de specificaii care e/pliciteaz)
scopurile administr)rii datelor 3de e/emlu0 bfiecare utilizator trebuie s) posede o
parol)b
- procedurile asociate datelor sunt e/prim)ri ale unor aciuni ce trebuie ntreprinse
pentru efectuarea unor anumite activit)i- de e/emplu0 procedurile de salvare i
restaurare a datelor ce trebuie cunoscute de c)tre toi utilizatorii
- standardele asociate datelor sunt convenii e/plicite ce trebuie urmate pentru a
facilita cunatificarea nivelului de calitate a datelor i a bazei de date- de e/emplu0
conveniile de notaie pentru obiectele componente ale unei baze de date trebuie
standardizate0 urm1nd a fi respectate ntocmai de c)tre toi programatorii de
aplicaii.
- pla/i5icarea ce presupune administrarea eficient) a datelor i a bazei de date implic) at1t
nelegerea cu e/actitate a nevoilor reale ale organizaiei0 c1t i abilitatea de a contribui la
dezvoltarea unei ar%itecturi informaionale care s) satisfac) nevoile organizaiei
- re7ol1area co/5lictelor de date. Hazele de date sunt utilizate cu scopul de a fi partajate-
mai mult0 de regul)0 bazele de date implic) date ce provin de la mai multe departamente
din cadrul organizaiei. Gn acest conte/t0 administratorilor datelor i a bazelor de date le
revine misiunea de a media conflictele generate de asumarea dreptului de proprietate
asupra datelor din partea unor utilizatori
- 0estio/area depo7itului i/ter/ de date al c)rui coninut este reprezentat de metadatele
ce descriu datele i resursele de procesare a datelor unei organizaii. Gn prezent depozitele
de date nlocuiesc dicionarele de date n majoritatea organizaiilor0 constituind
instrumente eseniale de sprijinire a activit)ilor de administrare a datelor i a bazelor de
date
- selectarea co2po/e/telor Had<are 6i so5t<are. (valuarea i selectarea componentelor
%ardOare i softOare este un factor c%eie n administrarea eficient) a datelor unei
organizaii0 aspectul cel mai important fiind cel al asigur)rii permanente a unei
compatibilit)i depline ntre componentele %ardOare i cele softOare
- 0estio/area aspectelor pri1i/d securitatea 6i co/5ide/.ialitatea datelor. Scopul
asigur)rii proteciei i securit)ii datelor este de a preveni apariia unor amenin)ri
intenionate sau accidentale la adresa integrit)ii datelor i a accesului la date. $sigurarea
proteciei datelor se concretizeaz) n elaborarea i implementarea unor planuri detaliate de
securitate a datelor ce includ9
- politici i proceduri administrative
- protecii ale datelor la nivel fizic
"R
- protecii ale sistemului de gestiune a bazei de date0 ce includ9
- perspective sau subsc%eme care restricioneaz) accesul utilizatorilor
- reguli de autorizare care identific) utilizatorii i restricioneaz) aciunile pe
care acetia le pot efectua asupra bazei de date
- proceduri definite de utilizatori ce impun restricii i limit)ri adiionale
asupra utiliz)rii bazei de date
- proceduri de criptare ce conduc la criptarea datelor din baza de date ntr,un
format neinteligibil
- sc%eme de autentificare ce identific) f)r) ambiguitate persoanele ce
intenioneaz) s) acceseze baza de date
- facilit)i suplimentare de salvare0 monitorizare i verificare care conduc la
uurarea activit)ii de restaurare.
- asi0urarea procedurilor speci5ice de sal1are 6i restaurare
"1
Capitolul $. ODELUL RELA(IONAL AL DATELOR
$.1. Ele2e/tele 2odelului rela.io/al
$.2. Al0e3ra rela.io/al:
$.$. Studiul depe/de/.elor 5u/c.io/ale
$.*. Nor2ali7area 3a7elor de date rela.io/ale
$.1. Ele2e/tele 2odelului rela.io/al
#odelul relaional a fost introdus de c)tre (.<. Codd 31MZR80 fiind un model formal
de organizare conceptual) a datelor0 destinat reprezent)ri leg)turilor dintre date cu ajutorul
teoriei matematice a relaiilor.
&rincipalul obiectiv al modelului relaional a fost acela de a realiza o distincie clar)
ntre aspectele fizice i logice ale unei baze de date0 cu alte cuvinte0 de a asigura independena
fizic) a datelor. Spre deosebire de modelele anterioare de organizare a datelor 3modelul
ierar%ic0 modelul reea8 care erau orientate spre fiiere i care necesitau programe specializate
pentru accesarea bazei de date nregistrare cu nregistrare0 la nivel fizic0 modelul relaional
este orientat spre mulimi de date0 reprezentate conceptual cu ajutorul relaiilor0 permi1nd
introducerea unor limbaje neprocedurale de manipulare a datelor.
#odelul relaional al datelor este independent de sistemul de calcul implicat n
organizarea0 stocarea i reg)sirea datelor0 Kascunz1ndL fa) de utilizator structurile0 regulile i
operaiile referitoare la implementarea fizic) a bazei de date.
$vantajele modelului relaional au condus la larga sa acceptare de c)tre comunitatea
proiectanilor i programatorilor sistemelor de baze de date0 fiind riguros din punct de vedere
matematic i oferind un instrument performant de studiu a propriet)ilor i aspectelor logice
ale unei aplicaii cu baze de date.
>ezultatul model)rii relaionale a datelor este o scHe2: rela.io/al: a u/ei 3a7e de
date0 ce este constituit) dintr,un set de sc%eme ale relaiilor mpreun) cu un set de restricii de
integritate asociate. $adar0 modelul relaional prezint) urm)toarele caracteristici9
o rela.ie este o structur) bidimensional) de date0 compus) din r1nduri i coloane-
denumirea uzual) a unei relaii este aceea de tabel sau tabel)0 termenul de relaie constituind
fundamentul teoriei matematice a seturilor0 f)r) a face referire la leg)turile dintre structuri i
date-
o relaie stoc%eaz) informaii despre entit)ile aparin1nd unei clase de entit)i-
fiecare r1nd al unei tabele poart) denumirea de tuplu i face referire la o entitate
particular) din cadrul clasei de entit)i-
fiecare coloan) reprezint) un atribut0 av1nd un nume distinct- numele atributului
e/prim)0 de regul)0 semnificaia valorilor din cadrul coloanei respective0 num)rul atributelor
definete 0radul relaiei-
num)rul tuplurilor dintr,o relaie reprezint) cardi/alitatea relaiei-
la intersecia fiec)rui r1nd cu fiecare coloan) se g)sete o singur) dat) 3o valoare
atomic)8-
fiecare tabel) posed) o c%eie primar) ce identific) n mod unic fiecare r1nd 3tuplu8-
valorile unui atribut 3coloane8 se ncadreaz) ntr,o gam) de valori cunoscut) sub
denumirea de do2e/iu al atributului respectiv- un domeniu este o mulime de valori ce se
poate defini fie enumer1nd elementele componente ale mulimii 3de e/emplu0 mulimea
culorilor80 fie definind o proprietate distinct) a valorilor 3de e/emplu0 toate valorile sunt
numere ntregi8-
n cadrul modelului relaional e/ist) posibilitatea de a lucra i cu valori necunoscute0
nedefinite sau neaplicabile0 pentru aceasta introduc1ndu,se valoarea special) Null-
ordinea r1ndurilor i coloanelor nu prezint) importan) pentru sistemul de gestiune a
bazelor de date-
"2
mulimea numelor atributelor unei relaii 3coloanelor unei tabele8 mpreun) cu numele
relaiei reprezint) o scHe2: a u/ei rela.ii.
Fig. nr.7.1 )lementele modelului relaional
(lementele de baz) ale organiz)rii datelor sunt prezentate comparativ0 formal0 uzual
sau fizic n Tabelul nr. 3.1.
Tabelul 3.1
<ormal Jzual <izic
relaie
tuplu
atribut
tabel 3tabel)8
r1nd 3linie8
coloan)
<iier
nregistrare
c1mp
>estriciile minimale de integritate 3a entit)ii0 a c%eii i a referinei8 sunt definite n
raport cu noiunea de c%eie a unei relaii.
&rin supercHeie se desemneaz) un atribut 3sau o combinaie de atribute8 ce identific)
n mod unic un tuplu din cadrul unei relaii. . cHeie ca/didat: este o superc%eie minimal)0
cu alte cuvinte0 o superc%eie ce nu conine un subset de atribute cu proprietatea de a fi el
nsui superc%eie a relaiei respective.
CHeia pri2ar: a unei relaii este una dintre c%eile candidate0 selectat) de c)tre
proiectantul sau administratorul bazei de date0 pentru a identifica n mod unic toate valorile
celorlalte atribute ce compun un tuplu. C%eia primar) nu poate conine valori Null. $tunci
c1nd o c%eie candidat) nu este c%eie primar) este considerat) cHeie alter/ati1: ;secu/dar:=.
. cHeie secu/dar: este utilizat) ca inde/ pentru a accesa tupluri.
2eci0 c%eia primar) trebuie s) verifice trei restricii9
unicitatea D o c%eie identific) un singur tuplu 3linie8 al relaiei-
compoziia minimal% D atunci c1nd c%eia primar) este compus)0 nici un atribut din
c%eie nu poate fi eliminat f)r) distrugerea unicit)ii tuplului n cadrul relaiei 3n
cazuri limit) o c%eie poate fi alc)tuit) din toate atributele relaiei8-
valorile non!nule D valorile atributului sau ale ansamblului de atribute ce
desemneaz) c%eia primar) sunt ntotdeauna specificate0 deci ne,nule- nici un atribut
din compoziia c%eii primare nu poate avea valori nule.
+eg)tura ntre tuplurile din relaii diferite se realizeaz) prin atribute sau combinaii de
atribute0 numite cHei str:i/e ;eIter/e=. C%eia str)in) a unei relaii este un atribut >combinaie
de atribute0 ale c)rui valori sunt fie Null0 fie se reg)sesc n mulimea valorilor c%eii primare
ale altei relaii.
211
202
211
237
192
213
192
211
311
291
321
312
357
345
314
291
buc
buc
buc
buc
buc
buc
buc
buc
Cod-Furnizor Cod-ob-inv Den-ob-inv. UM PU Cantitate
Etaere
!caune
Cuiere
Du"a#uri
!a"o#ete
Manu$i
%c&e"ari
'irouri
35
95
47
450
50

1
2"
2R
1
0
150
12
10
5
4
14
12
10
3
Obiecte-inventar
nu)e re"atie
atribut
$c&e)a
re"atiei
tu#"u
n-tu#"uri
va"oarea
din do)eniu
do)eniu
"3
<ie0 de e/emplu0 relaiile R
1
;AK BK CK ...= i R
2
;K NK OK ...K A= n care atributele A0
respectiv 0 sunt c%eile primare. $tributul A este c%eia str)in) a relaiei R
2
.
>egulile de integritate ale modelului relaional sunt urm)toarele9
>egula 19 u/icitatea cHeii pri2are9 c%eia primar) trebuie s) fie minimal) i s) aib)
valori unice
>egula 29 i/te0ritatea e/tit:.ii 9 atributul6atributele ce compun c%eia primar) trebuie
s) aib) valori diferite de Null
>egula 39 i/te0ritatea re5ere/.ial:9 1alorile atributului 6atributelor c%eii str)ine
trebuie s) fie sau Null sau s) fie prezente n cadrul valorilor c%eii primare asociate.
2escrierea unei baze de date relaionale presupune s) se aib) n vedere dou) aspecte
ale acesteia9 structura 3sau sc%ema8 i coninutul 3sau instanierea8.
Co/.i/utul unei relaii este ansamblul tuplurilor ce o alc)tuiesc la un moment dat. Se
modific) n timp.
ScHe2a poate fi definit) ca un ansamblu de relaii asociate semantic prin domeniul
lor de definiie i prin restricii de integritate. (ste independent) de timp i este componenta
permanent) a unei relaii.
2up) C._. 2ate0 sc%ema baza de date cuprinde9
numele relaiilor i ale atributelor fiec)rei relaii-
restriciile de integritate0 care sunt de trei feluri9
, restriciile c%eilor primare-
, restricii refereniale care decurg din e/istena c%eilor str)ine-
, alte restricii 3cum sunt cele de comportament
2Z
8.
Sc%ema simplificat) a unei baze de date relaionale cuprinde numele tabelelor i
enumerarea atributelor acestora0 atributele,c%eie fiind subliniate.
(V9 Haza de date 2(S<$C(>(0 alc)tuit) din tabelele C+=(N`= i <$CTJ>=,
(#=S(
C+=(N`=3CodBclient0 NumeBclient0 +ocalitate0 CodBfiscal8
<$CTJ>=,(#=S(3Num)rBfactur)0 2ataBfactur)0 ;aloare0 CodBclient8
&rezentarea grafic) a unei baze de date respect) urm)toarele reguli9
o tabel) se reprezint) pe dou) linii0 pe prima fiind scris numele tabelei0 iar pe
a doua numele atributelor-
c%eia primar) este plasat) prima-
numele coloanelor cu atribute ce alc)tuiesc c%eia primar) se subliniaz)-
o restricie referenial) este reprezentat) printr,o s)geat) care pleac) de la
numele coloanei de referin) i are v1rful la atributul corespunz)tor din tabela cu care intr) n
leg)tur).
C+=(N`=
CodBclient NumeBclient +ocalitate CodBfiscal
<$CTJ>=B(#=S(
Num)rBfactur) 2ataBfactur) ;aloare CodBclient
&ractic0 ansamblul informaiilor e/istente n baza de date la un moment dat reprezint)
co/.i/utul sau i/sta/.ierea sau reali7area acesteia. .rganizarea bazei de date se reflect) n
scHe2a sau structura sa0 aceasta fiind un ansamblu de instrumente pentru descrierea datelor0
a relaiilor dintre acestea0 a semanticii lor i a restriciilor la care sunt supuse. Gn timp se pot
modifica at1t structura0 c1t i coninutul bazei de date0 dar de regul)0 structura bazei de date
este relativ constant) pe tot parcursul utiliz)rii acesteia.
27
Restric.iile de co2porta2e/t pot fi0 cel mai adesea0 de domeniu i temporale. Cele de domeniu
impun ca valorile unui atribut s) se ncadreze ntre anumite limite. Cele temporale impun ca valorile
rezultate n urma actualiz)rii s) fie altele dec1t cele anterioare actualiz)rii.
"!
Codd a formulat0 n 1MN"0 setul celor 13 reguli n raport cu care un sistem de gestiune
a bazelor de date poate fi considerat sistem relaional0 apreciindu,se0 de fapt0 m)sura n care
sistemul este relaional 3num)rul regulilor pe care le respect)8.
>R Re0ula 5u/da2e/tal: Jn sistem de gestiune a bazelor de date relaionale
trebuie s) fie capabil s) gestioneze o baz) de date cu
ajutorul facilit)ilor sale relaionale.
>1 Re0ula repre7e/t:rii
i/5or2a.iei
+a nivelul logic0 toate informaiile dintr,o baz) de date
relaional) sunt reprezentate e/plicit ca valori n tabele
>2 Re0ula accesului 0ara/tat
la date
.rice valoare a oric)rui atribut din cadrul oric)rei
relaii trebuie s) poat) fi reg)sit) prin specificarea
numelui relaiei0 a numelui atributului i a valorii c%eii
primare.
>3 Re0ula repre7e/t:rii
i/5or2a.iei /ecu/oscute
SQH2,ul asigur) un suport sistematic pentru
tratamentul valorilor nule 3date necunoscute sau
neaplicabile80 diferit de valorile prestabilite i
independent de orice domeniu
>! Re0ula catalo0ului di/a2ic
o/9li/e
2escrierea bazei de date i a componentelor sale este
realizat) la nivel logic sub form) de tabele0 put1nd fi
interogat) n timp real prin intermediul limbajului de
manipulare a bazei de date.
>" Re0ula li23a4ului de
i/tero0are
(ste obligatorie e/istena unui limbaj de manipulare a
datelor cu ajutorul c)ruia s) se poat) crea relaii i
vederi 3perspective asupra bazei de date80 s) se poat)
actualiza i reg)si date etc.
>' Re0ula actuali7:rii
1ederilor
(ste obligatorie e/istena unui mecanism de
determinare a posibilit)ii de actualizare sau nu a unei
tabele virtuale 3vederi8.
>Z Re0ula li23a4ului de /i1el
8/alt
+imbajul de manipulare a datelor nu trebuie s)
conduc) utilizatorul la e/plorarea relaiilor tuplu cu
tuplu0 pentru a reg)si datele dorite.
>N Re0ula i/depe/de/.ei 5i7ice
a datelor
(ste necesar ca aspectele fizice ale stoc)rii sau
accesului la date s) fie separate de aspectele logice 3de
organizare8 ale datelor.
>M Re0ula i/depe/de/.ei lo0ice
a datelor
(ste necesar ca modific)rile asupra datelor s) nu
afecteze n nici un mod funcionarea programelor de
aplicaie i nici operaiile de manipulare a datelor.
>1R Re0ula i/depe/de/.ei
datelor di/ pu/ctul de
1edere al i/te0rit:.ii
>egulile de integritate a datelor trebuie s) fie definite
n catalogul de sistem0 independent de programele de
aplicaie.
>11 Re0ula i/depe/de/.ei
datelor di/ pu/ctul de
1edere al distri3uirii
2istribuirea datelor pe mai multe calculatoare din
cadrul unei reele nu trebuie s) afecteze programele de
aplicaie.
>12 Re0ula de /o/su31ersiu/e $tunci c1nd SQH2 posed) un limbaj de nivel inferior
3cod,main) sau de asamblare80 acesta nu poate
nc)lca regulile de integritate definite prin limbajul
relaional al bazei de date
Gn literatura de specialitate se obinuiete ca0 n funcie de tipul cerinelor e/primate0
regulile s) fie grupate n " categorii9
reguli de baz) 3fundamentale8 >R i >12-
reguli structurale >1 i >'-
reguli privind integritatea datelor >3 i >1R-
reguli privind manipularea datelor >20 >!0 >"0 >Z-
reguli privind independena datelor >N0 >M0 >11.
""
$vantajele modelului relaional n comparaie cu celelalte tipuri de modele sunt9
independena sporit) a programelor de aplicaii fa) de modul de reprezentare
intern) a datelor i metodele de acces la date-
definirea unei structuri conceptuale0 optime minimiz1nd redundana datelor i
anomaliile la actualizare 3prin te%nica de normalizare8-
utilizarea unor limbaje procedurale0 bazate pe algebra relaional)0 i a unor limbaje
neprocedurale care contribuie la mbun)t)irea comunic)rii dintre sistem i
utilizatorii neinformaticieni-
integritatea i confidenialitatea datelor0 prin folosirea unor mecanisme proprii-
utilizarea paralelismului n prelucrarea datelor0 deoarece manipularea datelor se
realizeaz) numai la nivel de relaie.
$.2. Al0e3ra rela.io/al:
(.<.Codd fundamenteaz) modelul relaional pe baza teoriei matematice a relaiilor i
a calculului relaional. Teoria matematic) a relaiilor este cunoscut) sub numele de algebr)
relaional). $ceasta poate fi considerat) ca fiind o colecie de operaii pe relaii definite ntr,o
manier) formal)0 produc1nd ca rezultat alte relaii.
$lgebra relaional) lucreaz) cu dou) tipuri de operatori9
ansambliti 3reuniune0 intersecie0 diferen) i produs cartezian8-
relaionali 3selecie0 proiecie0 jonciune i diviziune8.
0peratori ansambli&ti
>elaiile utilizate sunt R1 i R2. R1;A1K A2K ... A/= i R2 ;B1K B2K ... B2=.
&rima relaie are n atribute0 a doua are m atribute.
>euniunea0 intersecia i diferena se pot aplica numai relaiilor unicompatibile.
>elaiile R1 i R2 sunt unicompatibile dac)9
n U m 3au acelai num)r de atribute8-
cele n atribute ale fiec)rei relaii sunt de acelai tip sintactic.
4euniunea
>euniunea este operaia ntre dou) relaii R1 i R2 av1nd aceeai sc%em) deci0 care
sunt unicompatibile. >ezultatul va fi relaia R$ care conine ansamblul tuplurilor constituit
prin reuniunea tuplurilor din relaiile R1 i R2K duplicatele fiind eliminate.
#atematic0 reuniunea se poate scrie R$ R1 R2
(/emplu9 Consider)m tebelele C+=(N`=1 i C+=(N`=2.
Tabela C+=(N`=1
NumeBclient +ocalitate CodBfiscal
$lfa S>+ =ai >1M"!NZ1R
$nca S>+ =ai >1MN"2""3
.mega S$ >oman >1Z!''"!R
Star S>+ Hac)u >12"N'33R
$migo Srl Hac)u >1Z2"'RRZ
Select S>+ +ecani >1ZNN"33R
Tabela C+=(N`=2
NumeBclient +ocalitate CodBfiscal
$lfa S>+ =ai >1M"!NZ1R
Qama S$ =ai >1MN"22R1
2elta S>+ Hac)u >1Z2"'RRZ
.mega S$ >oman >1Z!''"!R
&resupunem c) dou) firme fuzioneaz). $mbele folosesc acelai SQH20 iar structurile
tabelelor au fost transformate0 devenind identice. Care vor "i clienii "irmei rezultate dup%
"uzionare/ &rin reuniunea tabelelor C+=(N`=1 i C+=(N`=2 se obine tabela C+=(N`=BN.=9
"'
Tabela C+=(N`=BN.=
NumeBclient +ocalitate CodBfiscal
$lfa S>+ =ai >1M"!NZ1R
$nca S>+ =ai >1MN"2""3
.mega S$ >oman >1Z!''"!R
Star S>+ Hac)u >12"N'33R
$migo S>+ Hac)u >1Z2"'RRZ
Select S>+ +ecani >1ZNN"33R
Qama S$ =ai >1MN"22R1
2elta S>+ Hac)u >1Z2"'RRZ
2eci0 C+=(N`=BN.= C+=(N`=1 C+=(N`=2
2in tabela C+=(N`=2 s,au preluat dou) tupluri0 deoarece celelalte e/ist) deja n
tabela C+=(N`=1. Se elimin)0 deci0 dublurile.
Intersecia
=ntersecia reprezint) operaia ntre dou) relaii R1 i R2 unicompatibile0 rezultatul
fiind o relaie R$ cu aceeai sc%em) i care conine tuplurile comune relaiilor R1 i R2.
Se scrie R$ R1 R2
(/emplu9 &ornind de la aceleai tabele trebuie s) r)spundem la ntrebarea9 Care sunt
clienii comuni celor dou% "irme/ >)spunsul l constituie tabela C+=(N`=BC.#JN= care va
ar)ta astfel9
Tabela C+=(N`=BC.#JN=
NumeBclient +ocalitate CodBfiscal
$lfa S>+ =ai >1M"!NZ1R
.mega S$ >oman >1Z!''"!R
2eci0 C+=(N`=BC.#JN= C+=(N`=1 C+=(N`=2.
. tabel) rezultat) prin intersecia a dou) tabele va conine numai acele tupluri care
prezint) valori identice pentru toate atributele.
2i"erena
2iferena este operaia ntre dou) relaii R1 i R2 unicompatibile 3care au aceeai
sc%em)80 obin1ndu,se relaia R$ cu aceeai sc%em) i care conine ansamblul realiz)rilor
constituit din tuplurile relaiei R1 care difer) de cele e/istente n relaia R2.
Se scrie R$ R1 + R2
(/emplu9 Care sunt clienii pe care i are numai prima "irm%/ >)spunsul va fi tabela
NJ#$=BC+=(N`=10 obinut) prin diferena ntre cele dou) tabele0 astfel9
Tabela NJ#$=BC+=(N`=1
NumeBclient +ocalitate CodBfiscal
$nca S>+ =ai >1MN"2""3
Star S>+ Hac)u >12"N'33R
$migo S>+ Hac)u >1Z2"'RRZ
Select S>+ +ecani >1ZNN"33R
NJ#$=BC+=(N`=1 C+=(N`=1 T C+=(N`=2
2iferena presupune deci eliminarea tuplurilor comune celor dou) relaii0 tabela
rezultat rein1nd doar tuplurile primei relaii0 care nu sunt i n relaia a doua.
Produsul cartezian
&rodusul cartezian este operaia ntre dou) relaii R1 i R2 ce are ca rezultat o relaie
R$ a c)rei sc%em) se obine prin ju/tapunerea sc%emelor relaiilor R1 i R2. >elaia R$
cuprinde toate combinaiile n,uplurilor din relaiile R1 i R2.
"Z
Se noteaz) R$ R1 I R2
(/emplu9 Consider)m tabela C+=(N`=2 de mai sus i tabela <$CTJ>=.
Tabela <$CTJ>=
NrBfactur) 2ata NumeBclient ;alBfactur)
12"!R 126R26RZ 2elta S>+ 23RR.RN
1"ZNR 1"6R26RZ Qama S$ 2"'!
!Z1RR 1Z6R26RZ 2elta S>+ NZMR
&rodusul cartezian al celor dou) tabele va avea ca rezultat tabela <acturiBClieni0 care
va ar)ta astfel9
<$CTJ>=BC+=(N`= C+=(N`=2 / <$CTJ>=
Tabela <$CTJ>=BC+=(N`=
Clie/.i2.
NumeBclient
Clie/.i2
+ocalitate
Clie/.i2.
CodBfiscal
@acturi.
NrBfactur)
@acturi.
2ata
@acturi.
NumeBclient
@acturi.
;alBfactur)
$lfa S>+ =ai >1M"!NZ1R 12"!R 126R26RZ 2elta S>+ 23RR.RN
$lfa S>+ =ai >1M"!NZ1R 1"ZNR 1"6R26RZ Qama S$ 2"'!
$lfa S>+ =ai >1M"!NZ1R !Z1RR 1Z6R26RZ 2elta S>+ NZMR
Qama S$ =ai >1MN"22R1 12"!R 126R26RZ 2elta S>+ 23RR.RN
Qama S$ =ai >1MN"22R1 1"ZNR 1"6R26RZ Qama S$ 2"'!
Qama S$ =ai >1MN"22R1 !Z1RR 1Z6R26RZ 2elta S$ NZMR
2elta S>+ Hac)u >1Z2"'RRZ 12"!R 126R26RZ 2elta S>+ 23RR.RN
2elta S>+ Hac)u >1Z2"'RRZ 1"ZNR 1"6R26RZ Qama S$ 2"'!
2elta S>+ Hac)u >1Z2"'RRZ !Z1RR 1Z6R26RZ 2elta S>+ NZMR
.mega S$ >oman >1Z!''"!R 12"!R 126R26RZ 2elta S>+ 23RR.RN
.mega S$ >oman >1Z!''"!R 1"ZNR 1"6R26RZ Qama S$ 2"'!
.mega S$ >oman >1Z!''"!R !Z1RR 1Z6R26RZ 2elta S>+ NZMR
2up) cum se observ)0 prima linie a tabelei rezultat este combinaia 3concatenarea8
ntre prima linie a tabelei C+=(N`=2 i prima linie a tabelei <$CTJ>=0 a doua este
combinaia ntre prima linie din C+=(N`=2 cu a doua din <$CTJ>= .a.m.d.
Cum tabela Clieni2 are patru linii0 iar tabela <acturi are trei linii0 tabela rezultat) prin
produsul cartezian va avea ! / 30 adic) 12 linii.
<iresc0 se ridic) problema utilit)ii acestei operaii. &ractic0 produsul cartezian nu este
utilizat niciodat) direct0 e/ist) ns) operatori algebrici care deriv) sau se bazeaz) pe acesta.
0peratori relaionali
.peratorii relaionali se mpart n9
operatori unari de restricie 3selecia i proiecia8-
operatori binari de e/tensie 3jonciunea i diviziunea8.
,elecia
Selecia 3restricia8 este operaia pe o relaie R1 care produce o nou) relaie R2 cu
aceeai sc%em) i n care tuplurile verific) o condiie e/primat) e/plicit. &ractic prin selecie
se elimin)6suprim) realiz)rile 3liniile8 care nu satisfac condiia impus). &rin urmare
cardinalitatea noii relaii R2 va fi mai mic) sau cel mult egal) cu cardinalitatea relaiei R1.
Se noteaz) R2 Selec.ie ;R1K <eIpresie 9 lo0ic:>=
R2 este tabela rezultat care va ave aceeai sc%em) ca i R1.
(/emplu9 Consider)m tabelele C+=(N`=1 i <$CTJ>=.
1. Care sunt clienii cu sediul n Ia&i/ >)spunsul se obine prin aplicarea
operatorului S(+(C`=( asupra relaiei C+=(N`=. Tabela rezultat va conine doar tuplurile
care prezint) valoarea atributului +ocalitate egal) cu irul de caractere r=aiL
Se scrie >2 S(+(C`=(3C+=(N`=0 +ocalitate U r=aiL8
"N
Tabela >2 va ar)ta astfel9
NumeBclient +ocalitate CodBfiscal
$lfa S>+ =ai >1M"!NZ1R
$nca S>+ =ai >1MN"2""3
2. Care sunt "acturile cu valoare mai mare de EFFFFFFF lei/ >)spunsul se obine
prin aplicarea operatorului S(+(C`=( asupra relaiei <$CTJ>=. Tabela rezultat va conine
doar tuplurile care au valoarea atributului ;alBfactur) este mai mare de "RRRRRRR.
Se scrie >2 S(+(C`=( 3<$CTJ>=0 ;alBfactur) > "RRRRRRR8
Tabela R2 va ar)ta astfel9
NrBfactur) 2ata NumeBclient ;alBfactur)
!Z1RR 1Z6R26R' 2elta S>+ NZMRRRRR
Proiecia
Proiec.ia 3decupajul vertical8 reprezint) o operaie pe o singur) relaie R1 i are ca
rezultat o relaie R2 redus) la atributele menionate e/plicit n operanzi. Tuplurile din relaia
R2 sunt unice.
&rin proiecie se trece la o relaie de grad inferior relaiei R1.
Se noteaz) R2 &roiecie 3>1- $tribut10 $tribut20 ...0 $tributn8 sau R2 R1
3$tribut10 $tribut20...8
R2 este tabela rezultat0 a c)rei sc%em) va fi diferit) de a tabelei R10 fiind format)
doar din atributele specificate. 2ac) nu e/ist) tupluri identice0 ea va avea acelai num)r de
linii ca i tabela R1.
(/emplu9
18 Care sunt localit)ile n care firma are clienij
RR1 PROIEC(IE ;CLIEN(IK Localitate=
28 Care sunt numele clienilor firmeij
RR2 CLIEN(I ;Nu2eLclie/t=
>>1
+ocalitate
=ai
>oman
Hac)u
+ecani
Gn tabela RR1 au fost eliminate valorile identice ale atributului +ocalitate.
RR2
NumeBclient
$lfa S>+
$nca S>+
.mega S>+
Star S>+
$migo S>+
Select S>+
Gn tabela RR2 num)rul de linii este identic cu cel al tabelei C+=(N`=.
+onciunea
_onciunea 3_oin sau T%eta,jonciune8 reprezint) o operaie ntre dou) relaii R1 i R2
care are ca rezultat o relaie R$ cu o sc%em) obinut) prin concatenarea sc%emelor primelor
dou). Coninutul relaiei l reprezint) ansamblul tuplurilor obinute prin concatenarea
tuplurilor din R1 i R2 care verific) o condiie stabilit) ntre atributele celor dou) relaii.
Condiia se construiete cu ajutorul operatorilor9 < .> . > = . < = . .
"M
Consider)m relaiile R1 3$10 $20 ... 0 $n8 i R2 H10 H20 ...0 Hm8. $i i Hj sunt dou)
atribute definite pe acelai domeniu i mulimea operatorilor pentru comparaii ce pot fi
aplicai celor dou) atribute. _onciunea relaiei R10 prin $i cu relaia R20 prin Hj0 notat)9
R1 ;Ai B4= R2
este relaia R$ ale c)rei tupluri sunt obinute prin concatenarea fiec)rui tuplu al relaiei R1 cu
tuplurile relaiei R2 pentru care este adev)rat) condiia instituit) ntre $i i Hj.
_onciunea este ec%ivalenta unui produs cartezian urmat de o selecie.
Gn lucrul cu bazele de date relaionale se utilizeaz) cu prec)dere ec%ijonciunea0 care
este un caz particular al t%eta,jonciunii0 n care se utilizeaz) operatorul de egalitate. (c%i,
jonciunea se reprezint) astfel9 R$ ECMI!ONC(IUNE ;R1K R2K Ai N B4=
(/emplu9 Consider)m tabelele C+=(N`= i <$CTJ>=. &roprietatea comun) a celor dou)
relaii este CodBclient0 care este c%eie primar) n tabela C+=(N`= i c%eie str)in) n tabela
<$CTJ>=.
Tabela C+=(N`=
CodBclient NumeBclient +ocalitate
1RRR $lfa S>+ =ai
1RR1 Qama S$ =ai
1RR2 2elta S>+ Hac)u
1RR3 .mega S$ >oman
Tabela <$CTJ>=
NrBfactur) 2ataBfactur) CodBclient ;aloareBfactur)
12"!R 126R26RZ 1RR1 23RR.RN
1"ZNR 1"6R26RZ 1RR1 2"'!
21'3R 1R6R26RZ 1RR2 12"'
!Z1RR 1Z6R26RZ 1RRR NZMR
(c%ijonciunea este reprezentat) astfel9
>3 (CP=,_.NC`=JN( 3C+=(N`=0 <$CTJ>=- C+=(N`=.CodBclient U
<$CTJ>=. CodBclient8
+a e/ecuia jonciunii0 n prima etap) se calculeaz) produsul cartezian al tabelelor
C+=(N`= i <$CTJ>=0 iar n pasul al doilea se opereaz) selecia0 care elimin) tuplurile care
nu ndeplinesc condiia de selecie 3sunt reinui doar clienii care au emis facturi8. >ezultatul
jonciunii este prezentat n tabela de mai jos.
Clie/.i.
CodBclient
Clie/.i
NumeBclient
Clie/.i.
+ocalitate
@acturi.
NrBfactur
)
@acturi.
2ataBfactur)
@acturi.
CodBclient
@acturi.
;aloareBfactur)
1RRR $lfa S>+ =ai !Z1RR 1Z6R26RZ 1RRR NZMR
1RR1 Qama S$ =ai 12"!R 126R26RZ 1RR1 23RR.RN
1RR1 Qama Sa =ai 1"ZNR 1"6R26RZ 1RR1 2"'!
1RR2 2elta S>+ Hac)u 21 '3R 1R6R26RZ 1RR2 12"'
$desea numele atributului comun este identic n ambele tabele astfel c) se impune
specificarea numelui tabelei 3nume tabel) nume atribut8. $ceast) jonciune0 n care numele
atributelor sunt identice n ambele tabele se numete 4o/c.iu/e /atural:. (ste cea mai
utilizat) i o vom nota astfel9
R$ _.NC`=JN( 3C+=(N`=0 <$CTJ>=0 CodBclient8
2iviziunea
(ste cel mai comple/ dintre operatorii algebrei relaionale. Gn definire se pornete de
la dou) relaii9 R1;OKP= i R2;P=. R1 are dou) atribute sau grupe de atribute0 iar R2 are un
singur atribut sau grup de atribute W0 definit pe acelai domeniu ca i n R1.
'R
Di1i7iu/ea rela.io/al: R1 R2 are ca rezultat o relaie >33V80 defnit) ca ansamblul
subtuplurilor >13V8 pentru care produsul lor cartezian cu >23W8 este un ansamblu al
>13V0W8.
/
i
>3 dac) i numai dac)
i
=
W >2 3/
i
0 ^
i
8 >1
Se noteaz) R$ R1 R2
Tabela R1 se numete demp)rit0iar tabela R2 se numete divizor.
&entru e/emplificare vom considera V i W atribute i nu grupe de atribute.
>1
V W
V1 ^1
V3 ^1
V" ^1
V1 ^2
V2 ^2
V3 ^2
V! ^2
V1 ^3
V" ^3
V3 ^3
V2 ^3
V! ^3
>2
W
W1
W2
W3
2eterminarea relaiei >3 prin diviziune este sinonim) cu rezolvarea problemei. Care
dintre x1$ x2$ x7$ x($ xE apar n 41$ n tupluri5linii6 mpreun% cu toate tuplurile din 42 5=1$
=2$ =76/
Se parcurg pe r1nd valorile /i ale atributului V din tabela >1 i se constat) c) ^1 i /3
apar n tupluri cu toate valorile atributului W din >20 deci tabela >3 va fi9
R$
O
V1
V3
2iviziunea nu este un operator fundamental0 funcionalitatea sa este obinut) prin
combinarea operatorilor produs cartezian0 diferen) i proiecie.
$.$. Studiul depe/de/.elor 5u/c.io/ale
Depe/de/.ele di/tre atri3ute
Normalizarea se bazeaz) pe conceptul de dependen) dintre atributele bazei de date.
(/ist) trei tipuri de dependene9 funcional)0 multivaloare i de jonciune.
Depe/de/.a 5u/c.io/al: reprezint) o generalizare a conceptului de c%eie primar).
Consider)m dou) atribute sau grupe de atribute ale unei relaii9 2ata1 i 2ata2. Se spune c)
2ata2 este n dependen) funcional) cu 2ata1 atunci c1nd cunoaterea unei valori pentru
2ata1 permite cunoaterea a ma/imum o valoare pentru 2ata2. 2ata1 se numete sursa
dependenei funcionale0 iar 2ata2 este destinaia dependenei funcionale. Se noteaz) 2ata1
2ata2.
'1
<ormal0 consider)m relaia >D$10 $20 ...0 $nE i dou) grupe de atribute V i W. Se
spune c) e/ist) o dependen) funcional) ntre V i W0 dac)9
fiecare valoare a lui V poate fi asociat) unei singure valori a lui W-
dou) valori identice ale lui V nu pot fi asociate dec1t aceleiai valori a lui W.
Se noteaz)9 V W
Se consider) tabela <$CTJ>=.
<$CTJ>=
Num)rBfactur) 2ataB factur) CodBclient ;alBfactur)
Gn tabela <$CTJ>=0 elementul c%eie este Num)rBfactur). 2ac) este cunoscut0 atunci
vom afla i data facturii0 clientul pentru care s,a ntocmit i valoarea ei. 2eci0
9um%rG"actur% 2ataG"actur%
9um%rG"actur% CodGclient
9um%rG"actur% alG"actur%
=mplicit0 n orice relaie > e/ist) dependenele funcionale9
c'eia primar% a lui 4 celelalte atribute ale lui 4
Depe/de/.ele 5u/c.io/ale care pre7i/t: la surs: dou: sau 2ai 2ulte atri3ute
su/t depe/de/.e 5u/c.io/ale cu surs: co2pus:.
Depe/de/.e 5u/c.io/ale ele2e/tare ;totale= 6i par.iale
2ependena funcional) 2ata1 2ata2 este elementar) dac) nu e/ist) nici un
subansamblu al lui 2ata1 32ata38 care s) verifice dependena funcional) 2ata7 2ata2.
=mplicit0 toate dependenele n care sursa este simpl) 3format) dintr,un atribut8 sunt
dependene funcionale elementare.
Consider)m urm)toarea relaie 3<$CTBC+89
NrBfact 2ata CodBcl NumeBcl Strada +ocalitate _ude CodBpost ;aloare
Gn tabela <$CTBC+0 dependen) funcional) elementar) este9
CodBpost Strada
&roblema apare la dependenele funcionale cu sursa compus). Gn tabela <$CTBC+
avem9
39um%rG"actur%$ CodGcl6 aloare
care este o dependen) funcional) elementar).
2ependenele9
39um%rG"actur%$ CodGcl6 9umeGcl
39um%rG"actur%$ CodGcl6 <ocalitate
nu sunt elementare pentru c) o parte a sursei este la r1ndul s)u surs) pentru alte dependene
funcionale9 CodGcl 9umeGcl
CodGcl <ocalitate
2ependena funcional) elementar) se mai numete total) sau deplin).
Depe/de/.e 5u/c.io/ale directe 6i tra/7iti1e
. dependen) funcional) 2ata1 2ata2 este direct) atunci c1nd nu e/ist) 2ata3
care angajeaz) o dependen) funcional) tranzitiv) de genul 2ata1 2ata7 2ata2.
Gn relaia <$CTBC+0 avem dependena funcional) CodGpost ,trada. Codul potal
este unic pentru fiecare strad)0 deci dependena de mai sus este funcional) i direct).
2ependena CodGcl ,trada este funcional)0 dar nu este direct)0 ci tranzitiv)
datorit) dependenei funcionale de mai sus. $vem9 CodGcl CodGpost ,trada.
Depe/de/.ele 2ulti1aloare 6i de 4o/c.iu/e sunt mai dificil de e/plicat i identificat
dec1t cele funcionale. #ulte lucr)ri nu le prezint)0 consider1nd c) primele trei forme normale
i forma Ho^ce Codd0 care se bazeaz) pe dependenele funcionale elementare i directe sunt
suficiente pentru majoritatea cazurilor practice.
'2
<ie relaia >D$10 $20 ...0 $nE i V0 W i X trei subansamble ale ansamblului D$10
$20 ...0 $nE. (/ist) o dependen) multivaloare ntre grupurile de atribute V i W ale relaiei >
dac) i numai dac)9
la fiecare valoare a lui V poate fi asociat) una sau mai multe valori ale lui W-
aceast) asociaie nu depinde de valorile lui X.
Consider)m o relaie >D$10 $20 ...0 $iE i N subansamble de atribute V
1
0 V
2
0 ...0 V
N
.
Se spune c) e/ist) o dependen) de jonciune de ordinul N ntre V
1
0 V
2
0 ...0 V
N
dac) i numai
dac) > este jonciunea proieciilor sale pe V
1
0 V
2
0 ...0 V
N
. 2ac) NU20 avem de,a face cu o
dependen) multivaloare.
3.!. Normalizarea bazelor de date relaionale
Necesitatea /or2ali7:rii
Normalizarea unei relaii const) n reprezentarea acesteia sub o form) canonic)0
respect1nd anumite criterii de definire semantic) a structurii bazei de date0 precum i
integritatea datelor
2N
.
Jzual0 prin normalizare se desemneaz) procesul de stabilire a structurii tabelelor unei
baze de date relaionale0 a c%eilor primare0 a c%eilor str)ine i a altor restricii. &rin
normalizare se ajunge la o optimizare a bazei de date0 urm)rindu,se9
(liminarea anomaliilor de actualizare-
2iminuarea nevoii de reorganizare periodic) a modelului-
>eprezentarea diverselor cone/iuni dintre atributele bazei-
Jtilizarea unor algoritmi eficieni privind c)utarea tuplurilor care ndeplinesc anumite
condiii specificate 3interogarea bazei de date8.
Gnscris) de obicei n activit)ile de analiz) i proiectare ale bazelor de date0
normalizarea a constituit obiectul a numeroase studii- nu se poate afirma c) e/ist) o
unanimitate de idei i instrumente. &e de alt) parte0 importana normaliz)rii nu trebuie
absolutizat). <ragmentarea tabelelor n altele mai simple are n vedere i optimizarea vitezei
de acces0 reducerea traficului pe reea etc. Gn plus0 preocup)ri de dat) mai recent) vizeaz)
nglobarea0 n normalizare0 a unor concepte privind gestiunea domeniilor atributelor i
e/tinderea sa c)tre te%nologia obiectual).
&rin normalizare0 o relaie este descompus) reversibil0 obin1ndu,se o sc%em)
relaional) optim). (/ist) dou) tipuri de algoritmi pentru obinerea relaiilor normalizate9
descompunerea , este un procedeu pas cu pas0 de trecere dintr,o form)
normalizat) n alta-
sinteza , opereaz) cu un graf complet de dependene funcionale.
Normalizarea are ca scop asigurarea ec%ilibrului ntre obinerea unui volum ma/im de
informaii ntr,un timp c1t mai scurt0 pe de o parte i eliminarea anomaliilor de stocare i
actualizare0 pe de alt) parte.
Qruparea tuturor atributelor unei baze de date ntr,o singur) tabel) 3aa,numita relaie
universal)8 atrage serioase probleme privind redundana datelor i anomalii la ad)ugarea0
modificarea i tergerea unor linii.
NrBfactura 2ata NumeBclient +ocalitate CodBfiscal ;alBfactura
10)*0 10>02>0' Delta SRL Ia6i R1Q)*R'10 2$00.0R
1R"!1 1R6R26RZ Qama S$ =ai >1MN!N!"1 2"'!
10)*2 11>02>0' Delta SRL Ia6i R1Q)*R'10 R'Q0
1R"!3 126R26RZ $lfa S>+ ;aslui >1MN"22R1 !3"'.RN
1R"!! 126R26RZ 2iana S>+ &acani >1M'Z!"31 3"'!
1R"!" 126R26RZ &opa SNC =ai >12323!32 1ZMR
1R"!' 126R26RZ .mega S>+ Hac)u >1Z2"'RRZ 13RR.RN
28
<ilip0 #.0 Qrama0 $.0 .edii de programare. :bord%ri teoretice0 (d. <ides0 =ai0 1MMN0 p.2R!
'3
1R"!Z 136R26RZ =ulius S>+ =ai >1M!"'ZRR 3"'!
1R"!N 1!6R26RZ Toni S>+ Hac)u >1NZMR'"! 3'"R
10)*Q 1*>02>0' A/ca SRL Ro2a/ R1'*--)*0 *100.0R0
1R""R 1"6R26RZ Select S$ Hac)u >13'''"NM 3N'!
10))1 1)>02>0' A/ca SRL Ro2a/ R1'*--)*0 $2Q0
$cest lucru se observ) din e/emplul de mai sus , este aa,numita redundan) logic).
$nomaliile de stocare apar0 de e/emplu0 n cazul n care un client i sc%imb) codul fiscal sau
sediul0 caz n care trebuie s) modific)m toate liniile pe care apare clientul respectiv i nu o
singur) dat)0 cum ar fi logic. Gn consecin)0 este necesar) fragmentarea bazei n mai multe
tabele care vor fi legate prin restricii de integritate referenial). (ste important modul n care
se realizeaz) acest lucru0 pentru a nu se pierde informaii0 pe de o parte0 iar pe de alt) parte
dac) va rezulta un num)r mare de tabele0 acestea vor fi dificil de controlat0 n ceea ce privete
respectarea restriciilor.
2eci0 obiectivul normaliz)rii poate fi formulat astfel9 minimizarea redundanei$
eliminarea pierderilor de in"ormaii &i asigurarea unei viteze optime de acces la date.
@or2ele /or2ale ale u/ei 3a7e de date rela.io/ale
Teoria clasic) a normaliz)rii este construit) n jurul a cinci forme normalizate. Codd0
p)rintele modelului relaional de organizare a datelor0 a definit iniial trei forme normalizate
2M
0
notate cu 1<N0 2<N i 3<N. Gntruc1t0 ntr,o prim) formulare0 definiia 3<N ridica ceva
probleme0 Codd i Ho^ce au elaborat o nou) variant)0 cunoscut) sub numele Ho^ce,Codd
Normal <orm 3HCN<8. 2ei este vorba0 n principiu0 de o formulare mai riguroas) a aceleiai
3<N0 HCN< este prezentat)0 n majoritatea lucr)rilor0 separat. <ormele ! i "0 care sunt legate
de numele lui <agin0 sunt tratate mai cu reinere n literatura consacrat) analizei bazelor de
date relaionale. Ha c%iar unele lucr)ri0 cu tent) mai pragmatic)0 se opresc0 declarat0 la 3<N pe
care o consider) suficient) n rezolvarea majorit)ii cazurilor practice.
<undamentul normaliz)rii bazelor de date relaionale l constituie dependenele dintre
atribute. &rimele trei forme normalizate pot fi determinate pe baza dependenelor funcionale
elementare 3totale8 i tranzitive. <orma a patra 3!<N8 se bazeaz) pe dependenele multiva,
loare0 n timp ce a cincea form) normalizat) 3"<N8 pe dependenele de jonciune. Gn practic)0
dependena multivaloare0 dar mai ales cea de jonciune sunt rare i dificil de identificat.
=erar%ia dintre formele normale i leg)tura cu dependenele dintre atribute este prezentat) n
fig. nr. 3.2.
3R
.
1 % &
2 % &
3 % &
B C & %
4 % &
5 % &
D M '
D (
D %
Fig. nr. 7.2. Ierar'ia "ormelor normale
#rima form% normal% &1'N(
. relaie se afl) n 1<N dac) fiecare atribut al s)u conine o valoare atomic) 3sau
atributele sunt nedecompozabile8.
29
Codd0 (.<.0 Furt'er normalization o" t'e database relational model0 2ataHase S^stems0 Courant
Computer Science S^mposia Series0 ;ol.'0 (ngleOood Cliffs0 N._.0&rentice,Pall0 1MZ2
30
<ilip0 #.0 Qrama0 $.0 .p. cit.0 p.2R"
'!
Gn relaia <$CTBC+ prezentat) anterior toate atributele sunt atomice. 2eci0 relaia <$CTBC+
este n 1<N.
) doua form% normal% &2'N(
Gncep1nd din a doua form) normal)0 relaiile pot fi decupate n sub,relaii n scopul
diminu)rii problemelor legate de stocare i actualizare.
Gn 1MZ10 Peat% a demonstrat c) orice relaie care are cel puin trei atribute0 notat)
>3V0 W0 X80 n care e/ist) dependenele funcionale VW i VX0 poate fi descompus) n
dou) relaii >13V0 W8 i >23V0 X8. >1 i >2 reprezint) proieciile relaiei > pe atributele V0 W
i0 respectiv0 V0 X. 2escompunerea se face f)r) pierderi de informaii0 adic) > poate fi
recompus) prin jonciunea tabelelor >1 i >2.
. relaie se afl) n 2<N dac)9
se afl) n 1<N-
toate dependenele funcionale care leag) c%eia primar) de celelalte atribute
sunt dependene funcionale elementare.
2eci0 normalizarea relaiilor 1<N la forma 2<N presupune eliminarea dependenelor
pariale.
Gn e/emplul de mai sus0 c%eia primar) a relaiei <$CTBC+ este perec%ea 3NrBfact0
CodBcl8. (/ist) urm)toarele dependene funcionale9
318 3NrBfact0 CodBcl8 2ata
328 3NrBfact0 CodBcl8 NumeBclient
338 3NrBfact0 CodBcl8 +ocalitate
3!8 3NrBfact0 CodBcl8 Strada
3"8 3NrBfact0 CodBcl8 _ude
3'8 3NrBfact0 CodBcl8 CodBpost
3Z8 3NrBfact0 CodBcl8 ;aloare
2ependenele funcionale 3280 3380 3!8 3"8 i 3'8 nu sunt elementare datorit) e/istenei
dependenelor9
3N8 CodBcl NumeBclient
3M8 CodBcl +ocalitate
31R8 CodBcl Strada
3118 CodBcl _udet
3128 CodBcl CodBpost
$ducerea relaiei n 2<N presupune parcurgerea a trei pai9
identificarea dependenelor elementare0 inclusiv cele tranzitive , cele de la 318 la 3Z8-
identificarea dependenelor care au ca surs) un atribut din c%eia primar) , 3N8 la 3128-
pentru fiecare atribut al c%eii 3precizat n pasul 28 se creeaz) o relaie care va avea drept
identificator primar atributul respectiv0 iar celelalte atribute vor fi cele care apar ca
destinaii n dependenele de la pasul 2.
Gn cazul nostru0 relaia <$CTBC+ se fragmenteaz) n dou) tabele , <$CT i C+9
<$CT
NrBfact 2ata CodBcl ;al
C+
CodBcl NumeBclient +ocalitate Strada _ude CodBpost
: treia "orm% normal% 57F96
. relaie se afl) n 3<N dac)9
se g)sete n 2<N-
toate atributele care nu aparin c%eii primare nu depind funcional de un alt atribut care nu
face parte din c%eie.
'"
&entru trecerea n 3<N se parcurg urm)torii pai9
se identific) toate atributele ne,c%eie i care sunt surse ale unor dependene funcionale-
pentru fiecare atribut ne,c%eie care este surs) de dependene funcionale se constituie c1te
o relaie n care c%eie primar) va fi atributul respectiv0 iar celelalte atribute vor fi
destinaiile din dependenele funcionale.
>elaia <$CT este n 3<N pentru c) nu este nici o dependen) funcional) ntre un atribut ne,
c%eie i celelalte atribute. Gn relaia C+0 e/ist) dependenele funcionale9
CodBpost Strad)
CodBpost +ocalitate
CodBpost _ude
CodBpost este un atribut ne,c%eie0 surs) n dependene funcionale cu Strada0
+ocalitate i _ude. Tabela C+ se descompune n tabelele C+=(N`= i C.2&0 astfel9
C+=(NT=
CodBcl NumeBclient CodBpost
C.2&
CodBpost Strada +ocalitate _ude
Gn 3<N0 relaia <$CTBC+ de la care am pornit se prezint) sub forma a trei relaii9
<$CT0 C+=(NT=0 C.2&
Forma normal% ;o=ce!Codd
Gn practic) pot apare cazuri n care 3<N s) nu fie suficient).
. relaie este n HC<N dac)9
se afl) n 3<N-
nu e/ist) nici o dependen) funcional) a c)rei surs) s) fie un atribut ne,
c%eie0 iar destinaia un atribut din c%eie.
Gntr,o alt) formulare0 o relaie este n HC<N dac) i numai dac) orice determinant
este o c%eie,candidat 3atunci c1nd ntr,o relaie e/ist) mai multe combinaii de atribute care
identific) tuplul n mod unic0 acestea se numesc c%ei candidate8. Jn determinant este orice
atribut de care depinde funcional un alt atribut al relaiei. Jn determinant este deci o surs) de
dependene funcionale.
: patra "orm% normal% 5(F96
. relaie este n !<N dac)9
este n HC<N-
nu e/ist) dependene multivaloare n cadrul relaiei.
$ltfel spus0 o relaie este n ! <N dac) este n HC<N i toate dependenele care se
manifest) n cadrul s)u sunt funcionale.
: cincea "orm% normal% 5EF96
. relaie este n "<N dac) i numai dac) toate dependenele de jonciune sunt ntre
c%eile candidate ale lui >.
"<N este o generalizare a lui !<N0 care este o generalizare a lui HC<N.

''
Capitolul *. LIBA!E DE INTERO"ARE A BA%ELOR DE DATE + S,L
*.1. S,L 9 E1olu.ie 6i per5or2a/.e
*.2. Co2e/7i pe/tru descrierea datelorF
*.$. Co2e/7i pe/tru i/tero0area 3a7elor de date
*.*. Co2e/7i pe/tru actuali7area 3a7ei de date
!.1. *voluie i performane
S*+ reprezint) cel mai important limbaj actual n domeniul bazelor de date prin
gama comenzilor i opiunilor de care dispune0 dar mai ales datorit) faptului c) s,a reuit
standardizarea lui i portarea pe toate sistemele de gestiune a bazelor de date semnificative.
Gnc) din anul 1MZR0 (.<.Codd a sugerat badoptarea unui model relaional pentru
organizarea datelor ?...@ care s) permit) punerea la punct a unui sub,limbaj universal pentru
gestiunea acestora0 sub,limbaj care s) fie0 n fapt0 o form) aplicat) de calcul asupra
predicatelorb.
2up) muli autori0 momentul decisiv n naterea S*+ ca limbaj l constituie lansarea
proiectului ,=stemH4 de c)tre firma =H#0 eveniment ce a avut loc n 1MZ!. Tot n 1MZ!
C%amberlin i Ho^ce au publicat un articol n care este prezentat un limbaj structurat de
interogare0 denumit ,)I-)< 3Structured (nglis% as *J(r^ +anguage8. Gn 1MZ" C%amberlin0
Ho^ce0 hing i Pammer redacteaz) o lucrare dedicat) sub,limbajului ,I-:4)0 asem)n)tor
S(*J(+,ului0 dar care utiliza e/presii matematice i nu cuvinte din limba englez). $utorii
celor dou) studii au demonstrat c) limbajele ,)I-)< i ,I-:4) sunt complete din punct de
vedere relaional.
Gn 1MZ' un colectiv de autori condus de C%amberlin elaboreaz) o nou) lucrare n care
se face referire la ,)I-)< 20 acesta fiind declarat limbaj de interogare al SQH2,ului
,=stemH4 al firmei =H#.
Gn 1MNR C%amberlin sc%imb) denumirea ,)I-)< n ,I< , Structured *uer^
+anguage 3+imbaj Structurat de =nterogare80 din motive legale 3s,a descoperit c) acronimul
S(*J(+ fusese utilizat anterior de altcineva80 dar i ast)zi muli specialiti pronun) S*+ ca
pe predecesorul s)u.
$nii urm)tori au nregistrat apariia a o serie ntreag) de lucr)ri dedicate S*+ care l,
au perfecionat i consacrat ca pe cel mai r)sp1ndit limbaj de interogare a bazelor de date
relaionale0 fiind prezent n numeroase bdialecteb specifice tuturor SQH2>,urilor actuale0 de
la 2;2 la .icroso"t ,I< ,erver0 de la 0racle la FoxPro i :ccess.
Gncerc1nd s) r)spund) solicit)rilor pentru standardizarea unui limbaj de lucru cu
bazele de date0 =nstitutul Naional $merican pentru Standarde 3$merican National Standard
=nstitute , $NS=8 a nceput s) realizeze n 1MN2 un limbaj relaional pentru bazele de date0
bazat pe un articol conceptual al firmei =H#. Gn 1MN' $NS= public) standardul S*+ $NS=
V3.13",1MN'0 standard care se bazeaz)0 ntr,o mare m)sur)0 pe bdialectulb S*+ al produsului
2H2 de la =H#. .rganizaia =nternaional) pentru Standarde 3=S.8 a adoptat propriul
document0 aproape identic cu $NS= S*+,N'0 pe care l,a publicat n 1MNZ ca =S. MRZ",1MNZ
2atabase +anguage S*+.
S*+,N' definete comenzile de baz) ale S*+0 inclusiv pentru crearea de tabele i tabele
virtuale 3C>($T( T$H+(0 C>($T( ;=(]80 ns) nu conine opiuni de modificare a
structurii sau tergere 3$+T(>l62>.&l8 i nici comenzi pentru acordare i revocare a
drepturilor utilizatorilor.
Gn 1MNM are loc revizuirea i e/tinderea acestui standard0 bn)sc1ndu,seb S*+,NM0 care
mai este denumit i S*+,1.
2ei recunoscut ca baz) a multor SQH2>,uri comerciale0 S*+,1 i,a atras
numeroase critici. Gn plus0 variantele comercializate de diferiii produc)tori0 dei
asem)n)toare n esen)0 erau 3i sunt8 incompatibile la nivel de detaliu. &entru a umple
golurile S*+,10 $NS= i =S. au elaborat n 1MM2 versiunea S*+,20 specificaiile fiind
prezentate la un nivel mult mai detaliat 3dac) S*+,1 se ntindea pe numai 1RR de pagini0
S*+,2 a fost publicat n aproape 'RR8. 2intre numeroasele facilit)i aduse de S*+,M2
amintim9 jonciunea e/tern) 3.JT(> _.=N80 atribute zi,or) i de alte tipuri0 raportare
'Z
standardizat) a erorilor0 modificarea sc%emei bazei de date 32>.&0 $+T(>0 >(;.h(0
Q>$NT80 S*+ dinamic0 modific)ri i tergeri refereniale n cascad)0 am1narea verific)rii
restriciilor0 niveluri de consisten) a tranzaciilor etc.
&e l1ng) $NS=0 ale c)rui standarde au cea mai larg) audien)0 mai e/ist) i alte
organisme de standardizare S*+. V6.pen este un grup de firme vest,europene care a adoptat
S*+ ca nucleu al unei ntregi serii de standarde menite s) asigure realizarea unui mediu
general pentru aplicaii portabile0 grefat pe sistemul de operare JN=V.
=H# a avut un aport incontestabil la apariia i maturizarea S*+0 fiind un produc)tor
cu mare influen) n lumea SQH2,urilor0 iar produsul s)u0 2H20 este unul din standardele de
"acto ale S*+.
Gn 1MNM un grup de produc)tori de instrumente dedicate bazelor de date au format
S*+ $ccess Qroup0 n vederea realiz)rii cone/iunilor dintre SQH2>,urile fiec)ruia0 pe baza
unor specificaii comune0 din care un prim set a fost publicat n 1MM1 sub titulatura >2$
3>emote 2atabase $ccess8. Specificaiile >2$ n,au reuit s) se impun) pe piaa SQH2,
urilor.
+a insistenele firmei #icrosoft0 S*+ $ccess Qroup i,a concentrat eforturile pentru
elaborarea unei interfee,standard pentru S*+. &e baza unui set de propuneri naintat de
#icrosoft0 n 1MM2 au rezultat specificaiile C+= 3Call +evel =nterface8. $cestea reprezint) un
ansamblu de funcii i proceduri pentru conectarea bazelor de date prin S*+ n medii multi,
utilizator i multi,platform). $v1nd drept reper C+=0 #icrosoft elaboreaz) i implementeaz)
n acelai an un set propriu0 .2HC 3.pen 2ataHase Conectivit^80 care a devenit standard n
materie de interfa) S*+ pentru microcalculatoare compatibile =H# &C n vederea acces)rii
bazelor de date relaionale.
Standardul S*+91MMM0 denumit iniial S*+30 are ca principale orient)ri9
transformarea acestuia ntr,un limbaj complet0 n vederea definirii i gestion)rii obiectelor
comple/e i persistente. $ceasta include9 generalizare i specializare0 moteniri multiple0
polimorfism0 ncapsulare0 tipuri de date definite de utilizator0 triggere i proceduri stocate0
suport pentru sisteme bazate pe gestiunea cunotinelor0 e/presii privind interog)ri recursive
i instrumente adecvate de administrare a datelor.
Standardul S*+92RR3 are drept caracteristici majore9 caracteristici legate de V#+0
funcii OindoO0 secvene standardizate i coloane cu valori auto,generate 3incluz1nd coloane,
identitate8.
Standardul S*+92RR' definete c)i prin care S*+ poate fi utilizat mpreun) cu V#+0
c)i de a importa i stoca date V#+ ntr,o baz) de date S*+0 de a le manipula n cadrul acelei
baze de date i de a le publica.
2in punctul de vedere al utilizatorului final0 obiectivul principal al S*+ const) n a
oferi utilizatorului mijloacele necesare formul)rii unei consult)ri numai prin descrierea
rezultatului dorit0 cu ajutorul unei e/presii logice0 f)r) a fi necesar) i e/plicitarea modului
efectiv n care se face c)utarea n baza de date. $ltfel spus0 utilizatorul speci"ic% rezultatul$
iar sistemul se ocup% de procedura de c%utare.
2ei este considerat0 n primul r1nd0 un limbaj de interogare0 S*+ este mult mai mult
dec1t un instrument de consultare a bazelor de date0 deoarece permite0 n egal) m)sur)9
definirea datelor-
consultarea bazei de date-
manipularea datelor din baz)-
controlul accesului-
partajarea bazei ntre mai muli utilizatori ai acesteia-
meninerea integrit)ii bazei de date.
2up) Qroff i ]einberg0 principalele atuuri ale S*+ sunt9
=ndependena de produc)tor0 nefiind o te%nologie proprietar)-
&ortabilitate ntre diferite sisteme de operare-
(ste standardizat-
b<ilosofiab sa se bazeaz) pe modelul relaional de organizare a datelor-
'N
(ste un limbaj de nivel nalt0 cu o structur) care se apropie de limba englez)-
<urnizeaz) r)spunsuri la numeroase interog)ri simple0 ad,%oc0 neprev)zute iniial-
Constituie suportul programatic pentru accesul la baza de date-
&ermite multiple imagini asupra datelor bazei-
(ste un limbaj relaional complet-
&ermite definirea dinamic) a datelor0 n sensul modific)rii structurii bazei c%iar n
timp ce o parte din utilizatori sunt conectai la baza de date-
Constituie un e/celent suport pentru implementarea ar%itecturilor client,server.
+imbajul S*+ constituie un e/emplu de limbaj orientat spre tansform)ri sau limbaj
proiectat s) utilizeze relaiile pentru a transforma intr)rile n ieirile cerute. Ca limbaj0 S*+
are dou) componente principale9
- un limbaj de definire a datelor pentru definirea structurii bazei de date 322+8
- un limbaj de manipulare a datelor 32#+8 pentru reg)sirea i reactualizarea datelor.
+imbajul S*+ conine numai comenzi de definire i manipulare i nu conine comenzi de
flu/ de control. Cu alte cuvinte nu e/ist) comenzi =<lTP(Nl(+S(0 Q. T.0 2.l
]P=+( sau alte comenzi care s) ofere un flu/ de control. $cestea trebuie implementate prin
utilizarea unui limbaj de programare sau de control al lucr)rilor sau interactiv prin decizii ale
utilizatorului. 2atorit) acestui fapt0 limbajul S*+ poate fi utilizat n dou) moduri. &rima
modalitate este de a folosi limbajul S*+ interactiv0 prin introducerea instruciunilor de la un
terminal. $ doua este de a integra instruciunile S*+ ntr,un limbaj procedural.
S*+ este un limbaj relativ uor de nv)at9
(ste un limbaj neprocedural , se specific) ce informaii sunt cerute i nu cum sunt
obinute 3limbajul S*+ nu necesit) specificarea metodelor de acces la date8.
S*+ este un limbaj modern0 cu format liber0 ceea ce nseamn) c) nu este necesar ca
fragmentele de comenzi s) fie scrise n anumite locuri de pe ecran. Totui o comand) 3sau
un set de comenzi S*+8 este mai lizibil) dac) se folosete indentarea i alinierea. 2e
e/emplu9
- fiecare clauz) din cadrul unei comenzi trebuie s) nceap) pe o linie nou)-
- nceputul fiec)rei clauze trebuie s) fie aliniat cu nceputul celorlalte-
- dac) o clauz) are mai multe p)ri0 fiecare dintre ele trebuie s) apar) pe c1te o linie
separat) i trebuie s) fie indentat) fa) de nceputul clauzei pentru a indica relaia.
Structura comenzilor const) n cuvinte standard din limba englez)0 cum ar fi C>($T(
T$H+(0 =NS(>T- S(+(CT.
+imbajul S*+ poate fi folosit de o gam) larg) de utilizatori0 inclusiv administratorii de
baze de date0 programatorii de aplicaii i alte tipuri de utilizatori.
S*+ este primul i deocamdat) singurul limbaj de baze de date standardizat care se
bucur) de o acceptare larg).
Cele mai multe bdialecteb S*+ admit urm)toarele tipuri de date9
S#$++=NT9 ntregi , scurte 3! poziii0 reprezentate pe 1' bii80
=NT(Q(> sau =NT9 ntregi , lungi 3M poziii0 32 bii80
NJ#(>=C3m0n8 sau 2(C=#$+3m0n8 sau 2(C3m0n8 , reale0 cu un total de m
poziii0 din care n la partea fracionar)0
<+.$T9 reale0 virgul) mobil) 32R poziii pentru mantis)80
>($+ 9 real0 virgul) mobil)
2.JH+( &>(C=S=.N9 reale0 virgul) mobil)0 dubl) precizie 33R poziii pentru
mantis)80
CP$>3n8 sau CP$>$CT(>3n89 ir de caractere de lungime n 3ma/. 2!R80
;$>CP$>3n8 sau CP$> ;$>W=NQ3n8 sau CP$>$CT(> ;$>W=NQ3n89 ir de
caractere de lungime variabil) 3ma/. 2"!80
2$T(9 dat) calendaristic)
T=#(9 ora
'M
T=#(ST$#&9 an0 lun)0 zi0 ora0 minutul0 secunda0 plus o fraciune zecimal) dintr,o
secund).
&rincipalele comenzi ale S*+0 care se reg)sesc0 ntr,o form) sau alta0 n multe dintre
SQH2>,urile actuale sunt urm)toarele9
Tabelul nr. !.1. Clase de comenzi S*+
Comand% Scop
Pentru manipularea datelor
!E*EC+ (/tragerea datelor din baza de date
,-!E.+ $d)ugarea de noi linii ntr,o tabel)
DE*E+E Ytegerea de linii dintr,o tabel)
UPD/+E #odificarea valorilor unor atribute
Pentru de"inirea bazei de date
C.E/+E +/'*E $d)ugarea unei noi tabele n baza de date
D.%P +/'*E Ytergerea unei tabele din baz)
/*+E. +/'*E #odificarea structurii unei tabele
C.E/+E 0,E1 Crearea unei tabele virtuale
D.%P 0,E1 Ytergerea unei tabele virtuale
Pentru controlul accesului la ;2
2./-+ $cordarea unor drepturi pentru utilizatori
.E0%3E >evocarea unor drepturi pentru utilizatori
Pentru controlul tranzaciilor
C%MM,+ #arc%eaz) sf1ritul unei tranzacii
.%**'/C3 $bandoneaz) tranzacia n curs
!.2. Comenzi pentru descrierea datelor
Comanda S*+ utilizat) pentru crearea unei tabele este C>($T( T$H+(. $ceasta
creeaz) o tabel) vid) 3f)r) linii80 cu o anumit) structur).
CLIEN(I
CodClie/t Nu2eClie/t Adresa Localitate
1RR1 T(VT=+$ S$ Hld. Copou0 NZ =ai
1RR2 #.2(>N S>+ Hld. Q)rii0 22 <ocani
1RR3 .CC. S>+ NJ++ =ai
1RR! <=+$TJ>$ S$ Hld. Jnirii0 1!" <ocani
1RR" =NT(Q>$T$ S$ =.;.;iteazu0 11" &acani
1RR' $#= S>+ Qalaiului0 Z2 Hac)u
1RRZ $V.N S>+ Silvestru0 2 =ai
1RRN $+<$ S>+ &rosperit)ii0 1" &acani
@ACTURIEISE
Nr@actur: CodClie/t Data@actur: ?aloareTotal: T?AColectat:
111111 1RR3 1Z.R'. 2RRZ 1ZRR 2Z1.!2
111112 1RR1 1Z.R'.2RRZ 2N" !"."
111113 1RR! 1N.R'.2RRZ "N" M3.!
11111! 1RR3 1N.R'.2RRZ 2N"R !"".R!
11111" 1RRN 1N.R'.2RRZ 3"ZR "ZR
ZR
11111' 1RRN 1M.R'.2RRZ NZR 13N.M
11111Z 1RR' 2R.R'.2RRZ 11RR 1Z".'3
11111N 1RRZ 23.R'.2RRZ 1"RR 23M.!M
11111M 1RR" 2!.R'.2RRZ !Z2" Z"!.!1
11112R 1RR3 2!.R'.2RRZ 3RR !Z.NM
111121 1RR1 2!.R'.2RRZ !2" 'Z.N"
111122 1RRZ 2!.R'.2RRZ NZ" 13M.Z
111123 1RR' 2".R'.2RRZ ''R 1R".3
11112! 1RR! 2".R'.2RRZ 3N"R '1!.Z
11112" 1RR3 3R.R'.2RRZ 12NR 2R!.3Z
11112' 1RR2 R1.RZ.2RRZ "!2" N''.1Z
<ig. nr. !.1. Haza de date utilizat) n e/emple
2e e/emplu0 pentru crearea tabelei C+=(N`=0 comanda se scrie astfel9
C.E/+E +/'*E C*,E-4,
5CodClient deci)a" 576 not -U**7
NumeClient c&ar5256 not -U**7
Adresa c&ar53067
Localitate c&ar52567
P.,M/.8 3E8 5CodC"ient66
$tributul CodClient este de tip numeric0 valoarea sa fiind reprezentat) pe apte poziii.
Celelalte atribute conin iruri de caractere. ;alorile pentru CodClient i 9umeClient sunt
diferite de NJ++. C%eia primar) a relaiei este atributul CodClient.
(/ist) posibilitatea ad)ug)rii ulterioare a unui nou atribut la cele e/istente0 tergerii unui
atribut sau de modificare a tipului sau lungimii sale. .peraiunea nu este at1t de frecvent)0
fiind recomandabil s) se desf)oare c1t mai rar- o bun) analiz) desf)urat) n faza de
proiectare a bazei de date elimin)0 de obicei0 acest gen de probleme.
2ac) n tabela C+=(N`= se dorete p)strarea i a codului fiscal al fiec)rui furnizor0 este
necesar) ad)ugarea atributului CodFiscal0 care este un ir de caractere 3un num)r precedat de
litera >0 dac) clientul respectiv este pl)titor de T;$8 de lungime 1R caractere. Comanda
utilizat) este $+T(> T$H+(0 astfel9
/*+E. +/'*E C*,E-4,
/DD CodFiscal c&ar5106
S*+ permite declararea c%eilor primare0 candidate i a coloanelor de referin) 3c%ei
str)ine8. 2ac) stabilim c)0 pentru tabela C+=(N`=0 c%eia primar) este atributul CodClient0 iar
atributul 9umeClient este c%eie candidat)0 comanda se poate scrie sub forma9
C.E/+E +/'*E C*,E-4,
5CodClient deci)a" 576 not -U**7
NumeClient c&ar5256 not -U**7
Adresa c&ar53067
Localitate c&ar5256 7
P.,M/.8 3E8 5CodClient6
U-,9UE 5NumeClient66
C%eile str)ine sunt declarate cu ajutorul opiunii <.>(=QN h(W. &entru tabela
<$CTJ>=(#=S(0 c%eia primar) este atributul 9rFactur%0 n timp ce CodClient este c%eie
str)in) c)tre tabela C+=(N`=9
C.E/+E +/'*E F/C+U.,EM,!E
5NrFactur deci)a" 5:6 not -U**7
DataFactur date7
CodClient deci)a" 576 not -U**7
ValoareTotala deci)a" 5156 not -U**7
TVAColectata deci)a" 5146 7
P.,M/.8 3E8 5NrFactur67
F%.E,2- 3E8 5CodClient6 .EFE.E-CE! C*,E-4,6
Z1
Ytergerea unei tabele din baza de date este realizabil) cu ajutorul comenzii 2>.&
T$H+(. 2e obicei0 aceast) comand) se utilizeaz) atunci c1nd pe parcursul lucrului s,au creat
tabele intermediare0 temporare. Ytergerea unei asemenea tabele0 denumit) de e/emplu
T(#&10 se declaneaz) prin comanda9
D.%P +/'*E +EMP1
!.3. Comenzi pentru interogarea bazelor de date. 'raza Select
Gn S*+ o interogare se formuleaz) printr,o fraz) S(+(CT. $ceasta prezint) trei clauze
principale9 S(+(CT0 <>.# i ]P(>(.
SELECT corespunde operatorului proiecie din algebra relaional)0 fiind utilizat) pentru
desemnarea listei de atribute 3coloanele8 din tabela,rezultat-
@RO este cea care permite enumerarea relaiilor din care vor fi e/trase informaiile
aferente consult)rii-
prin SMERE se desemneaz) predicatul selectiv al algebrei relaionale0 relativ la atribute
ale relaiilor care apar n clauza <>.#.
+a modul general 3i simplist8 o consultare simpl) n S*+ poate fi prezentat) astfel9
!E*EC+ C17 C27 ...7 Cn
F.%M .17 .27 ...7 .)
1;E.E P
(/ecuia unei fraze S(+(CT se conc1retizeaz) n obinerea unei tabele 3relaii8 rezultat.
$cest) poate fi o tabel) propriu,zis) sau o tabel) temporar) 3care0 de obicei0 nu poate fi
actualizat)80 dar i o tabel) derivat) 3imagine8. Jneori tabela rezultat poate fi obinut) sub
forma unei variabile,tablou.
Ci , reprezint) coloanele 3care sunt atribute sau e/presii de atribute8 tabelei,rezultat-
. , sunt relaiile ce trebuie parcurse pentru obinerea rezultatului-
P , este predicatul 3condiia8 simplu sau compus ce trebuie ndeplinit de tupluri
pentru a fi incluse n tabela,rezultat.
C1nd clauza ]P(>( este omis)0 se consider) implicit c) predicatul & are valoarea
logic) badev)ratb.
2ac) n locul coloanelor C10 C20 ... Cn apare simbolul b5b0 n tabela,rezultat vor fi
incluse toate coloanele 3atributele8 din toate relaiile specificate n clauza <>.#. 2e
asemenea0 n tabela,rezultat0 nu este obligatoriu ca atributele s) prezinte nume identic cu cel
din tabela enumerat) n clauza <>.#. Sc%imbarea numelui se realizeaz) prin opiunea $S .
>ezultatul unei fraze S(+(CT l vom considera ca fiind sub forma unei tabele oarecare.
Trebuie avute n vedere0 ns)0 c) rezultatul interog)rii poate fi obinut i sub forma unei tabele
temporare sau c%iar a unei variabile,tablou 3matrice8. Gn unele SQH2,uri0 cum ar fi <o/&ro0
formatul general al frazei S(+(CT conine i clauza =NT..
!E*EC+ <
F.%M <
,-+% destinaie
1;E.E<
Gn destinaie poate fi specificat) o tabel) bnormal)b0 o tabel) temporar) 3tabel) care se
terge automat la nc%iderea sa8 sau o variabil),tablou. 2ac) clauza =NT. nu este utilizat)0
atunci n urma interog)rii se obine o tabel) temporar) cu numele predeterminat 3*uer^8.
Jneori0 tabela rezultat 3bnormal)b sau temporar)8 bncalc)b poruncile modelului
relaional. Conform restriciei de entitate0 ntr,o relaie nu pot e/ista dou) linii identice. .r0 n
S*+0 tabela obinut) dintr,o consultare poate conine dou) sau mai multe tupluri identice.
Spre deosebire de algebra relaional)0 n S*+ nu se elimin) automat tuplurile identice
3dublurile8 din tabela,rezultat. &entru aceasta este necesar) utilizarea opiunii 2=ST=NCT9
!E*EC+ D,!+,-C+ C17 C27 ...7 Cn
F.%M .17 .27 ...7 .)
1;E.E P
Gn concluzie0 o fraz) S(+(CT0 n forma n care a fost prezentat)0 corespunde9
Z2
unei selecii algebrice 3clauza ]P(>( , &8
unei proiecii 3S(+(CT , Ci8
unui produs cartezian 3<>.# , >1 >2 ... >m8
i conduce la obinerea unei noi relaii 3tabele,rezultat8 cu n coloane0 fiecare coloan)
fiind9
un atribut din >10 >20 ...0 >m sau
o e/presie calculat) pe baza unor atribute din >10 >20 ...0 >m.
)xemplu
Care este$ pentru "iecare "actur% emis%$ valoarea "%r% T: /
!E*EC+ NrFactur7 ValoareTotal - TVAColectata /! ValoareFaraTVA
F.%M F/C+U.,EM,!E
Tabela rezultat din fig. nr. !.2 va conine dou) atribute9 9rFactur% i aloareFaraT:.
Jltimul este un c1mp calculat.
+ezultat,
Nr@actur: ?aloare@araT?A
111111 1!2N."N
111112 23M."R
111113 !M1.'
11111! 23M!.M'
11111" 3RRR
11111' Z31.1
11111Z M2!.3Z
11111N 12'R."1
11111M 3MZR."M
11112R 2"2.11
111121 3"Z.1"
111122 Z3".3
111123 ""!.Z
11112! 323".3
11112" 1RZ".'3
11112' !""N.N3
Fig. nr. (.2. )xemplu de c1mp calculat 5aloareFaraT:6
=nterog)ri care utilizeaz) operatorii asambliti din algebra relaional)
Reu/iu/ea
!E*EC+ =
F.%M .1
U-,%-
!E*EC+ =
F.%M .2
.peratorul pentru reuniune este deci JN=.N. 2e remarcat c)0 la reuniune0 S*+ elimin)
automat dublurile0 deci nu este necesar) utilizarea clauzei 2=ST=NCT. .peratorul JN=.N
este prezent n toate SQH2,urile importante.
I/tersec.ia
Z3
&entru realizarea interseciei a dou) tabele0 >1 i >2 se utilizeaz) operatorul
=NT(>S(CT9
!E*EC+ =
F.%M .1
,-+E.!EC+
!E*EC+ =
F.%M .2
2ac) n produsele profesionale0 precum 2H2 sau .racle0 operatorul este prezent0 n
altele0 precum ;isual <o/&ro0 =NT(>S(CT r)m1ne un deziderat0 funcionalitatea sa
realiz1ndu,se prin subconsult)ri 3operatorii =N i (V=STS8 sau0 uneori0 prin jonciune.
Di5ere/.a
2iferena dintre tabelele >1 i >2 se realizeaz) utiliz1nd operatorul #=NJS sau
(VC(&T. <raza S(+(CT urm)toare funcioneaz) n .racle.
!E*EC+ =
F.%M .1
M,-U!
!E*EC+ =
F.%M .2
Produsul carte7ia/
Gn S*+ nu e/ist) operator e/plicit pentru efectuarea produsului cartezian. 2ac) n clauza
<>.# apar dou) relaii0 >
1
i >
2
0 atunci0 n lipsa unei condiii de jonciune formulat) n
clauza ]P(>(0 tabela rezultat va conine liniile obinute din produsul cartezian .
1
.
2
.
!E*EC+ =
F.%M .17 .2
=nterog)ri care utilizeaz) operatorii relaionali din algebra relaional)
Selecia
*-emplul 1
Care dintre "acturile emise dup% 27.F@.2FF8 prezint% valoarea mai mare de 7FFF lei /
!E*EC+ =
F.%M F/C+U.,EM,!E
1;E.E DataFactur> ? @23.0A.2007B /-D 0a"oare+ota"a ? 3000
+ezultat,
Nr@actur: CodClie/t 2ata<actur) ;aloareTotal) T;$Colectat)
11111M 1RR" 2!.R'.2RRZ !Z2" Z"!.!1
11112! 1RR! 2".R'.2RRZ 3N"R '1!.Z
11112' 1RR2 R1.RZ.2RRZ "!2" N''.1Z
.peratorul $N2 a fost utilizat pentru a introduce un bY=b logic0 dup) cum .> se
utilizeaz) pentru KS$JL logic. Gn S*+0 pentru comparare0 n afara bclasicilorb9 C0 CU0 A0 AU0
U0 3AC80 mai pot fi utilizai i ali operatori0 dintre care n acest paragraf ne vom opri la9
H(T]((N 3ntre0 cuprins ntre80
+=h( 3ca i0 la fel ca80
=N 3n8 i
=S NJ++.
Operatorul BETSEEN
$cest operator permite specificarea unui interval de valori n care trebuie s) se ncadreze
c1mpul sau e/presia testat). =ntervalul se refer) la valori numerice sau la date calendaristice.
*-emplul 2
Z!
Care sunt "acturile emise dup% 27.F@.2FF8 &i care au valoarea cuprins% ntre 7FFF &i
(FFF lei /
<)r) operatorul H(T]((N fraza S(+(CT se scrie9
!E*EC+ =
F.%M F/C+U.,EM,!E
1;E.E DataFactur ? @23.0A.2007B /-D
ValoareTotala ?C 3000 /-D ValoareTotala DC 4000
Jtiliz1nd operatorul H(T]((N se poate scrie9
!E*EC+ =
F.%M F/C+U.,EM,!E
1;E.E DataFactur ? @23.0A.2007B /-D ValoareTotala 'E+1EE-
3000 /-D 4000
Operatorul LITE
$cest operator se folosete pentru a compara un atribut de tip ir de caractere 3de
e/emplu 9umeClient0 :dresa0 <ocalitate8 cu un literal 3constant) de tip ir de caractere8.
$stfel0 dac) se dorete obinerea unei tabele,rezultat care s) conin) numai clienii ai c)ror
nume ncepe cu litera #0 putem scrie predicatul din clauza ]P(>( sub forma9 9umeClient
<IJ) K.LK. 2eoarece dup) litera # apare semnul b7b0 se vor e/trage din tabela C+=(N`=
toate tuplurile pentru care valoarea atributului 9umeClient ncepe cu litera #0 indiferent de
lungimea acestuia 3e/. #(+C>(T0 #=Q$S0 #=T$0 #$TSJSP=T$ etc.8. 2espre semnul
b7b se spune c) este un speci"icator multiplu0 joMer sau masc%.
Jn alt specificator multiplu utilizat n multe versiuni S*+ este liniua de subliniere 3bBb8.
Spre deosebire de b7b0 bBb substituie un singur caracter. 2iferena dintre cei doi specificatori
multipli este pus) n eviden) n e/emplele urm)toare.
*-emplul 3
Care sunt clienii ai c%ror nume este "ormat din &apte caractere$ ncepe cu litera : &i
sunt societ%i cu r%spundere limitat% 5,4<!uri6 /
!E*EC+ =
F.%M C*,E-4,
1;E.E NumeClient *,3E E/FF !.*E
+ezultat,
CodClie/
t
Nu2eClie/t Adresa Localitate
1RR' $#= S>+ Qalaiului0 Z2 Hac)u
*-emplul !
2ac) n e/emplu 3 s,ar fi utilizat simbolul b7b9
!E*EC+ =
F.%M C*,E-4,
1;E.E NumeClient *,3E E/G!.*E7
am fi obinut9
+ezultat,
CodClie/t Nu2eClie/t Adresa Localitate
1RR' $#= S>+ Qalaiului0 Z2 Hac)u
1RRZ $V.N S>+ Silvestru0 2 =ai
1RRN $+<$ S>+ &rosperit)ii0 1" &acani
Gn concluzie0 bBb nlocuiete 3substituie8 un singur caracter0 n timp ce b7b nlocuiete un
ir de caractere de lungime variabil) 3ntre R i n caractere8. Cei doi specificatori multipli pot
fi utilizai mpreun).
Operatorul IN
<ormat general9
Z"
expresie1 ,- 5expresie27 expresie37 ...6
>ezultatul evalu)rii unui predicat ce conine acest operator va fi badev)ratb dac) valoarea
expresiei1 este egal) cu 3cel puin8 una din valorile9 expresie20 expresie70 ... (ste util atunci
c1nd condiiile de selecie sunt mai comple/e.
*-emplul "
Care sunt clienii din Ia&i &i ;ac%u /
<)r) utilizarea operatorului =N se scrie9
!E*EC+ =
F.%M C*,E-+,
1;E.E *oca"itate= E,aHiE %. *oca"itate= E'ac>uI
Jtiliz1nd operatorul =N9
!E*EC+ =
F.%M C*,E-+,
1;E.E *oca"itate ,- 5E,aHiE7 E'ac>u6
+ezultat
CodClie/t Nu2eClie/t Adresa Localitate
1RR1 T(VT=+$ S$ Hld. Copou0 NZ =ai
1RR3 .CC. S>+ NJ++ =ai
1RR' $#= S>+ Qalaiului0 Z2 Hac)u
1RRZ $V.N S>+ Silvestru0 2 =ai
Operatorul IS NULL
. valoare nul) este o valoare nedefinit). (ste posibil ca la ad)ugarea unei linii ntr,o
tabel) valorile unor atribute s) fie necunoscute. Gn aceste cazuri valoarea atributului pentru
tuplul respectiv este nul). >eamintim c)0 prin definiie0 nu se admit valori nule pentru grupul
atributelor care constituie c%eia primar) a relaiei.
*-emplul .
2ac) se dorete a"larea clienilor pentru care nu s!a introdus adresa0 se poate scrie9
!E*EC+ =
F.%M C*,E-+,
1;E.E Adresa ,! -U**
+ezultat,
CodClie/t NumeClient $dresa +ocalitate
1RR3 .CC. S>+ NJ++ =ai
Observaii
;aloarea NJ++ nu se confund) cu valoarea zero 3pentru atributele numerice8 sau cu
valoarea bspaiub 3pentru atributele de tip ir de caractere8
.peratorul NJ++ se utilizeaz) cu =S i nu cu semnul bUb. 2ac) s,ar utiliza forma
eJ#re$ie C -U** i nu eJ#re$ie ,! -U**0 rezultatul evalu)rii va fi ntotdeauna fals0
c%iar dac) e/presia nu este nul).
#roiecia. /piunea /+0*+ 12
Coloanele tabelei,rezultat al consult)rii sunt specificate n clauza S(+(CT0 fiind
separate prin virgul).
*-emplul 1
Care sunt localit%ile n care "irma are clieni /
Z'
(ste necesar) parcurgerea relaiei C+=(NT=0 singurul atribut care intereseaz) fiind
+ocalitate. 2eoarece S*+ nu elimin) dublurile automat0 dac) se dorete ca n tabela,rezultat o
localitate s) figureze o singur) dat)0 se utilizeaz) opiunea 2=ST=NCT9
!E*EC+ D,!+,-C+ *oca"itate
F.%M C*,E-+,
+ezultat,
Localitate
=ai
<ocani
Hac)u
&acani
&rezentarea localit)ilor n ordinea alfabetic) a numelui acestora este posibil) apel1nd la
clauza .>2(> HW.
!E*EC+ Localitate
F.%M C*,E-+,
%.DE. '8 Localitate DE!CE-D,-2
.piunile $SC(N2=NQ 3cresc)tor8 i 2(SC(N2=NQ 3descresc)tor8 indic) modul n
care se face ordonarea tuplurilor tabelei,rezultat al interog)rii.
&rioritatea de ordonare este stabilit) prin ordinea atributelor specificate n .>2(> HW9
ordonarea bprincipal)b se face n funcie de valorile primului atribut specificat- n cadrul
grupelor de tupluri pentru care valoarea primului atribut este identic)0 ordinea se stabilete
dup) valoarea celui de,al doilea atribut specificat .a.m.d.
2ac) n .>2(> HW lipsesc opiunile $SC(N2=NQ62(SC(N2=NQ0 ordonarea se face
implicit cresc)tor.
+onciunea
S*+ nu prezint) clauze sau operatori speciali pentru realizarea t%eta,jonciunii0 ec%i,
jonciunii sau jonciunii naturale. 2ar0 aa cum am v)zut0 o jonciune este o combinaie de
produs cartezian i selecie.
EIe2pluE
Care sunt "acurile emise clienilor din municipiul Ia&i /
!E*EC+ NrFactura NumeClient Localitate
F.%M F/C+U.,EM,!E7 C*,E-4,
1;E.E F/C+U.,EM,!E.CodClient C C*,E-4,.CodClient
/-D *oca"itateCI,aHiI
$au
!E*EC+ NrFactura NumeClient Localitate
F.%M F/C+U.,EM,!E ,--E. K%,- C*,E-4,
%- 1;E.E F/C+U.,EM,!E.CodClient C C*,E-4,.CodClient
1;E.E LocalitateCI,aHiI
+ezultat,
Nr@actur: Nu2eClie/t Localitate
111111 .CC. S>+ =ai
111112 T(VT=+$ S$ =ai
11111! .CC. S>+ =ai
11111N $V.N S>+ =ai
11112R .CC. S>+ =ai
111121 T(VT=+$ S$ =ai
ZZ
111122 $V.N S>+ =ai
11112" .CC. S>+ =ai
,ub!consult%ri. 0peratorul I9
. alt) facilitate deosebit de important) a limbajului S*+ o constituie posibilitatea
includerii 3imbric)rii8 a dou) sau mai multe fraze S(+(CT0 astfel nc1t pot fi formulate
interog)ri cu mare grad de comple/itate.
.peratorul =N poate fi utilizat i pentru includerea unei fraze S(+(CT ntr,o alt) fraz)
S(+(CT.
*-emplul 1
Care sunt "acturile emise n aceea&i zi n care a "ost ntocmit% "actura 11111( /
!E*EC+ =
F.%M F/C+U.,EM,!E
1;E.E DataFactur ,-
5!E*EC+ DataFactur
F.%M F/C+U.,EM,!E
1;E.E NrFacturC1111146
Observaie
Sub,consultarea
!E*EC+ DataFactur
F.%M F/C+U.,EM,!E
1;E.E NrFacturC111114
are ca rezultat o tabel) alc)tuit) dintr,o singur) coloan) 3DataFactur8 i o singur) linie
ce conine valoarea atributului DataFactur pentru factura 11111!9
Data@actur:
1N.R'.2RRZ
Clauza 1;E.E DataFactur ,- determin) c)utarea n tabela F/C+U.,EM,!E a
tuturor tuplurilor 3liniilor8 care au valoarea atributului DataFactur egal) cu una din valorile
tuplurilor 3n cazul nostru0 egal) cu valoarea tuplului8 din tabela obinut) prin bsub,
consultareb. Cu alte cuvinte0 n acest caz 1;E.E Data ,- va selecta toate facturile pentru
care data emiterii este 1N.R'.2RRZ.
+ezultat,
Nr@actur: CodClie/t Data@actur: ?aloareTotal: T?AColectat:
111113 1RR! 1N.R'.2RRZ "N" M3.!
11111! 1RR3 1N.R'.2RRZ 2N"R !"".R!
11111" 1RRN 1N.R'.2RRZ 3"ZR "ZR
*-emplul 2
Care sunt "acturile emise n alte zile dec1t cea n care a "ost ntocmit% "actura 11111( /
!E*EC+ =
F.%M F/C+U.,EM,!E
1;E.E DataFactur -%+ ,-
5!E*EC+ DataFactur
F.%M F/C+U.,EM,!E
1;E.E NrFacturC1111146
S,a utilizat negaia0 test1ndu,se non,apartenena la o relaie creat) printr,o sub,fraz)
S(+(CT.
*-emplul 3
Care sunt clienii c%rora li s!au trimis "acturi ntocmite n aceea&i zi cu "actura 11111( /
ZN
!E*EC+ D,!+,-C+ NumeClient
F.%M C*,E-4,
1;E.E CodClient ,-
5!E*EC+ CodClient
F.%M F/C+U.,EM,!E
1;E.E DataFactur ,-
5!E*EC+ DataFactur
F.%M F/C+U.,EM,!E
1;E.E NrFacturC11111466
$m ilustrat modul n care pot fi imbricate 3nl)nuite0 incluse8 trei fraze S(+(CT. . alt)
soluie pentru rezolvarea aceleai probleme este i9
S(+(CT 2=ST=NCT NumeClient
<>.# C+=(N`=0 <$CTJ>=(#=S(
]P(>( C+=(N`=.CodClientU<$CTJ>=(#=S(.CodClient
$N2 2ata<actur) =N
3S(+(CT 2ata<actur)
<>.# <$CTJ>=(#=S(
]P(>( Nr<actur)U11111!8
Se poate reine0 ca regul) general)0 c) aproape orice consultare poate fi redactat) n mai
multe moduri0 n funcie de e/periena i imaginaia celui care o formuleaz).
'uncii de agregare &statistice(, C/3NT4 S354 )674 5)84 5$N
<ormatul general al unei fraze S(+(CT ce conine funcii predefinite este9
!E*EC+ LuncMia-#redeLinit>17 ... 7 LuncMia-#redeLinit>-
F.%M "i$t>-tabe"e
1;E.E condiMii.
>ezultatul oric)rei fraze S(+(CT este o nou) relaie 3tabel)8. Gn lipsa opiunii Q>.J&
HW0 dac) n clauza S(+(CT este prezent) o funcie predefinit)0 tabela rezultat va conine o
singur) linie.
@u/c.ia COUNT contorizeaz) valorile unei coloane0 altfel spus0 num)r)0 ntr,o relaie0
c1te valori diferite de NJ++ are coloana specificat).
*-emplul 1
C1i clieni are "irma /
!E*EC+ C%U-+ 5CodClient6 /! Nr!Clienti
F.%M C*,E-+,
>ezultat9
NrLClie/ti
N
Gn funcia C.JNT se poate utiliza ca argument0 n locul numelui unei coloane0 semnul 5-
n acest caz se va determina c1te linii are tabela la care se aplic) funcia respectiv).
*-emplul 2
<a c1i clieni s!au trimis "acturi /
!E*EC+ C%U-+5="
F.%M C*,E-+,
1;E.E CodClient ,-
ZM
5!E*EC+ CodClient
F.%M F/C+U.,EM,!E6
>ezultatul corect poate fi ns) obinut i prin utilizarea clauzei 2=ST=NCT astfel9
!E*EC+ C%U-+ 5D,!+,-C+ CodClient6
F.%M F/C+U.,EM,!E

@u/c.ia SU calculeaz) suma valorilor unei coloane.
*-emplul 3
Care este valoarea total% a "acturilor emise /
!E*EC+ !UM 5ValoareTotala6 /! Total!F#
F.%M F/C+U.,EM,!E
+ezultat,
TotalL@E
3RRRR
*-emplul !
Care este totalul valorii "acturilor trimise clientului :N09 ,4< /
!E*EC+ !UM 5ValoareTotala6 /! Total!F#!A$%N
F.%M F/C+U.,EM,!E7 C*,E-+,
1;E.E F/C+U.,EM,!E.CodClient C C*,E-+,.CodClient
/-D NumeClient C E/N%- !.*E
@u/c.iile AO 6i IN determin) valorile ma/ime0 respectiv minime ale unei coloane
n cadrul unei tabele.
*-emplul "
Care este cea mai mic% valoare a unei "acturi emise /
!E*EC+ M,-5ValoareTotala6 /! 0a"Mini)a
F.%M F/C+U.,EM,!E
+ezultat
?ali/i2a
2N"
*-emplul .
Care este "actura emis% ce are cea mai mare valoare /
!E*EC+ NrFactur ValoareTotala
F.%M F/C+U.,EM,!E
1;E.E ValoareTotala C 5!E*EC+ M/N 5ValoareTotala6
F.%M F/C+U.,EM,!E6
+ezultat,
Nr@actura ?aloareTotala
11112' "!2"
7ruparea tuplurilor. Clauzele 7+/3# 12 i 9)6$N7
S*+ permite utilizarea clauzei Q>.J& HW pentru a forma grupe 3grupuri8 de tupluri ale
unei relaii0 pe baza valorilor comune ale unei coloane. Gn frazele S(+(CT formulate p1n) n
acest paragraf0 prin intermediul clauzei ]P(>( au fost selectate tupluri din diferite tabele.
&rin asocierea unei clauze P$;=NQ la o clauz) Q>.J& HW este posibil) selectarea
anumitor grupe de tupluri ce ndeplinesc un criteriu.
NR
>ezultatul unei fraze S(+(CT ce conine clauza Q>.J& HW este o tabel) care va fi
obinut) prin regruparea tuturor liniilor din tabelele enumerate n <>.#0 care prezint) o
aceeai valoare pentru o coloan) sau un grup de coloane.
<ormatul general este9
!E*EC+ coloan17 coloan27 ....7 coloanm
F.%M tabe">
2.%UP '8 co"oan>-de-reOru#are
*-emplu 1
Care este totalul zilnic al valorii "acturilor emise /
!E*EC+ DataFactur7 !UM 5ValoareTotala6
F.%M F/C+U.,EM,!E
2.%UP '8 DataFactur
Gn acest caz tabela,rezultat va avea un num)r de linii egal cu num)rul de date
calendaristice distincte din tabela <$CTJ>=(#=S(. &entru toate facturile aferente unei zile
se va calcula suma valorilor0 datorit) utiliz)rii funciei SJ#3aloareTotala8.
Succesiunea pailor este urm)toarea9
1. Se ordoneaz) liniile tabelei <$CTJ>=(#=S( n funcie de valoarea atributului
DataFactur9
Nr@actur: CodClie/t Data@actur: ?aloareTotala T?AColectata
111111 1RR3 1Z.R'.2RRZ 1ZRR 2Z1.!2
111112 1RR1 1Z.R'.2RRZ 2N" !"."
111113 1RR! 1N.R'.2RRZ "N" M3.!
11111! 1RR3 1N.R'.2RRZ 2N"R !"".R!
11111" 1RRN 1N.R'.2RRZ 3"ZR "ZR
11111' 1RRN 1M.R'.2RRZ NZR 13N.M
11111Z 1RR' 2R.R'.2RRZ 11RR 1Z".'3
11111N 1RRZ 23.R'.2RRZ 1"RR 23M.!M
11111M 1RR" 2!.R'.2RRZ !Z2" Z"!.!1
11112R 1RR3 2!.R'.2RRZ 3RR !Z.NM
111121 1RR1 2!.R'.2RRZ !2" 'Z.N"
111122 1RRZ 2!.R'.2RRZ NZ" 13M.Z
111123 1RR' 2".R'.2RRZ ''R 1R".3Z
11112! 1RR! 2".R'.2RRZ 3N"R '1!.Z
11112" 1RR3 3R.R'.2RRZ 12NR 2R!.3'
11112' 1RR2 R1.RZ.2RRZ "!2" N''.1Z
2. Se formeaz) c1te un grup pentru fiecare valoare distinct) a atributului
DataFactur9
3.
Nr@actur: CodClie/t Data@actur: ?aloareTotala T?AColectata
111111 1RR3 1Z.R'.2RRZ 1ZRR 2Z1.!2
111112 1RR1 1Z.R'.2RRZ 2N" !"."
111113 1RR! 1N.R'.2RRZ "N" M3.!
11111! 1RR3 1N.R'.2RRZ 2N"R !"".R!
11111" 1RRN 1N.R'.2RRZ 3"ZR "ZR
11111' 1RRN 1M.R'.2RRZ NZR 13N.M
11111Z 1RR' 2R.R'.2RRZ 11RR 1Z".'3
11111N 1RRZ 23.R'.2RRZ 1"RR 23M.!M
11111M 1RR" 2!.R'.2RRZ !Z2" Z"!.!1
11112R 1RR3 2!.R'.2RRZ 3RR !Z.NM
N1
111121 1RR1 2!.R'.2RRZ !2" 'Z.N"
111122 1RRZ 2!.R'.2RRZ NZ" 13M.Z
111123 1RR' 2".R'.2RRZ ''R 1R".3Z
11112! 1RR! 2".R'.2RRZ 3N"R '1!.Z
11112" 1RR3 3R.R'.2RRZ 12NR 2R!.3'
11112' 1RR2 R1.RZ.2RRZ "!2" N''.1Z
3. &entru fiecare din cele nou) grupuri se calculeaz) suma valorilor atributului
aloareTotala.
Tabela , rezultat final va avea nou) linii9
Data@actur: SU;?aloareTotala=
1Z.R'.2RRZ 1MN"
1N.R'.2RRZ ZRR"
1M.R'.2RRZ NZR
2R.R'.2RRZ 11RR
23.R'.2RRZ 1"RR
2!.R'.2RRZ '32"
2".R'.2RRZ !"1R
3R.R'.2RRZ 12NR
R1.RZ.2RRZ "!2"
*-emplul 2
Care este num%rul "acturilor emise pentru "iecare client /
!E*EC+ NumeClient7 C%U-+5NrFactur6
F.%M F/C+U.,EM,!E7 C*,E-+,
1;E.E F/C+U.,EM,!E.CodClientCC*,E-+,.CodClient
2.%UP '8 F/C+U.,EM,!E.CodClient
Observaie
&1n) la standardul S*+MM i publicarea $mendamentului .+$& la acest standard0 n
S*+ nu puteau fi calculate0 prin Q>.J& HW0 subtotaluri pe mai multe niveluri0 pentru
aceasta fiind necesar) scrierea de programe n SQH2,ul respectiv.
Clau7a MA?IN" permite introducerea unor restricii care sunt aplicate grupurilor de
tupluri0 deci nu tuplurilor bindividualeb0 aa cum bfaceb clauza ]P(>(. 2in tabela rezultat
sunt eliminate toate grupurile care nu satisfac condiia specificat).
Clauza P$;=NQ blucreaz)b mpreun) cu o clauz) Q>.J& HW0 fiind practic o clauz)
]P(>( aplicat) acesteia.
<ormatul general este9
!E*EC+ coloan 17 coloan 27 .... 7 coloan m
F.%M tabe">
2.%UP '8 co"oan>-de-reOru#are
;/0,-2 caracteri$tic>-de-Oru#
*-emplul 3
Pentru "acturile emise intereseaz% valoarea zilnic% a acestora 5n "uncie de data la care
au "ost ntocmite$ dar numai dac% aceasta 5valoarea zilnic%6 este de mai mare de cinci mii lei.
!E*EC+ DataFactur7 !UM5ValoareTotala6
F.%M F/C+U.,EM,!E
2.%UP '8 DataFactur
;/0,-2 !UM5ValoareTotala6 ? 5000
+a e/ecuia acestei fraze0 se parcurg cei trei pai prezentai la e/emplul 10 apoi0 din
cele nou) tupluri obinute prin grupare0 sunt e/trase numai cele care ndeplinesc condiia
!UM5ValoareTotala6 ? 5000.
N2
+ezultat,
Data SU;?aloareTotala=
1N.R'.2RRZ ZRR"
2!.R'.2RRZ '32"
R1.RZ.2RRZ "!2"
*-emplul !
,% se a"i&eze ziua n care s!au ntocmit cele mai multe "acturi.
!E*EC+ DataFactur
F.%M F/C+U.,EM,!E
2.%UP '8 DataFactur
;/0,-2 C%U-+5=6 ?C /**
5!E*EC+ C%U-+5=6
F.%M F/C+U.,EM,!E
2.%UP '8 DataFactur6
*-emplul "
Care sunt clienii pentru care s,au ntocmit numai dou) facturij
!E*EC+ -u)eC"ient
F.%M C*,E-+, ,--E. K%,- F/C+U.,EM,!E
.N C+=(NT=.C.2C+=(NTU<$CTJ>=(#=S(.C.2C+=(NT
Q>.J& HW NumeClient
P$;=NQ C.JNT3Nr<actura8U2
$au
!E*EC+ -u)eC"ient
F.%M C*,E-+,
]P(>( CodClient =N
3S(+(CT CodClient
<>.# <$CTJ>=(#=S(
Q>.J& HW CodClient
P$;=NQ C.JNT3Nr<actura8U28
*-emplu .
Care sunt zilele n care s,au ntocmit cel puin trei facturij
S(+(CT 2ata<act 0 Count358 as Nr
<>.# <acturi(mise
Q>.J& HW 2ata<act
P$;=NQ C.JNT358CU3
).*. Co2e/7i pe/tru actuali7area 3a7elor de date
S*+ prezint) comenzi specifice pentru modificarea coninutului unei tabele0 neleg1nd
prin aceasta trei aciuni prin care se actualizeaz) baza9
a8 ad)ugarea de noi linii la cele e/istente ntr,o tabel)0
b8 tergerea unor linii0
c8 modificarea valorii unui atribut.
)d%ugarea de nregistr%ri
$d)ugarea de noi linii ntr,o tabel) se realizeaz) cu comanda =NS(>T care are
urm)toarea sinta/)9
<ormat9 ,-!E.+
,-+% tabe"> P5"i$t>FcQ)#uri6R
0/*UE! 5"i$t>Fva"ori6
N3
*-emplul 1
S) presupunem c)0 la un moment dat0 ntreprinderea vinde produse i firmei >.2(V
S>+ care are sediul pe strada Sapienei0 nr.!! bis0 n localitatea =ai. $cest nou client trebuie
bintrodusb n baza de date0 operaiune care n S*+0 se realizeaz) prin comanda9
,-!E.+
,-+% C*,E-4,
0/*UE! 510097 E.%DEN !.*E7 E!a#ienMei7 44 bi$E7 S,aHiI6
<raza =NS(>T de mai sus poate fi scris) i sub forma9
,-!E.+
,-+% C*,E-4, 5CodClient7 NumeClient7 Adresa7 Localitate6
0/*UE! 510097 E.%DEN !.*E7 E!a#ienMei 44 bi$E7 E,aHiE6.
2up) cum se observ)0 dup) numele tabelei 3C+=(N`=8 au fost enumerate toate atributele
pentru care se introduc valori prin clauza ;$+J(S.
2ac) nu s,ar fi cunoscut adresa clientului >.2(V0 atunci fraza =NS(>T ar fi avut
forma9
,-!E.+
,-+% C*,E-4, 5CodClient7 NumeClient7 Adresa7 Localitate6
0/*UE! 510097 E.%DEN !.*E7 -U**7 E,aHiE6
Gn noua linie a tabelei C+=(N`= valoarea atributului :dresa va fi NJ++.
Se putea folosi i forma9
,-!E.+
,-+% C*,E-4,
0/*UE! 510097 E.%DEN !.*E7 E E7 E,aHiE6
Gn urma e/ecuiei acestei comenzi0 valoarea atributului Adresa va fi b b 3un spaiu80 deci
diferit) de NJ++.
:tergerea nregistr%rilor
.peraiunea de eliminare a uneia sau mai multor linii dintr,o tabel) se realizeaz) prin
comanda 2(+(T( care are urm)toarea sinta/)9
DE*E+E
F.%M nu)e-tabe">
1;E.E #redicat
*-emplul 2
,% se elimine din tabela C<I)9OI linia a"erent% clientului .02)49 ,4< 5cod 1FF26.
DE*E+E
F.%M C*,E-4,
1;E.E CodClient C 1002
*-emplu 3
,% se &tearg% datele re"eritoare la "acturile emise clienilor din ora&ul Foc&ani.
DE*E+E
F.%M F/C+U.,EM,!E
1;E.E CodClient ,-
5!E*EC+ CodClient
F.%M C*,E-4,
1;E.E Localitate C EFocHaniE6
Gn general0 tergerea unor linii trebuie privit) cu mult) circumspecie0 deoarece atunci
c1nd linia de ters conine valori ale unor atribute ce apar n alte tabele ca i c%ei str)ine0
e/ist) riscul pierderii integrit)ii refereniale.
Standardul S*+M2 permite la crearea unei tabele descrierea aciunii care se va derula la
tergerea unei linii p)rinte n cazul n care e/ist) linii copil. Spre e/emplu0 se poate refuza
tergerea de linii din tabela C+=(N`=0 dac) la crearea tabelei <$CTJ>=(#=S( se specific)9
C.E/+E +/'*E F/C+U.,EM,!E
5NrFactur deci)a" 5:6 not -U**7
DataFactur date7
N!
CodClient deci)a" 576 not -U**7
ValoareTotala deci)a" 5156 not -U**7
TVAColectata deci)a" 5146 7
P.,M/.8 3E8 5NrFactur67
F%.E,2- 3E8 5CodClient6 .EFE.E-CE! C*,E-4,
%- DE*E+E .E!+.,C+6
5odificarea valorilor unor atribute
&entru modificarea valorilor unuia sau mai multor atribute dintr,o tabel)0 comanda
utilizat) este J&2$T( care are formatul general9
UPD/+E tabe">
!E+ atribut C eJ#re$ie
1;E.E #redicat
Ca rezultat0 vor fi modificate valorile atributului specificat0 noile valori ale acestuia fiind
cele care rezult) n urma evalu)rii e/presiei- modificarea se va produce pe toate liniile tabelei
care ndeplinesc condiia specificat) n predicat.
*-emplul !
Noua adres) a clientului #odern S>+ este KHulevardul ;ictoriei nr. 21L. S) se opereze
modificarea n baza de date.
Se actualizeaz) atributul $dresa din tabela Clieni.
UPD/+E C*,E-4,
!E+ Adresa=KHulevardul ;ictoriei nr. 21L
1;E.E NumeClientCIModern !.*I
N"
Bi3lio0ra5ie
1. $irinei0 2.0 .a.0 #odele de aplicaii practice n #icrosoft (/cel i ;isual <o/&ro0
(ditura Sedcom +ibris0 =ai0 2RR3
2. Hazian0 #enac%em0 Totul despre ;isual <o/&ro '.R0 (ditura Teora0 Hucureti0
2RR1
3. H1sc)0 ..0 Haze de date0 (ditura $ll0 Hucureti0 1MMZ
!. Hot0 (d0 +eon%ard0 ]ood^0 #icrosoft .ffice V&0 traducere de Simona i Titi
&reda0 (ditura Teora0 Hucureti0 2RR3
". Conoll^0 T.0 Hegg0 C.0 Strac%an0 $.0 Haze de date0. &roiectare0 implementare0
gestionare0 (ditura Teora0 Hucureti0 2RR1
'. <lorescu0 ;.0 .a.0 Haze de date0 (ditura (conomica0 Hucureti0 1MMM
Z. <orta0 H.0 S*+ n lecii de 1R minute0 traducere de #i%ai #)n)stireanu0 (ditura
Teora0 Hucureti0 2RRZ
N. <otac%e0 #.0 Haze de date relaionale. .rganizare0 interogare i normalizare0
(ditura _unimea0 =ai0 1MMZ
M. <otac%e0 #.0 S*+. 2ialecte 2H20 .racle0 ;isual <o/&ro0 (ditura &olirom0 =ai0
2RR1
1R. <otac%e0 #.0 &roiectarea bazelor de date. Normalizare0 postnormalizare0 (ditura
&olirom0 =ai0 2RR"
11. <otac%e0 #.0 Hrava0 =.0 Strmbei0 C.0 Creu0 +.0 ;isual <o/&ro. Q%idul dezvolt)rii
aplicaiilor profesioanle0 (ditura &olirom0 =ai0 2RR2
12. Pernandez0 #. _.0 &roiectarea bazelor de date0 (ditura Teora0 Hucureti0 2RR3
13. +ungu0 =. i colectiv0 Haze de date. .rganizare0 proiectare i implementare0
(ditura $++0 Hucureti0 1MM"
1!. #elnic0 $.0 #edii de programare0 (ditura Te%no&ress0 =ai0 2RR"
1". #iloescu0 #.0 Haze de date n ;isual <o/&ro0 (ditura Teora0 Hucureti0 2RR3
1'. N)stase0 &.0 Te%nologia bazelor de date0 $ccess 2RRR0 (ditura (conomic)0
Hucureti0 2RRR
1Z. .ppel0 $.0 S*+ f)r) mistere0 traducere de Cristian #ocanu0 <lorin #oraru0
(ditura >osetti (ducational0 Hucureti0 2RR'
1N. 555 #icrosoft .ffice0 $ccess 2RR30 traducere de Cristian #ocanu0 (ditura Teora0
Hucureti0 2RR!
N'

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