Sunteți pe pagina 1din 10

BAZE DE DATE Cotelea Vitalie

1. Noiunile Baz de Date, SGBD. Modelele logice de date: ierarhic, reea, relaional. Etapele de proiectare a unei baze de date.
Algebra relaional. nterogri !n algebra relaional.
Baza de date:
" la #odul general, o colectie de date corelate intre ele, care $e re%era la un anu#it a$pect al realitatii $i de$tinat unui grup de
utilizatori&
" intr"un #od #ai preci$, o colectie de date #e#orate pe $uport electric.
' baza de date poate %i de%inita ca un an$a#blu de date ele#entare $au $tructurate, acce$ibile unei co#unitati de utilizatori. Mai
concret, o baza de date, e$te un an$a#blu de %i$iere intercorelate, care contine nucleul de date nece$are unui $i$te#
in%or#atic(aplicatie in%or#atica).
' baz de date poate %i:
* integrat&
* parta+at.
,rin -integrat. !nelege# c baza de date poate %i g/ndit ca o uni%icare de #ai #ulte %i0iere de date, di$tincte 0i neredundante.
,rin -parta+area. unei baze de date $e !nelege c bucile indi1iduale de date din baza de date pot %i parta+ate !ntre #ai #uli
utilizatori indi1iduali, %iecare dintre ei put/nd a1ea acce$ la aceea0i bucat de date $i#ultan ($i$te#e #ultiutilizator).
2ardul unui $i$te# de baze de date con$t din 1olu#ele de #e#orare $ecundare (di$curi, di$chete $au benzi #agnetice) pe care
rezid baza de date, !#preun cu aparatele, unitile de control 0i canalele re$pecti1e.
3ntre baza de date %izic (adic datele a0a cu# $unt ele #e#orate pe $uport) 0i utilizatorii $i$te#ului e4i$t un ni1el de $o%t5are,
nu#it sistem de gestionare a bazelor de date (DBMS 6 Data Ba$e Manage#ent S7$te#), care per#ite con$truirea unor baze de
date, introducerea in%or#aiilor !n baza de date 0i dez1oltarea de aplicaii pri1ind bazele de date.
8n DBMS d po$ibilitatea utilizatorului $ aib acce$ la date %olo$ind un li#ba+ de ni1el !nalt, apropiat de #odul obi0nuit de
e4pri#are, pentru a obine in%or#aii, utilizatorul %c/nd ab$tracie de algorit#ii aplicai pentru $electarea datelor i#plicate 0i a
#odului de #e#orare a lor. DBMS"ul e$te deci o inter%a !ntre utilizator 0i $i$te#ul de operare.
8n $i$te# de ge$tiune a bazelor de date con$tituie o inter%ata !ntre utilizatori $i BD, care per#ite !n principal crearea,
actualizarea $i con$ultarea ace$teia. 3n ace$t conte4t pute# de%ini SGBD6ul ca un in$tru#ent de a$a#blare, codi%icare, aran+are,
protectie $i rega$ire a datelor !n BD.
Utilizatorii $i$te#elor de ge$tionare a bazelor de date (DBMS) $e grupeaz !n trei categorii:
a. programatorii de aplicaie (care $criu progra#ele aplicaie !n li#ba+e de progra#are: Cobol, C, etc.) $au !n li#ba+e de
progra#are $peci%ice: dBase, FoxPro, etc.)&
b. end-userii $au utilizatorii (care acce$eaz baza de date de la un ter#inal, %olo$ind un li#ba+ de interogare nu#it -9uer7
language.)&
c. administratorii bazelor de date DBA (care $tabile$c $tructura iniial a bazei de date 0i #odul de #e#orare a datelor la ni1el
%izic, acord utilizatorilor drepturi de acce$ la baza de date $au pri ale ei, a$igur $ecuritatea datelor, #odi%ic $tructura 0i
!ntreine baza de date).
E4i$t trei categorii de #odele de baze de date:
1. #odelul relaional&
:. #odelul reea&
;. #odelul arbore$cent (ierarhic).
1. Modelul relaional
8n #odel relaional de baze de date cuprinde trei co#ponente principale:
* structura datelor prin de%inirea unor domenii (1alori ato#ice) 0i a relaiilor n (atribute, tupluri, chei pri#are)&
* integrarea datelor prin i#punerea unor re$tricii&
* prelucrarea datelor prin operaii din algebra relaional $au calcul relaional.
Modelul relaional $e bazeaz pe noiunea #ate#atic de relaie (din teoria #uli#ilor) de%init ca o $ub#uli#e a produ$ului
cartezian a unei li$te %inite de #uli#i nu#ite domenii. Ele#entele unei relaii $e nu#e$c tupluri ($au n-cupluri), iar nu#rul de
do#enii din produ$ul cartezian $e nu#e0te arietatea relaiei (<'=A>2E 1??@, 1A:).
De obicei relaiile $unt reprezentate $ub %or#a unor tabele !n care %iecare r/nd reprezint un tuplu 0i %iecare coloan reprezint
1alorile tuplurilor dintr"un do#eniu dat al produ$ului cartezian.
3n reprezentarea $ub %or# de tabel a unei relaii, coloanelor 0i do#eniilor core$punztoare lor, li $e a$ociaz nu#e intitulate
atribute. Muli#ea nu#elor atributelor unei relaii $e nu#e0te schem relaional.
Deci prin relaie $e !nelege o #uli#e de %uncii de%inite pe o #uli#e de atribute cu 1alori !n reuniunea unor do#enii, cu
re$tricia ca 1aloarea core$punztoare %iecrui atribut $ $e a%le !n do#eniul a$ociat acelui atribut.
Se nu#e0te cheie candidat al unei relaii B coloana $au #uli#ea de coloane din B pentru care 1alorile core$punztoare din
oricare dou tupluri nu coincid, deci identi%ic tuplurile prin relaia re$pecti1 0i nu conin $trict o $ub#uli#e de coloane cu
acea$t proprietate. ,entru %iecare relaie $e alege un candidat de cheie care $e nu#e0te cheie primar a relaiei. =uplurile unei
relaii nu pot $ conin 1aloarea nul !n coloane ce aparin cheii pri#are. E1entualii candidai de chei di%erii de cheia pri#ar $e
nu#e$c chei alternante. Se nu#e0te cheie strin o coloan $au o #uli#e de coloane a unei relaii B1 ale crei 1alori, dac nu
$unt nule, coincid cu 1alori ale unei chei pri#are dintr"o relaie B, nu neaprat di$tinct de B1.
Muli#ea tuturor $che#elor relaionale core$punztoare unei aplicaii $e nu#e0te schema bazei de date relaionale, iar coninutul
curent al relaiilor, la un #o#ent dat, $e nu#e0te baz de date relaional.
3n #odelul relaional, entitile $unt reprezentate $ub %or# de relaii !n care $che#a relaional conine toate atributele entitii 0i
%iecare tuplu al relaiei core$punde unui ele#ent al entitii.
>ele #ai #ulte cereri ale unui utilizator pri1e$c deter#inarea unor in%or#aii cu anu#ite proprieti, iar r$pun$ul po$ibil e$te o
relaie care de$crie toate ele#entele cu ace$te proprieti. Modul de prezentare al r$pun$ului depinde de inter%aa dintre DBMS 0i
utilizator.
:. Modelul reea
Modelul reea e$te cel #ai apropiat de %or#a de reprezentare a bazelor de date $ub %or#a diagra#elor entitate"relaie. Deo$ebirea
con$t !n %aptul c toate relaiile ce apar pot %i nu#ai binare 0i de tipul 1:1 $au 1:N. Acea$t re$tricie per#ite reprezentarea gra%ic
a unei baze de date de tip reea $ub %or#a unui gra% direcionat nu#it reea.
3ntr"o reea, nodurile core$pund entitilor 0i relaiile $unt reprezentate prin $gei !ntre noduri (de la tat la %iu) 0i anu#e $gei
$i#ple dac relaia e$te de tipul 1:1 0i $gei duble dac relaia e$te de tipul 1:N.
3n #odelul reea, entitilor le core$pund %i0iere logice care au drept c/#puri atributele entitii 0i e1entuale c/#puri de legtur
pentru relaii. <iecrui ele#ent al entitii !i core$punde o !nregi$trare logic. Dac !nregi$trrile $unt identi%icate nu#ai prin
relaia cu alte entiti, atunci $e #ai adaug la !nregi$trarea logic !nc un c/#p ce cuprinde un nu#r de ordine care per#ite
identi%icarea ace$tor !nregi$trri.
'peraiile cele #ai %rec1ente pentru #odelul reea $e !#part !n dou categorii:
* cutarea unor ele#ente ale unor entiti cu anu#ite proprieti $au cutarea unor in%or#aii prin utilizarea legturilor !ntre
entiti&
* navigarea !n reeaua de date.
;. Modelul ierarhic
Modelul ierarhic (arbore$cent) e$te con$iderat un caz particular al #odelului reea, !n care diagra#a a$ociat e$te o pdure
(#uli#e de arbori) 0i !n care toate legturile $unt pe direcia dru#ului, de la rdcin la nodul %iu din relaie, toate relaiile %iind
de tipul 1:N.
Ca %el ca !n cazul celorlalte dou #odele, e4i$t po$ibilitatea interpretrii diagra#elor entitate"relaie $ub %or#a #odelului
ierarhic. ,entru e1itarea redundanelor !n #odelul ierarhic, $e %olo$e0te noiunea de ele#ent 1irtual, care !nlocuie0te dublura unui
ele#ent prin adre$a ele#entului re$pecti1, %iecare ele#ent apr/nd !n baza de date real o $ingur dat.
'peraiile din bazele de date de tip ierarhic $e traduc !n proce$e de parcurgere a arborilor. Ele#entele 1irtuale per#it legarea
in%or#aiilor din aceea0i entitate $au din entiti di%erite.
#ple#entarea la ni1el logic pentru #odelul ierarhic poate %i cea utilizat pentru #odelul reea $au prin !nregi$trri de lungi#e
1ariabil.
Datele $unt $tocate pe #ediul e4tern !n ordinea dat de parcurgerea !n preordine a arborilor, ceea ce u0ureaz deter#inarea
in%or#aiilor pentru cererile care $e re%er la de$cendenii unor noduri printr"un nu#r #ic de acce$e la #ediul e4tern.
Metodele curente de proiectare a bazelor de date $unt in general di1izate in trei etape $eparate:
D >rearea $che#ei conceptuale
D >rearea de$ign"ului logic al bazei de date
D >rearea de$ign"ului %izic al bazei de date
1. Crearea schemei conceptuale. Acea$ta e$te un de$ign de ni1el inalt (incluzand relatiile dinte datele intregului $i$te#), care
de$crie datele $i relatiile nece$are pentru e4ecutia operatiilor nece$are, %iind independent de orice #odel de baze de dare. De$ignul
de la ace$t ni1el e$te %oarte general, $e realizeaza intr"o perioada $curta de ti#p $i precizeaza #odul in care gruparile de date $unt
integrate in $i$te#ul de a$a#blu.
:. Crearea designului logic al bazei de date. n acea$ta %aza $che#a conceptuala e$te tran$%or#ata in $tructuri $peci%ice unui
anu#it $i$te# de ge$tiune a bazei de date. Ca ace$t ni1el de$ignul e$te ra%inat, $unt de%inite ele#entele de date $peci%ice care $unt
grupate in inregi$trari. n cazul #odelului rational, la $%ar$itul ace$tei etape 1o# a1ea un nu#ar de tabele care 1or per#ite $tocarea
$i #anupularea corecta a tuturor datelor nece$are $i$te#ului.
!. Crearea designului "izic al bazei de date. n acea$ta etapa de$ignul logic e$te tran$%or#at intr"o $tructura %izica e%icienta.
Ele#ente de algebr relaional
A0a cu# $"a a%ir#at anterior, algebra relaional e$te unul din cele dou li#ba+e %or#ale de interogare ale #odelului
relaional. Algebra relaional o%er #i+loace puternice de a con$trui relaii noi din alte relaii date. Atunci c/nd relaiile date $unt
reprezentate de in%or#aii #e#orate, relaiile con$truite cu #i+loacele algebrei pot %i r$pun$uri la %raze de interogare a$upra
ace$tor in%or#aii.
'rice algebr per#ite con$truirea de e4pre$ii prin aplicarea unor operatori a$upra unor operanzi ato#ici $au a$upra altor e4pre$ii
algebrice. Ade$ea, pentru a grupa operatorii 0i operanzii $unt %olo$ite paranteze.
3n algebra relaional, operanzii $unt:
a) 1ariabile, care reprezint relaii&
b) con$tante, care $unt relaii %inite.
3n algebra relaional Ecla$ic. toi operanzii 0i toate rezultatele e4pre$iilor $unt #uli#i. Fo# grupa operaiile din algebra
relaional tradiional ($au Ecla$ic.) !n patru cla$e:
a) operaiunile $peci%ice teoriei #uli#ilor (reuniune, inter$ecie, di%eren), dar aplicate a$upra relaiilor&
b) operaiunile care !ndeprteaz pri ale unei relaii ($elecie, proiecie)&
c) operaiunile care co#bin tuplurile a dou relaii (produ$ cartezian, +onciune)
d) operaiunea prin care $unt atribuite nu#e noi atributelor relaiei 0iG$au relaiei.
' proprietate %unda#ental !n algebra relaional con$t !n %aptul c %iecare operator accept !n$tanele unei ($au a dou) relaii !n
calitate de argu#ente 0i !ntoarce ca rezultat o alt !n$tan de relaie. Acea$t proprietate per#ite %olo$irea co#pu$ (co#punerea)
operatorilor pentru a %or#a %raze de interogare co#ple4e. ' a$t%el de %raz de interogare core$punde unei e4pre$ii algebrice
relaionale, care $e de%ine0te recur$i1 ca %iind o relaie, un operator algebric unar aplicat unei $ingure e4pre$ii, $au ca un operator
algebric binar aplicat la dou e4pre$ii.
:. >o#ponentele unei baze de date. Arhitectura ANSGH;GS,AB>. 8tilizatorii bazelor de date. Ni1ele de ab$tracie.
' baz de date e$te alctuit din #ai #ulte pri co#ponente, pe care le 1o# nu#i obiecte ale bazei de date. 8nele obiecte $unt
%olo$ite totdeauna (%r ele baza de date nu poate e4i$ta), iar altele pot %i utilizateocazional. <iecare din ace$te obiecte au %uncii
di%erite, ur#rind realizarea a1anta+elor prezentate #ai $u$, $au realizarea unei inter%ee cat #ai agreabile pentru utilizator, a$t%el
incat $ u0ureze pe cat po$ibil lucrul cu baza de date.
Tabele"Sunt utilizate pentru a a$igura %uncia de $tocare a in%or#aiilor o#ogene in cadrul bazelor de date, %iind alctuite din
randuri (inregi$trri) 0i coloane (ca#puri). ' baz de date trebuie $ conin cel puin un tabel pentru a e4i$ta. >elelalte obiecte
$unt opionale. <iecare tabel reprezint o entitate, ceea ce !n$ea#n o per$oan, un loc, un lucru $au un e1eni#ent care trebuie $
%ie reprezentat !n baza de date, cu# ar %i un client, un cont bancar $au o tranzacie bancar. <iecare r/nd al tabelului reprezint o
apariie a entitii.
Interogri"'%er po$ibilitatea cutrii 0i reg$irii rapide a in%or#aiilor $tocate in tabele, prin che$tionarea bazei de date. Ele pot
%i co#parate cu anu#ite intrebri care i $e pun bazei de date 0i ca care acea$ta trebuie $ r$pund.
Formulare"Sunt %ere$tre din ecranul calculatorului, care pot %i per$onalizate pentru a prezenta datele coninute in tabele $au
interogri $ub o %or# u0or de inele$. Ele dau 0i po$ibilitatea actualizrii datelor din tabele, in $en$ul c orice #odi%icare e%ectuat
la ni1elul lor adduce dup $ine #odi%icarea in%or#aiilor $tocate in tabele.
Rapoarte",rezint datele din tabele $au interogri intr"o %or# care poate %i i#pri#at pe $uport de hartie.
,agini 5eb"8n tip $pecial de pagin 5eb, de$tinat a%i0rii cu a+utorul nternetului $au ntranetului a datelor coninute intr"o baz
de date.
Macrocomenzi",er#it e%ectuarea unor $arcini de rutin, prin auto#atizarea ace$tora intr"o $ingur co#and, care poate %i
apelat #ult #ai u0or de %iecare date cand e$te nece$ar.
Module"Sunt utilizate pentru auto#atizarea unor operaii, la %el ca 0i #acroco#enzile, in$ utilizeaz un li#ba+ de proga#are
pentru acea$ta, ele %iind acce$ibile celor care di$pun de cuno0tine de progra#are.
=oate ace$te obiecte prezente in cadrul unei baze de date Micro$o%t Acce$$ pot %i utilizate i#preun& uneori chair depind unele de
altele. n$ i#preun pot crea o aplicaie %oarte bine $tructurat 0i care poate %i utilizat chiar la ni1elul unor in$tituii #ari.
#ar in bd relationale componentele sunt: Tabele
$ela%iile reprezint a$ocierile dintre tabelele bazelor de date relaionale. De0i %iecare tabel relaional poate e4i$ta independent,
e$ena bazelor de date e$te toc#ai $tocarea in%or#aiilor !ntre care e4i$t legturi. De e4e#plu, pe l/ng %il#ele propriu"zi$e, $e
pot $toca 0i in%or#aii de$pre categoriile de %il#e %olo$ite in #agazin. 3n acela0i ti#p, putei $toca 0i in%or#aii de$pre copiile
%iecrui %il#, inclu$i1 data la care a %o$t pri#it copia 0i %or#atul ace$teia, cu# ar DFD. Belaiile de tipul &'& (unu la unu) care
pre$upun c unui #e#bru din colecia A !i core$punde un $ingur #e#bru din colecia B.
Belaiile de tipul &'m sau m'& (unu la mul%i sau mul%i la unu)* Belaiile de tipul m'm (mul%i la mul%i)+
$estrictii ' re$tricie e$te o regul $peci%icat pentru un obiect al bazei de date (de obicei, un tabel $au o coloan), a1/nd rolul de
a li#ita !ntr"un #od oarecare do#eniul de 1alori per#i$e pentru obiectul re$pecti1 al bazei de date $estric%ia ,-T ,.//"
i#piedica %olo$irea 1alorii nule& $estric%ia cheie primar0 (pri#ar7 Ie7). De%init pe coloana (coloanele) cheie pri#ar ale
unui tabel pentru a garanta c 1alorile cheie pri#ar $unt !ntotdeauna unice !n !ntreg tabelul. $estric%ia de unicitate (uni9ue).
De%init pe o coloan $au un $et de coloane care trebuie $ conin 1alori unice !n cadrul tabelului.(deo$ebirea de cheia pri#ara ca
un table poate a1ea # #ulte re$trictii de unicitate , $i coloanele pot contine $i 1alori nule)
Arhitectura A,1#23!21PA$C
Arhitectura intern a unui $i$te# de BD con%or# $tandardului ANSGH;GS,AB>($tandart a#erican propu$ in 1?@J" American
National Standards Institute, Standards Planning And Requirements Committee, is an abstract design standard for
a Database Management System (DBMS), first proposed in 1975
[1]
.) conine trei ni1eluri %uncionale:intern, conceptual,
e4tern.
3ntr"un $i$te# in%or#atic ce utilizeaz baze de date, organizarea datelor poate %i analizat din
#ai #ulte puncte de 1edere 0i pe di%erite ni1eluri. De obicei, abordarea $e %ace pe trei ni1eluri: intern,
conceptual 0i e4tern
K Nivelul intern(fizic 6 con$tituit din $che#a intern ce de$crie $tructura de $tocare %izic a datelor !n BD, utiliz/nd un #odel al
datelor %izice. Ca ace$t ni1el $e de$criu detaliile co#plete ale $tocrii 0i #odul de acce$ la date. Ace$ta de$crie #odul !n care
datele $unt $tocate !n baza de date 0i pe hard5are"ul co#puterului.
Structura datelor e$te de$cri$ %oarte detaliat, %iind acce$ibil nu#ai $peciali0tilor (ingineri de
$i$te#, progra#atori !n li#ba+e de a$a#blare $au alte li#ba+e apropiate de E#a0inL). >ele dou pri
principale ale bazei la ace$t ni1el $unt:
1. un $et de progra#e care interacioneaz cu $i$te#ul de operare pentru !#buntirea
#anage#entului bazei de date&
:. %i0ierele $tocate !n #e#oria e4tern a calculatorului.
Ca ace$t ni1el, $tructura bazei de date $e concretizeaz !n $che#a intern.
K Nivelul conceptual (global)4 $au $che#a conceptual, de$crie $tructura !ntregii BD pt o cu#unitate de utilizatori. Ca ni1el
conceptual $e %ace o de$criere co#plet a BD a$cunz/ndu"$e detaliile legate de $tocarea %izic 0i detaliind de$crierea entitilor,
tipurilor de date, relaiile dintre ele 0i re$triciile a$ociate $i #odul in care $unt inter"cone4e.
Ca ace$t ni1el, $tructura bazei de date $e concretizeaz !n $che#a conceptual.
K Nivelul e!tern 6 $au ni1elul 1izual (utilizator), include o colecie de $che#e e4terne ce de$criu BD prin pri$#a di%eriilor
utilizatori.Ace$ta e4clude date irele1ante , precu# $i date pe care utilizatorul nu e$te autorizat $a le acce$eze. A$t%el, $tructura
bazei de date $e prezint $ub di%erite #achete, re%erite uneori 0i ca $ub$che#e, $che#e e4terne $au i#agini (1ie5"uri), !n %uncie
de ne1oile %iecrui utilizator $au grup de
utilizatori.
'biecti1ul arhitecturii cu trei ni1ele e$te de a
$epara opinia utilizatorilor (e) dinbaza de date de la #odul !n care ace$ta e$te reprezentat %izic. Ace$t lucru e$te de dorit, deoarece:
Acea$ta per#ite per$onalizat independent de opiniile utilizatorilor: <iecareutilizator trebuie $ aib po$ibilitatea de
a acce$a acelea0i date, dar care au o1iziune di%erit per$onalizat de date. Ace$tea ar trebui $ %ie independente:#odi%icri
la un punct de 1edere nu ar trebui $ a%ecteze altele.
Ea a$cunde detaliile %izice de $tocare de la utilizatori: 8tilizatorii nu ar trebui $ $e ocupe cu detalii %izice de $tocare de baze de
date. Ace$tea ar trebui $ li $e per#it $ lucreze cu datele !n $ine, %r preocupare pentru #odul !n care $unt $tocate %izic.
Ad#ini$tratorul bazei de date ar trebui $ %ie !n #$ur de a $chi#ba $tructurile de baze de date, %r a
a%ecta opiniile utilizatorilor: Din c/nd !n rationali$ation$ de ti#p $au alte #odi%icri !n $tructura de date a unei organizaii 1a
%i nece$ar.
Structura intern a bazei de date nar trebui $ %ie a%ectat de $chi#bri la a$pectele %izice ale $tocare: De e4e#plu, o trecere la
un nou di$c.
Ad#ini$tratorul bazei de date ar trebui $ %ie capabil de a $chi#ba $tructura conceptual $au global a bazei de date, %r a
a%ecta utilizatorii: Ace$t lucru ar trebui $ %ie po$ibil, p$tr/nd !n acela0i ti#p opiniile utilizatorilor indi1iduali dorite.
"tilizatorii #$ %i rolurile lor&
neinformaticieni 6 bene%iciarii in%or#aiei, nu tre $ cunoa$c $tructura BD, nu tre $ progra#eze
aplicaii, ci doar $ le %olo$ea$c prin inter#ediul unei inter%ee $u%icient de prietenoa$e.
informaticieni 6 creaz $tructura BD 0i realizeaz procedurile co#ple4e de e4ploatare a BD&
administratorul BD 6 utilizator $pecial, cu rol hotr/tor !n %uncionarea opti# a !ntregului $i$te#..
Nivele de ab'tractie
Nivelul fizic de ab'trac(ie )n #$& Ab'tractizare 6proce$ul de identi%icare a caracteri$ticilor di$tincti1e a unei
cla$e $au obiect %r a %i ne1oie de a proce$a toate in%or#aiile re%eritoare la cla$ $au obiect.
<i$iere:
"$ec1entiale"$ortate in ordinea cre$terii cheii pri#are.A1e# acce$ la in$tructiunea n daca a# trecut prin
in$tructiunea n"1.
"inde4at $ec1entiale"inde4 e$te %i$ierul au4iliar ane4at la cel de baza.nde4$ii $e con$truie$c pentru %iecare
cheie $ecundara.<aciliteaza acce$ul.
"B"arbori"daca $int nu#ai pointeri $i nu date atunci $e nu#e$c BM"arbori
"tabele de di$per$ie(ha$h"table)%i$iere cu acce$ direct.
Nivelul logic de ab'trac(ie )n #$.
Modele de date:
"ierarhic
" Nod arti%icial
retea progra#area de1ine co#plicata
"relational(propu$ de >odd 1?@A) Modelul relaional prezint datele $ub %or#a %a#iliarelor tabele
bidi#en$ionale, $i#ilar cu o %oaie de calcul tabelar E4cel. Spre deo$ebire de o %oaie de calcul tabelar, nu
e$te obligatoriu ca datele $ %ie $tocate !ntr"o %or# tabelar, iar #odelul per#ite 0i co#binarea tabelelor
(crearea uniunilor (+oining), !n ter#inologia relaional) pentru %or#area 1izualizrilor, care $unt prezentate
tot ca tabele bidi#en$ionale. <le4ibilitatea e4traordinar a bazelor de date relaionale e$te dat de
po$ibilitatea de a %olo$i tabelele independent $au !n co#binaii, %r nici o ierarhie $au $ec1en prede%init
!n care trebuie $ $e %ac acce$ul la date
Nivelul conceptual de ab'trac(ie )n #$&
Sche#a conceptual " reprezentare a tuturor in%or#atiilor continute de BD !ntr"o %or# ab$tract. Ea
reprezint o 1iziune, o 1edere a datelor a0a cu# $unt ele !n realitate, %r a tine cont de #odul !n care
1ede datele %iecare utilizator. Ni1elul conceptual reprezint o 1edere general a BD. Ace$t ni1el de$crie ce
date $unt $tocate !n BD 0i relatiile dintre ace$tea. ,entru o BD e4i$t o $ingur $che# conceptual
Ca ace$t ni1el $e con$truie$te $che#a conceptuala a BD.
Modele de date:
"entitatea a$ocierii.Ele#ente:entitati $i a$ocieri intre entitati.Atribute(nu#e,prenu#e).8MC"li#ba+ uni1er$al
de #odelare.
"retele $e#antice"#odel ce $e %olo$e$te in baze de cuno$tinte.
Nivelul de ab'trac(ie a viziunilor utilizatorilor )n #$&
' 1edere e4tern poate %i con$iderat ca %iind din punctul de 1edere al utilizatorului indi1idual
continutul bd, adic ceea ce E1ede. el din baza de date. Ace$t ni1el de$crie acea parte a bazei de date care
e$te rele1ant pentru %iecare utilizator $che#a e4tern %iind %or#at din #ulti#ea de $ub"$che#elor e4terne.
;.Modelul relaional de date. Structura #odelului. >on$tr/ngeri de integritate.
Modelul relational a %o$t pri#ule4e#plu de #odel de date %or#al propu$ de E. >'dd in 1?@A la centrul de cercetare din San No$e
(>ali%ornia)in cadrul %ir#ei BM.,rin #odel datele $unt reprezentate $i #anipulate in #od ab$tract.M.dea$e#enea propune tehnici
ce a+uta ad#ini$tratorul de a detecta $i corecta po$ibilele proble#e de corectare ce pot aparea o data cu pregatirea datelor pentru
i#ple#entare intrun SGBD concret. 'rice #odel de date con%or# $uge$tiei lui cod ,trebuie $a $e bazeze pe ; co#ponente:
$tructurile de date, con$tringerile de integritate $i operatorii de #anipulare a datelor.
1tructurile de date" $unt de%inite de un li#ba+ de de%inire a datelor (data de%inition language). Modul in care datele e%ecti1 $unt
$tocate in baza. Ele#entele principale ale $tructurii relationale $unt relatiile,tuplurile,atributele,do#eniile.
5anipularea datelor. Modul in care obtine# in%or#atiile din bazele de date(ce pre$upune o $erie de operatori aplicabili unei $au
#ai #ultor relatii)Belatiilor pot %i #anipulate utilizind un li#ba+ de #anipulare a datelor(data #anipulation language). n #odelul
relational, lio#ba+ul %olo$e$te operatorii relationali bazati pe conceptul algebrei relationale.
Constringerile de integritate. ,rin integritatea datelor $e $ubintelege ca datele ra#in $tabile in $iguranta $i corecte. ntegritatea in
#odelul relational e$te #entinuta de con$tringeri interne care nu $unt cuno$cute utilizatorului.
odelul relaional al datelor $e poate de%ini printr o $erie de $tructuri de date (relaii alctuite din tupluri), operaii aplicate a$upra
$tructurilor de date ($elecie, proiecie, +onciune etc.) 0i reguli deintegritate care $ a$igure con$i$tena datelor (chei pri#are,
re$tricii re%ereniale $.a.).Ca #odul $i#pli$t, o baz de date relaional (BDB)poate %i de%init ca un an$a#blu de relaii(tabele)&
%iecare tabel ($au tabel), alctuit din linii (tupluri), are un nu#e unic 0i e$te $tocat pe $uport e4tern (de obicei di$c). Ca inter$ec
ia unei linii cu o coloan $e g$e0te o 1aloare ato#ic (ele#entar). ' relaie conine in%or#aii o#ogene legate de anu#ite
entiti, proce$e, %eno#ene:>OBP, S=8DENP, C'>AC=OP, ,EBS'NAC, <A>=8B etc.
C-nstringerile de integritate nu#ite $i re$trictii(reguli) ce de%ine$c cerintele pe care trebuie $a le $ati$%aca datele din bza de date
pt a putea %i con$iderate corecte,coerente in raport cu lu#ea reala pe Iare o re%lecta.
>on$tringerile $unt princip #od de integrare a $e#anticii datelor in cadrul #odelului relational.
Daca integritatea bazei de date nu e$te a$igurata, adica nu $unt re$pectate con$tringerile de integritate,$e $pune ca baza de date e$te
inco$i$tenta.
E4i$ta J tipuri de con$tringeri de integritate: ,ot null+uni6ue+ primar7 8e7+"oreign 8e7+ chec8.
Not null"$peci%ica %aptul ca un ci#p nu poate a1ea 1alori necuno$cute,nule
8ni9ue"a$igura ca 1alorile duplicate nu 1or %i intordu$e pt ci#purile $peci%icate,in$a pot a1ea 1alori nule.
>heie pri#ara"un ci#p $au o #ulti#e de ci#puri care identi%ica inregi$trarile unui tabel,$i ci#pul e$te cheie pri#ara $i nu poate
contine 1alori duplicate. 1 tabel "1 $ingura cheie pri#ara , celelalte 6$int $ecundare %olo$ite pt %acilitarea acce$ului la bd.
>heie e4terna"un ci#p $au o #ulti#e de ci#puri ce core$pund cheii pri#are a altui tabel
>hecI"li#iteaza 1alorile care pot %i luate de un ci#p $au #ai #ulte.n cazul actualizarii bazei de date, $i$te#ul te$teaza
con$tringerea booleana care ur#eaza dupa cu1intul >hecI.Daca con$tringerea redata de e4pre$ia logica ia 1aloarea ade1ar,
actualizarea e$te acceptata.e4: $e poate de%ini o con$tringere a do#eniului de 1alori ale ci#pului Salariu,$tabilind $alariu
%unctionarilor intre 1alorile 1;Q $i 1AAAA. SalariuRS1;Q,AA and Salariu TS1AAA
U.Algebra relaional. nterogri !n algebra relaional
Algebra relationala poate %i definit ca o multime de operatii care au ca operanzi relatii, iar rezultatul este tot o relatie.
peratiile algebrei relationale se impart in operatii pe multimi !"#U$%U$#&,%$'#"(#)'%&,D%*#"#$'&,+"DU(
)&"'#,%&$- si operatii relationale speciale !"#('"%)'%&,+"%#)'%&,.$)'%U$#&,Di/%,%U$#&-
%nterogarea este operatia prin care se obtin informatiile dorite !care indeplinesc o anumita conditie-dintro baza de date.
%n algebra relationala o interogare se formuleaza printro e0presie care defineste urmatoarele elemente1
lista atributelor relatiei rezultat !atribute de proiectie-
lista relatiilor din care se e0trag informatiile
conditiile pe care trebuie sa le indeplineasca tuplurilor relatieirezultat.
J.>o#ponentele generale ale li#ba+ului SVC: =ipuri de date !n li#ba+ul SVC.
Ci#ba+ul SVC (Structured Vuer7 Canguage) e$te li#ba+ul utilizat de #a+oritatea $i$te#elor de baze de date relationale (SGBDB)
pentru de%inirea $i #anipularea date. E$te un li#ba+ neprocedural 0i declarati1, deoarece utilizatorul de$crie ce date 1rea $
obin, %r a %i ne1oie $ $tabilea$c #odalitile de a a+unge la datele re$pecti1e. Nu poate %i con$iderat un li#ba+ de progra#are
$au unul de $i$te#, ci #ai degrab %ace parte din categoria li#ba+elor de aplicaii, %iind orientat pe #uli#i.
>o#ponentele li#ba+ului SVC:
SVC: co#ponente
W DDC: Data De%inition Canguage
W DMC: Data Manipulation Canguage
W D>C: Data >ontrol Canguage
W Enbedded
>o#ponentele pe care le cuprinde li#ba+ul SVC $unt ur#atoarele:
1. componenta de descriere a datelor relationale (li#ba+ul de de$criere a datelor " CDD), categorii de date, tipul ace$tora,
legturi, reguli de 1alidare, %or#atare.
:. componenta de manipulare a datelor relationale (li#ba+ul de #anipulare a datelor " CMD),
a#bele %iind ab$olut nece$are !n ge$tiunea BD. $electarea oricrui c/#p de date, %iltrarea datelor, $ortarea, corelarea cu alte
in%or#aii 0i totalizarea rezultatelor, actualizare, 0tergere, copiere !n alt tabel.($elect, in$ert, update, delete)
,e l/nga ace$te co#ponente principale, $tandardul SVC: #ai pre1ede $i alte co#ponente ale li#ba+ului:
;.controlul tranzactiilor- contine comenzi pentru specificarea tranzactiilor. Unele implementari adauga comenzilor prevazute 2n
standard si alte comenzi suplimentare de control al concurentei si refacerea datelor. definirea utilizatorilor cu drept de citire,
actualizare 3i inserare date, parta4area datelor.
DD5 1 5imba4 de definire a datelor
6.controlul 'ecuritatii 'i refacerea datelor- comenzi de administrare a bazei de date pentru definirea utilizatorilor si a
drepturilor acestora de acces la tabele. &ceasta componenta este dependenta de (7BD, iar pentru sisteme performante,
administratorul BD este obiectul activitatii unei categorii speciale de utilizatori ai BD - administratori ai BD.
Tipuri de date in l 19/
Ca crearea e%ecti1 a oricrei tabele, pentru %iecare atribut, pe lang nu#e 0i e1entuale re$tricii trebuie obligatoriu declarat tipul
ace$tuia 6 dac e$te un nu#r, un 0ir de caracterre, o dat calendari$tic etc. De0i e4i$t unele di%erene $e#ni%icati1e intre
dialectele SVC, ur#toarele categorii de tipuri de date $unt c1a$i"prezente.
" SMACCN=: intregi " $curte (U poziii, reprezentate pe 1Q bii),
" N=EGEB $au N=: intregi (? poziii, ;: bii),
" N8MEB>(p,s) $au DE>MAC(p,s) $au DE>(p,s) " reale, cu un total de p poziii, din care s la partea %racionar ,
" <C'A=: reale, 1irgul #obil (:A poziii ptr. #anti$),
" BEAC: real, 1irgul #obil (cu precizie #ai #ic decat <C'A=, dar la ni1elul de intrare e$te identic),
" D'8BCE ,BE>S'N: reale, 1irgul #obil, dubl precizie (;A de poziii ptr. #anti$),
" >2AB(n) $au >2ABA>=EB(n): 0ir de caractere de lungi#e n (#a4. :UA),
" FAB>2AB(n) $au >2AB FABXNG(n) $au >2ABA>=EB FABXNG(n): 0ir de caractere de lungi#e 1ariabil (#a4. :JU),
" DA=E: dat calendari$tic,
" =ME: ora etc.,
" =MES=AM,: an, lun, zi, ora, #inutul, $ecunda, plu$ o %raciune zeci#al dintr"o $ecund.
Q.De%inirea $che#ei bazei de date !n SVC. Beprezentarea con$tr/ngerilor de integritate !n SVC.
(chema!structura, intensia- unei baze de date conine denu#iri ale tabelelor, nu#ele, tipul 0i lungi#ea atributelor, re$tricii de
unicitate, de non"nulitate, re$tricii la ni1el de atribut, linie 0i alte e1entuale tipuri de re$tricii de co#porta#ent, precu# 0i
re$tricii re%ereniale. Ca ace$tea $e adaug cele pri1ind drepturile utilizatorilor, de%iniia 0i re$triciile tabelelor 1irtuale, indec0i
etc. <oarte i#portante !n lu#ea pro%e$ioni0tilor dez1oltrii de aplicaii cu bazele de date $unt procedurile $tocate 6 progra#e de
%or#a %unciilor, procedurilor, pachetelor 0i #ai ale$ declan0atoarelor (triggerelor) 6 care, dup cu# le $pune 0i nu#ele $unt
#e#orate !n $che#a bazei de date 0i %ac parte integrant din acea$ta.
Sche#a unei baze de date poate %i reprezentat gra%ic, a1anta+ul principal %iind o #ai bun $uge$ti1itate. at c/te1a reguli pentru
reprezentarea gra%ic a unei BDBJ:
' tabel $e reprezint pe dou linii, pe pri#a %iind $cri$ nu#ai nu#ele relaiei iar pe cea de"a doua nu#ele atributelor. 'rdinea
prezentrii atributelor nu are i#portan. =otu0i, !n $copul u0urrii !nelegerii $che#ei, coloanele care de$e#neaz cheia pri#ar
$e di$pun $ucce$i1 (bine!nele$, atunci c/nd $unt #ai #ulte). Ca %el 0i coloanele care con$tituie o cheie $trin. 3n general, cheia
pri#ar e$te pla$at la #arginea $t/ng a tabelei (pri#a $au pri#ele coloane).
Nu#ele coloanelor ce alctuie$c cheia pri#ar $e $ubliniaz cu o linie continu, iar cele care alctuie$c identi%icatorii $ecundari
$e $ubliniaz cu linie punctat.
Nu#ele unei coloane %acultati1e e$te $cri$ !ntre paranteze.
Dac o cheie $trin e$te alctuit din #ai #ulte coloane, $e utilizeaz acolada pentru a le grupa.
' re$tricie re%erenial e$te reprezentat printr"o $geat care pleac de la nu#ele coloanei de re%erin ($au de la 1/r%ul
acoladei, !n cazul unui grup de re%erin) 0i are 1/r%ul !n atributele tabelei la care $e %ace re%erina (tabela printe).
@.nterogarea bazei de date !n SVC. =ipuri de interogri cu $ubinterogri.
Sub nu#ele de interogare $au cerere $unt re%erite acele $olicitri de date !n #od direct %r indicarea #odului de obtinere. '
cerere $e poate lan$a din %erea$tra de co#enzi $au din interiorul unui progra# <o4,ro pentru c ea %uncYioneaz ca orice alt
co#and dar $e poate proiecta !ntr"un #od interacti1 cu a+utorul utilitarului Vuer7 De$igner.
Interogrile, a ca scop reg!sirea date"or dp! criterii specifice.
ZZZn$tructiunea SECE>= reprezinta blocul de interogare de baza $i ea $electeaza in%or#atiile dorite din tabelele bazei de date.
n$tructiunea SECE>= e$te %oarte puternica $i are ur#atoarea $inta4a generala:
SECE>= [DS=N>=\ li$ta]coloane <B'M li$ta]tabele [^2EBE conditie\ [clauze]$ecundare\&
Se re#arca ; $ectiuni (clauze) i#portante ale con$tructiei de interogare: clauza SECE>=, clauza <B'M $i clauza ^2EBE.
>lauza SECE>= introduce li$ta atributelor (coloanelor) unor tabele $au al e4pre$iilor care 1or %i $electate $i a%i$ate. >oloanele din
li$ta trebuie $a apartina uneia din tabelele specificate in clauza *"8. se pot obtine doua sau mai multe linii identice, daca e0ista
anga4ati cu acelasi nume si prenume. %n general, daca lista de atribute nu contine o cheie a relatiei, rezultatul operatiei (#5#)'
poate contine linii duplicat. +entru eliminarea liniilor duplicat se introduce parametrul D%('%$)' si atunci rezultatul este o
relatie in sensul definitiei din modelul relational.
>lauza <B'M e$te obligatorie daca intr"una din clauzele SECE>=, ^2EBE, 2AFNG apar nu#ede atribute (coloane ale unor
tabele). n ace$t caz, li$ta de tabele care in$ote$te clauza <B'M trebuie $a contina nu#ele tuturor tabelelor ($eparate prin 1irgula)
ale caror coloane $e %olo$e$c. Daca li$ta contine #ai #ult de un tabel, atunci nu#ele coloanelor din clauza SECE>= trebuie $a %ie
di%erite $i, daca nu $unt di%erite, atunci $e cali%ica nu#ele coloanei cu nu#ele tabelului caruia ii apartine (precedand nu#ele
atributului cu nu#ele tabelului ur #at de operatorul -punct.(.).E4.SECE>= ANGANA=.Nu#e,,renu#e,SE>=.Nu#e <B'M
ANGANA=,SE>=&
>lauza ^2EBE re$trictioneaza tuplurile returnate ca rezultat la acele tupluri care indepline$c conditia introdu$a de acea$ta clauza.
n %or#a cea #ai obi$nuita, clauza ^2EBE e$te ur#ata de o conditie, data ca o e4pre$ie booleana.
>lauza 'BDEB BX introduce nu#ele atributului dupa care $e %ace ordonarea liniilor rezultate. 'rdonarea e$te i#plicit in ordine
cre$catoare& daca nu#ele atributului e$te ur#at de cu1antul DES>, ordonarea liniilor $e %ace in ordine de$cre$catoare a 1alorilor
acelui atribut.
>lauza GB'8, BX $e %olo$e$te pentru a grupa rezultatele %unctiilor agregat (totalizatoare) dupa 1aloarea uneia $au #ai #ultor
coloane. Daca $e dore$te calculul unei 1alori totalizatoare $eparat pe grupe de linii, atunci $e introduce clauza GB'8, BX, ur#ata
de nu#ele uneia $au #ai #ultor coloane. n ace$t caz, %unctia totalizatoare $e aplica $eparat acelor linii care au aceea$i 1aloare a
atributelor li$tate de clauza GB'8, BX. De e4e#plu, $alariul #ediu calculat $eparat pe grupe de anga+ati, %iecare grup %iind
co#pu$ din linii care au aceea$i 1aloare a atributului <unctie, $e obtine cu ur#atoarea co#anda SVC:
SECE>= AFG(Salariu) <B'M ANGANA= GB'8, BX(<unctie)&
>lauza 2AFNG e$te a$e#anatoare clauzei ^2EBE, adica introduce o conditie pe care trebuie $a o indeplinea$ca tuplurile
rezultat, dar, in plu$, per#ite utilizarea %unctiilor agregat in e4pre$ia conditionala. De e4e#plu:
SECE>= Nu#e,,renu#e <B'M ANGANA= 2AFNG Salariu RS AFG(Salariu)&
Tipuri de interogari cu subinterogari
' $ubinterogare e$te o in$tructiune (#5#)' imbricat 2ntr-o instructiune (#5#)', (#5#)'...%$', %$(#"'...%$', D#5#'#
sau U+D&'#, sau 2ntr-o alt subinterogare.
8tilizati predicatele ANX $i (8#, care sunt sinonime, pentru a regsi 2nregistrri din interogarea principal, care satisfac
comparatia cu orice 2nregistrri regsite 2n subinterogare. Urmtorul e0emplu returneaz toate produsele al cror pret unitar
este mai mare dec9t cel al oricrui produs v9ndut cu reducere de cel putin :; de procente1 (#5#)' < *"8 +roduse =>#"#
+retUnitar ? &$@ !(#5#)' +re Unitar *"8 Detalii)omand =>#"# "educere ?A .:;-B
_.>o#ponenta DMC a li#ba+ului SVC. 'peraiile de actualizare a bazei de date.
Cogic, co#enzile li#ba+ului SVC $unt !#prite !n trei co#ponente:
" li#ba+ul de de%inire a datelor (Data De%inition Canguage)" DDC&
" li#ba+ul de #anipulare a datelor (Data Manipulation Canguage)" DMC&
" li#ba+ul de control al datelor (Data >ontrol Canguage)"D>C.
,ri#ul pentru crearea $tructurii de baz de date, al doilea, dup ce $tructura e4i$t, pentru a aduga date !n tabele 0i pentru a le
#anipula. A treia co#ponent o%er po$ibilitatea de a prote+a ($ecuriza) datele
Ci#ba+ul de #anipulare a datelor (DMC) e$te partea de baza a SVC. >/nd doriti $a adaugati, $a #odi%icati $au $a $tergeti date
dintr"o baza de date, e4ecutati o co#anda DMC.
>o#enzile de #anipulare a datelor (DMC): NSEB=, 8,DA=E, DECE=E 0i SECE>=, utilizate pentru a introduce noi r/nduri,
pentru a $chi#ba (actualiza) r/ndurile e4i$tente, pentru a 0terge r/ndurile nedorite din baza de date re$pecti1, 0i, !n %ine,
*+,+CT - comanda cea mai utilizat, folosit pentru a cuta, a selecta 2nregistrri din tabel sau dintr-o combinaie de tabele ale
bazei de date.
-peratii de actualizare a bd
Begulile de actualizare a bd %ac parte din cele ; co#ponente ale #odelului relational de date().E4a#ina# cele ; operatii de
actualizare a datelor in$erare datelor, $tergerea datelor, #odi%icarea datelor.
1intaxa comenzii #,1E$T %$(#"' %$' tabel C!coloanaC,coloana..D-D
/alues !valoare C,valoare..D-B
Comenzii 1Terge Delete :F$-5; tabel
[5here conditie\&
SVCR DECE=e <B'M departa#ent
5here dna#eS`de1elop#ent`
Comanda actualizare prin .PDATE
8,DA=E tabel
SE= coloana S 1aloare[,coloanaS1aloare\
[^2EBE conditie\&
E4: SVCR8,DA=E EM,
SE= deptnoS:A
^2EBE epnoS@@Q_
?.De%inirea drepturilor 0i per#i$elor de acce$ la baza de date !n li#ba+ul SVC. >on$truirea 1iziunilor.
nainte de $tabilirea drepturilor $i per#i$elor a$upra 1iziunilor $au altor obiecte ale unei bd pt un utilizator anu#it,e$te nece$ar ca
ace$t utilizator $a %ie in li$ta de acce$ a$upra $er1erului $au bd re$pecti1e.,t $tabilirea per#i$elor $e e4ecuta ur#atorii pa$i:
n ob<ect explorer $e e4tinde do$arul =ie>s in #eniul de conte4t $e %ace un clicI pe optiunea Properties apare o %erea$tra
cuno$Iuta , in partea $tinga $e alede optiunea Permission+"R pt adaugarea unui utilizator $au rol $e apa$a butonu search
Fa aparea o %erea$tra de dialog 1elect .sers or role $e apa$a pe Bro>se $i $e alge rolul $au utilizatorul care 1a a1ea acce$ la
?iziunea data+apoi $e con%ir#a prin apa$area butonului -8. For aparea utilizatorii care au acce$ la baza de date $i prin .ser s o"
roles pot %i editate per#i$iunile de acce$ la bd prin co#enzile li#ba+ului de control a datelor.
Ci#ba+ul de control a datelor 6 per#ite de%inirea 0i #odi%icarea drepturilor a$upra bazelor de date. >o#enzile utilizate $unt:
" GBAN= 6 pentru acordarea unor drepturi altor utilizatori a$upra bazei de date&
" BEF'aE 6 pentru anularea anu#itor drepturi ale utilizatorilor.
Construirea ?iziunilor
Sinta4a:
>reate Fie5 [nu#e]$che#a.\ nu#e]1iziune [bcoloana [,...n\c\
[5ith Tatribute]1iziuneR[,...n\\
A$ in$tructiune]$elect
[5ith checI option\ [&\
>reate 1ie5 e4e#plu: A$ $elect producator,tip
<ro# produ$e 5here =ipS`,>`
^ith >hecI 'ption&
in$tructiunea 5ith checI option pre$upune ca doar liniile care au =ipS`,>`pot %i in$erate,actualizate $au $ter$e.Adic nici o
in$tructiune DMC nu poate $a utilizeze 1iziunea decit daca criteriul din clauza ^here e$te $ati$%acut.
' 1iziune (FE^) e$te un table 1irtual al carui continut e$te de%init de o interogare.' F. poate %i create din unul $au #ai #ulte
tabele ale BD.
Fiziunile $unt %olo$ite pentru a concentra,$i#pli%ica $i per$onalize %iecare patrundere a utilizatorului in BD.Ele pot %i %olo$ite $i ca
#ecani$#e de $ecuritate per#itind utilizatorului $a acce$eze date prin inter#ediului 1iziunilor,%ara a acorda utilizatorilor
per#i$iuni $a acce$eze tabelele de baza direct.Fiziunile pot %i dea$e#enea %olo$ite atunci cind $unt copiate date din SVC $er1er $i
pentru parta+area datelor.: tipuri de creare a 1iziunilor:
<olo$ind in$tructiunea >reate 1ie5 a li#ba+ului tran$act]$9l
<olo$ind FE^ De$igner al co#ponentei SV $er1er #anage#ent $tudio.
,rincipii de creare a 1iziunilor:
' F. poate %i create nu#ai in baza de data in uz.=otu$i tabelele $i 1iziunile ce $e re%era la o 1iziune noua pot e4i$ta in alte baze de
date $au c+iar pe alte $er1ere
,ot %i con$truite 1iziuni a$upra altor 1iziuni $au procedure ce $e re%era la 1iziuni.A$upra F. nu pot %i con$truiti indec$i $au de%initi
indec$i %ull"te4t.
1A.Declan0atoarele !n SVC. Ge$tionarea acce$ului concurenial la date. ,relucrarea tranzaciilor
Declan$atoarele $unt o cla$a $peciala de proceduri $tocate (e$te o #ulti#e de in$tructiuni care realizeaza o anu#ita operatie,cu
alte cu1inte e$te un progra# in SVC) a$ociate unui tabel,de%inite pt a %i lan$ate in e4ecutie la initierea unui e1eni#ent $i $unt un
in$tQru#ent puternic pt i#ple#entarea aplicatiilor de bd. SVC $er1er o%era ; tipuri de declan$atoare DMC,DDC,Cogon
DMC $unt lan$ate in bd cind are loc un e1eni#ent al li#ba+ului de #anipulare a datelor %olo$ind in$truciunile NSEB=,
8,date,DECE= care actualizeaza datele unui tabel $au 1iziuni, creaza #ecani$#e de 1alidare care i#plica cautari in # #ulte
tabele,te$teaza erorile $i le trateaza.
DDC $e utilizeaza pt controlul e1eni#entelor la ni1el de bd $au la ni1el de $er1er, $e utilizeaza cind $e cere orice #odi%icare a
$che#ei bd, cind $e cere inregi$trarea #odi%icarilor $au e1eni#entelor care au a1ut loc in bd. Nu $unt lan$ate ca ra$pun$ la
in$tructiunile de tipul 8,DA=E,NSEB=,DECE=E, in $chi#b $unt lan$ate de 1arietatea de in$tructiuni de de%inire a datelor care
incep cu >BEA=E ,AC=EB, DB',.
CoG'N $unt proceduri $tocate care $e lan$eaza ca ra$pun$ la un e1eni#ent C'G'N. Ace$t e1eni#ent apare atunci cind e$te
$tabilita o $e$iune utilizator cu o in$tanta SVC Ser1er. Declan$atoarele C'G'N $e lan$eaza dupa ce %aza de autenti%icare a logarii
e$te in %inal, dar inainte de $tabilirea $e$iunii utilizatorului.Declan$atoarele Cogon nu $e lan$eaza daca autenti%icarea e$ueaza.
E4: $e prezint aun declan$ator DMC care genereaza un #e$a+ de in%or#are. N ace$t declan$ator $e $peci%ica %aptul ca pt tabelul
"urnizor la includerea unei inregi$trati noi,1a %i generat un #e$a+: Eo noua inregistrare a "ost inclusa cu succes.. >u ace$t $cop
dupa clauza AS $e $crie co#anda ,BN= $i #e$a+ul re$pecti1.
8$e calculatore&
Go
% 'b+ect]d (`inregi$trare]noua`, `=B`) i$ not null
Drop trigger inregi$trare]noua&
Go
>reate trigger inregi$trare]nou 'n %urnizor
A%ter NSEB=
AS ,BN= `' noua inregi$trare a %o$t inclu$a cu $ucce$`&
Go
G'
ndependent de $tructura in$tructiunilor care $e utilizeaza de acu# inainte intotdeauna cind 1a %i utilizata in$tructiunea NSEB=
a$upra tabelului %urnizor 1a %i a%i$at #e$a+ul ` o noua inregistrare a "ost inclusa cu succes`

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