Documente Academic
Documente Profesional
Documente Cultură
SGBD relaionale au devenit n zilele noastre elementul de software dominant n prelucrarea datelor.
Ele reprezint a doua generaie1 de SGBD i se bazeaz pe modelul de date relaional propus de
matematicianul E. F. Codd n 1970. n modelul relaional, toate datele sunt structurate logic n cadrul unor
relaii (tabele).
Sistemele comerciale bazate pe modelul relaional au nceput s apar pe la nceputul anilor 80. Acum
exist sute de sisteme SGBD relaionale, att pentru mainframe ct i pentru microcalculatoare. Din ultima
categorie amintim cteva exemple: Access i FoxPro ale companiei Mirosoft, Paradox i Visual dBase de la
Borland.
3.1 Terminologie
Modelul relaional se bazeaz pe conceptul matematic de relaie, reprezentat fizic sub form de tabel.
Bazele acestei tratri au fost puse de Codd, care a utilizat terminologia i conceptele din teoria mulimilor i
logica predicativ.
3.1.1 Structura relaional a datelor
Un SGBD relaional necesit ca baza de date s fie perceput de ctre utilizator doar sub form de tabele.
Aceast percepie se aplic numai structurii logice a bazei de date adic nivelurilor externe i conceptuale
ale arhitecturii ANSI-SPARC. Nu se aplic i structurii fizice a bazei de date, care poate fi implementat
utiliznd o varietate de structuri de stocare.
O relaie este reprezentat de un tabel bidimensional, n care rndurile acestuia corespund nregistrrilor
individuale, iar coloanele corespund atributelor. Atributele pot aprea n orice ordine, relaia rmnnd
neschimbat.
Domeniu Un domeniu este mulimea de valori permise pentru unul sau mai multe
atribute.
Domeniile constituie o caracteristic extrem de puternic a modelului relaional. Fiecare atribut dintr-o baz
de date relaional este definit pe un domeniu. Domeniile pot fi diferite pentru fiecare atribut, sau dou sau
mai multe atribute pot fi definite pe un acelai domeniu.
Conceptul de domeniu este important deoarece permite utilizatorului definirea sensului i a sursei de
valori pe care le poate lua atributul. Ca rezultat, sistemului i sunt disponibile mai multe informaii i la
executarea unei operaii relaionale, pot fi evitate operaiile incorecte semantic. De exemplu, nu are sens
compararea unui numr de strad cu un numr de telefon, cu toate c pentru ambele atribute domeniile de
definiie sunt iruri de caractere.
Elementele unei relaii sunt rndurile sau tuplurile dintr-un tabel. Tuplurile pot apare n orice ordine, relaia va
rmne aceeai.
1
Prima generaie o constituie SGBD n reea i ierarhice.
Atribute
Filiala
grad
Personal
NrPer Prenum Nume Adresa NrTel Funcie Sex DataN Salariu NrAsig NrFi
Relaie
s e l
Fig.
Modelul de 4123 Ion Albu Ciorii 22 123456 manager M 1965 3500 313131 C5
date 4124 Ana Negrea Vii 45 213141 asistent F 1977 2000 424141 C6
relaional.1 4125 Vasile argu Lunii 86 secretar M 1968 1500 748494 C5
Exemple de 4127 Marin Rou Rozei 25 324354 manager M 1967 3500 322121 C11
relaii Filiala i Personal
Structura unei relaii, mpreun cu specificarea domeniilor i a oricror alte restricii asupra valorilor posibile
este denumit uneori intensitatea acesteia. Iar tuplurile sunt denumite extensia sau starea unei relaii, care se
modific n timp.
Grad Gradul unei relaii reprezint numrul de atribute pe care le conine aceasta.
O relaie cu un singur atribut are gradul nti i este denumit relaie unar, una cu dou atribute este
denumit binar, cu trei ternar, etc n-nar.
O baz de date relaional const n relaii, care sunt structurate adecvat. Aceast structurare este denumit
normalizare.
Fie atributele A1, A2, ... An, cu domeniile D1, D2, ... Dn. Atunci mulimea
A1:D1, A2:D2, ... An:Dn
reprezint schema de relaie. O relaie R, definit de schema de relaie S, este un set de corespondene ntre
denumirile atributelor i domeniile corespunztoare acestora. Prin urmare, relaia R este o mulime de n
tupluri:
(A1:d1, A2:d2, ... An:dn) astfel nct d1D1, d2D2, ... dnDn.
Fiecare element din n-tuplu este format dintr-un atribut i o valoare a acestuia. n acest mod putem considera o
relaie din modelul relaional ca pe o submulime a produsului cartezian al atributelor i domeniilor.
n exemplul dat anterior, relaia Filiala are atributele NrFil, Adresa, Zona, Oraul, NrTel i NrFax,
fiecare cu domeniul su corespunztor. Relaia Filiala reprezint orice submulime a prodului cartezian al
domeniilor NumarFiliala, Adrese, Zone, Orae, etc. Tabelul Filiala reprezint o modalitate convenabil de
scriere a acestor tupluri.
3.1.4 Proprietile relaiilor
O relaie are urmtoarele caracteristici
are o denumire, diferit de toate celelalte denumiri de relaii
fiecare celul a relaiei conine o valoare singular
fiecare atribut are o valoare distinct
toate valorile unui atribut aparin aceluiai domeniu
ordinea atributelor nu are nici o importan
fiecare tuplu este distinct, nu exist dubluri ale tuplurilor
teoretic, ordinea tuplurilor nu are nici o importan, dar practic, ordinea poate afecta eficiena accesrii
tuplurilor
Pentru a ilustra semnificaia acestor restricii, vom face referire tot la relaia Filiala din exemplul
anterior. Din moment ce fiecare celul trebuie s conin doar o singur valoare, stocarea ntr-o singur celul
a dou numere de telefon pentru o singur filial este ilegal. Cu alte cuvinte, relaia nu conine grupuri
repetitive. O relaie care satisface aceast proprietate se spune c este normalizat, sau n prima form
normal. Formele normale vor fi studiate ntr-un capitol separat.
Majoritatea proprietilor specificate mai sus provin din proprietile relaiilor matematice:
din moment ce relaia este o mulime, ordinea elementelor sale nu are nici o semnificaie
ntr-o mulime nu se repet nici un element
Totui, ntr-o relaie matematic, ordinea elementelor dintr-un tuplu are importan. De exemplu,
perechea ordonat (1, 2) este diferit de perechea ordonat (2, 1). Acest fapt nu este valabil i pentru relaiile
din modelul relaional, care necesit n mod special ca ordinea atributelor s nu prezinte importan.
3.1.5 Chei relaionale
Pentru identificarea unic a unui tuplu dintr-o relaie, nu sunt necesare valorile tuturor atributelor sale, ci sunt
suficiente doar valorile unui subset al atributelor.
Cheia Este un subset al atributelor unei relaii care satisface proprietile de:
1. identificare unic: fiecare tupl a relaiei este identificat unic de valorile
atributelor care compun cheia
2. neredundan: subsetul de atribute este minimal, adic eliminarea oricrui
atribut din subset duce la pierderea primei proprieti.
Problema gsirii unei chei se reduce la determinarea setului minimal de atribute care satisface proprietatea 1.
Orice atribut al unei relaii care face parte din cel puin o cheie se numete atribut prim. Toate celelalte
atribute ale relaiei sunt neprime.
ntr-o relaie pot exista mai multe chei. Acestea sunt numite chei candidate. Pentru fiecare relaie se
desemneaz dintre acestea o cheie privilegiat, numit cheie primar.
Cheie primar Cheia candidat care este selectat pentru a identifica n mod unic
tuplurile din cadrul unei relaii.
Statutul de cheie primar al unei chei candidat este stabilit de utilizator. Cheile candidat care nu sunt
selectate drept chei primare se numesc chei alternative.
La selectarea unei chei primare din mulimea cheilor candidate se va ine seama de necesitatea ca
numrul atributelor cheii primare s fie ct mai mic posibil.
La baza limbajelor relaionale st algebra relaional i calculul relaional. Dar att algebra ct i
calculul sunt limbaje formale neprietenoase cu utilizatorul. Ele au fost utilizate ca fundament pentru DML.
Algebra relaional este un limbaj teoretic, cu operaii care acioneaz asupra uneia sau mai multor
relaii, pentru a defini o alt relaie, fr modificarea celor iniiale. Prin urmare, att operanzii ct i rezultatele
sunt relaii, aa c, ieirea unei operaii poate deveni intrare pentru o alta. Aceasta permite imbricarea
expresiilor, la fel ca la operaiile matematice.
Algebra relaional este un limbaj de tip cte-o-relaie-o-dat, n care toate tuplurile sunt manipulate
ntr-o singur instruciune, fr ciclare.
Cele 5 operaii fundamentale din algebra relaional sunt: selecia, proiecia, produsul cartezian,
reuniunea i diferena.
Mai exist operaiile de uniune, intersecie i mprire, care pot fi exprimate prin intermediul celor 5
operaii fundamentale.
Operaiile de selecie i proiecie sunt unare, deoarele opereaz asupra unei singure relaii. Celelalte
acioneaz asupra unor perechi de relaii i se numesc operaii binare.
Proiecia
col1, ..., coln(R): acioneaz asupra unei singure relaii R i definete o relaie care conine un subset vertical al
lui R, extrgnd valorile atributelor specificate i eliminnd dublurile.
Ex: PersID, NumeP, Salariu(Personal)
Produsul cartezian
R S: definete o relaie care reprezint o concatenare a fiecrui tuplu din relaia R cu fiecare tuplu din relaia
S.
Reuniunea
R S: reuniunea a dou relaii cu i, respectiv j tupluri, reprezint o relaie obinut prin concatenarea celor
dou i avnd maxim i+j tupluri, tuplurile duble fiind eliminate. R i S trebuie s fie compatibile la reuniune.
Diferena
R S: definete o relaie ce const din tuplurile care sunt n R i nu sunt n S. R i S trebuie s fie compatibile
la reuniune.
3.4 Vederi
n arhitectura ANSI-SPARC cu 3 nivele am descris vederea extern ca structura bazei de date aa cum
apare ea unui anumit utilizator. n modelul relaional, noiunea de vedere are un neles uor diferit. Mai
degrab dect ntregul model extern al unui utilizator, o vedere este o relaie virtual o relaie care nu este
de sine stttoare, ci este derivat n mod dinamic din una sau mai multe relaii de baz. O vedere poate fi
construit prin efectuarea unor operaii sau calcule cu valorile relaiilor de baz existente. Deci, un model
extern poate consta att n relaii de baz (la nivel conceptual), ct i n vederile derivate din acestea.
3.4.1 Terminologie
Relaie de baz este o relaie cu o anumit denumire, corespunztoare unei entiti din
schema conceptual, ale crei tupluri sunt stocate fizic n baz de date.
Vederile se pot defini prin intermediul relaiilor de baz.
Vederea este rezultatul dinamic al uneia sau mai multor operaii relaionale, care
acioneaz asupra relaiilor de baz pentru a realiza o alt relaie. O vedere este o
relaie virtual care, n realitate nu exist n baz de date, ci este produs n
momentul respectiv, la cererea unui anumit utilizator.
O vedere este o relaie care pentru utilizator pare s existe i poate fi manipulat ca i cum ar fi o
relaie de baz, dar care nu exist n dispozitivul de stocare n sensul admis pentru relaiile de baz. Coninutul
unei vederi este definit ca o interogare asupra uneia sau mai multor relaii de baz.orice operaii efectuate
asupra unei vederi sunt automat transpuse n operaii asupra relaiilor din care este derivat. Vederile sunt
dinamice, adic modificrile din relaiile de baz care o afecteaz, sunt imediat reflectate de ctre acestea.
Aceast regul oblig sistemul s nu recurg la nici un fel de operaii ne-relaionale, pentru a realiza
oricare dintre capacitile sale de gestionare a datelor, cum ar fi definirea i manipularea acestora.
Dac un sistem relaional are un limbaj de nivel jos (cte-o-nregistrare-o-dat), acel nivel jos
nu poate fi utilizat pentru a submina sau a ocoli regulile de integritate i constrngerile
exprimate n limbajul relaional de nivel mai nalt (mai-multe-nregistrri-deodat).
Aceast regul cere ca ntregul acces la baza de date s fie controlat de ctre SGBD, astfel nct
integritatea bazei de date s nu poat fi compromis fr cunotina utilizatorului sau administratorului de
baze de date. Totui aceasta nu interzice utilizarea unui limbaj de nivel jos.
La nivel logic, toate informaiile dintr-o baz de date relaional sunt reprezentate explicit
numai ntr-un singur mod prin valorile din tabele.
Aceast regul cere ca toate informaiile, chiar i meta-datele coninute n catalogul de sistem, s fie
stocate ca relaii i gestionate de ctre aceleai funcii operaionale utilizate pentru ntreinerea datelor.
Referirea la nivelul logic nseamn c elementele de construcii logice, cum sunt indexurile, nu sunt
reprezentate i nu este nevoie s fie menionate explicit de utilizator n cadrul unei operaii de regsire, chiar
dac ele exist.
Aceast regul stabilete c, dac o vedere poate fi teoretic reactualizat, atunci sistemul SGBD trebuie
s fie capabil s efectueze reactualizarea respectiv. Nici un SGBD nu accept cu adevrat aceast
caracteristic, deoarece nu au fost nc descoperite condiiile pentru identificarea tuturor vederilor care pot fi
teoretic reactualizabile.
Valorile null sunt acceptate pentru a reprezenta informaiile lips i cele care nu pot fi
acceptate n mod sistematic, indiferent de tipul de date.
Constrngerile de integritate specifice unei anumite baze de date relaionale trebuie s poat fi
definite n sublimbajul relaional de date i stocate n catalog, nu n programele aplicaie.
Descrierea bazei de date este reprezentat la nivel logic n acelai mod ca i datele obinuite,
astfel nct utilizatorii autorizai pot aplica la interogarea aceasteia acelai limbaj relaional ca
cel aplicat datelor curente.
Aceast regul specific faptul c exist un singur limbaj de manipulare att a meta-datelor, ct i a
datelor i c exist o singur structur logic (relaia) utilizat pentru stocarea informaiilor despre sistem.
Vom vedea c noul standard ISO al limbajului SQL prezint toate aceste funcii.
Regula 7 Operaii de inserare, reactualizare i tergere de nivel nalt.
Capacitatea de tratare a unei relaii de baz sau a unei relaii derivate (adic o vedere) ca pe
un singur operand se aplic nu numai regsirii de date, ci i inserrii, reactualizrii i tergerii
acestora.
Asta nseamn c un program aplicaie care acceseaz sistemul SGBD pe un singur calculator trebuie
s funcioneze fr modificri i ntr-o reea, chiar dac datele sunt mutate de pe un calculator pe altul. Altfel
spus, utilizatorului final trebuie s i se dea impresia c datele sunt centralizate pe o singur main, n timp ce
responsabilitatea localizrii acestora n (posibil) multiple site-uri i responsabilitatea reconstituirii lor trebuie
s revin totdeauna sistemului. De observat c aceast regul nu cere ca SGBD s accepte o baz de date
distribuit pentru a fi relaional, dar stabilete c limbajul de interogare va rmne acelai dac se introduce
aceast capacitate iar datele vor fi distribuite.