Documente Academic
Documente Profesional
Documente Cultură
Baze Date Economie Lupasc
Baze Date Economie Lupasc
CUPRINS
Capitolul I Fundamente ale bazelor de date............................................................3
Ce este baza de date? .........................................................................................................4
Arhitecturi ale sistemelor de baze de date .......................................................................6
Proiectarea tranzaciilor..................................................................................................19
Bibliografie ................................................................................................................73
****************************************************************************************
Obiectivele capitolului
Capitolul I Fundamente ale bazelor de date prezint evoluia i
ascensiunea pn n prezent a domeniului bazelor de date i realizeaz o
descriere succint a aspectelor de baz care caracterizeaz domeniul. n
acest context, am ncercat s poziionm teoria bazelor de date n cadrul
tehnologiilor informaionale, am prezentat cteva definiii relevante ale
conceptului de baz de date formulate de cercettori i profesori care s-au
remarcat cu preocupri nsemnate n cadrul domeniului i au fost identificate
i analizate principalele arhitecturi specifice sistemelor de baze de date.
Totodat, principalul scop avut n vedere este de a oferi o viziune clar i o
nelegere general a ceea ce reprezint astzi baza de date.
****************************************************************************************
Tehnologiile informaionale influeneaz continuu i produc modificri
substaniale asupra mijloacelor de lucru din ntreaga lume. Informaii care
erau altdat stocate n depozite pline de dulapuri, pot fi accesate astzi prin
intermediul unei singure apsri a butonului mouse-ului. Astfel, pentru
stocarea informaiilor din orice mediu imaginabil n zilele noastre sunt folosite
sistemele de baze de date. De la bazele de date mari, aa cum sunt
sistemele care permit rezervarea on-line a biletelor pentru companiile aeriene
i pn la fiele dintr-o bibliotec, sistemele de baze de date sunt folosite
pentru memorarea i distribuirea datelor de care ncep s depind tot mai
mult vieile noastre.
Pn n urm cu civa ani, sistemele mari de baze de date se gseau
numai pe calculatoare de tip mainframe 1 . ns, aa cum era i firesc,
proiectarea, achiziionarea sau ntreinerea unei astfel de maini reprezenta o
sarcin costisitoare i dificil de realizat. Odat cu apariia calculatoarelor din
clasa staiilor de lucru, pe care le ntlnim la tot pasul (biblioteci, laboratoare
de informatic, departamente de lucru, etc.) i care sunt puternice i n
acelai timp destul de ieftine, programatorii au posibilitatea de a proiecta
rapid i la costuri reduse produse informatice care s permit ntreinerea i
distribuirea datelor.
Mainframe reprezint un tip de calculator de mare putere care este utilizat cel mai adesea
pentru gestiunea bazelor de date de dimensiuni foarte mari, precum i a altor aplicaii
asemntoare, care necesit o capacitate de stocare foarte mare i o interaciune puternic
cu un numr mare de utilizatori, concretizat printr-un volum foarte mare de comunicaii de
date.
accesibil mai multor utilizatori n timp real, adic mai muli utilizatori,
concomitent, pot obine informaiile dorite atunci cnd au nevoie de ele.
Date
Software
Elemente auxiliare
Programator
de aplicatie
Administrator
baza de date
Inginer
(analist) de
sistem
Manipulare date
Program
aplicatie 1
...
SGBD
S.O.
Baz de date
Niveluri de
organizare
date
Descriere date
Structura externa
(logica)
Structura
conceptuala
...
...
Structura interna
(fizica)
Logic
Conceptual
Fizic
structura intern este dedus din cea extern conform unor tehnici i
metode de alocare pe suport fizic;
preurilor
aferente
componentelor
10
pentru
viziunea
11
12
****************************************************************************************
Obiectivele capitolului
Proiectarea i administrarea sistemelor de baze de date reprezint o sarcin
dificil i important n cadrul ciclului de via al unui sistem informatic care
are drept scop gestionarea i utilizarea unui anume volum de date stocate
prin intermediul acestora. n acest context, capitolul II Proiectarea i
administrarea unei baze de date urmrete atingerea urmtoarelor
obiective:
****************************************************************************************
n prezent observm c avalana produselor software o depete net
pe cea a componentelor hardware. ns, din pcate, dac privim evoluia n
timp a dezvoltrii sistemelor software constatm c nu este impresionant. n
ultimile decade am observat o expansiune a aplicaiilor software, de la cele
mici i relativ simple i care presupuneau cteva linii de cod, pn la cele
mari, destul de complexe i care presupuneau scrierea a milioane i milioane
de linii de cod. ns, n mod normal, aceste aplicaii necesitau i o ntreinere
constant, care urmrea n primul rnd corectarea erorilor detectate,
mbuntirea funcionalitii prin implementarea altor cerine care veneau din
partea utilizatorului. Totodat, aceast ameliorare avea n vedere i
adaptarea acestor aplicaii la platforme multiple, astfel nct, indiferent de
locul n care rula aplicaia, funcionalitatea ei s nu fie afectat.
Toate aceste aspecte specifice ntreinerii au condus la un consum tot
mai nsemnat de resurse, iar rezultatul nu a ntrziat s apar: multe proiecte
importante se aflau n ntrziere, bugetul alocat lor devenea constant
insuficient, ntreinerea se face tot mai greu, iar performanele ntrziau s
apar (cam 80-90% din sisteme nu-i atingeau scopul). Practic, aceast
situaie a condus la ceea ce se numea la vremea respectiv criza de
software. Printre principalele motive care au stat la baza acestei crize putem
aminti: lipsa specificaiilor complete referitoare la cerine, a unei metodologii
adecvate de realizare, dar i proasta partiionare a proiectrii n componente
uor de manevrat. Astfel, ca o soluie care s permit ieirea din criz i
Baze de date aplicate n economie
13
14
Planificarea
bazei de date
Delimitarea granitelor
sistemului
Colectarea si
analiza cerintelor
Proiectarea
bazei de date
Proiectarea conceptuala
Alegerea SGBD-ului
Proiectarea logica
Proiectarea aplicatiei
Proiectarea fizica
Prototipizarea
Implementarea
Testarea
ntretinere operationala
16
17
Proiectarea fizic
Proiectarea fizic a bazelor de date este a treia faz din procesul de
proiectare a unei baze de date, n care proiectantul stabilete cum va fi ea
implementat. Aa cum am vazut deja, faza precedent presupunea
realizarea unei structuri logice, cu alte cuvinte se referea la definirea relaiilor,
atributelor i legturilor dintre ele. Cu toate c aceast structur este
independent de SGBD-ul ales, ea se realizeaz conform unui model de
date, aa cum este cel relaional. n realizarea proiectrii fizice, trebuie iniial
identificat sistemul de baze de date avut n vedere. Prin urmare, proiectarea
fizic este croit dup modelul unui anumit SGBD. ntre proiectarea fizic i
cea logic exist o legtur, deoarece pe parcursul proiectrii fizice sunt
luate decizii referitoare la mbuntirea performanelor, care pot ns afecta
structura modelului logic de date.
n cele mai multe situaii, obiectivul principal al proiectrii fizice este de
a descrie cum se intenioneaz realizarea implementrii fizice a proiectului
logic al unei baze de date. Astfel, n cazul modelului relaional, aceasta
presupune:
Proiectarea tranzaciilor
n sens larg, putem defini o tranzacie ca o aciune sau o serie de
aciuni efectuate de utilizator sau de un program de aplicaie, care acceseaz
sau actualizeaz o baz de date. De asemenea, n [Georgescu, Georgescu,
2005, p.71] tranzacia este definit ca unitatea logic de prelucrare asupra
unei baze de date care include setul complet de operaii elementare ce
trebuie executat n vederea realizrii unei tranziii, pentru asigurarea
consistenei i siguranei bazei de date. Aceeai autori consider c o
tranziie se refer la trecerea de la o realizare la alta a unei baze de date i
poate fi produs de modificarea coninutului unei tabele a bazei de date, de
modificarea structurii acesteia, de adugarea unei noi tabele, etc.
Tranzaciile reprezint evenimente din lumea real, cum ar fi
adugarea unui nou angajat, nregistrarea unui nou client, nregistrarea unei
note obinute de un student la o disciplin, etc. Aceste tranzacii trebuie
aplicate bazei de date, pentru a garanta c datele coninute n aceasta
rmn la curent cu situaia din lumea real, dar i pentru a susine nevoile
informaionale ale utilizatorilor.
Baze de date aplicate n economie
19
20
21
22
23
****************************************************************************************
Obiectivele capitolului
Sistemul de gestiune a bazelor de date constituie n prezent un cadru de
baz al sistemelor informaionale i a modificat fundamental modul de
operare al unei organizaii. Astfel, n cadrul capitolului trei, am definit sistemul
de gestiune a bazelor de date, am descris evoluia n timp a acestora i am
prezentat principalele faciliti pe care le ofer. Totodat, am tratat
componentele unui sistem de gestiune a bazelor de date, funciile lui, precum
i principalele avantaje i dezavantaje pe care le aduc introducerea n
practic a acestora.
****************************************************************************************
n sens larg putem defini sistemul de gestiune a bazelor de date
(SGBD) ca un sistem de programe care permite utilizatorilor definirea,
generarea i ntreinerea unei baze de date, precum i accesul controlat la
aceasta. n [Velicanu et al., 2003, p.94] SGBD-ul este definit ca un ansamblu
complex de programe care asigur interfaa ntre o baz de date i utilizatorii
acesteia. Totodat, autorii consider SGBD-ul o component software a unui
sistem de baze de date care este capabil s interacioneze cu toate celelalte
componente ale acestuia, asigurnd legtura i independena ntre
elementele sistemului.
Un SGBD ofer utilizatorului posibilitatea de a accesa datele prin
intermediul unui limbaj de nivel nalt, apropiat de modul obinuit de exprimare,
pentru a obine informaii, utilizatorul fcnd abstracie de mijloacele i
metodele folosite pentru alegerea datelor implicate i a modului de memorare
a lor. SGBD-ul este practic o interfa ntre utilizatori i sistemul de operare.
Termenul de baz de date se va referi la datele de prelucrat, la modul
de organizare a acestora pe suportul fizic de memorare, iar termenul de
gestiune va semnifica totalitatea operaiilor ce se aplic asupra datelor din
baza de date [Trandafir et al., 2007, p.10].
25
26
12
13
27
procedurale
neprocedurale
29
31
Baza de date distribuit reprezint un set de baze de date aflate pe mai multe calculatoare
i care este vzut de ctre aplicaie ca fiind o singur baz de date (aflat pe un singur
calculator) adic baza de date vzut de ctre aplicaie este fragmentat i mprit pe
mai multe calculatoare din reea. O baz de date se spune c este distribuit dac diferitele
componente ale acesteia sunt memorate n staiile i/sau serverul reelei.
33
15
34
editoare de cod;
un sistem de
utilizatorului.
asisten
on-line
pentru
autodocumentarea
16
35
Funciile SGBD-ului
n [Velicanu et al., 2003, p.104-107] se arat c ndeplinirea tuturor
obiectivelor unui SGBD se realizeaz prin intermediul unor componente care
permit efectuarea unor operaii specifice. n funcie de natura lor, dar i de
scopul urmrit, operaiile pot fi grupate pe activiti. Activitile accept i ele
o grupare pe funcii astfel nct, una sau mai multe activiti, relativ omogene,
vor realiza o funcie anume. innd cont de complexitatea unui SGBD, de
facilitile pe care le pune la dispoziie, de limbajele utilizate, precum i de
modul de implementare al modelului de date, gruparea activitilor pe funcii
are un anumit caracter relativ.
Plecnd de la modelul de date pe care l implementeaz, SGBD-urile
se caracterizeaz printr-un numr de particulariti identificate prin operaii i
activiti specifice. n pofida acestor particulariti, exist cteva funcii
general valabile pentru toate tipurile de SGBD; acestea sunt funcii
importante, pe care un sistem software, dac nu le are n totalitate, nu poate
fi considerat SGBD. Astfel, principalele funcii pe care le putem atribui unui
SGBD sunt: descrierea datelor, manipularea datelor, utilizarea i
administrarea bazei de date.
Descrierea datelor
Prin intermediul funciei de descriere a datelor, fiecare SGBD permite
definirea unei structuri a bazei de date cu ajutorul limbajului de definire a
datelor (LDD). Definirea datelor poate fi realizat la nivel conceptual, logic i
fizic. Se descriu atributele din cadrul structurii bazei de date, legturile dintre
entitile acesteia sau dintre atributele aceleiai entiti, se definesc criteriile
de validare a datelor (dac este cazul), metodele care asigur accesarea
datelor, precum i aspectele care se refer la asigurarea integritii datelor.
Concretizarea acestei funcii este schema bazei de date, memorat n cod
intern. Memorarea se face ntr-un fiier, ceea ce permite afiarea i
actualizarea structurii bazei de date, n orice moment de timp.
Aceast funcie a fost mult automatizat n timp, limbajul de descriere
a datelor beneficiind n prezent de puine comenzi. Acest limbaj este specific
fiecrui SGBD, dar el mereu realizeaz descrierea lor conform elementelor
modelului de date pe care l implementeaz SGBD-ul respectiv. Astfel se
realizeaz definirea i descrierea entitilor i a caracteristicilor lor, definirea
legturilor dintre obiectele identificate (asocierile) i a regulilor de integritate
specifice modelului de date.
Manipularea datelor
Funcia de manipulare a datelor este cea mai complex i realizeaz
actualizarea i regsirea datelor din baza de date, cu ajutorul limbajului de
manipulare a datelor17.
17
36
37
ferestre de lucru;
18
Instrumentele CASE (Computer Aided Software Engineering) sunt aplicaii informatice, formate din
mai multe componente, care ajut la realizarea unui proiect software, n anumite etape (sau n toate
etapele) din ciclul de via al unei aplicaii. Obiectivul principal al instrumentelor CASE const n
punerea n practic a produselorprogram de proiectare i realizarea softwarelui cu ajutorul
calculatorului. Instrumentele oferite de CASE sunt utilizabile din faza de definire a cerinelor pn la
ntreinerea fizic a produsului informatic [Oprea, 1999, p.123].
38
39
prin
intermediul
limbajului
de
40
41
42
****************************************************************************************
Obiectivele capitolului
Principalul obiectiv al capitolului IV este acela de a oferi o viziune general
asupra relaionrii datelor dintr-o baz de date. Astfel, n acest capitol am
urmrit:
prezentarea regulilor lui Codd pe care se bazeaz ntreaga abordare
relaional;
identificarea
relaional;
prezentarea
fundamentelor
specifice
modelului
****************************************************************************************
Aa cum reiese din literaura de specialitate, au existat n timp mai
multe modele de reprezentare a informaiilor la nivel logic i de operare:
reea;
ierarhic;
relaional.
n cadrul acestui capitol vom analiza detaliat cel mai utilizat model de
reprezentare, utilizat n prezent pe scar larg, i anume modelul relaional.
43
44
45
cnp
nr_matr nume pren facult spec )
1701212120139
1234
Popa
Dan FSE
IE
2731210176143
1987
Darie Alina FD
AP
1801009129145
4432
Mihnea Ion
FSE
FB
candidat;
primar;
strin.
cnp
1701212120139
2731210176143
1801009129145
nr_matr
1234
1987
4432
nume
Popa
Darie
Popa
pren
Dan
Dan
Ion
facult
FSE
FD
FSE
spec )
IE
AP
IE
47
cnp
1701212120139
2731210176143
2731210176143
nr_matr
1234
1987
5634
nume
Popa
Darie
Darie
pren
Dan
Dan
Dan
facult
FSE
FD
FSE
spec )
IE
AP
FB
Cnp
1701212120139
?
nr_matr
1234
1234
nume
Popa
?
pren
Dan
?
facult
FSE
?
spec )
IE
?
48
cnp
1701212120139
1701212120139
nr_matr
1234
1234
nume
Popa
Popa
pren
Dan
Dan
facult
FSE
FSE
spec )
IE
IE
nr_matr;
cnp+facult+spec.
Dintre cele dou chei candidat, vom alege cheia primar ca fiind
nr_matr deoarece are mai puine atribute dect cealalt cheie, ceea ce
nseamn c, n final vom avea:
19
Mecanismul de identificare corect i complet a cheilor unei relaii se va realiza numai dup
parcurgerea i nelegerea procesului de normalizare a unei baze de date relaionale (la pagina 18 au
fost prezentate succint cteva aspecte de baz specifice normalizrii). Pentru cei interesai s tie mai
multe despre procesul de normalizare i postnormalizare, recomandm cartea profesorului M. Fotache:
Proiectarea bazelor de date: Normalizare i postnormalizare. Implementri SQL i Oracle.
49
50
Legitimaie
( cnp
nume
pren localitate )
1701212120139
2711010120121
1721209145123
Popa
Darie
Preda
Dan
Alina
Marin
( nr_leg
valabilitate )
12121
23456
187654
2
2
3
Galai
Brila
Galai
51
nume
pren
1701212120139
2711010120121
1721209145123
Popa
Darie
Preda
Dan
Alina
Marin
( nr_leg
valabilitate
cnp )
12121
23456
187654
2
2
3
2711010120121
1701212120139
1721209145123
Client
Legitimaie
localitate nr_leg )
Galai
Brila
Galai
23456
12121
187654
Dup migrarea cheii primare sub forma cheii strine, putem spune c
am realizat legtura ntre relaiile asociate, astfel nct s putem spune
despre un client ce numr de legitimaie are, sau plecnd de la numrul
legitimaiei, s putem identifica fr ambiguitate care este deintorul
acesteia.
( nr_matr
cnp
nume
pren )
1111
2222
3333
1701212120139
2711010120121
1721209145123
Popa
Darie
Preda
Dan
Alina
Marin
spec
form_nv )
CIG
FB
FB
ZI
ZI
IFR
Specializare ( cod_spec
61
51
52
( nr_matr
cnp
nume
pren cod_spec )
1111
2222
3333
1701212120139
2711010120121
1721209145123
Popa
Darie
Preda
Dan
Alina
Marin
spec
form_nv )
CIG
FB
FB
ZI
ZI
IFR
Specializare ( cod_spec
61
51
52
61
52
61
53
Produs
val_fact data_fact )
( serie_fact
nr_fact
DX
VR
DF
1111
2222
3333
100
200
300
10.10.2008
10.10.2008
12.10.2008
( cod_produs
den_prod
um
stoc )
11
22
33
Telefon Nokia
TV Samsung
Laptop Asus
Buc
Buc
Buc
0
2
2
1111
1111
3333
11
33
11
10
15
5
( nr_matr
nume
pren )
111
222
333
Preda
Darie
Ionescu
Marin
Alina
Ctlin
Facultate
Specializare
( facult
profil )
tiine Economice
Drept
Economic
Administrativ
( cod_spec
Spec
form_nv
751
752
662
FB
FB
AP
ZI
IFR
IFR
facult
cod_spec )
tiine Economice
Drept
tiine Economice
751
662
751
55
nume
Preda
Darie
Ionescu
pren )
Marin
Alina
Ctlin
pren )
Stud2 ( nr_matr
nume
444
Manea
Oana
333
Ionescu Ctlin
555
Dragomir Alina
Stud1 Stud2 =
20
pren )
( nr_matr
Nume
111
Preda
Marin
222
Darie
Alina
333
Ionescu Ctlin
444
Manea
Oana
555
Dragomir Alina
56
( nr_matr
111
222
333
pren )
Marin
Alina
Ctlin
nume
Preda
Darie
Ionescu
tip_disc )
Disciplin ( cod_disc
denumire
SE1
Baze de date
curs
SE2
Baze de date laborator
SE3
Contabilitate Seminar
Aa cum se observ, aritatea ambelor relaii este 3, ceea ce nseamn
c dup realizarea produsului cartezian asupra celor dou relaii, aritatea va
fi 6 (relaia rezultat n urma operaiei Student Disciplin va avea ase
atribute), aa cum se observ mai jos:
Student Disciplin
21
22
( nr_matr
nume
pren
cod_disc
denumire
tip_disc )
111
111
111
222
222
222
333
333
333
Preda
Preda
Preda
Darie
Darie
Darie
Ionescu
Ionescu
Ionescu
Marin
Marin
Marin
Alina
Alina
Alina
Ctlin
Ctlin
Ctlin
SE1
SE2
SE3
SE1
SE2
SE3
SE1
SE2
SE3
Informatic
Informatic
Contabilitate
Informatic
Informatic
Contabilitate
Informatic
Informatic
Contabilitate
curs
laborator
seminar
curs
laborator
seminar
curs
laborator
seminar
57
Popa Dan
Darie Alina
Preda Marin
( nr_matr nume
2222
3333
pren
Darie Alina
Preda Marin
media )
8.00
9.00
Stud1 ( nr_matr
111
222
333
nume
Preda
Darie
Ionescu
pren )
Marin
Alina
Ctlin
pren )
Stud2 ( nr_matr
nume
444
Manea
Oana
333
Ionescu Ctlin
555
Dragomir Alina
Stud1 Stud2 =
pren )
( nr_matr nume
333
Ionescu Ctlin
aritate a+b, cu schema dat de reuniunea atributelor celor dou relaii i care
va conine toate tuplurile aferente produsului cartezian dintre A i B care
respect condiia menionat. Cu alte cuvinte, uniunea a dou relaii se
realizeaz n doi pai:
a. realizarea produsului cartezian dintre relaii;
b. selecia tuplurilor conform condiiei logice.
n cazul n care condiia c este de egalitate, atunci operaia se
numete echiuniune. n plus, dac vom realiza o proiecie dup atributele
primei operaii, operaia se numete semi-uniune-stnga, iar dac se face
dup atributele relaiei din dreapta (a doua relaie) se va numi semi-uniunedreapta. n continuare vom exemplifica uniunea i echiuniunea.
23
24
59
Aprov
( s_fact
DX
DX
JZ
cod_prod cant_a )
P1
20
P2
10
P3
15
nr_fact
1122
1122
2233
cant _ a <=
cant _ c
DX
DX
DX
DX
JZ
60
1122
1122
1122
1122
2233
P1
P2
P2
P2
P3
20
10
10
10
15
C1
C1
C2
C3
C1
20
20
12
10
20
( s_fact
nr_fact
cod_prod
cant_a
cod_cmd
cant_c )
DX
DX
1122
1122
P1
P2
20
10
C1
C3
20
10
cant _ a =
cant _ c
Student
Disc
( nr_matr
111
222
333
nume
Popa
Darie
Moga
pren )
Dan
Alin
Dana
111
111
111
222
222
222
333
333
333
Popa
Popa
Popa
Darie
Darie
Darie
Moga
Moga
Moga
61
nume
Darie
Moga
Moga
pren
Alin
Dana
Dana
den_disc
Birotic
Finane
Birotic
d.nr_matr
222
333
333
not )
10
9
8
Darie
Moga
Moga
pren
Alin
Dana
Dana
den_disc
Birotic
Finane
Birotic
not )
10
9
8
Exemplul 4.26
Student | Disc = (nr_matr
222
333
333
Probleme rezolvate
1. Mai multe societi comercializeaz pe baz de factur diferite
produse. Folosind abordarea relaionl, s se pun n eviden
emitentul i coninutul fiecrei facturi.
Pentru a soluiona problema propus anterior, va trebui s parcurgem
urmtoarele etape:
a) identificarea atributelor care reies din contextul problemei;
b) definirea relaiilor pe baza atributelor identificate la punctul a);
c) crearea legturilor dintre relaiile identificate la punctul b).
a) Pentru a avea garania unei rezolvri corecte a unei probleme, va
trebui ca nainte de a identifica atributele s rspundem la urmtoarea
ntrebare: Pentru problema dat, avem nevoie de atribute pentru cine, sau
pentru ce? Astfel, pentru problema noastr, dac ncercm s rspundem la
aceast ntrebare, vom constata c va trebui s identificm atribute despre
societi, produse i facturi. Cu alte cuvinte, aceste colecii pe care le-am
identificat acum vor reprezenta relaiile pe care le vom defini la punctul b).
Dup ce am identificat aceste colecii, va trebui s descriem minim
dou atribute care caracterizeaz fiecare din aceste colecii de date. Este
important ca atunci cnd identificm atributele, s avem n vedere c fiecare
relaie are n mod obligatoriu o cheie primar, ceea ce nseamn c va trebui
63
nr numrul facturii;
25
Aceast regul este ntlnit n literatur sub numele de regula entitii i menioneaz
faptul c toate atributele care formeaz cheia primar trebuie s primeasc valori.
64
den_s )
( cui
R111111 Rione SRL
R222222 Selena SRL
R333333 Select SRL
Produs ( cod_prod
um cant )
den_prod
11
Telefon Nokia
B
2
22
Telefon Samsung B
3
33
Laptop Dell
B
0
data )
Factur ( serie
val
nr
DX
1111 2000 10.11.2008
DX
2222 8500 10.11.2008
JW
1111 6500 11.11.2008
c) La acest pas va trebui s soluionm dou cerine. Prima se refer la
punerea n eviden a emitentului fiecrei facturi. Pentru aceasta, vom asocia
relaiile Societate i Factur. Aa cum am menionat n subcapitolul n care
am descris legturile dintre relaii, pentru a identifica tipul legturii va trebui
s vedem rolul fiecrei relaii n cadrul modelului: fiu sau printe. Analiznd
cele dou relaii, observm c Societate este relaie printe deoarece fiecare
societate poate primi una sau mai multe facturi, n timp ce Factur este
relaie fiu deoarece o factur nu poate fi emis dect unei singure societi
(reamintim c o relaie este considerat fiu atunci cnd unui tuplu din acea
relaie i va corespunde un singur tuplu n relaia cu care s-a asociat i este
printe atunci cnd i vor corespunde mai multe tupluri).
Astfel, legtura este de tipul 1-n (unu la mai muli), ceea ce nseamn
c atributele care formeaz cheia primar n relaia printe vor migra sub
forma cheii strine n relaia fiu: atributul cui din relaia Societate va migra
sub forma cheii strine n relaia Factur.
A doua cerin este cea prin care ni se cere s punem n eviden
coninutul fiecrei facturi. n acest caz, vom asocia relaiile Factur i Produs.
Aa cum am procedat anterior, i n acest caz va trebui s identificm iniial
tipul relaiilor pentru a determina tipul legturii. Astfel, legtura este de tipul
n-n (mai muli la mai muli) deoarece ambele relaii sunt printe: fiecare
factur poate conine unul sau mai multe produse, n timp ce un produs
poate fi aprovizionat prin intermediul uneia sau a mai multor facturi. Conform
regulii menionate, legtura se va realiza prin generarea unei noi relaii care
va avea cheia primar format din cheile primare ale celor dou relaii
asociate. De asemenea, aceast nou relaie va include i atributul
cant_aprov care ne va permite s punem n eviden cantitatea aprovizionat
dintr-un produs pe o factur.
65
den_s )
( cui
R111111 Rione SRL
R222222 Selena SRL
R333333 Select SRL
Produs ( cod_prod
um cant )
den_prod
11
Telefon Nokia
B
2
22
Telefon Samsung B
3
33
Laptop Dell
B
0
Factur ( serie
val
cui )
nr
data
DX
1111 2000 10.11.2008 R222222
DX
2222 8500 10.11.2008 R333333
JW
1111 6500 11.11.2008 R222222
cod_prod cant_aprov )
Coninut_factur ( serie
nr
DX
1111
11
10
DX
1111
33
15
JW
1111
11
20
Astfel, prin intermediul atributului cheie strin cui din relaia Factur
putem s punem n eviden care este emitentul fiecrei facturi (ce societate
a emis o factur). Spre exemplu, dac dorim s aflm cine a emis factura DX
2222, vom identifica n cadrul relaiei Factur care este tuplul care are ca
realizare a atributelor serie i nr valorile DX (pentru serie), respectiv 2222
(pentru nr). Apoi, dup identificarea tuplului, vom prelua valoarea cheii
strine (n cazul nostru, R333333) i vom cuta aceast valoare pe domeniul
de valori aferent atributului care este cheie primar n relaia din care a
migrat. Pentru exemplul nostru, vom merge n relaia Societate i pe
domeniul cheii primare vom cuta acel tuplu pentru care valoarea atributului
cui este R333333. n acest fel vom constata c factura DX 2222 este emis
de Select SRL.
Coninutul fiecrei facturi este evideniat prin intermediul relaiei
Coninut_factur. n acest fel constatm c produsul Telefon Nokia este
achiziionat prin intermediul a dou facturi (DX 1111 i JW 1111), iar
cantitatea aprovizionat este de 10, respectiv 20 uniti. Totodat, prin
intermediul acestei noi relaii am pus n eviden faptul c o factur poate
conine mai multe produse (factura cu seria i numrul DX 1111 conine
produsele cu codurile 11 i 33), dar i faptul c un produs se poate gsi pe
mai multe facturi (produsul cu codul 11 se gsete att pe factura cu seria i
numrul DX 1111 ct i pe JW 1111), ceea ce argumenteaz legtura de
tipul mai muli la mai muli.
De asemenea, n cadrul relaiei Factur se argumenteaz i regula
entitii. Astfel, putem observa c n cazul n care unul din cele dou atribute
care formeaz cheia primar nu are valoare, atunci exist posibilitatea ca pe
66
Baze de date aplicate n economie
67
Specializare ( cod_spec
76
75
70
den_spec )
Contabilitate i Informatic de Gestiune
Finane Bnci
Informatic Economic
tip_disc )
Disciplin ( cod_disc
den_disc
D11
Baze de date
Curs
D12
Baze de date
Laborator
D21
Contabilitate financiar Seminar
Studiu ( nr_matr cod_disc semestru )
111
D11
3
111
D12
3
333
D21
2
68
69
70
71
72
Bibliografie
Bibliografie
1. [Bsc, 1997] Bsc, O., Baze de date, Editura All, Bucureti, 1997.
2. [Connoly et al., 2002] Connoly, T., Begg, C., Strachan, A., Database
Systems A practical Approach to Design, Implementation and
Management, Second Edition, Addison Wesley Limited, 2002.
3. [Date, 1994] Date, J., An introduction to Database Systems, ed. Addison
Wesley, 1994.
4. [Date, 2004] Date, J., An introduction to database systems, ediia a VIII-a,
Pearson Addison Wesley, 2004.
5. [Diaz, 2000] Diaz, O., Advanced database technology and design, ed.
Piattini, 2000.
6. [Fotache, 2005] Fotache, M., Proiectarea bazelor de date. Normalizare i
postnormalizare. Implementri SQL i Oracle, Editura Polirom, Iai, 2005.
7. [Garsia-Molina et al., 2002] Garcia-Molina, H., Ullman, H., Widom, J.,
Database Systems. The complete Book, Prentice Hall, Upper Saddle
Riner, 2002.
8. [Georgescu, Georgescu, 2005] Georgescu, C., Georgescu, M., Baze de
date relaionale i multidimensionale, Editura Didactic i Pedagogic
R.A., Bucureti, 2005.
9. [Gerald, 1999] Gerald, P., Database Management Systems, ed. Mc Graw
Hill, 1999.
10. [Harrington, 2002] Harrington, J.L., Relational Database Design Clearly
Explained, ediia a II-a, Morgan Kaufman, Amsterdam, 2002.
11. [Hoffer et al., 2002] Hoffer, J.A., Prescott, M.B., McFadden, F.R., Modern
Database Management, Prentice-Hall, 2002.
12. [Lungu, Bodea, 1995] Lungu, I., Bodea, C., Baze de date organizare,
proiectare i implementare, Editura All, Bucureti, 1995.
13. [Popa et al., 1994] Popa, Ghe., Stanciu, A., Ivancenco, V., Mare, V.,
SGBD, Editura All, Bucureti, 1994.
14. [Popescu, 2001] Popescu, I., Modelarea bazelor de date, Editura Tehnic,
Bucureti, 2001.
15. [Ramakrishnan, Gehrke, 2000] Ramakrishnan, R., Gehrke, J., Database
Management Systems, ed. Mc Graw Hill, 2000.
16. [Riccardo, 2001] Riccardo, G., Principles of Database Systems with
Internet and Java Application, ed. Addison Wesley, 2001.
17. [Riordan, 1999] Riordan, R., Designing Relational Database Systems,
Microsoft Press, 1999.
18. [Silbershartz, Korth, 1997] Silbershartz, A., Korth, H., Database system
concepts, ed. Addison Wesley, 1997.
19. [Simsion, 2001] Simsion, G., Data Modeling Essentials. Analysis, Design
and Innovation, ediia a II-a, Addison Wesley, 2001.
73
Bibliografie
20. [Trandafir et al., 2007] Trandafir, R., Nistorescu, M., Mierlu-Mazilu, I.,
Baze de date relaionale, Bucureti, 2007.
21. [Velicanu et al., 2000] Velicanu, M., Bodea, C., Lungu, I., Ioni, I.,
Bdescu, G., Sisteme de gestiune a bazelor de date, Editura Petrion,
Bucureti, 2000.
22. [Velicanu et al., 2003] Velicanu, M., Lungu, I., Muntean, M., Ionescu, S.,
Sisteme de baze de date teorie i practic, Editura Petrion, Bucureti,
2003.
23. http://vega.unitbv.ro/~cataron/Courses/BD/BD_Cap_2.pdf.
74