Sunteți pe pagina 1din 9

Capitolul 1.

Modelul relaional
1
Capitolul 1
MODELUL RELAIONAL
Modelul relaional ca i orice alt model de date utilizat n proiectarea logic a
bazelor de date elibereaz utilizatorul de cunoaterea detaliilor despre structura fizic i
metodele de acces la date. n afar de aceasta, el are dou avantaje suplimentare: e
simplu i elegant. Simplitatea sa const n structurile de date omogene n form de
relaii tabelare. Iar elegana modelului se explic prin temelia sa tiinific. El este
riguros din punct de vedere matematic graie faptului c se sprijin pe bine puse la punct
teoriile matematica relaiilor i logica de ordinul unu.
Modelul relaional a fost primul exemplu de model de date formal i a fost propus
de E. Codd n 1970. Prin model datele utilizatorului sunt reprezentate i manipulate n
mod abstract. Modelul de asemenea presupune tehnici ce ajut administratorul de a
detecta i corecta posibilele probleme de proiectare ce pot aprea o dat cu pregtirea
datelor pentru implementare ntr-un SGBD concret.
Orice model de date, conform unei sugestii a lui Codd, trebuie s se bazeze pe trei
componente: structurile de date, constrngerile de integritate i operatorii de manipulare
a datelor.
Structurile de date. Structurile sunt definite de un limbaj de definire a
datelor (data definition language). Datele n modelul relaional sunt
structurate n relaii bidimensionale. Elementele principale ale structurii
relaionale sunt relaiile, tuplurile, atributele, domeniile.
Constrngerile de integritate. Prin integritatea datelor se subnelege c
datele rmn stabile, n siguran i corecte. Integritatea n modelul
relaional este meninut de constrngeri interne care nu sunt cunoscute
utilizatorului.
Manipularea datelor. Relaiile pot fi manipulate utiliznd un limbaj de
manipulare a datelor (data manipulation language). n modelul relaional,
limbajul folosete operatorii relaionali bazai pe conceptul algebrei
relaionale. n afar de aceasta, exist limbaje echivalente algebrei
relaionale, cum ar fi calculul relaional orientat pe tuplu i calculul
relaional orientat pe domeniu.
1.1. Structura relaional a datelor
Unul din avantajele modelului relaional rezid n omogenitatea lui. Toate datele
sunt structurate n tabele, fiecare linie ale cror are acelai format. Linia ntr-un tabel
reprezint un obiect (sau o relaie dintre obiecte) din lumea nconjurtoare.
1.1.1. Atribute i domenii
n sistemele obinuite de gestionare a fiierelor cmpul este cea mai mic unitate
accesibil de date. Se presupune c fiecare cmp poate conine un anumit tip de date
Capitolul 1. Modelul relaional
2
(integer, real, character, string etc.), pentru care se specific numrul necesar de octei
de memorie. Cmpul, bineneles, are i un nume. Fcnd analogie, n modelul
relaional fiecare coloan a unei linii dintr-un tabel corespunde noiunii de cmp din
fiiere.
Definiia 1.1. Fie U o mulime nevid de elemente A
1
,A
2
,...,A
n
, numite nume de
atribute sau simplu atribute. Mulimea U = {A
1
,A
2
,...,A
n
} se numete universul unei
baze de date relaionale sau mulime universal.
Definiia 1.2. Domeniul unui atribut A
i
din U, 1s i sn, notat cu dom(A
i
), este o
mulime finit de valori de acelai tip care le poate primi atributul A
i
.
Domeniul este simplu, dac elementele sale sunt atomice (adic nu pot fi
descompuse din punctul de vedere al SGBD-ului). Atributul ce are un domeniu de valori
simplu se numete atribut atomic. Domeniul unei submulimi R a universului U , se
noteaz dom(R), este uniunea tuturor domeniilor atributelor din R, adic dom(R) =

AieR
dom(A
i
), unde dom(C) =C, dac R = C.
Remarc. Cu toate c elementele unui domeniu trebuie s fie de acelai tip,
aceast restricie nu se extinde asupra elementelor din dom(R).
n modelul relaional fiecare tabel se spune c reprezint o relaie. Atributele sunt
nite identificatori pentru a diferenia i marca coloanele tabelului. Deci, cmpul sau
numele de coloan e i atribut. Toate atributele ce apar ntr-un tabel trebuie s fie
distincte i s fie incluse n universul U. Atributele au un caracter global n baza de date:
dac un nume denot dou coloane n tabele distincte n aceeai baz de date, atunci el
reprezint acelai atribut.
Relaia tabelar cu i linii i j coloane are i-j elemente. Fiecare element este o
valoare dintr-un domeniu simplu. Cu toate c atributele n universul U trebuie s fie
distincte, domeniile acestor atribute nu trebuie neaprat s fie disjuncte. De exemplu,
managerul n acelai timp poate fi funcionar. Deci domeniile atributelor MANAGER i
FUNC=IONAR nu sunt disjuncte, adic MANAGER i FUNC=IONAR sunt definite pe
acelai domeniu (cu toate c atributele respective pot avea i valori distincte).
Convenie. Mai departe vom utiliza urmtoarele notaii. Universul
U={A
1
,A
2
,...,A
n
} i orice submulime a lui, R={A
i1
,...,A
ik
}, vor fi reprezentate ca string-
uri, adic
U = A
1
...A
n
,
R = A
i1
...A
ik
.
Vom folosi o notaie mai simpl A
i
_U, n loc de {A
i
}_U pentru A
i
este o
submulime a mulimii U. Reuniunea YZ a dou mulimi Y i Z va fi reprezentat de
simbolul YZ, unde operaia binar uniunea, "", este omis. Mulimile Y i Z pot fi i
mulimi vide, fiindc CZ=Z, YC=Y i CC=C.
Cu litere majuscule de la nceputul alfabetului latin vom nota atributele singulare,
iar cu cele de la sfritul alfabetului latin - mulimi de atribute.
Capitolul 1. Modelul relaional
3
1.1.2. Tupluri
n sistemele cu fiiere o mulime de cmpuri ce e conceput ca o unitate de salvare
i cutare se numete nregistrare. nregistrarea are un format specific i depinde de
tipurile de date ale cmpurilor. O linie dintr-o relaie tabelar corespunde nregistrrii
din fiiere i n teoria relaional se numete tuplu.
Definiia 1.3. Fie R o submulime a universului U, R_U, unde R=C i fie dom(R)
domeniul mulimii R. Tuplu se numete o funcie, t:Rdom(R), din R n dom (R), adic
t = {(A
i1
,a
1
),..., (A
ik,
a
k
)},
unde orice A
ij
, 1s j s k, este un atribut n R i un argument al lui t, iar orice a
j
, 1s j s k,
este o valoare n dom(A
ij
).
Considerm o restricie asupra tuplului t.
Definiia 1.4. Fie X = B
1
...B
m
o submulime proprie a mulimii R, XcR, unde
X=C. X-valoare a tuplului t, notat cu t[X], este t[X] = {(B
j
, b
j
)|b
j
=t(B
j
)=t(A
ip
), 1s j s
m, pe{1,...,k}}. Dac X=A
ij
, je{1,...,k}, atunci A
ij
-valoarea tuplului t se mai numete
A
ij
component a tuplului t.
Ultima definiie ne spune, c t(A
ij
)=t[A
ij
]=a
j
pentru a
j
edom(A
j
). Deci nu vom
diferenia simbolurile t(A
ij
) i t[A
ij
] pentru un atribut singular A
ij
din U.
Pentru comoditate tuplul t i X-valoarea tuplului t vor fi notate
t = <a
1
...a
k
|A
i1
...A
ik
> i
t[X] = <b
1
...b
m
|B
1
...B
m
>,
respectiv. ns, dac coloanele tabelului ce corespund mulimilor R i X sunt marcate cu
atribute din R i X, iar ordinea atributelor ce marcheaz corespund ordinii atributelor n
R i X, atunci notaiile tuplului t i X-valorii tuplului t pot fi simplificate respectiv
t = < a
1
...a
k
> i
t[X] = < b
1
...b
m
>.
Deci putem reprezenta printr-un string nu numai o mulime de atribute, dar i o mulime
de valori. Dar permutarea atributelor ntr-un tabel va trebui reflectat n tupluri,
permutndu-le componentele. Cu toate c string-urile ce reprezint tuplurile iniial i
final vor fi diferite, vom considera c aceste tupluri sunt identice.
n tuplul t = <a
1
...a
k
|A
i1
...A
ik
> distingem dou componente string-ul de atribute
A
i1
...A
ik
care este invariant n timp i string-ul de valori a
1
...a
k
, care este foarte dinamic.
Partea invariant a tuplului vom numi-o schema tuplului (uneori se noteaz sch(t)).
ndat ce am definit schema tuplului, expresia tuplul asupra R devine clar i este
echivalent expresiei tuplul t cu schema R.
Pentru comoditate notaional, un tuplu cu numele t i schema R se va nota uneori
t(R) = t(A
i1
) t(A
i2
) ... t(A
ik
).
Deci putem concepe tuplul t(R) ca un tuplu variabil asupra R i fiecare component
t(A
ij
), 1s j s k, ca un domeniu variabil. Dac tuplul t(R) are o form constant, adic
string-ul lui de valori este <c
1
...c
k
> i aceste valori sunt n dom(R), el se numete tuplu
constant asupra R.
Capitolul 1. Modelul relaional
4
1.1.3. Relaii i scheme
Definiia 1.5. Fie R o submulime a universului U. Relaia r asupra R este o
mulime finit de tupluri cu schema R. Aritatea relaiei r este egal cu cardinalitatea
mulimii R. Cardinalitatea relaiei r este numrul de tupluri n ea.
Definiia 1.6. Fie R_U i relaia r asupra R. Mulimea de atribute R se numete
schema relaiei r (notat cu sch(r) = R).
Definiia 1.7. Baza de date relaional (sau simplu baz de date) este o mulime
finit de relaii, db = {r
1
,...,r
m
}, unde r
i
este o relaie cu schema R
i
, 1 s i sm.
Definiia 1.8. Fie baza de date db = {r
1
,...,r
m
}. Schema bazei de date este
mulimea schemelor relaiilor ce formeaz baza de date, Db = {R
1
,...,R
m
}, unde R
i
=
sch(r
i
).
Deci schema unei relaii este o expresie a proprietilor comune i invariante ale
tuplurilor ce compun relaia. Schema unei relaii mai este cunoscut sub denumirea de
intensia unei relaii. Relaia se mai numete extensie. Extensia reprezint mulimea
tuplurilor care compun la un moment dat relaia, mulime care este variabil n timp.
Din definiiile de mai sus putem conchide urmtoarele:
(1) ntr-o relaie nu exist coloane cu nume duplicate, fiindc atributele A
ij
, 1s j
s k, sunt elemente ale mulimii R
i
.
(2) Relaia r
i
nu are tupluri identice, fiindc r
i
este o mulime de tupluri.
(3) Ordinea tuplurilor n r
i
este nesemnificativ, fiindc r
i
este o mulime.
(4) Ordinea coloanelor e nesemnificativ.
(5) Valorile atributelor n r
i
sunt atomice fiindc domeniile sunt simple.
Relaiile ce se stocheaz fizic i formeaz baza de date se numesc relaii de baz.
Exist, ns, i situaii n care extensia nu se memoreaz n baza de date. Este cazul aa-
numitelor relaii virtuale, cunoscute i sub numele de relaii derivate sau viziuni. Relaia
virtual nu este definit explicit ca relaia de baz, prin mulimea tuplurilor componente,
ci implicit pe baza altor relaii. Relaiile de baz sunt proiectate de administratorul bazei
de date, n timp ce viziunile sunt definite de utilizatorii bazei de date.
Relaiile asupra unei mulimi de atribute pot avea un nume, sau pot s nu aib,
dac ele sunt identificate n mod unic de schemele sale. Numele relaiei, de obicei, se
scrie cu minuscule, de exemplu, relaia r.
studeni NUME NOTO_MED FACULTATE DECAN
Vasilache 7.8 Cibernetic Popovici
discipline FACULTATE DISCIPLINO
corp_didac DISCIPLINA PROFESOR
"arj DISCIPLINA TIP ORE
Capitolul 1. Modelul relaional
5
Fig.1.1. Baza de date Universitatea
Exemplul 1.1. Fie baza de date Universitatea const din patru relaii studeni,
discipline, corp_didactic i "arj (vezi fig.1.1).
Primul tabel, reprezentnd relaia studeni, stocheaz numele, nota medie,
facultatea i decanul asociate fiecrui student. Relaia are patru atribute: NUME,
NOTO_MED, FACULTATE, DECAN. Relaia discipline afieaz disciplinele ce se
predau la diverse faculti. Ea are dou atribute FACULTATE i DISCIPLINO. Relaia
corp_didac specific disciplinele predate de diferii profesori. Ea are dou atribute:
DISCIPLINO i PROFESOR. Relaia "arj descrie disciplinele cu formele sale de
predare i numrul de ore. Ea antreneaz trei atribute: DISCIPLINO, TIP i ORE.
Datele n fiecare relaie sunt atomice i sunt luate din domeniile (simple)
atributelor corespunztoare. FACULTATE n relaiile studeni i discipline reprezint
acelai atribut. De asemenea atributul DISCIPINO figureaz n trei relaii: discipline,
corp_didac i "arj. Cele opt atribute prezente n relaiile descrise constituie universul:
U=NUME NOTO_MED FACULTATE DECAN DISCIPLINO PROFESOR TIP ORE.
Aadar, atributele oricrei relaii formeaz o submulime a mulimii universale U.
Domeniul atributului NUME const din eventualele nume de familii, dar trebuie
s conin numaidect i valori active, adic numele studenilor ce actualmente i fac
studiile la facultate. Domeniul atributului NOTO_MED conine numere pozitive. Dat
fiind faptul c mulimea de numere pozitive e infinit, fiecare NOTO_MED-valoare nu
poate depi valoarea maxim 10. Deci dom(NOTO_MEDIE) poate fi meninut finit.
Celelalte domenii se definesc similar. Nu e exclus faptul c un decan s fie student la o
alt facultate. n cazul acesta domeniile active ale atributelor NUME i DECAN nu vor
fi disjuncte.
Tuplurile relaiei studeni sunt definite pe mulimea de atribute R= NUME
NOTA_MED FACULTATE DECAN. Ele sunt concepute ca tupluri constante-valori
ale tuplului variabil t(R) =t(NUME) t(NOTA_MED) t(FACULTATE) t(DECAN). De
exemplu, tuplul constant <Vasilache 7.8. Cibernetic Popovici> arat c Vasilache este
student la facultatea Cibernetic a crei decan este Popovici i are nota medie 7.8.
Considerm X=NUME DECAN. Tuplul variabil va fi t[X]=t(NUME) t(DECAN).
Tuplul constant definit pe schema X este derivat din tuplul <Vasilache 7.8. Cibernetic
Popovici> al relaiei studeni i este <Vasilache Popovoci>.
n baza de date Universitatea, studeni este nume de relaie. Schema relaiei
studeni e NUME NOTO_MED FACULTATE DECAN.
Baza de date Universitatea const din patru relaii db={studeni, discipline,
corp_didactic, "arj}. Schema bazei de date este mulimea schemelor celor patru relaii
Db={NUME NOTO_MED FACULTATE DECAN, FACULTATE DISCIPLINO,
DISCIPLINO PROFESOR, DISCIPLINO TIP ORE}.
Relaiile studeni, discipline, corp_didactic, "arj au aritatea 4, 2, 2 i 3 respectiv.
Ele formeaz relaiile de baz. Relaia definit pe atributele X= NUME DECAN e o
relaie virtual.
Capitolul 1. Modelul relaional
6
1.2. Constrngeri de integritate
1.2.1. Tipuri de constrngeri
Constrngerile de integritate, numite i restricii de integritate definesc cerinele
pe care trebuie s le satisfac datele din baza de date pentru a putea fi considerate
corecte, coerente n raport cu lumea real pe care o reflect.
Constrngerile sunt principalul mod de integrare a semanticii datelor n cadrul
modelului relaional. Mecanismele de definire i verificare ale acestor restricii
reprezint instrumentele principale de control al semanticii datelor. n modelul
relaional, constrngerile sunt studiate mai ales sub aspectul puterii lor de modelare i al
posibilitii de verificare a respectrii lor.
Constrngerile de integritate pot fi divizate n linii mari n dou grupuri:
constrngeri de comportament i dependene ntre date.
Constrngerile de comportament specific caracteristicile independente ale unui
atribut (sau domeniu). Ele exprim semantica elementelor domeniilor. De exemplu,
toate valorile atributului NOTO_MED trebuie s fie mai mare dect zero, dar nu poate
depi zece. Sau nici o persoan de vrsta 25 ani nu poate avea o vechime n munc de
37 ani. Deci, conform acestei restricii, valorile atributului trebuie s se ncadreze ntre
anumite limite.
Al doilea tip de constrngeri specific legtura dintre atribute (sau domenii). Aici
putem identifica aa-numita dependen de submulime. Considerm, de exemplu,
relaia personal definit pe mulimea de atribute {ANGAJAT SALARIU
DEPARTAMENT MANAGER}. n relaia personal, un manager este n acelai timp un
angajat, dar nu orice angajat este manager. Deci avem c dom(MANAGER) _
dom(ANGAJAT).
Dac presupunem c angajatul are un singur salariu, se subordoneaz unui singur
manager direct, lucreaz deci ntr-un singur departament, atunci ANGAJAT-valorile
determin n mod unic toate tuplurile n relaia personal. Aceast constrngere este
numit dependen funcional. Dependenele funcionale vor fi studiate detaliat n
capitolul 3. Alte tipuri de dependene cum ar fi cele multivaloare i de jonciune vor fi
studiate n capitolul 4.
1.2.2. Chei
Aici vom examina constrngerile legate de noiunea de cheie a relaiilor. ntruct
relaia reprezint o mulime de tupluri, iar o mulime nu poate conine elementele
duplicate, relaia nu poate prezenta tupluri identice. Deci tuplurile sunt unice i trebuie
s existe posibilitatea identificrii lor n cadrul unei relaii. Identificarea unui tuplu fr
a consulta toate componentele tuplului a dus la apariia noiunii de cheie.
Definiia 1.9. Fie U mulimea universal de atribute, R_U i R=C. Mulimea K
de atribute, unde K_R, se numete cheie pentru schema R (sau pentru relaia r cu
schema R), dac ea posed urmtoarele proprieti:
(1) pentru orice dou tupluri t
1
i t
2
din r avem t
1
[K]=t
2
[K];
(2) nici o submulime K
1
proprie a lui K nu posed proprietatea (1)
Proprietatea (1), numit restricia de unicitate a cheii, permite K-valorilor s
identifice n mod unic toate tuplurile dintr-o relaie. ns respectarea proprietii de
Capitolul 1. Modelul relaional
7
unicitate poate fi complicat, dac nsi K conine o cheie K
1
i K = K
1
. n acest caz, cu
toate c atributele din K sunt suficiente de a atinge scopul, unele din ele nu sunt
necesare, deci pot fi eliminate din cheie fr a se afecta unicitatea. Dac, ns, K este o
submulime proprie a unei chei, atunci utilizarea a astfel de K-valori pentru cutarea
datelor va descoperi tupluri ce coincid pe toate valorile atributelor din K.
Proprietatea (2) ne asigur c o cheie K constituie numai acele atribute ce sunt
necesare i suficiente pentru a determina univoc pe celelalte. Cu alte cuvinte K-valorile
ntotdeauna asigur un grad exact de informaie nici mai mult, nici mai puin, pentru a
gsi un tuplu unic ntr-o relaie.
Definiia 1.10. Mulimea de atribute ce posed proprietatea (1) se numete
supercheie.
Deci cheia este o supercheie minimal. Orice cheie e i supercheie. Afirmaia
invers nu e corect.
Este evident c o mulime vid nu poate servi drept cheie a unei relaii ce conine
mai mult de un tuplu. Orice relaie are cel puin o cheie. La limit cheia este constituit
fie dintr-un singur atribut, fie din totalitatea atributelor din schema relaiei respective.
ntr-o relaie pot exista mai multe chei. Se spune n acest caz c relaia posed
mai multe chei candidate. n aceast situaie administratorul bazei de date va stabili una
din cheile candidate s serveasc n mod efectiv la identificarea unic a tuplurilor. Ea va
primi numele de cheie primar. Primare se vor numi i domeniile atributelor ce
formeaz o cheie primar.
Definiia 1.11. Cheia primar a unei relaii se numete cheie simpl, dac este
constituit dintr-un singur atribut, iar atunci cnd este format din mai multe atribute
este denumit cheie compus.
Remarc. Nu toate atributele unei chei compuse pot fi definite pe domenii
primare.
Definiia 1.12. O cheie extern reprezint un atribut (grup de atribute) dintr-o
schem R
i
definit (definite) pe acelai (aceleai) domeniu (domenii) ca i cheia primar
a altei scheme R
j
. Relaia r
i
se numete relaie care refer, iar r
j
poart numele de relaie
referit.
Unele atribute pot avea aa numitele valori nedefinite sau necunoscute notate cu
null. ns sunt bine cunoscute constrngerile formulate prin urmtoarele reguli
numite regulile de actualizare (inserare, modificare i eliminare) a relaiilor.
(1) Constrngerea entitii: cheia primar a unei relaii de baz nu poate
conine valori null;
(2) Constrngerea referirii: dac atributul A al unei chei compuse a relaiei r
i
este definit pe un domeniu primar, atunci trebuie s existe o relaie de baz r
j
cu o cheie primar B nct orice A-valoare din r
i
s apar n calitate de B-
valoare n r
j
.
Constrngerea entitii impune ca la nserarea unui tuplu, valoarea cheii s fie
cunoscut, pentru a se putea verifica faptul c aceast valoare nu este deja ncrcat
(respectarea constrngerii de unicitate a cheii). Cu valori null cheia i pierde rolul de
identificator de tuplu.
Capitolul 1. Modelul relaional
8
Constrngerea referenial impune ca ntr-o relaie r
i
, care refer o relaie r
j
,
valorile cheii compuse s figureze printre valorile cheii primare din relaia r
j
pentru
atributele compatibile.
Exemplul 1.2. Considerm relaiile studeni, discipline, corp_didac., "arj.
n relaia studeni singura cheie candidat este NUME, deci NUME e i cheia
primar, iar dom(NUME) este domeniu primar pentru baza de date Universitatea.
Considerm relaiile discipline(FACULTATE DISCIPLINO) i
corp_didac(DISCIPLINO PROFESOR). Fiindc la orice facultate se pred cel puin o
disciplin i orice profesor pred cel puin o disciplin, i similar, orice disciplin se
pred mcar la o facultate i se pred cel puin de un profesor, cheile primare ale acestor
relaii sunt compuse i constau din toate atributele corespunztoare fiecrei relaii.
n relaia "arj(DISCIPLINO TIP ORE), orice disciplin poate fi de trei tipuri
(prelegeri, practic, laborator) i poate avea diferite ore de predare; unele discipline pot
avea acelai tip i acelai numr de ore. E puin probabil ca cheia relaiei "arj s fie
simpl. Putem presupune c cheia ei este compus.
n acest exemplu, domeniul dom(NUME) este primar. Cheile compuse ale
relaiilor discipline, corp_didac, "arj nu sunt definite pe acest domeniu primar.
Conform regulii (1) atributele celor patru chei nu pot avea valori null. Dat fiind
faptul c nici o cheie din cele trei compuse nu sunt definite pe domeniul primar
dom(NUME), exemplul dat nu ne demonstreaz regula (2).
Exemplul 1.3. Considerm relaiile studeni i faculti din fig.1.2.
Presupunem c la o facultate i fac studiile mai muli studeni i un student poate
studia la mai multe faculti concomitent. Cheia primar a relaiei studeni este
compus i const din atributele NUME FACULTATE. Relaia faculti posed dou
chei candidate: FACULTATE i DECAN. Fie FACULTATE cheia primar. Atunci
atributul FACULTATE al relaiei studeni este cheie extern. Conform regulii (2) toate
valorile atributului FACULTATE al relaiei care refer trebuie s se conin n relaia
referit.
studeni NUME FACULTATE AN
n
1
f
1
a
1
n
2
f
1
a
2
n
3
f
2
a
3
faculti FACULTATE DECAN
f
1
d
1
f
2
d
2
Fig.1.2.
Spuneam mai sus c extensiile relaiilor se schimb pe parcursul timpului. S-ar
prea c pentru fiecare instan a relaiei pot fi determinate cheile i supercheile. Dar
schemele relaiilor, adic intensiile, trebuie s fie invariante i e de dorit ca cheile pe
parcursul timpului s nu se schimbe. Cheile trebuie s rmn chei pentru orice
eventuale extensii. Prin urmare determinarea cheii unei relaii necesit cunoaterea
semanticii relaiei respective, nu numai celei din momentul n care se stabilete cheia.
Capitolul 1. Modelul relaional
9
Convenie. Dac relaia posed o singur cheie sau dorim s evideniem numai
cheia primar mai departe vom sublinia atributele ce formeaz aceast cheie. De
exemplu, relaia r cu schema ABCD i cheia AC se scrie r(A B C D). n cazul c relaia
posed mai multe chei, atunci le vom scrie explicit: relaia r(ABCD) are dou chei
candidate K
1
=AC, K
2
=B.
1.3. Operaii de actualizare
Regulile de actualizare a bazei de date fac parte din cele trei componente ale
modelului relaional de date. Vom examina cele trei operaii de actualizare a datelor:
inserarea datelor, "tergerea datelor i modificarea datelor.
Fie c n relaia r(A
1
A
2
...A
n
) vrem s introducem date. Operaia de inserie, a
unui tuplu n relaia r poate avea forma:
Add (r;<a
1
a
2
...a
n
|A
1
A
2
...A
n
>).
n cazul c ordinea atributelor n relaie e cunoscut, e acceptabil o form mai scurt a
operaiei:
Add (r;<a
1
a
2
...a
n
>).
Scopul acestei operaii const n adugarea unui tuplu ntr-o relaie concret.
Rezultatul operaiei poate s eueze din urmtoarele cauze:
(1) tuplul de inserie e definit pe o mulime de atribute ce nu corespunde
schemei relaiei;
(2) valorile componentelor tuplului nu sunt luate din domeniile
corespunztoare;
(3) n relaie deja se gsete un tuplu cu asemenea componente cheie.
n toate aceste cazuri operaia Add pstreaz relaia r intact.
Operaia de tergere a datelor se utilizeaz pentru eliminarea coninutului
relaiilor. Pentru relaia r de mai sus, operaia de tergere se reprezint:
Del (r; <a
1
a
2
...a
n
|A
1
A
2
...A
n
>).
n cazul cnd numele de atribute sunt sortate, poate fi utilizat urmtoarea notaie
scurt:
Del (r; <a
1
a
2
...a
n
>).
n realitate, o parte de date din operaia de mai sus poate fi redundant pentru
determinarea tuplului destinat tergerii. E suficient definiia valorilor atributelor cheie.
Dac K=B
1
B
2
...B
m
este cheia relaiei r, atunci e util urmtoarea form a operaiei Del:
Del (r; <b
1
b
2
...b
m
|B
1
B
2
...B
m
>).
Rezultatul operaiei de tergere a tuplurilor nu se las mult ateptat. Tuplul e
eliminat, dac el este relaie. n cazul c tuplul lipsete - relaia rmne intact. Nu se
pune nici o restricie asupra eliminrii ultimului tuplu n relaie: relaia vid se admite.
Uneori, n loc de eliminarea unui tuplu din relaie i includerea unui alt tuplu e
mai efectiv schimbarea unei pri a tuplului. Schimbarea se face cu operaia de
modificare. Dac C
1
C
2
...C
k
_A
1
A
2
...A
n
, atunci operaia de modificare poate avea forma:
Ch (r; <a
1
a
2
...a
n
|A
1
A
2
...A
n
>; <c
1
c
2
...c
k
| C
1
C
2
...C
k
>).
Dac mulimea K=B
1
B
2
...B
m
este cheia relaiei r, atunci expresia de mai sus poate
fi redus la:
Ch (r; <b
1
b
2
...b
n
|B
1
B
2
...B
m
>; <c
1
c
2
...c
k
| C
1
C
2
...C
k
>).
Operaia de modificare este foarte util. Acelai rezultat poate fi obinut prin
intermediul operaiilor de inserare i tergere. Prin urmare, toate eecurile operaiilor
inserare i tergere sunt specifice i operaiei modificare.