Sunteți pe pagina 1din 7

CURS 5.

Restricii de integritate ale modelului relaional

3.3 Restricii de integritate ale modelului relaional


Restriciile de integritate ale modelului relaional reprezint cerine pe care
trebuie s le ndeplineasc datele din cadrul bazei de date pentru a putea fi
considerate corecte i coerente n raport cu lumea real pe care o reflect. Dac o
baz de date nu respect aceste cerine, ea nu poate fi utilizat cu un maxim de
eficien.
Restriciile sunt de dou tipuri:
restricii de integritate structurale, care se definesc prin egalitatea sau
inegalitatea unor valori din cadrul relaiilor:
restricia de unicitate a cheilor;
restricia entitii;
dependenele ntre ele;
restricii de integritate de comportament care in cont de semnificaia valorilor
din cadrul bazei de date.
Utilizarea modelului relaional nu impune definirea i verificarea tuturor acestor
tipuri de restricii de integritate. Din acest punct de vedere exist restricii de
integritate minimale. Acestea sunt obligatoriu de definit i de respectat cnd se
lucreaz cu modelul relaional. Dintre restriciile minimale fac parte:
restricia de unicitate a cheii;
restricia referenial;
restricia entitii.
Alte restriciii de integritate ar fi
dependenele;
restricii de comportament.
Restricii de integritate minimale
Restriciile de integritate minimale sunt definite n raport cu noiunea de cheie
a unei relaii. Cheia identific un tuplu n cadrul unei relaii fr a face apel la toate
valorile din tuplu.
Cheia unei relaii reprezint ansamblul minimal de atribute prin care se poate
identifica n mod unic orice tuplu al relaiei.
Oricare relaie posed cel puin o cheie:
cheie simpl, cnd cheia este construit dintr-un singur atribut;
cheie compus, cnd cheia este construit din mai multe atribute.

Exemplul 1:
R2:
R1:

a) cheie simpl
b) cheie compus

Fig. 5.1. Chei simple i chei compuse


Determinarea cheii unei relaii necesit cunoaterea tuturor extensiilor
posibile, nu numai a aceleia din momentul n care se stabilete cheia. Astfel,
presupunnd c R1 i R2 sunt versiuni ale aceleiai relaii R la momente de timp
diferite: t1, respectiv t2, alegerea la momentul t 1 drept cheie atributul A a relaiei R se
dovedete a fi greit, ntruct atributul A nu face posibil identificarea unic a
tuplurilor i la momentul t2. Cheia relaiei R este reprezentat, prin urmare, de
perechea de atribute (A,B).
Exemplul 2:
JUDETE:

STRAZI:

Fig. 5.2. Chei simple i chei compuse n cadrul relaiilor JUDEE, respectiv STRZI
Observaie: Cheia relaiei JUDEE este simbol_jude, deoarece fiecare jude are o
codificare unic a denumirii sale, deci fiecrui jude i corespunde un singur simbol.
Cheia relaiei STRZI este compus din atributele cod_loc i id_strada. Dac s-ar
alege drept cheie primar doar atributul id_strada, acesta nu ar identifica n mod
unic numele unei strzi dintr-o localitate, id-ul strzii respective putndu-se regsi i
n alte localiti ale aceluiai jude sau a altui jude. La fel, dac s-ar alege drept
cheie primar atributul cod_loc, acesta nu ar mai identifica n mod unic un tuplu,
deoarece ntr-o localitate exist mai multe strzi.
O relaie poate avea mai multe combinaii de atribute, cu proprietatea de
identificare unic a tuplurilor. Se spune n acest caz c relaia posed mai muli
candidai cheie (chei candidate).
Definiia 1. Se numete cheie primar, cheia aleas dintre cheile candidate
care s serveasc n mod efectiv la identificarea tuplurilor.
Cheia primar nu poate fi reactualizat. Cheia primar a unei relaii nu este
altceva dect atributul de identificare a unei entiti, prin urmare se reprezint fie prin
subliniere, fie urmate de semnul #.
Definiia 2. Se numete cheie extern atributul/grupul de atribute dintr-o relaie
R1 a crui/cror valori sunt definite pe acelai domeniu/aceleai domenii ca i cheia
primar a unei alte relaii R 2 i care are rolul de a modela asocierea ntre entitile

reprezentate prin relaiile R1 i R2. n acest caz, R 1 se numete relaie care refer, iar
R2 se numete relaie referit.
Exemplul 1:
DATE_PERSOANA:

JUDETE:

Fig. 5.3. Reprezentarea legturii dintre relaiile DATE_PERSOANA i


JUDETE cu ajutorul cheii externe simbol_judet din cadrul relaiei
DATE_PERSOANA
Observaia1: n exemplul de mai sus, relaia DATE_PERSOANA are drept cheie
primar atributul cnp, iar ca i cheie extern atributul simbol_judet, iar relaia
JUDETE are drept cheie primar cheia simbol_judet. Relaia DATE_PERSOANA
este relaia care refer, iar JUDETE este relaia referit.
Observaia2: ntre cele dou relaii (entiti) avem urmtoarea asociere:
DATE_PERSOANA

(0,n)

are reedina(1,1)

JUDETE

Fig. 5.4. Asocierea dintre entitile DATE_PERSOANA i JUDETE


Exemplul 2:
JUDETE:

LOCALITATI:

STRZI:

Fig. 5.5. Reprezentarea legturii ntre relaiile JUDETE i LOCALITATI cu ajutorul


cheilor externe simbol_judet i cod_localitate

Restricia de unicitate a cheii


Restricia de unicitate a cheii impune ca ntr-o relaie s nu existe dou linii
identice (linii care s nu conin aceleai valori pentru toate atributele). Altfel spus,
restricia de unicitate a cheii impune ca ntr-o relaie s nu existe dou tupluri cu o
aceeai valoare pentru atributul cheie.
Exemplele 1 i 2 respect restricia de unicitate a cheii.

Restricia referenial
Restricia referenial impune ca ntr-o relaie R1 care refer o relaie R 2,
valorile cheii externe s figureze printre valorile cheii primare din R 2 sau s fie valori
null (nedefinite). R1 i R2 nu trebuie s fie neaprat distincte.
Exemplele 1 i 2 prezint un mecanism de legare a relaiilor i respect
restricia referenial a cheii.

Restricia entitii
Restricia entitii impune ca ntr-o relaie atributele cheii primare s fie nenule.
(Atributele cheie s nu conin valori nule). Dac exist valori null, cheia i poate
pierde rolul de identificator de tuplu. Astfel, la ncrcarea unui tuplu, valoarea cheii
trebuie s fie cunoscut, pentru a se putea verifica faptul c aceast valoare nu
exist deja ncrcat.
Exemplele 1 i 2 respect restricia entitii.
Relaia REZ din figura 4.17 ncalc restricia entitii deoarece exist chei
primare ce conin valori nule, dup cum este cazul judeului Braov.

Alte restricii de integritate


n categoria restricii de integritate intr urmtoarele tipuri de restricii:
a) restricii referitoare la dependena datelor:
dependen funcional;
dependen multivaloare;
b) restricii de comportament:
restricii de domeniu;
restricii temporale.
Restriciile referitoare la dependena datelor, reprezint modul n care datele
depind unele de altele.
Dependenele funcionale

Dependenele funcionale reprezint dependena ntre date prin care se poate


identifica un atribut/grup de atribute prin intermediul altui atribut/grup de atribute.
Dac X i Y sunt dou subansamble de atribute ale atributelor relaiei R,
spunem c ntre X i Y exist o dependen funcional, notat X Y , dac i
numai dac:
(i) fiecare valoare a lui X poate fi asociat unei singure valori din Y, i
(ii) dou valori distincte ale lui X nu pot fi asociate dect aceleiai valori ale lui Y.
X se numete determinantul (sursa) dependenei, iar Y se numete
determinatul (destinaia) dependenei.

Exemple: Urmtoarele atribute se afl n dependen funcional:


cod_potallocalitate, deoarece unui cod potal i corespunde o singur
localitate (sensul dependenei este foarte important, deoarece, viceversa ar
nsemna: o localitate are un singur cod_potal);
nr_facturdata_factur, deoarece cunoaterea numrului facturii determin
cu exactitate data facturii.
Dou atribute nu sunt n dependen funcional, notat X
Y, atunci
cnd cunoaterea unei valori a primului atribut fie nu permite cunoaterea nici uneia
dintre valorile celui de al doilea atribut, fie permite cunoaterea mai multor valori ale
celui de al doilea atribut.
Exemplu: Urmtorul atribut nu se afl n dependen funcional: cnp
nr_factur, deoarece pentru o persoan se pot ntocmi mai multe facturi (aferente
fiecrei vnzri).
n cadrul modelului relaional, o dependen funcional este reprezentat
printr-o sgeat ce pornete din surs i se termin n destinaie.
FACTURI:

Fig. 5.6. Reprezentarea dependenei funcionale ntre atributele nr_factura i


data_facturii

Dependenele multivaloare
Dependenele multivaloare reprezint dependena n care un atribut/ grup de
atribute poate reprezenta/ identifica mai multe valori pentru o singur valoare a unui
alt atribut/ grup de atribute.
Dac X,Y i Z sunt trei subansambluri de atribute ale atributelor relaiei R,
spunem c ntre X i Y exist o dependen multivaloare, notat X Y sau
X Y | Z , dac i numai dac:
(i) la fiecare valoare a lui X poate fi asociat una sau mai multe valori ale lui Y, i
(ii) aceast asociere nu depinde de apariiile lui Z.
Altfel spus, dac X Y i (x,y,z), (x,y,z) sunt dou tupluri din R, atunci i
(x,y,z), (x,y,z) sunt tupluri din R.
Exemplu: n relaia OFERTE (alctuit din atributele: id_tip_oferte, cnp i
simbol_judet) valorile atributului id_tip_oferte au urmtoarea semnificaie: 01
desemneaz imobil de tip apartament, iar 02, imobil de tip cas. Astfel, urmtoarea
relaie conine dependene multivaloare:
OFERTE:

deoarece
01

1701205230023 MM

(x, y,z)

01

2581023457723 SM

(x, y,z)

01

1701205230023 SM

(x, y,z)

01

2581023457723 MM

(x, y,z)

Fig. 5.7. Relaia OFERTE n care exist dependen multivaloare

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