Documente Academic
Documente Profesional
Documente Cultură
Capitolul 1
MODELUL RELA IONAL
Modelul rela ional ca i orice alt model de date utilizat în proiectarea logic a
bazelor de date elibereaz utilizatorul de cunoa terea 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
rela ii tabelare. Iar elegan a modelului se explic prin temelia sa tiin ific . El este
riguros din punct de vedere matematic gra ie faptului c se sprijin pe bine puse la punct
teoriile matematica rela iilor i logica de ordinul unu.
Modelul rela ional 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 ap rea o dat cu preg tirea
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, constrângerile 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 rela ional sunt
structurate în rela ii bidimensionale. Elementele principale ale structurii
rela ionale sunt rela iile, tuplurile, atributele, domeniile.
• Constrângerile de integritate. Prin integritatea datelor se subîn elege c
datele r mân stabile, în siguran i corecte. Integritatea în modelul
rela ional este men inut de constrângeri interne care nu sunt cunoscute
utilizatorului.
• Manipularea datelor. Rela iile pot fi manipulate utilizând un limbaj de
manipulare a datelor (data manipulation language). În modelul rela ional,
limbajul folose te operatorii rela ionali baza i pe conceptul algebrei
rela ionale. În afar de aceasta, exist limbaje echivalente algebrei
rela ionale, cum ar fi calculul rela ional orientat pe tuplu i calculul
rela ional orientat pe domeniu.
1
Capitolul 1. Modelul rela ional
(integer, real, character, string etc.), pentru care se specific num rul necesar de octe i
de memorie. Câmpul, bineîn eles, are i un nume. F când analogie, în modelul
rela ional fiecare coloan a unei linii dintr-un tabel corespunde no iunii de câmp din
fi iere.
Defini ia 1.1. Fie U o mul ime nevid de elemente A1,A2,...,An, numite nume de
atribute sau simplu atribute. Mul imea U = {A1,A2,...,An} se nume te universul unei
baze de date rela ionale sau mul ime universal .
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 nume te atribut atomic. Domeniul unei submul imi R a universului U , se
noteaz dom(R), este uniunea tuturor domeniilor atributelor din R, adic dom(R) =
Ai Rdom(Ai), unde dom( ) = , dac R = .
În modelul rela ional fiecare tabel se spune c reprezint o rela ie. Atributele sunt
ni te identificatori pentru a diferen ia i marca coloanele tabelului. Deci, câmpul 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 aceea i baz de date, atunci el
reprezint acela i atribut.
Rela ia 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 neap rat s fie disjuncte. De exemplu,
managerul în acela i timp poate fi func ionar. Deci domeniile atributelor MANAGER i
FUNC=IONAR nu sunt disjuncte, adic MANAGER i FUNC=IONAR sunt definite pe
acela i domeniu (cu toate c atributele respective pot avea i valori distincte).
Conven ie. Mai departe vom utiliza urm toarele nota ii. Universul
U={A1,A2,...,An} i orice submul ime a lui, R={Ai1,...,Aik}, vor fi reprezentate ca string-
uri, adic
U = A1...An,
R = Ai1...Aik.
Vom folosi o nota ie mai simpl Ai U, în loc de {Ai} U pentru “Ai este o
submul ime a mul imii U”. Reuniunea Y Z a dou mul imi Y i Z va fi reprezentat de
simbolul YZ, unde opera ia binar uniunea, " ", este omis . Mul imile Y i Z pot fi i
mul imi vide, fiindc Z=Z, Y =Y i = .
Cu litere majuscule de la începutul alfabetului latin vom nota atributele singulare,
iar cu cele de la sfâr itul alfabetului latin - mul imi de atribute.
2
Capitolul 1. Modelul rela ional
1.1.2. Tupluri
În sistemele cu fi iere o mul ime de câmpuri ce e conceput ca o unitate de salvare
i c utare se nume te înregistrare. Înregistrarea are un format specific i depinde de
tipurile de date ale câmpurilor. O linie dintr-o rela ie tabelar corespunde înregistr rii
din fi iere i în teoria rela ional se nume te tuplu.
Defini ia 1.4. Fie X = B1...Bm o submul ime proprie a mul imii R, X R, unde
X . X-valoare a tuplului t, notat cu t[X], este t[X] = {(Bj, bj)|bj=t(Bj)=t(Aip), 1 j
m, p {1,...,k}}. Dac X=Aij, j {1,...,k}, atunci Aij-valoarea tuplului t se mai nume te
Aij–component a tuplului t.
3
Capitolul 1. Modelul rela ional
Defini ia 1.7. Baza de date rela ional (sau simplu baz de date) este o mul ime
finit de rela ii, db = {r1,...,rm}, unde ri este o rela ie cu schema Ri, 1 i m.
Defini ia 1.8. Fie baza de date db = {r1,...,rm}. Schema bazei de date este
mul imea schemelor rela iilor ce formeaz baza de date, Db = {R1,...,Rm}, unde Ri =
sch(ri).
Deci schema unei rela ii este o expresie a propriet ilor comune i invariante ale
tuplurilor ce compun rela ia. Schema unei rela ii mai este cunoscut sub denumirea de
intensia unei rela ii. Rela ia se mai nume te extensie. Extensia reprezint mul imea
tuplurilor care compun la un moment dat rela ia, mul ime care este variabil în timp.
4
Capitolul 1. Modelul rela ional
Exemplul 1.1. Fie baza de date “Universitatea” const din patru rela ii studen i,
discipline, corp_didactic i "arj (vezi fig.1.1).
Primul tabel, reprezentând rela ia studen i, stocheaz numele, nota medie,
facultatea i decanul asociate fiec rui student. Rela ia are patru atribute: NUME,
NOTO_MED, FACULTATE, DECAN. Rela ia discipline afi eaz disciplinele ce se
predau la diverse facult i. Ea are dou atribute FACULTATE i DISCIPLINO. Rela ia
corp_didac specific disciplinele predate de diferi i profesori. Ea are dou atribute:
DISCIPLINO i PROFESOR. Rela ia "arj descrie disciplinele cu formele sale de
predare i num rul de ore. Ea antreneaz trei atribute: DISCIPLINO, TIP i ORE.
Datele în fiecare rela ie sunt atomice i sunt luate din domeniile (simple)
atributelor corespunz toare. FACULTATE în rela iile studen i i discipline reprezint
acela i atribut. De asemenea atributul DISCIPINO figureaz în trei rela ii: discipline,
corp_didac i "arj . Cele opt atribute prezente în rela iile descrise constituie universul:
U=NUME NOTO_MED FACULTATE DECAN DISCIPLINO PROFESOR TIP ORE.
A adar, atributele oric rei rela ii formeaz o submul ime a mul imii universale U.
Domeniul atributului NUME const din eventualele nume de familii, dar trebuie
s con in numaidecât i valori active, adic numele studen ilor ce actualmente î i fac
studiile la facultate. Domeniul atributului NOTO_MED con ine numere pozitive. Dat
fiind faptul c mul imea de numere pozitive e infinit , fiecare NOTO_MED-valoare nu
poate dep i valoarea maxim 10. Deci dom(NOTO_MEDIE) poate fi men inut 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 rela iei studen i sunt definite pe mul imea 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 c rei decan este Popovici i are nota medie 7.8.
Consider m 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 rela iei studen i i este <Vasilache Popovoci>.
În baza de date “Universitatea”, studen i este nume de rela ie. Schema rela iei
studen i e NUME NOTO_MED FACULTATE DECAN.
Baza de date “Universitatea” const din patru rela ii db={studen i, discipline,
corp_didactic, "arj }. Schema bazei de date este mul imea schemelor celor patru rela ii
Db={NUME NOTO_MED FACULTATE DECAN, FACULTATE DISCIPLINO,
DISCIPLINO PROFESOR, DISCIPLINO TIP ORE}.
Rela iile studen i, discipline, corp_didactic, "arj au aritatea 4, 2, 2 i 3 respectiv.
Ele formeaz rela iile de baz . Rela ia definit pe atributele X= NUME DECAN e o
rela ie virtual .
5
Capitolul 1. Modelul rela ional
1.2.2. Chei
Aici vom examina constrângerile legate de no iunea de cheie a rela iilor. Întrucât
rela ia reprezint o mul ime de tupluri, iar o mul ime nu poate con ine elementele
duplicate, rela ia nu poate prezenta tupluri identice. Deci tuplurile sunt unice i trebuie
s existe posibilitatea identific rii lor în cadrul unei rela ii. Identificarea unui tuplu f r
a consulta toate componentele tuplului a dus la apari ia no iunii de cheie.
6
Capitolul 1. Modelul rela ional
unicitate poate fi complicat , dac îns i K con ine o cheie K1 i K K1. Î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 f r a se afecta unicitatea. Dac , îns , K este o
submul ime proprie a unei chei, atunci utilizarea a astfel de K-valori pentru c utarea
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 informa ie nici mai mult, nici mai pu in, pentru a
g si un tuplu unic într-o rela ie.
Defini ia 1.11. Cheia primar a unei rela ii se nume te cheie simpl , dac este
constituit dintr-un singur atribut, iar atunci când este format din mai multe atribute
este denumit cheie compus .
Unele atribute pot avea a a numitele valori nedefinite sau necunoscute notate cu
”null”. Îns sunt bine cunoscute constrângerile formulate prin urm toarele reguli
numite regulile de actualizare (inserare, modificare i eliminare) a rela iilor.
(1) Constrângerea entit ii: cheia primar a unei rela ii de baz nu poate
con ine valori “null”;
(2) Constrângerea referirii: dac atributul A al unei chei compuse a rela iei ri
este definit pe un domeniu primar, atunci trebuie s existe o rela ie de baz rj
cu o cheie primar B încât orice A-valoare din ri s apar în calitate de B-
valoare în rj.
Constrângerea entit ii impune ca la înserarea unui tuplu, valoarea cheii s fie
cunoscut , pentru a se putea verifica faptul c aceast valoare nu este deja înc rcat
(respectarea constrângerii de unicitate a cheii). Cu valori “null” cheia î i pierde rolul de
identificator de tuplu.
7
Capitolul 1. Modelul rela ional
Constrângerea referen ial impune ca într-o rela ie ri, care refer o rela ie rj,
valorile cheii compuse s figureze printre valorile cheii primare din rela ia rj pentru
atributele compatibile.
Fig.1.2.
Spuneam mai sus c extensiile rela iilor se schimb pe parcursul timpului. S-ar
p rea c pentru fiecare instan a rela iei pot fi determinate cheile i supercheile. Dar
schemele rela iilor, adic intensiile, trebuie s fie invariante i e de dorit ca cheile pe
parcursul timpului s nu se schimbe. Cheile trebuie s r mân chei pentru orice
eventuale extensii. Prin urmare determinarea cheii unei rela ii necesit cunoa terea
semanticii rela iei respective, nu numai celei din momentul în care se stabile te cheia.
8
Capitolul 1. Modelul rela ional
Conven ie. Dac rela ia posed o singur cheie sau dorim s eviden iem numai
cheia primar mai departe vom sublinia atributele ce formeaz aceast cheie. De
exemplu, rela ia r cu schema ABCD i cheia AC se scrie r(A B C D). În cazul c rela ia
posed mai multe chei, atunci le vom scrie explicit: rela ia r(ABCD) are dou chei
candidate K1=AC, K2=B.