Sunteți pe pagina 1din 9

Baze de date relaţionale 35

Unitatea de învăţare 2.
BAZE DE DATE RELAŢIONALE

Introducere
Modelul relaţional al datelor propus de E.F. Codd, a fost perfecţionat în
anii următori printr-un număr mare de rezultate teoretice şi practice de
C.J. Date, R. Boyce, R. Fagin, W.W. Armstrong şi alţii. Modelul are ca
obiectiv esenţial creşterea independenţei programelor în raport cu
reprezentarea datelor.

Competenţele unităţii de învăţare


După parcurgerea acestei părți studenții vor înțelege următoarele
concepte:
CONCEPTE GENERALE ALE BDR
RESTRICŢIILE DE INTEGRITATE ŞI SECURITATEA DATELOR

Durata medie de parcurgere a primei unităţi de învăţare este de 2 ore.

[CON01], [DAT05], [DOL98], [FOT97], [GAR03], [GBD02], [ION04], [LUN95],


*MEI06+, *MIR88+, *POI96+, *ŢÎM92+, *VEL03+

2.1. CONCEPTE GENERALE

Modelul relaţional al datelor propus de E.F. Codd, a fost perfecţionat în anii


următori printr-un număr mare de rezultate teoretice şi practice de C.J. Date, R.
Boyce, R. Fagin, W.W. Armstrong şi alţii. Modelul are ca obiectiv esenţial creşterea
independenţei programelor în raport cu reprezentarea datelor.

Caracteristicile modelului relaţional:


 datele sunt percepute de utilizatori ca tabele
 simplitate şi precizie în definirea elementelor de bază (relaţii, atribute,
domenii)
 operatorii relaţionali generează un tabel rezultat din tabelele operanzi
Baze de date relaţionale 36

 restricţiile de integritate, normalizarea relaţiilor, controlul concurenţei permit


crearea structurii datelor şi a prelucrării lor într-un mod consistent şi asigură
integritatea şi protecţia acestora.

În Tabelul 2.1. sunt prezentate elementele ce caracterizează modelul relaţional şi


corespondenţa lor în conceptele de bază ale ingineriei software.

Tabelul 2.1.
Modelul relaţional Inginerie software
structura relaţională a datelor informaţie
operatorii modelului relaţional proces
restricţiile de integritate integritate

Pentru claritatea expunerii prezentăm în Tabelul 2.2. corespondenţele formal -


uzual - fizic dintre diferitele concepte utilizate pentru a descrie elementele de bază
ale organizării datelor în modelul relaţional.

Tabelul 2.2
Formal Uzual Fizic
relaţie tabel fişier
tuplu linie articol
atribut coloană câmp
domeniu tip de dată tip de dată

BAZA DE DATE RELAŢIONALĂ este un ansamblu organizat de tabele (relaţii),


variabile în timp, împreună cu legăturile dintre ele. Fiecare tabel (relaţie) reprezintă
un tip de entitate sau o asociere dintre două sau mai multe tipuri de entităţi.

E.F.Codd formulează 13 reguli pentru evaluarea performanţelor unui sistem de


gestiune a bazelor de date relaţionale (SGBDR). Aceste reguli exprimă cerinţele
maximale ca un SGBDR să fie relaţional.

Condiţiile minimale impuse ca un SGBD să fie relaţional sunt:

 să implementeze modelul de date relaţional prin DDL (Data Definition


Language) şi DML (Data Manipulation Language)
 să implementeze un limbaj de interogare relaţional.

Sistemul de gestiune a bazelor de date relaţionale a devenit elementul software


dominant utilizat azi în prelucrarea datelor, cu o cifră a vânzărilor (estimată la
începutul anilor 2000), aproximativ între 8 şi 10 miliarde de dolari şi cu o previziune
a ratei de creştere de 25% pe an *CON01+.
Baze de date relaţionale 37

În Fig. 2.1. se prezintă arhitectura funcţională a unui sistem de gestiune a bazelor


de date relaţional.

Domeniul este un ansamblu de valori care poate fi definit explicit prin enumerarea
tuturor valorilor sau implicit prin precizarea proprietăţilor pe care le au valorile
domeniului respectiv.

Exemplu:
D1 = {“MK”, “ECTS”, “FB”, “CIG”, “IE”, “MN” }
D2  x | x  N , x  0 ,100
D3 = {0, 9, 19}

 domeniul D1 este definit explicit prin enumerarea programelor de studii


care au în plan disciplina Baze de date;
 domeniul D2 este definit implicit prin specificarea proprietăţilor care pot fi
luate de valorile domeniului;
 domeniul D3 este definit explicit prin enumerarea valorilor posibile (în
procente) ale cotelor de TVA.

D1  D2  ...  Dn  V1 ,V2 ,...,Vn , unde V1  D1 ,...,Vn  Dn 


Fiecărui domeniu i se asociază un atribut : f : Ai  Di , f  Ai   Di
Baze de date relaţionale 38

Interfaţa utilizatorului

Gestiunea vederilor

E Integritatea semantică
Control
Z Autorizarea accesului
U

L
Optimizarea cererilor
T
Gestiunea planurilor de
A execuţie
Tratarea
T
cererilor
E Controlul execuţiei

Executarea operatorilor
algebrici

Gestiune buffer
Gestiunea
Mecanisme de acces
accesului

Gestiunea accesului
concurent Securitate
Jurnalizarea

Fig. 2.1. Arhitectura funcţională a unui SGBD relaţional


Baze de date relaţionale 39

Relaţia poate fi definită ca o mulţime de tupluri ce aparţine produsului cartezian


D1  D2  ...  Dn , astfel spus R  D1  D2  ...  Dn .
Relaţia se poate memora într-un tabel bidimensional:

R A1 A2 ..... An
t1 a11 a12 a1n
t2 a21 a22 a2n
... ... ... ...
tm am1 am2 ..... amn

Liniile tabelului formează elementele relaţiei numite şi tupluri.


Notăm: tuplul i prin ti  ai1 , ai 2 ,..., ain  .

În modelul relaţional, relaţiile sunt utilizate pentru a păstra informaţii despre


obiectele care vor fi reprezentate în baza de date. Liniile tabelului corespund
înregistrărilor individuale, iar coloanele corespund atributelor. Atributele pot
apărea în orice ordine, relaţia rămânând neschimbată, adică păstrând acelaşi
înţeles.

Schema relaţiei (schema relaţională) este un element invariant în timp şi este dată
de mulţimea numelor atributelor corespunzătoare unei relaţii. Pentru fiecare
atribut se precizează domeniul asociat.

Notăm schema unei relaţii cu: RA1 : D1 , A2 : D2 ,..., An : Dn 


sau pe scurt: RA1 , A2 ,..., An .

Schema bazei de date relaţionale este dată de mulţimea tuturor schemelor


relaţionale corespunzătoare unei aplicaţii, iar conţinutul curent al relaţiilor la un
moment dat se numeşte bază de date relaţională.

Cardinalul unei relaţii este dat de numărul de tupluri din relaţie.

Gradul unei relaţii (aritatea relaţiei) este dat de numărul de atribute din relaţie.

Relaţia virtuală (relaţie derivată, viziune) este definită implicit pe baza altor relaţii,
prin intermediul unei expresii relaţionale. Stabilirea efectivă a tuplurilor care
compun relaţia virtuală se realizează prin evaluarea expresiei relaţionale în
momentul în care utilizatorul apelează la această relaţie.

Domenii compatibile cu reuniunea – domeniile au acelaşi grad (aritate) şi atributele


corespondente iau valori în aceleaşi domenii.
Baze de date relaţionale 40

Relaţia se prezintă ca o mulţime de tupluri. Logic, această mulţime nu poate


conţine elemente identice, cu alte cuvinte, relaţia nu poate avea tupluri duplicate.
Necesitatea identificării unui tuplu a condus la noţiunea de cheie.

Cheia unei relaţii reprezintă ansamblul minimal de atribute cu rol de identificare


unică a tuplurilor dintr-o relaţie. Într-o relaţie pot exista mai multe atribute /
combinaţii de atribute cu rol de identificare unică a tuplurilor, există deci mai multe
chei candidate. Dintre aceste chei candidate se alege cheia primară, celelalte devin
chei secundare sau alternante. Orice relaţie are cel puţin o cheie.

Orice cheie candidat K, pentru relaţie R are două proprietăţi:

 unicitate – în fiecare tuplu al relaţiei R, valorile cheii K identifică în mod


unic acel tuplu
 ireductibilitate – nicio submulţime a cheii K nu are proprietatea de
unicitate.

Identificarea unei chei candidat necesită cunoaşterea înţelesului din lumea reală a
atributului sau atributelor implicate, astfel încât să se poată stabili dacă sunt
posibile dubluri. Numai prin utilizarea acestor informaţii semantice, putem fi siguri
că o combinaţie de atribute constituie o cheie candidat.

Cheia simplă este cheia formată dintr-un singur atribut, iar cheia compusă este
formată din mai multe atribute.

Domeniul primar este domeniul pe care este definită cheia primară.

Cheia externă este un atribut /grup de atribute dintr-o relaţie, ale cărui valori sunt
definite pe domeniul primar al altei relaţii.

Relaţia primară. O relaţie RP este primară, dacă există o altă relaţie R, legată
semantic de ea, care are drept cheie externă, cheia primară a relaţiei considerate
(RP).

Exemple.
1. Fie relaţia STUDENT [nr_matricol, nume, facultate, grupa, sectia, CNP, adresa]
Atributele nr_matricol şi CNP au rol de identificare unică a tuplurilor din relaţie;
reprezintă chei candidate. Alegem drept cheie primară atributul nr_matricol, care
are domeniul format din 4 caractere numerice şi este mai uşor de operat. Atributul
CNP, format din 13 caractere numerice devine cheie secundară (alternantă).

2. Se consideră relaţiile:
Baze de date relaţionale 41

PRODUSE [cod_produs, denumire, um]


CONTRACTE [nr_contract, cod_produs, cod_client, data, cantitate, pret_unitar]
CLIENTI [cod_client, nume, CIF, adresa, cont, tel, email]

 relaţia PRODUSE are cheia primară - cod_produs;


 relaţia CONTRACTE are cheia primară - nr_contract, iar atributele cod_produs şi
cod_client sunt chei externe ;
 relaţia CLIENTI are cheia primară - cod_client, iar atributul CIF (cod de
înregistrare fiscală) este cheie secundară;
 PRODUSE şi CLIENTI sunt relaţii primare.

2.2. RESTRICŢIILE DE INTEGRITATE ŞI SECURITATEA DATELOR

A. Integritatea domeniului – constă din controlul sintactic şi semantic al unei


date oarecare şi se referă la definiţia tipului domeniului. De exemplu, în
cazul unui domeniu definit explicit prin enumerarea valorilor, trebuie să ne
asigurăm că valorile atributului respectiv fac parte din mulţimea
enumerată. Sau, în cazul unui domeniu definit implicit, se poate verifica, de
exemplu, dacă numărul unei facturi aparţine unui interval dat.

B. Integritatea entităţii – se referă la restricţii asupra cheii primare. Aceasta


trebuie să fie unică şi nenulă (atributele cheii primare trebuie să fie diferite
de valoarea null) .
Comentariu [CON01] .
Null reprezintă valoarea unui atribut, care este necunoscută. Poate însemna că
o valoare nu este aplicabilă unui anumit tuplu, sau că deocamdată nu s-a
atribuit nicio valoare. Null nu este acelaşi lucru cu o valoare numerică egală cu
zero sau cu un şir de text completat cu spaţii, deoarece zero şi spaţiile sunt
valori, pe când un null semnifică absenţa unei valori. Null-urile crează probleme
de implementare, deoarece modelul relaţional se bazează pe calculul
predicatelor de ordinul întâi, care reprezintă o logică bivalentă, unde singurele
valori admise sunt adevăr sau fals. Introducerea null-urilor înseamnă că ar
trebui să lucrăm cu o logică polivalentă. Codd tratează null-urile ca parte
integrantă a modelului relaţional, în timp ce Date consideră că această
abordare este greşită şi problema informaţiilor lipsă nu este complet înţeleasă.
De remarcat, că nu toate sistemele relaţionale acceptă null-urile.

C. Integritatea referirii – impune ca valorile cheii externe să figureze printre


valorile cheii primare din relaţia referită (relaţia primară).

Problema securităţii datelor presupune [GBD02]:


Baze de date relaţionale 42

 Asigurarea integrităţii semantice care a fost parţial abordată în cadrul


restricţiei de integritate a domeniului.
 Asigurarea sincronizării accesului concurent la baza de date, presupune că
acţiunile concurente ale utilizatorilor nu aduc prejudicii altor utilizatori.
 Asigurarea siguranţei în funcţionare, adică în urma unei defecţiuni fizice
(cădere de curent, ...) baza de date rămâne în stare coerentă.
 Asigurarea securităţii în utilizare presupune că baza de date este
manipulată de utilizatori care au drepturi de acces.

Starea de coerenţă a bazei de date relaţionale poate fi asigurată prin utilizarea


tranzacţiilor. Proprietatea de atomicitate a tranzacţiei, prezentată în paragraful
1.3., presupune ca setul de operaţii pe care îl reprezintă tranzacţia să fie executat în
întregime sau deloc. Operaţiile cuprinse într-o tranzacţie nu pot fi executate parţial
– dacă una din ele eşuează celelalte sunt anulate.

Astfel, o tranzacţie poate fi:


 salvată (commited) – toate operaţiile tranzacţiei au fost încheiate cu
succes, iar baza de date este actualizată cu noile modificări;
 derulată înapoi (rollback) – toate operaţiile din respectiva tranzacţie sunt
anulate, iar baza de date este restaurată la starea dinaintea tranzacţiei.
Acest mod de lucru asigură starea de coerenţă a bazei de date.

Să ne reamintim...
Cheia unei relaţii reprezintă ansamblul minimal de atribute cu rol de
identificare unică a tuplurilor dintr-o relaţie. Într-o relaţie pot exista
mai multe atribute / combinaţii de atribute cu rol de identificare
unică a tuplurilor, există deci mai multe chei candidate. Dintre aceste
chei candidate se alege cheia primară, celelalte devin chei secundare
sau alternante. Orice relaţie are cel puţin o cheie.

Rezumat
Caracteristicile modelului relaţional:
 datele sunt percepute de utilizatori ca tabele
 simplitate şi precizie în definirea elementelor de bază (relaţii,
atribute, domenii)
 operatorii relaţionali generează un tabel rezultat din tabelele
operanzi
 restricţiile de integritate, normalizarea relaţiilor, controlul
concurenţei permit crearea structurii datelor şi a prelucrării lor
Baze de date relaţionale 43

într-un mod consistent şi asigură integritatea şi protecţia acestora.

BAZA DE DATE RELAŢIONALĂ este un ansamblu organizat de tabele


(relaţii), variabile în timp, împreună cu legăturile dintre ele. Fiecare
tabel (relaţie) reprezintă un tip de entitate sau o asociere dintre două
sau mai multe tipuri de entităţi.

E.F.Codd formulează 13 reguli pentru evaluarea performanţelor unui


sistem de gestiune a bazelor de date relaţionale (SGBDR). Aceste reguli
exprimă cerinţele maximale ca un SGBDR să fie relaţional.

Condiţiile minimale impuse ca un SGBD să fie relaţional sunt:


 să implementeze modelul de date relaţional prin DDL (Data
Definition Language) şi DML (Data Manipulation Language)
 să implementeze un limbaj de interogare relaţional.

În modelul relaţional, relaţiile sunt utilizate pentru a păstra informaţii


despre obiectele care vor fi reprezentate în baza de date. Liniile
tabelului corespund înregistrărilor individuale, iar coloanele corespund
atributelor. Atributele pot apărea în orice ordine, relaţia rămânând
neschimbată, adică păstrând acelaşi înţeles.

Schema relaţiei (schema relaţională) este un element invariant în timp


şi este dată de mulţimea numelor atributelor corespunzătoare unei
relaţii. Pentru fiecare atribut se precizează domeniul asociat.
Relaţia se prezintă ca o mulţime de tupluri. Logic, această mulţime nu
poate conţine elemente identice, cu alte cuvinte, relaţia nu poate avea
tupluri duplicate. Necesitatea identificării unui tuplu a condus la
noţiunea de cheie.

Cheia unei relaţii reprezintă ansamblul minimal de atribute cu rol de


identificare unică a tuplurilor dintr-o relaţie. Într-o relaţie pot exista
mai multe atribute / combinaţii de atribute cu rol de identificare unică
a tuplurilor, există deci mai multe chei candidate. Dintre aceste chei
candidate se alege cheia primară, celelalte devin chei secundare sau
alternante. Orice relaţie are cel puţin o cheie.

Informaţiile stocate în baza de date trebuie să fie coerente, adică să


corespundă realităţii. Restricţiile de integritate minimale sunt reguli pe
care trebuie să le satisfacă datele din baza de date.

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