Sunteți pe pagina 1din 28

SISTEME INFORMATICE SI

GESTIUNEA BAZELOR DE DATE


CURS
Tudor Nicoleta Liviana
- 2007 -
1
CUPRINS
1. Sisteme de gestiune a bazelor de date ... 3
- Funcii.
- !r"itectur#.
- Ti$uri de S%&'-uri.
2. (odelul relaional al datelor . )
- *eguli de integritate.
- !lgebra relaional#.
- *egulile lui +odd.
- Normalizare.
3. Limba,ul S-L - crearea tabelelor in .isual Fo/0ro . 1)
- Limba,ul S-L 1 $rezentare generala2 ti$uri de date
- +rearea tabelelor
- !daugarea restrictiilor
- 3rori care a$ar in cazul 4olosirii indecsilor
- +rearea com$let# a tabelelor
5. Inserarea, modifcarea 6i 6tergerea inregistrarilor in
limbajul SQL ..
2)
7. Operatorii algebrei relationale - comanda SELECT .

37
8. uncii agregat. !ruparea tuplurilor
..
52
- unctii agregat
- Crearea grupurilor de tupluri - clau"ele !roup
b#, $a%ing
- Erori generate de &unctii de grup
7. Subinterog#ri
.
71
). Cursoare. Tabele %irtuale
..
77
- Secvenializarea interogarilor - cursoare
- Tabele %irtuale '%ie()
9. *roceduri stocate 6i declan6atoare
.
80
10. Sisteme in&ormatice. *roiectarea unei aplicatii %i"uale. 88
+ibliografe 78
2
+a$itolul 1
Sisteme de gestiune a bazelor de date.
Funcii. Arhitectur. Tiuri de S!"#$uri
:n sistem de gestiune a bazelor de date ;S%&'< este un ansamblu de
$rograme ce $ermit utilizatorilor sa interactioneze cu o baza de date= in vederea crearii=
actualizarii si interogarii acesteia>1?. 0rivit dintr-o alta $ers$ectiva= un S%&' $oate 4i
considerat un $rodus so4t@are>2? care asigura interactiunea cu o baza de date= $ermitand
de4inirea= consultarea si actualizarea datelor dintr-o baza de date.
Obiectivele unui SGBD sunt:
4urnizarea unui mediu e4icient= ada$tat utilizatorilor care doresc sa
consulte sau sa actualizeze in4ormatiile continute intr-o baza de date
asigura si su$ervizeazaA
o introducerea de in4ormatii in baza de date
o actualizarea si e/tragerea datelor din baza
o autorizarea si controlul accesului la date
o $astrarea inde$endentei dintre structura bazei de date si $rograme.
Arhitectur siste!el"r #e $estiune b%el"r #e #te
:n S%&' $rezinta= in general= urmatoarele module>3?A
Gestionarul fisierelor= care aloca s$atiu de memorie $e disc si
gestioneaza structurile 4izice de date care servesc la re$rezentarea in4ormatiei.
Gestionarul bazei de date este un modul de $rograme ce realizeaza
inter4ata dintre datele interne ;de $e disc< continute in baza si $rogramele ;sau comenzile<
de consultare si actualizare. 3l traduce instructiunile '(L ;limba,ul de mani$ulare a
datelor< in instructiuni-sistem= la nivel elementar= 4iind res$onsabil de buna des4asurare a
o$eratiilor de citire B scriere a datelor din B in baza de date.
Procesorul de consultare traduce instructiunile limaba,ului de
consulatare in instructiuni elementare= CinteligibileD $entru gestionarul bazei de date. 3l
o$timizeaza consultarea= $entru obtinerea rezultatelor intr-un tim$ cat mai scurt.
Modulele DML ;'ata (ani$ulation Language< realizeaza conversia
instructiunilor limba,ului de mani$ulare a datelor 4olosite intr-un $rogram= in $roceduri
curente ale limba,ului-gazda= interactionand cu $rocesorul de consultare in vederea
$roducerii secventelor de cod adecvate.
3
Modulele DDL ;'ata 'e4inition Language< traduc ;$rin com$ilare sau
inter$retare< si e/ecuta instructiunile ''L= obtinandu-se ansamblul de tabele ce
re$rezinta metadatele stocate in dictionarul de date.
&rinci'lele (unctii le unui SGBD sunt:
descrierea ansamblului de date la nivelurile 4izic si conce$tual
crearea ;initializarea< si e/$loatarea ;consulatarea si actualizarea<
bazei de date
controlul integritatii bazei de date
con4identialitatea in4ormatiilor continute in baza
accesul simultan al mai multor utilizatori la in4ormatii
securitatea in 4unctionare
4urnizarea unui set de comenzi si insructiuni necesare atit utilizatorilor $entru
consultarea bazei de date= $rin limba,ul de mani$ulare= cat si $rogramatorilor
revizia si restructurarea bazei de date
monitorizarea $er4ormantelor
:n S%&' se caracterizeaza $rinA
neredundanta datelor ;administrarea coerenta a datelor trebuie sa asigure nedu$licarea
4izica a datelor<2
$arta,area datelor ;a$licatiile sa $arta,eze simultan datele din baza de date<2
securitatea si con4identialitatea datelor ;datele trebuie $rote,ate de accesul neautorizat
sau rau intentionat<.
Ti'uri #e SGBD)uri
1. Modelele retea si ierarhice caracteristice $erioadei 1980-1970
4oloseau o organizare a datelor la nivel de articol $rin legaturi ierar"ice;arbore< sau de ti$
gra4.
E(S ;En4ormation (anagement SFstem<= conce$ut de E&(= a 4ost $rimul S%&'
ierar"ic= conce$ut initial $entru $rocesarea datelor in industria aeros$atiala ;198)<.
.ersiunea curenta a acestuia= E(SB.S ;En4ormation (anagement SFstemB.irtual
Storage<= este im$lementata $e calculatoare E&( si 4oloseste limba,ul 'LB1 ;'ata
Language Gne<. Sistemul E(S nu $oate re$rezenta relatia de ti$ul nAm ;Cmulti la multiD<.
Ende$endenta 4izica redusa a S%&'-urilor ierar"ice com$lica administrarea si
mani$ularea datelor. Limba,ul de mani$ulare a datelor im$unea $rogramatorului sa
s$eci4ice drumurile de acces la date.
E'(S ;Entegrated 'atabase (anagement SFstem< este un S%&' retea $rodus de
4irma +ullinet So4t@are Enc. si 4unctioneaza $e calculatoarele E&(= sub sistemul de
o$erare 'GS. (odelele retea $rezinta o serie de dezavanta,e= $recum o$timizarea
manuala a sistemuluiA nu utilizeaza baze de date statistice si nu $ermit sortarea dinamica.
Totusi= S%&'-urile retea continua sa 4ie 4olosite datorita $er4ormantelor obtinute in
$relucrarea la nivel de inregistrari.
*e4eritor la modul de mani$ulare a datelor= modelele ierar"ic si retea erau
orientate $e 4isiere. 0entru a inlatura aceste limitari= a 4ost introdus modelul relational=
care este orientat $e multimi.
2. Modelul relational a a$arut du$a 1970 si a revolutionat lumea
bazelor de date $rin buna sa 4undamentare teoretica si usurinta cu care se $oate
5
re$rezenta un volum mare de date= devenind 4oarte $o$ular. ! 4ost conce$ut si dezvoltat
de 3.F. +odd= 4iind bazat $e teoria matematica a relatiilor. Foloseste structuri de date
sim$le= intuitive= caracterizan-du-se $rin ine/istenta $ointerilor vizibili $entru utilizator=
constrangeri de integritate= o multime de o$eratori a$licabili relatiilor= care $ermit
de4inirea= cautarea si reactualizarea datelor. (odelului relational ii este asociata teoria
normalizarii.
En 1978= $roiectul SFstemB* dezvoltat in +ali4ornia a constituit $unctul de $lecare
$entru realizarea unuia dintre cele mai cunoscute S%&'-uri= '&2. En 1979 a 4ost lansat
cu succes $rimul S%&' relational comercial= Gracle= care ocu$a un segment de $iata
4oarte mare. !st4el= Gracle +or$oration a devenit liderul $roduselor so4t@are dedicate
mediilor de lucru cu bazele de date.
Gdata cu marirea vitezei de acces si utilizarea limba,elor de generatia a E.-a
;Se-uel= S-L<= S%&'-urile relationale s-au im$us $e $iata bazelor de date.
Sistemele de gestiune a bazelor de date relationale ;S%&'*< de Ccategorie greaD
$recum Gracle= '&2= En4ormi/= (icroso4t S-L Server= asigura accesul simultan a mii de
utilizatori la aceeasi baza de date. 0iata acestui segment este rezervata sistemelor de
o$erare :ni/= Hindo@s NT= Hindo@s 2000 si Novell Net@are.
Fata de modelele ierar"ice si retea= modelul relational $rezinta cateva avanta,e=
$recumA
inde$endenta logica si 4izica
$une la dis$ozitia utilizatorilor limba,e ne-$rocedurale
o$timizeaza accesul la date
imbunatateste integritatea si con4identialitatea datelor= etc.
:n S%&' relational su$orta intr-o 4orma limitata cunostinte ;asertiuni generale si
abstracte asu$ra 4a$telor<= $rin constrangerile de integritate= iar restul trebuie integrate in
$rogramele de a$licatie= ceea ce genereaza $robleme datorita im$osibilitatii $arta,arii
cunostintelor intre utilizatori.
S-a observat ca modelul relational de baze de date nu $oate re$rezenta as$ecte
com$le/e ale realitatii ;documente incluzand date com$use= obiecte dinamice= imagini=
sunete= gra4uri= liste<. !st4el= cercetarile s-au indre$tat asu$ra modelului relational
orientat $e obiecte.
3. SGBD-urile relationale orientate pe obiecte 4olosesc obiecte
$entru re$rezentarea in4ormatiei. Gbiectul este un ti$ de data si nu in4ormatia e4ectiva
;instanta<. Ti$urile de date atomice $ermit stocarea datelor 4ara utilizarea unui s$atiu $e
disc su$limentar. Ensa crearea unui ti$ de date com$us conduce automat la asocierea unui
GE' ;Gb,ect E'enti4ier - identi4icatorul obiectului< 4iecarei instante de acest ti$ care
necesita s$atiu de stocare $e disc.
:n sistem de gestiune relational orientat obiect 4oloseste indecsi asu$ra
elementelor unei multimi= utili atat in interogari sim$le= cat si in o$eratii IGEN $entru
doua sau mai multe tabele intre care e/ista o relatie many-to-many (multi-la-multi).
'intre S%&'-urile relationale orientate obiect se remarca Gracle versiunile
Gracle ) si Gracle 9i= 0ostgreS-L= care 4olosesc ca limba, de interogare S-L.
Standard-ul S-L-3= a$arut in 1999 o4era $osibilitati $entru mosteniri multi$le=
$olimor4ism= inca$sulare= su$ort $entru sisteme bazate $e gestiunea cunostintelor=
$ermite declararea cam$urilor de ti$ LG& ;Large G&,ect<= care $ot satis4ace nevoile
multimedia tot mai accentuate. Ensa LG& nu re$rezinta un ti$ de date= deoarece nu $oate
4i 4olosit in clauza HJ3*3 a unei interogari si nu sunt $ermise o$eratii cu variabile sau
cam$uri declarate LG&.
7
Oracle Serer este cel mai utilizat sistem de gestiune de baze de date relationale
orientate $e obiecte. .ersiunile Gracle ) si Gracle 9i 4urnizeaza 4acilitati $recumA
Ti$uri de date de4inite de utilizator ;obiect si colectie<= ti$ de date $rede4init
*3F ;re4erinta de obiect<
Ti$uri $rede4inite $entru obiecte de dimensiuni mari ;LG&-large ob,ects=
&LG&= +LG&= N+LG&= &4ile<
.ederi obiect. G vedere obiect constituie o colectie de tabele normalizate=
$ermitand mani$ularea datelor ca $e niste obiecte.
0recom$ilatorii Gracle ;0roK+B+LL< $ermit 4olosirea ti$urilor de date de4inite de
utilizator in $rograme + si +LL. Gracle +all Enter4ace ;G+E< 4urnizeaza 4acilitati $entru
accesarea si mani$ularea obiectelor din Gracle ). Gb,ect TF$e Translator ;GTT<
genereaza automat declaratii in + $entru ti$uri de date obiect de4inite in Gracle ).
Post!res"# conce$ut in 19)7 la :niversitatea &erMeleF din +ali4ornia=
dezvoltat in 1998 si redenumit Post!reS$L= este de4init ca 4iind relational= e/tensibil= cu
orientare obiectuala. !cesta include elemente de limba, com$atibile ESG S-L= !NSE
S-LB)9= S-LB92 si !NSE S-LB9). 0ostgreS-L este construit con4orm unui model
clientBserver2 in 4iecare sesiune sunt im$licate trei $rocese :ni/ coo$eranteA $ostmaster
;$roces su$ervizor<= bacMend ;$roces server de baze de date< si 4rontend ;$roces cerand
cone/iune la bacMend<.
Enclude inter4ete de $rogramare $entru += +LL= 0erl7= 0J0 ;limba, de
scri$t $entru scrierea de $agini Heb generate dinamic<= driver I'&+ $entru $rogramatorii
Iava
G4era inter4ete gra4ice
Sunt su$ortate baze de date de mari dimensiuni ;$este 200%bFtes<= dar
$er4ormantele scad vizibil la baze mai mari de 7 %bFtes $e masini cu $rocesor $e 32 biti.
5. Sistemele de !estiune a bazelor de date inteli!ente= din anii
N)0= utilizau conce$te ale inteligentei arti4iciale. ! a$arut ast4el necesitatea utilizarii si
gestionarii unor volume mari de cunostinte.
SGBD-urile deductie $relucreaza baze de date inteligente si gestioneaza
cunostinte relativ la baze de date= care sunt= in general= relationale. :tilizand $rogramarea
logica= acestea $ermit deducerea de noi in4ormatii= $lecand de la in4ormatiile stocate in
baza de date. 3/ista $ac"ete so4t@are care $ermit inter4atarea bazelor de date relationale
cu sisteme e/$ert. 'e e/em$lu= N3O03*T G&I3+T Enter4aces re$rezinta un ansamblu
de inter4ete ale sistemelor e/$ert de ti$ N3O03*T G&I3+T cu S%&'-urile Gracle si
Engres. 0entru eliminarea nea,unsurilor centralizarii datelor= s-au dezvoltat $rototi$uri de
sisteme de date distribuite.
7. SGBD-urile distribuite utilizeaza calculatoare di4erite
interconectate $rintr-o retea de comunicatie si o4era 4le/ibilitate in descom$unerea
tranzactiilor in com$onente ce $ot 4i realizate local sau trans$ortate altor noduri.
S''-1 a 4ost $rimul S%&' distribuit si im$lementat in 1979 $e calculatoare
'3+-20. Statiile sunt conectate $rin reteaua !*0!N3T si utilizeaza ca S%&' local
'atacom$uter. S''-1 su$orta modelul relational.
Engres distribuit este realizat la :niversitatea din +ali4ornia. Se mai $ot cita ca
S%&'-uri distribuite e/istenteA *K= ''(= 0orel= Sirius-'elta= (ultibase= ''TS
;'istributed Testbed SFstem<= etc.
0rinci$alul avanta, al S%&'-urilor distribuite il constituie cresterea
$er4ormantelor sistemului $rin $arta,area si re$licarea datelor dar si e/istenta mai multor
8
$rocesoare. &azele de date distribuite $rezinta si o serie de dezavanta,e legate de
com$le/itatea $roceselor= di4icultatea realizarii controlului concurentei si al tranzactiilor.
8. Modelele semantice si functionale au $ermis cresterea
continutului semantic al datelor din baze de date. .alorile atributelor asociate entitatilor
se $ot obtine direct ;in modelul semantic< sau $rin intermediul unor 4unctii a$licabile
entitatilor ;in modelul 4unctional<.
7. Bazele de date multimedia imbina caracteristicile orientate $e
obiecte cu regulile deductive s$eci4ice inteligentei arti4iciale a$licate in4ormatiilor de ti$
multimedia ;te/te= obiecte gra4ice= imagini statice= video digitizat= secvente audio<.
). Sistemele de !estiune a bazelor de date orientate obiect
(SGBDOO)% a$arute du$a 1990= $ermit integrarea descrierii structurale si
com$ortamentale. !cestea 4urnizeaza $osibilitati su$erioare de deductie $rin 4olosirea
ierar"iilor de clase si a mostenirii. Sc"ema unei baze de date orientate obiect include
de4initiile structurale ;atribute si ti$uri< si com$ortamentale ;metode< ale obiectelor.
:n sistem de gestiune a bazelor de date orientate obiect realizeaza o modelare
su$erioara a in4ormatiei= $ermite 4olosirea obiectelor dinamice si asigura imbunatatirea
inter4etei cu utilizatorul. 0rin $osibilitatea integrarii multimediei= S%&'GG $ermit
crearea de ti$uri s$aiale de date $entru sisteme in4ormatice geogra4ice. 3/ista $osibilitati
de re$rezentare a "artilor si a locatiilor acestora care interactioneaza cu utilizatorul sau
$osibilitati de analiza a imaginilor= a sunetelor.
3/istenta unor categorii de $robleme $entru care solutia obiectuala este singura
acce$tabila a determinat crearea de S%&'-uri orientate obiect C$ureD= cum ar 4iA
%emStone= Gb,ectStore= Gntos= *aima= .ersant= etc.
Ob&ectStore este dis$onibil $entru $lat4ormele Hindo@s si :NEO. 'intre
4acilitatile sale se $ot amintiA
- !sigura controlul concurentei si a integritatii re4erentiale
- Enter4ata IavaA $ermite crearea de a$licatii Iava care sa stoc"eze si sa manevreze
obiectele intr-un S%&' multi-user de $er4ormanta si accesibilitate deosebite. !$licatiile
Iava $ot accesa obiecte native +LL e/istente in baza de date.
Sybase &uild (onumentum o4era utilizatorilor de calculatoare (acintos" si celor
bazate $e sistemul Hindo@s 4acilitati de lucru cu baze de date orientate $e obiect.
(ulti$rocesarea in retele distribuite este realizata numai din $unct de vedere PclientP.
&uild (onumentum detine un administrator care gestioneaza $rocese in multit"reading.
Situat in gama S%&'*-urilor= &uild (onumentum este considerat de s$ecialisti ca 4iind
un $rodus mai reusit decat $rodusele din aceeasi gama ale com$aniilor Gracle sau
En4ormi/. En cadrul sistemului SFbase SFstem 10= Server-ul SFbase S-L a 4ost $rimul
care a utilizat cod com$ilatB$arta,at atat $entru gestionarea bazelor de date locale cat si
$entru trimiterea de a$eluri de $roceduri *0+ la alte servere a4late la distanta.
(arii $roducatori de sisteme relationale au constientizat avanta,ele bazelor de
date orientate obiect si au dezvoltat noi versiuni de S%&'-uri relationale orientate obiect=
$recum Gracle )= Gracle 9i= Engres= SFbase.
:nele S%&'-uri orientate $e obiecte o4era su$ort $entru te"nologii desc"ise= cum
ar 4iA +G(= +G*&!= O(L= '!G= GL3'& sau !'G. Su$ortul o4erit nu este universal
$entru toate bazele de date obiect.
'omeniile in care sunt 4olosite cu succes &'GG sunt gestiunea retelelor sau a
in4ormatiilor= tranzactiile 4inanciare= sistemele geogra4ice= cartogra4ie digitala=
determinand o dezvoltare ra$ida a modelului orientat obiect.
7
S%&'-urile orientate obiect e/istente o4era 4unctionalitati si $er4ormante
su$erioare in administrarea datelor com$le/e si voluminoase. Limba,ele de interogare si
de mani$ulare ;e/tensii ale S-L< o4era acestora un $lus de rigoare. Totusi= te"nicile de
acces la obiecte sunt inca $er4ectibile deoarece tim$ii de rQs$uns sunt adesea
nesatis4acatori.
+a$itolul 2
M"#elul relti"nl l #tel"r
&re%entre $enerl
(odelul relational a 4ost conce$ut si dezvoltat de 3. F. +odd= 4iind un model
4ormal de organizare conce$tuala a datelor= destinat re$rezentarii datelor si legaturilor
dintre date= bazat $e teoria matematica a relatiilor.
'atele se $rezinta sub 4orma unor tabele ;relatii< in care liniile constituie
inregistrari= iar coloanele sunt atribute ce caracterizeaza aceste inregistrari. Grice
interogare ;sau consultare= e/tragere de date< este tot o relatie.
'in $unctul de vedere al mani$ularii datelor= modelul relational este orientat s$re
multimi. (odelul relational nu este orientat s$re sistemul de calcul= deci nu include
regulile= structurile si o$eratiile re4eritoare la im$lementarea 4izica a unui sistem de baze
de date.
(odelul relational a $ermis introducerea unui limba, de interogare= ne$rocedural
de mani$ulare a datelor.
:n model relational se caracterizeaza $rin trei elementeA
Structura relationala a datelor
G$eratorii modelului relational
*egulile de integritate care guverneaza 4olosirea c"eilor in model.
!ceste trei elemente cores$und celor trei com$onente ale ingineriei so4t@areA
in4ormatie= $roces si integritate.
Or$ni%re #tel"r
Structura datelor im$une de4inirea notiunilorA relatie= sc"ema relationala= valoare
nll= tabel vizualizare ;vie@<= care $ot 4i e/$rimate 4ormal= uzual sau 4izic ;tabelul 1<A
'abelul ()
*ormal +zual *izic
)
relatie tabel 4isier
tu$lu linie inregistrare
atribut coloana cam$
domeniu ti$ de data ti$ de data
:n domeniu este o multime de valori care $oate 4i de4inita 4ie enumerand
elementele com$onente= 4ie de4inind o $ro$rietate distinctiva a domeniului valorilor.
Fie '1= '2= = 'n domenii 4inite= nu nea$arat dis,uncte. !tunci $rodusul cartezian
'1 O '2 O O 'n este de4init de multimea tu$lurilor ;v1= v2= = vn<= unde v1 R '1= v2 R '2=
= vn R 'n= unde n este aritatea tu$luluiA
'1 O '2 O O 'n S T;v1= v2= = vn< B vi R 'i= i S1= = nU
G relatie * $e multimile '1= '2= = 'n este o submultime a $rodusului cartezian
'1 O '2 O O 'n= deci este o multime de tu$luri.
G relatie $oate 4i considerata o multime 4inita de 4unctii.
,tributA !sociem 4iecarui domeniu 'i un atribut !i si de4inim relatia * S T 41= 42=
= 4n Uunde 4i A T !1= !2= = !nU '1 O '2 O O 'n si 4i ;!,< R ',= i=,.
Schema relationala- (ultimea numelor atributelor cores$unzatoare unei relatii *
de4ineste sc"ema relationala a relatiei res$ective si se noteaza *;!1= !2= = !n<.
Se $oate re$rezenta o relatie $rintr-un tabel bidimensional in care 4iecare linie
cores$unde unui tu$lu si 4iecare coloana cores$unde unui domeniu din $rodusul
cartezian. G coloana ii cores$unde unui atribut. Numarul atributelor de4ineste !radul
relatiei= iar numarul de tu$luri din relatie de4ineste cardinalitatea relatiei.
G aloare null este un atribut necunoscut sau care nu $oate 4i de4init.
:n tabel izualizare ; ie.= filtru= relatie irtuala= edere< este un 4iltru asu$ra
tabelului initial care contine numai in4ormatia necesara unei anumite abordari sau
a$licatii. G vedere este virtuala deoarece datele continute nu sunt in realitate memorate
intr-o baza de date. 3/ista limitari in 4olosirea acestor tabeleA de e/em$lu= nu se
recomanda inserarea= reactualizarea si stergerea.
Re$uli #e inte$ritte
*egulile de integritate sunt asertiuni $e care datele din baza de date trebuie sa le
satis4aca. 3/ista trei ti$uri de constrangeri structuraleA
de c"eie
de re4erinta
de entitate
care constituie multimea minimala de reguli de integritate $e care trebuie sa le res$ecte
un sistem de gestiune a bazelor de date relationale.
*estrictiile de integritate minimale sunt de4inite in ra$ort cu notiunea de c"eie a
unei relatii.
G cheie a unei relatii * este o multime M de atribute ast4el incatA
1. $entru orice doua tu$luri t1= t2 ale lui *= sa avem t1;M< V t2;M<
2. nu e/ista nici o submultime $ro$rie a lui M avand $ro$rietatea 1.
Fiecare relatie are cel $utin o c"eie. 'aca e/ista mai multe c"ei= e/ista o c"eie
$rimara.
/heie e0terna ;straina<A Fie sc"emele relationale *1;01= S1< si *2;S1= S2<= unde 01
este c"eie $rimara in *1 si S1 - c"eie secundara in *1= S1 1 c"eie $rimara in *2. !tunci S1
este c"eie e/terna $entru *1.
9
1e!uli de inte!ritate structurataA (odelul relational res$ecta 3 reguli de
integritate structurataA
1e!ula (A unicitatea cheii 1 +"eia $rimara trebuie sa 4ie unica si minimala.
1e!ula 2A inte!ritatea entitatii 1 !tributele c"eii $rimare trebuie sa 4ie di4erite de
valoarea null.
1e!ula 3- inte!ritatea referirii 4 G c"eie e/terna trebuie sa 4ie ori null in intregime=
ori sa cores$unda unei valori a c"eii $rimare asociate.
&r"iectre !"#elului relti"nl
Dia!rama 561 (entitate-relatie) este un model ne4ormalizat $entru re$rezentarea
gra4ica a structurii relationale.
(odelul 3B* im$arte elementele unui sistem real in doua categoriiA
entitati si
relatii ;legaturi= asocieri< intre aceste enti tati.
G entitate $oate 4i o $ersoana= un loc= conce$t= activitate= eveniment care este
semni4icativ $entru modelare.
G relatie ;asociere< este o comunicare intre doua sau mai multe entitati= un ra$ort
intre entitati.
0entru obtinerea schemei conceptuale a bazei de date relationale= se $leaca de la
modelele conce$tuale ale datelor ;diagrama 3B*<.
50empluA Fie o institutie ce contine mai multe de$artamente= in care lucreaza
salariati. Salariatii sunt atasati unor $roiecte= e/ecutand in cadrul acestora di4erite sarcini.
Structura generala a modelului analizat este $rezentata in 4igura 1.A
Se $ot de4ini urmatoareleA
1. 3ntitati - S!L!*E!T= '30!*T!(3NT3= 0*GE3+T= S!*+EN!
GbservatiiA
3ntitatile devin tabele in modelele relationale.
+"eia $rimara identi4ica unic o entitate si 4ace distinctie intre valori di4erite
ale entitatii.
2. *elatii - in modelul relational= devin tabele s$eciale sau coloane s$eciale care re4era
c"ei $rimare ;inscrisWla= lucreazaWin= conduce= a$artine<
3. !tribut 1 o $ro$rietate descri$tiva a unei entitati B relatii
&r"iectre #i$r!ei entitte)reltie *E+R,
Se 4olosesc urmatoarele reguliA
3ntitatile se re$rezinta $rin dre$tung"iuri2
*elatiile se re$rezinta $rin arce neorientate2
10
!tributele ce sunt c"ei $rimare sunt s$eci4icate $rin simbolul V
+ardinalitatea ;numarul de tu$luri ale relatiei<A cardinalitatea minima
4oloseste simbolurile X;X si X<Y= iar cardinalitatea ma/ima se s$eci4ica 4ara
$aranteze.
/azurile speciale luate in considerareA
G entitate dependentaA S!*+EN! de$inde de 0*GE3+T. +"eia $rimara a
unei entitati de$endente include c"eia $rimara a sursei ;nr.W$roiect<.
/lasa este un gru$ de subentitati= clasi4icate du$a valorile unor atribute.
Se aliniaza vertical.
Se $ot de4ini relatii recursive. 3/em$luA
S!L!*E!TWsu$ervizeazaWS!L!*E!T.
Dia!rama 561 este $rezentata in 4igura 2.A
'in diagrama 3B* se obtine sc"ema conce$tuala a bazei de date relationale. Se
re$rezinta entitatile si legaturile dintre ele sub 4orma unor tabele s$eciale ;relatii<.
1e!ulile de conersie se bazeaza $e minimizarea numarului de valori null si a
redundantei datelor= ast4elA
a< Trans4ormarea entitatilor se bazeaza $e regulileA
3ntitatile inde$endente devin tabele inde$endente. +"eia $rimara nu contine
c"ei e/terne.
3/em$luA entitatea inde$endenta S!L!*E!T genereaza un tabel inde$endent
$entru care atributul cod7salariat este c"eia $rimara.
3ntitatile de$endente devin tabele de$endente. +"eia $rimara a entitatilor
de$endente contine c"eia $rimara a entitatii de care de$inde $lus unul sau mai
multe atribute aditionale.
3/em$luA c"eia $rimara a entitatii S!*+EN! este 4ormata din nr.W$roiect ;c"eia
$rimara a entitatii 0*GE3+T< si nr.Wsarcina.
Subentitatile devin subtabele.
b< Trans4ormarea relatiilor 4oloseste regulileA
11
*elatiile 1A1 si 1An devin c"ei e/terne. !st4el= relatia CconduceY devine coloana
in tabelul '30!*T!(3NT3 si relatia XlucreazaWinY este coloana in tabelul
S!L!*E!T.
- Simbolul COD marc"eaza $lasamentul c"eii e/terne.
- Simbolul COD - c"eia e/terna este continuta de c"eia $rimara.
*elatia mAn devine un tabel s$ecial ;tabel asociativ< care are 2 c"ei e/terne
$entru cele 2 tabele asociate. +"eia $rimara este 4ormata din com$unerea celor 2
c"ei e/terne $lus coloane aditionale. Se s$eci4ica $unctat.
c< Trans4ormarea atributelor 4oloseste regulileA
:n atribut singular devine o coloana.
!tributele multi$le devin tabele de$endente ce contin c"eia $rimara a entitatii
si atributul multi$lu.
3/em$luA un S!L!*E!T are mai multe numere de tele4on nr.Wtele4on este
atribut multi$lu care genereaza tabelul de$endent T3L3FGN.
/oncluzieA din diagrama 3B* se obtine diagrama conce$tuala ;4igura 3.< $entru
$roiectarea modelului relational $rinA
adaugarea tabelelor asociative
marcarea c"eilor e/terne.
Schemele relationale obtinute suntA
1. S!L!*E!T;codWsalariatV= nume= $renume= salariu= lucreazaWin<
2. '30!*T!(3NT3;codWde$artamentV= nume= localitate= conduce<
3. ENS+*ESWL!;codWsalariatV= nr.W$roiectV= 4unctie<
5. 0*GE3+T;nr.W$roiectV= descriere= bugetWalocat<
7. S!*+EN!;nr.W$roiectV= nr.WsarcinaV= stare<
8. T3L3FGN;codWsalariatV= nr.Wtele4onV<
'eci ti$urile de tabele 4olosite in diagrama 3B* $ot 4iA
inde$endente
de$endente
subtabele
tabele asociative
12
Semni4icatia 4iecarui tabel si relatia dintre c"eie $rimara si c"eie e/terna sunt
$rezentate in tabelul 2A
'abelul 2)
tabel reprezinta cheia primara
inde$endent entitate inde$endenta nu contine c"ei e/terne
subtabel subentitate contine o c"eie e/terna
de$endent entitate de$endenta B atribute multi$le contine o c"eie e/terna si
una sau mai multe coloane
aditionale
asociativ *elatie mAn B relatii de ti$ 3 contine 2 sau mai multe
c"ei e/terne si o$tional
coloane aditionale
G relatie de ti$ 3 este o legatura intre 3 entitatiA
S!L!*E!TWasociatWlaW0*GE3+TWinWF:N+TE!
Al$ebr relti"nl
! 4ost introdusa de 3. F. +odd ca o multime de o$eratii 4ormale actionand asu$ra
unor relatii si avand ca rezultat alte relatii.
&aza teoretica 4undamentala $entru limba,ele de interogare relationale o
constituie cei o$t o$eratori introdusi de +odd $entru mani$ularea relatiilor.
O'ert"rii l$ebrei relti"nle
SELECT (operatorul selecie) e/trage tu$luri ;linii< ce satis4ac o condiie s$eci4icat#2
PROJECT (operatorul proiecie) e/trage atributele s$eci4icate2
UNION (operatorul reuniune) reune6te dou# relaii. G$eratorul :NEGN elimin#
automat liniile identice din rezultat2
INTERSECT (operatorul intersecie) e/trage tu$luri care a$ar in ambele relatii2 este
o$erator binar comutativA
< ; < ; 1 S S S 1 1 S 1 = =
DIFFERENCE (operatorul dierena) e/trage tu$luri care a$ar intr-o relatie= dar nu
a$ar in cealalta. 3ste o$erator binar necomutativ.
PRODUCT (operatorul produs carte!ian) genereaz# toate $erec"ile $osibile de
tu$luri= $rimul element al $erec"ii 4iind din $rima relaie= al doilea element din a doua
relaie= 6.a.m.d.
Fie *= S relatii de aritate n= res$ectiv m. 0rodusul cartezian al lui * cu S este
multimea tu$lurilor de aritate nLm unde $rimele n com$onente 4ormeaza un tu$lu in *=
iar ultimele m com$onente 4ormeaza un tu$lu in S.
DI"ISION (operatorul di#i!iune) e/trage valorile atributelor dintr-o relaie= care
a$ar Zn toate valorile atributelor din cealalt# relaie= 4iind o$erator binar.
13
Fie dou# relaii *
;n<
6i S
;m<
. !tunci 'E.ESEGN;*= S< ;sau 'E.E'3;*= S<< $ermite
selectarea acelor tu$luri de dimensiune n-m la care= ad#ug[nd orice tu$lu din S= se obine
un tu$lu din *.
G$eratorul 'E.ESEGN este legat de cuanti4icatorul universal X Y care nu e/ist#
Zn limba,ul S-L= dar $oate 4i simulat ast4elA Fie un $redicat 0;/<. !tunci are loc
identitateaA
JOIN (operatorul de co$punere% de &onciune) $ermite e/tragerea in4ormaiilor din
mai multe relaii corelate. Ionciunea este o combinaie de $rodus cartezian 6i selecie.
Re$ulile lui C"##
En 19)7= +odd a $ublicat un set de 13 reguli in ra$ort cu care un S%&' $oate 4i
a$reciat ca relationalA
1e!ula ( 1 re!ula !estionarii datelor 1 :n S%&' relational trebuie sa 4ie ca$abil
sa gestioneze o baza de date $rin $osibilitatile sale relationale.
1e!ula 2 1 re!ula reprezentarii informatiei 1 Entr-o baza de date relationala=
in4ormatia este re$rezentata la nivel logic sub 4orma unor tabele ;relatii<.
1e!ula 3 1 re!ula accesului !arantat la date 1 Fiecare valoare dintr-o baza de
date relationala trebuie sa $oata 4i adresata in mod logic $rintr-o combinatie 4ormata din
numele relatiei= valoarea c"eii $rimare si numele atributului.
1e!ula 8 1 re!ula reprezentarii informatiei necunoscute 1 :n sistem relational
trebuie sa $ermita utilizatorului de4inirea unui ti$ de date numit null $entru re$rezentarea
in4ormatiei necunoscute la momentul res$ectiv.
1e!ula # 1 re!ula dictionarelor de date 1 !su$ra descrierii bazei de date
;in4ormatii relative la relatii= vizualizari= indecsi< trebuie sa se $oata a$lica aceleasi
o$eratii ca si asu$ra datelor din baza de date.
1e!ula 9 1 re!ula limba&ului de intero!are 1 Trebuie sa e/iste cel $utin un limba,
$entru mani$ularea bazei de date ;limba,ul S-L<.
1e!ula : 1 re!ula de actualizare a izualizarii 1 :n S%&' trebuie sa $oata
determina daca o vizualizare $oate 4i actualizata si sa stoc"eze rezultatul interogarii intr-
un dictionar de ti$ul unui catalog de sistem.
1e!ula ; 1 re!ula limba&ului de niel inalt 1 *egulile de mani$ulMare asu$ra unei
relatii luata ca intreg sunt valabile atat $entru o$eratiile de regasire a datelor= cat si asu$ra
o$eratiilor de inserare= actualizare si stergere a datelor.
1e!ula " 1 re!ula independentei fizice a datelor 1 0rogramele de a$licatie nu
de$ind de modul de stocare a datelor sau de modul de acces la date.
1e!ula (< 1 re!ula independentei lo!ice a datelor 1 0rogramele de a$licatie
trebuie sa 4ie trans$arente la modi4icarile de orice ti$ e4ectuate asu$ra datelor.
1e!ula (( 1 re!ula independentei datelor din punct de edere al inte!ritatii 1
*egulile de integritate trebuie sa 4ie de4inite intr-un sublimba, relational= nu in $rogramul
de a$licatie.
1e!ula (2 1 re!ula independentei datelor din punct de edere al distribuirii
datelor 1 'istribuirea datelor $e mai multe calculatoare dintr-o retea de comunicatii de
date= nu trebuie sa a4ecteze $rogramele de a$licatie.
15
1e!ula (3 1 re!ula ersiunii procedurale a unui SGBD 1 Grice com$onenta
$rocedurala a unui S%&' trebuie sa res$ecte aceleasi restrictii de integritate ca si
com$onenta relationala.
'eoarece regulile lui +odd sunt $rea restrictive $entru a 4i res$ectate de un S%&'
relational= s-au 4ormulat criterii minimale de de4inire a unui sistem de gestiune relational.
:n SGBD este minimal relational dacaA
toate datele bazei sunt re$rezentate $rin valori in tabele2
nu e/ista $ointeri observabili de catre utilizator2
sistemul su$orta o$eratorii relationali de $roiectie= selectie si com$unere
naturala= 4ara limitari im$use din considerente interne.
:n SGBD este complet relational daca este minimal relational si satis4ace in $lus
conditiileA
sistemul su$orta restrictiile de integritate de baza ;unicitatea c"eii $rimare=
constrangerile re4erentiale= integritatea entitatii<
sistemul su$orta toate o$eratiile de baza ale algebrei relationale.
(ecanismele de lucru de care dis$une un S%&' relational suntA
un limba, relational $entru descrierea datelor la nivel 4izic= logic si conce$tual
un limba, relational $entru mani$ularea datelor
mecanisme $entru controlul integritatii semantice a datelor
mecanisme $entru o$timizarea cererilor de date
mecanisme $entru asigurarea coerentei datelor
utilitare $entru generarea de ra$oarte= a$licatii sau statistici re4eritoare la starea si
activitatea bazei de date.
N"r!li%re reltiil"r
Normalizarea relatiilor conce$tuale $ermite obtinerea de relatii CmoleculareD= 4ara
a $ierde nimic din in4ormatie= $entru a elimina redundanta si anomaliile reactualizarii
in4ormatiilor. 3ste un $roces de ameliorare $rogresiva a unei sc"eme conce$tuale initiale
a bazei de date relationale. 'u$a 4iecare eta$a de ameliorare= relatiile din baza de date
ating un anumit grad de $er4ectiune= deci se a4la intr-a anumita forma normala.
Trecerea unei relatii dintr-o 4orma normala in alta= $resu$une eliminarea unui
anumit ti$ de de$endente nedorite= care sunt trans4ormate in de$endente care nu $rovoaca
anomalii ;admisibile<.
0rocesul de ameliorare trebuie sa satis4aca cerinteleA
sa garanteze conservarea datelor
sa garanteze conservarea de$endentelor dintre date
sa re$rezinte o descom$unere minimala a relatiilor initiale.
=ecesitatea normalizarii deriva din $roblemele generate de anomalii. !nomaliile
care a$ar in lucrul cu baze de date se $roduc datorita de$endentelor care e/ista intre
datele bazei de date. 3/ista anomaliiA
la inserare de date
la modi4icare B stergere
redundanta in date ;a$aritii re$etate<
$robleme de recone/iune.
Normalizarea $ermiteA
su$rimarea redundantei logice
17
evitarea anomaliilor la reactualizare
rezolvarea $roblemei recone/iunii.
3/ista o teorie matematica a normalizarii= al carei autor este 3. F. +odd= con4orm
careia= se construiesc tabele standard ;4orme normale<.
Grice 4orma normala se obtine a$licand o sc"ema de descom$unere. 3/ista 2
ti$uri de descom$uneriA
- descom$uneri ce conserva de$endentele ; descom$unerea unei relatii * in $roiectii
*1= = *MA
>
i
i 1
1
1 =
=
<
- descom$uneri 4ara $ierderi de in4ormatie ; regula lui +aseF-'elobel<.
Re$ul Cse-)Del"bel
Fie *;!< o sc"ema relationala si \= ]= ^ o $artitie a lui !. 0resu$unem ca \
determina 4unctional $e ]. !tunciA
< = ; < ;


=

1 1 ?O@= , 1
= unde \:] este multime atributelor care
intervin in de$endentele 4unctionale si \:^ este reuniunea determinantului cu restul
atributelor lui !.
F"r!ele n"r!le ale relatiilor dintr-o baza de date relationala sunt de4inite in
ra$ort cu anomaliile care $ot a$area in lucrul cu aceste relatii.
() Prima forma normala (*= ()
G relatie este in FN 1 daca 4iecarui atribut care o descom$une ii cores$unde o valoare
indivizibila ;atomica<. :n tu$lu nu trebuie sa contina atribute sau gru$uri de atribute
re$etitive.
!lgoritmul !FN-1 care aduce o relatie in FN 1 elimina atributele com$use si cele
re$etitive.
2) *orma normala 2 (*= 2)
G relatie este in FN 2 daca si numai dacaA
o *elatia * este in FN 1
o Fiecare atribut care nu este c"eie ;nu $artici$a la c"eia $rimara< este de$endent de
intreaga c"eie $rimara.
0entru a obtine o relatie in FN 2 se $oate a$lica regula +aseF-'elobelA 4ie relatia
*;M1= M2= /= F<= M1= M2 de4inesc c"eia $rimara= / si F sunt multimi de atribute ast4el incat M1
/ ; rezulta ca * nu este in FN 2<. Solutia este inlocuirea lui * cu doua $roiectii *1;M1=
M2= F< si *2;M1= /<.
!lgoritmul !FN-2 de aducere a unei relatii in FN 2 elimina de$endentele 4unctionale
$artiale din cadrul unor relatii a4late in FN 1.
3) *orma normala 3 (*= 3)
G relatie * este in FN 3 daca si numai dacaA
o *elatia * este in FN 2
o Fiecare atribut care nu este c"eie ;nu $artici$a la o c"eie< de$inde direct de c"eia
$rimara.
'in $unct de vedere 4ormal= o relatie * este in FN 3 daca si numai dacaA
o *elatia * este in FN 2
o Fiecare atribut care nu este c"eie ;nu $artici$a la o c"eie< nu este de$endent tranzitiv
de nici o c"eie a lui *.
18
Definitie- (, este dependent tranziti de A<
Fie * o relatie= O o submultime de atribute ale lui * si ! un atribut al relatiei *. ! este
de$endent tranzitiv de O dacaA
< ;
F ast4el incat / F si F ! ;! F si F nu
determina $e O<.
0entru a obtine o relatie FN 3 se $oate a$lica regula de descom$unere +aseF-'elobel.
!lgoritmul !FN-3 $entru aducerea unei relatii FN 2 in FN 3 elimina de$endentele
4unctionale tranzitive.
*orma normala Boyce7/odd(B/=*)
G relatie * este in 4orma normala &oFce-+odd daca si numai daca 4iecare
determinant este o c"eie candidat ;sau $entru orice de$endenta 4unctionala totala O !=
O este o c"eie a lui *<.
!lgoritmul !&+NF $entru aducerea unei relatii in &+NF elimina de$endentele
4unctionale ai caror determinanti nu sunt c"ei candidat.
8) *orma normala 8 (*= 8)
G relatie &+NF este in FN 5 daca $entru orice multide$endenta elementara de 4orma
O _= O este o su$erc"eie a lui *.
!ducerea relatiilor in FN 5 $resu$une eliminarea de$endentelor multivaloare atunci
cand sunt mai mult de una in cadrul unei relatii.
#) *orma normala # (*= #)
*elatia * este in FN 7 daca si numai dacaA
o *elatia * este in FN 5
o Nu contine de$endente ciclice.
!lgoritmul !FN-7 $entru aducerea unei relatii FN 5 in FN 7 elimina ,oin-
de$endentele.
3/em$luA
* S IGEN ;IGEN;*1= *2<= *3<
17
+a$itolul 3
%imba&ul S'% $ crearea tabelelor in (isual
Fo)Pro
&re%entre $enerl
Limba,ul S3-:3L ;Structured 3nglis" as -uerF Language< a 4ost $rezentat
$entru $rima data ca un limba, de interogare in anul 1975= de catre +"amberlin si &oFce.
En 19)0= +"amberlin a sc"imbat denumirea S3-:3L in S-L ;Structured -uerF
Language 1 limba, structurat de interogare<.
!NSE ;Enstitutul National !merican $entru Standarde< a $ublicat in 19)8
standardul S-L !NSE 19)8= care de4inea comenzile de baza ale limba,ului S-L= inclusiv
$entru crearea de tabele si vederi ;create table si create vie@<. Limba,ul S-L 1 )8 nu
continea o$tiuni de modi4icare a structurii sau stergere a obiectelor bazei ;alter= dro$< si
comenzi $entru acordare si revocare de dre$turi utilizatorilor ;grant si revoMe<.
!st4el= au 4ost necesare revizuirea si e/tinderea limba,ului. En 19)9 a$are limba,ul
S-L 1 )9 recunoscut ca 4undament al multor S%&'-uri comerciale. Totusi= variantele
comerciale ale di4eritilor $roducatori erau incom$atibile la nivel de detaliu.
En 1992= a$are versiunea S-L 1 92 cu multe 4acilitati incluse= $recumA
Ionctiunea e/terna ;outer ,oin<
1)
(odi4icarea sc"emei bazei de date ;alter= dro$= grant= revoMe<
(odi4icari si stergeri re4erentiale in cascada
!manarea veri4icarii restrictiilor
Niveluri de consistenta a tranzactiilor.
En 1999 a 4ost $ublicat un standard S-L 1 3 care iese din s4era relationalului si a
normalizarii relatiilor= asa cum au 4ost 4ormulate de +odd. 0rinci$alele orientari ale
limba,ului S-L 1 3 vizeaza trans4ormarea acestuia intr-un limba, com$let= in vederea
de4inirii si gestionarii obiectelor com$le/e si $ersistente. !st4el= au 4ost introduseA
(osteniri multi$le= $olimor4ismul= inca$sularea= caracteristici $reluate din
limba,ele orientate $e obiecte
Ti$uri de date de4inite de utilizator
Su$ort $entru sisteme bazate $e gestiunea cunostintelor
Enterogari recursive
Enstrumente de administrare a datelor.
Ti'urile #e #te #e(inite in stn#r#ul S.L / 01 sunt urmatoareleA
- S(!LLENT $entru numere intregi scurte2 ocu$a 5 $ozitii re$rezentate $e 18 biti
- ENT3%3* sau ENT $entru numere intregi ;9 $ozitii re$rezentate $e 32 biti<
- N:(3*E+ ;$= s< sau '3+E(!L ;$= s< sau '3+ ;$= s< $entru memorarea datelor
reale= cu un total de $ $ozitii= dintre care s la $artea 4ractionara
- FLG!T $entru date reale re$rezentate in virgula mobila ;20 $ozitii $entru mantisa<
- *3!L $entru date reale e/$rimate in virgula mobila= cu $recizie mai mica decat
FLG!T= dar la nivelul de intrare 4iind identice<
- 'G:&L3 0*3+ESEGN $entru date reale e/$rimate in virgula mobila= in dubla
$recizie ;30 $ozitii $entru mantisa<
- +J!*;n< sau +J!*!+T3*;n< $entru date de ti$ sir de caractere de lungime n
;ma/im 250<
- .!*+J!*;n< sau +J!* .!*_EN%;n< sau +J!*!+T3* .!*_EN%;n< $entru
date de ti$ sir de caractere de lungime variabila= ma/im 275 caractere
- '!T3 $entru data calendaristica
- TE(3 $entru ora
- TE(3ST!(0 $entru an= luna= zi= ora= minut= secunda= 4ractiuni de secunda.
&rinci'lele ti'uri #e #te ("l"site in 2isul F"3&r"
+J!*!+T3*;n< sau +;n<= LG%E+!L sau L= N:(&3*;$=s< sau N;$=s<= ENT3%3* sau
E= 'G:&L3= '!T3 sau '= '!T3TE(3
Crere unei b%e #e #te in 2isul F"3&r"
+rearea unei baze de date necesita cunostinte de administrare strict legate de
$rodusul so4t@are de gestiune a bazei de date. 3lementele te"nice si 4izice caracteristice
serverelor de baze de date= cum ar 4iA Gracle= S-L Server= '&2= En4ormi/= suntA
- S$atiile tabela ;table s$ace< 4olosite $entru alocarea de s$atiu $e disc
$entru obiectele bazei
- Segmentele de rollbacM sunt obiecte utilizate de sistem $entru salvarea
datelor necesare validarii tranzactiilor
19
- Fisierele de date si $rocesele sistem asociate sistemelor de gestiune de
baze de date.
+omanda de creare a unei baze de date in limba,ul S-L 1 .isual Fo/0ro esteA
CREATE DATABASE [nume_baza_de_date | ?].
!rgumentul nume7baza7de7date este o$ional. Li$sa acestui argument determin#
desc"iderea 4erestrei de dialog +reate= Zn care se cere introducerea unui nume $entru
4i6ierul baz# de date .dbc.
,plicatieA S# se creeze o baz# de date FE*(! care s# gestioneze in4ormaii des$re
anga,aii din de$artamentele unei 4irme= utilizand comenzile S-L 6i .isual Fo/$ro.
+omanda de creare a bazei de date FE*(!A
+*3!T3 '!T!&!S3 4irma
&r"iectre b%ei #e #te
&aza de date FE*(! care gestioneaz# in4ormaii des$re anga,aii de$artamentelor
unei 4irme conine urm#toarele tabeleA
'30!*T ;de$artamente<= cu detalii des$re de$artamente2
!N% ;anga,ai<= cu toi anga,aii 4irmei2
S!L%*' ;grade salarii<= cu detalii des$re gradele de salarizare.
0roiectarea bazei de date $ermite obinerea sc"emelor relaionale urm#toareA
'30!*T;nrde$artV= numede$art= loc<
!N%;codangV= nume= 4unctie= manager= datan= salariu= comision= nrde$art<
S!L%*';gradV= salmin= salma/<.
Tabelul D5P,1' conine urm#toarele c[m$uriA
nrde$art 1 num#r de$artament= de ti$ number;2<= c"eie $rimar#2
numede$art 1 nume de$artament= de ti$ c"ar;15<2
loc 1 localitatea unde se a4l# de$artamentul= de ti$ c"ar;13<.
Tabelul ,=G conine urm#toarele c[m$uriA
codang 1 codul anga,atului= de ti$ number;5<= c"eie $rimar#2
nume 1 numele anga,atului= de ti$ c"ar;12<2
4unctie 1 4uncia anga,atului= de ti$ c"ar;18<2
manager 1 codul managerului anga,atului= de ti$ number;5<2
datan 1 data na6terii= de ti$ date2
salariu 1 salariul anga,atului= de ti$ number;12=2<2
comision 1 comisionul anga,atului= de ti$ number;)<2
nrde$art 1 num#rul de$artamentului Zn care lucreaz# anga,atul= de
ti$ number;2<.
Tabelul S,LG1D conine urm#toarele c[m$uriA
grad 1 categoria de salarizare= de ti$ number;1<2
salmin 1 salariul minim din categoria res$ectiv# de salarizare= de
ti$ number;12=2<2
salma/ 1 salariul ma/im din categoria res$ectiv#= de ti$
number;12=2<.
20
Sc"ema sim$li4icat# a bazei de date FE*(! ce conine tabelele 6i relaiile dintre
ele este $rezentat# Zn 4igura 1A
Tabelul '30!*T are c"eie $rimar# - coloana nrde$art= tabelul !N% are c"eie
$rimar# - coloana codang 6i c"eie e/tern# 1 coloana nrde$art= iar tabelul S!L%*' are
c"eie $rimar# 1 coloana grad.
Crere tbelel"r
0rogramul care creeaz# tabelele= 4#r# a stabili relaiile dintre ele 6i restriciile= este
urm#torulA
clear
close databases
open database firma.dbc
create table depart( nrdepart n(2) , numedepart c(14), loc c(13))
create table ang( codang n(4), nume c(12), functie c(16),;
manager n(4), datan d, salariu n(12,2),;
comision n(8), nrdepart n(2) )
create table salgrd( grad n(1), salmin n(12,2), salmax n(12,2))
modify database
close all
'u$a e/ecuia $rogramului de mai sus= este a4i6at# baza de date Zn 4ereastra
'atabase 'esigner ;4igura 2<A
21
A#4u$re restric5iil"r
`n limba,ul S-L se $ot declara toate ti$urile de restricii $entru o baz# de date relaional#A
- c"eie $rimar# 1 atributul 0*E(!*_ a3_2
- unicitate 1 clauza :NE-:32
- valori obligatorii ;nenule< 1 o$iunea NGT N:LL2 Zn .isual Fo/0ro trebuie
declarate atributele care $ot avea valori N:LL2
- restricii utilizator 1 im$lementate sub 4orma regulilor de validare la nivel de
c[m$= Znregistrare sau $ot 4i incluse Zn declan6atoare2
- restricii re4ereniale 1 a$ar datorit# e/istenei c"eilor str#ine ;clauza FG*3E%N
a3_<. *estriciile re4ereniale $#streaz# integritatea bazei de date la e/ecuia
anumitor o$eraii= $recumA la inserarea unei linii Zntr-o tabel# co$il sau modi4icarea
unei c"ei str#ine ;se veri4ic# dac# noile valori se reg#sesc Zn liniile tabelului $#rinte<2
la 6tergerea unei linii dintr-o tabel# $#rinte ;4ie se 6terg Zn cascad# toate Znregistr#rile
cores$ondente din tabelul co$il= 4ie se interzice 6tergerea<.
50emple-
!d#ugarea restriciei c"eie $rimar# $entru coloana nrde$art ;tabelul de$art<A
alter table depart add primary ey nrdepart tag nrdepart
.izualizarea ;modi4icarea< structurii ;inclusiv c"eia $rimar#< se 4ace 4olosind comanda
modify structure Table 'esigner etic"eta Ende/es ;4igura 3<A
22
!d#ugarea regulii de validare la nivel de c[m$A numede$art s# acce$te numai
litere mariA
!"#$% #!&"$ depart !"#$% '(")*+ numedepart c,ar(14) ;
'-$'.(numedepart / upper(numedepart)) $%%(% 0litere mari0
.izualizarea regulii de validare se 4ace 4olosind comandaA modify structure Table
'esigner etic"eta Fields= selectare c[m$= seciunea Field validation= *ule 6i (essage
;4igura 5<A
!d#ugarea restriciei ca loc s# 4ac# $arte din listaA &ucure6ti= 0loie6ti= &ra6ov=
+[m$ina= !rad= Ea6i
!"#$% #!&"$ depart !"#$% '(")*+ loc c,ar(13) ;
'-$'.(inlist(loc,0&ucuresti0,01loiesti0, 0&raso20, 0'ampina0, 0!rad0,; 03asi0))
$%%(% 0&ucuresti, 1loiesti, &raso2, 'ampina, !rad, 3asi0
(odi4icarea regulii de validare se $oate realiza Zn 4ereastra Table 'esigner= Fields=
selectare c[m$= *ule= 3/$ression &uilder ;4igura 7<A
23
!d#ugarea restriciei de c"eie $rimar# $entru coloana codang ;tabelul ang<=
4olosind Table 'esignerA etic"eta Ende/es numele inde/ului 1 codang= ti$ul inde/ului
1 $rimarF= ca etic"et# 1 e/$resia codang ;4igura 8<A
!d#ugarea regulii de validare la nivel de c[m$A nume s# aib# $rima liter# mare=
iar celelalte litere mici 6i 4uncie s# aib# numai litere mari 1 Zn mod vizual ;4ereastra
Table 'esigner B Fields B Field validation B 3/$ression &uilder<= 4igura 7A
25

!d#ugarea restriciei N:LL $entru coloanele manager 6i comisionA
!"#$% #!&"$ ang !"#$% '(")*+ manager null
!"#$% #!&"$ ang !"#$% '(")*+ comision null
!d#ugarea c"eii e/terne $entru tabelul ang= coloana nrde$art 1 coloana comun#
cu coloana nrde$art ;tabelul $#rinte de$art<A
!"#$% #!&"$ ang !44 5(%$36+ .$7 nrdepart;
#!6 nrdepart %$5$%$+'$8 depart
+omanda !D"#$ DATABASE $ermite vizualizarea relaiei dintre tabelul $#rinte
Xde$artY 6i tabelul co$il XangY ;4igura )< 1 coloana nrde$art este c"eie $rimar# Zn tabelul
$#rinte 6i c"eie e/tern# Zn tabelul co$ilA
!d#ugarea restriciei re4ereniale urm#toareA la modi4icarea c"eii $rimare nrde$art
din tabelul de$art= s# se modi4ice Zn cascad# 6i valorile cores$ondente din tabelul co$il
angA se activeaz# 4ereastra 'atabase 'esigner= a$are meniul 'atabase= se alege o$iunea
+lean :$ 'ata&ase2 se 4olose6te o$iunea 3dit *e4erential EntegritF ;4igura 9<A
27
- se activeaz# etic"eta *ules 4or :$dating= a$oi se alege o$iunea /ascade +pdates all
related records in the child table .ith the ne. >ey alue
+rearea indec6ilor Zn mod vizual= 4olosind 0ro,ect (anager
`n .isual Fo/$ro e/ist# urm#toarele ti$uri de indec6iA
- 0rimar 1 $entru declararea c"eii $rimare
- +andidat 1 are aceea6i semni4icaie ca 6i cel $rimar
- *egular 1 $ermite du$licarea valorilor= 4iind 4olosit $entru c"eile str#ine sau $entru
crearea de indec6i $entru o$timizarea accesului la Znregistr#ri
- :nibue 1 genereaz# Zn 4i6ierul inde/ doar valori unice ale e/$resiei de inde/are.
50emplu-
+reai un inde/ $entru tabelul salgrd= coloana grad= Zn mod vizualA
- se desc"ide baza de date FE*(! 4olosind 0ro,ect (anager2
- se selecteaz# tabelul salgrd
- se activeaz# butonul (odi4F= etic"eta Ende/es 6i se s$eci4ic#A
o numele inde/ului 1grad2 ti$ul 0rimarF=
o ordinea de sortare 1 ascendenta 6i
o e/$resia 1 grad.
Er"ri cre '"t 're 6n c%ul ("l"sirii in#ec7il"r
(otorul de baz# de date .isual Fo/$ro nu actualizeaz# Zntotdeauna la tim$
indec6ii= du$# actualiz#rile e4ectuate Zn baza de date>Fo&ra02?. G soluie este veri4icarea
integrit#ii bazei de date= ast4elA
close all
open database firma
2alidate database reco2er 99 figura 1:
28
'ac# un obiect nu este valid 6i nu este re4#cut automat= el trebuie 6ters 6i
reconstruit= a$oi se re4ac restriciile re4ereniale.
Crere c"!'let4 tbelel"r ("l"sin# un 'r"$r! 2isul F"3&r"
clear
close databases
open database firma.dbc
create table depart( ;
nrdepart number(2) primary ey, numedepart c,ar(14) ;
c,ec(numedepart/upper(numedepart));
error 0se accepta numai litere mari0, ;
loc c,ar(13) c,ec(inlist(loc,0&ucuresti0,01loiesti0,;
0&raso20,0'ampina0,0!rad0,03asi0));
$%%(% 0se accepta numai;
localitatile din lista &ucuresti, 1loiesti, &raso2, 'ampina,;
!rad, 3asi0)

create table ang( ;
codang number(4) primary ey,;
nume c,ar(12) c,ec(nume/proper(nume));
error 0prima litera este ma;uscula, celelalte < litere mici0, ;
functie c,ar(16) c,ec(functie/upper(functie));
error 0se accepta numai litere mari0 ,;
manager number(4) null, datan date ,;
salariu number(12,2),;
comision number(8) null, nrdepart number(2),;
foreign ey nrdepart tag nrdepart references;
depart tag nrdepart;
)
create table salgrd( grad number(1) primary ey,;
salmin number(12,2), salmax number(12,2);
27
)
modify database
close all
'u$# e/ecuia $rogramului= se creeaz# com$let baza de date FE*(! ;tabelele=
restriciile= indec6ii<= 4igura 11A
ObseraBii-
&aza de date FE*(! conine tabeleleA '30!*T 6i !N% Zn relaie $#rinte 1 co$il 6i
S!L%*'2
tabelul '30!*T are c"eie $rimar# 1 nrde$art= !N% are c"eie $rimar# 1 codang=
c"eie e/tern# 1 nrde$art 6i tabelul S!L%*' are c"eie $rimar# 1 grad2
$entru a4i6area= 6tergerea sau modi4icarea unui tabel= se e4ectueaz# clicM drea$ta $e
tabelul res$ectiv $entru alegerea o$iunii res$ectiveA &ro@se= 'elete= (odi4F.
2)

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