Documente Academic
Documente Profesional
Documente Cultură
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.
Atribut
Un domeniu este mulimea de valori permise pentru unul sau mai multe
atribute.
Elementele unei relaii sunt rndurile sau tuplurile dintr-un tabel. Tuplurile pot apare n orice
ordine, relaia va rmne aceeai.
Atribute
Filiala
Relaie
NrFil
C4
C11
C5
C6
Adresa
Bdul Saturn 25
Sp. Independenei 142
Bdul Eroilor 14
Str Blcescu 75
Zona
Astra
Berceni
Centru
Schei
Oraul
Braov
Bucureti
Braov
Braov
NrTelefon
234256
748397
456345
253414
NrFax
124123
328964
759456
842362
cardinalitate
grad
Cheie primar
NrPer
s
Relaie
4123
4124
4125
4127
Prenum
e
Ion
Ana
Vasile
Marin
Cheie strin
Nume
Adresa
NrTel
Funcie
Sex
DataN
Salariu
NrAsig
Albu
Negrea
argu
Rou
Ciorii 22
Vii 45
Lunii 86
Rozei 25
123456
213141
manager
asistent
secretar
manager
M
F
M
M
1965
1977
1968
1967
3500
2000
1500
3500
313131
424141
748494
322121
324354
NrFi
l
C5
C6
C5
C11
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.
Cardinalitate
O baz de date relaional const n relaii, care sunt structurate adecvat. Aceast structurare este
denumit normalizare.
Tabelul 3.1
Termeni formali
Relaie
Tuplu
Atribut
Altenativa 1
Tabel
Rnd
Coloan
Alternativa 2
Fiier
nregistrare
Cmp
XD
i=1
Orice submulime a acestui produs cartezian reprezint o relaie a celor n mulimi. De observat
c, n definirea acestor relaii trebuie specificate mulimile, sau domeniile, din care se aleg
valori.
3.1.3 Relaii n bazele de date
Aplicnd aceste concepte la baza de date, vom avea:
Schema de relaie O denumire a relaiei, urmat de un set de perechi de atribute i denumiri
de domenii.
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
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
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.
3.2 Integritatea relaional
n paragraful precedent, am analizat partea structural a modelului de date relaional. Aa
cum am stabilit n capitolul precedent, n paragraful Modele de date i modelarea conceptual,
un model de date mai are nc dou pri: o parte de manipulare, care definete tipurile de
operaii permise asupra datelor i un set de reguli de integritate, care asigur corectitudinea
datelor. Acum vom analiza care sunt regulile relaionale de integritate.
Din moment ce fiecare atribut are un domeniu asociat, exist anumite constrngeri
(denumite constrngeri de domeniu) sub form de restricii asupra mulimii de valori permise
pentru atributele relaiilor. Pe lng acestea, exist dou reguli de integritate care reprezint
restricii sau constrngeri ce se aplic tuturor instanelor unei baze de date. Pentru modelul
relaional, acestea sunt:
integritatea entitilor
integritate referenial
3.2.1 Conceptul de null
Null-ul reprezint valoarea unui atribut care este n mod curent necunoscut sau nu este
aplicabil tuplului respectiv. Un null nu este acelai lucru cu o valoare numeric egal cu 0 sau
cu un text completat cu spaii; zerourile i spaiile sunt valori, pe cnd null-ul semnific absena
unei valori.
Null-urile pot crea probleme privind implementarea. Aceast dificultate apare deoarece
modelul relaional se bazeaz pe calculul predicativ de ordinul nti, care reprezint o logic
bazat pe dou valori, sau boolean, unde singurele valori admise sunt adevrat sau fals.
Introducerea null-urilor nseamn c trebuie s lucrm cu o logic polivalent. ncorporarea nullurilor n modelul relaional constituie o chestiune controversat. n prezent, Codd trateaz nullurile ca parte integrant a modelului, n timp ce alii consider aceast abordare greit, fiind de
prere c problema informaiilor lips nu este complet neleas, c nu s-a gsit nc o soluie
complet satisfctoare i c ncorporarea null-urilor n modelul relaional este prematur. Aadar,
atenie!, nu toate sistemele relaionale accept null-urile.
3.2.1 Integritatea entitilor
Prima regul de integritate se aplic cheilor primare ale relaiilor de baz. Pentru moment, vom
defini o relaie de baz ca o relaie ce corespunde unei entiti n schema conceptual.
Integritatea entitilor
Prin definiie, o cheie primar este un identificator minim, utilizat pentru identificarea
unic a tuplurilor. Aceasta nseamn c nici un subset al cheii primare nu este suficient pentru a
permite identificarea unic a tuplurilor. Dac admitem un null pentru orice parte a unei chei
primare, aceasta implic faptul c nu toate atributele sunt necesare pentru a deosebi tuplurile,
ceea ce contrazice definiia cheii primare.
Tem: analizai n detaliu definiia de mai sus i gsii anomalii.
3.2.2 Integritate referenial
A doua regul de integritate se aplic cheilor strine.
Integritatea referenial
De exeplu atributul NrFil din relaia Personal este o chei strin, care intete atributul
NrFil din relaia de baz Filiala. Nu trebuie s fie posibil crearea unei nregistrri de personal
cu numrul de filial C20, de exemplu, dect dac exist deja o nregistrare corespunztoare
numrului C20 n relaia Filiala. Totui trebuie s existe posibilitatea de a crea o nou
nregistrare de personal cu numr de filial null. Aceasta corespunde situaiei n care un nou
membru al personalului a fost angajat n companie, fr a i se atribui nc o anumit filial.
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 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.
3.4.2 Scopul vederilor
furnizeaz un mecanism de securitate puternic i flexibil, prin ascunderea unor pri ale
bazei de date fa de anumii utilizatori. Utilizatorul nu este contient de existena
atributelor tuplurilor care lipsesc din vederea respectiv;
permite accesarea datelor ntr-un mod personalizat, conform cu cerinele utilizatorilor,
astfel nct, aceleai date pot fi vizualizate simultan, de ctre utilizatori diferii, n diverse
moduri;
poate simplifica operaii complexe asupra relaiilor de baz. De ex, dac o vedere este
definit ca o uniune a dou relaii, utilizatorul poate efectua operaiile unare mai simple,
de selecie i proiecie a vederii, iar acestea vor fi traduse de SGBD n operaii
echivalente asupra uniunii.
O vedere trebuie proiectat astfel nct s accepte modelul extern, cu care este
familiarizat utilizatorul. De exemplu:
un utilizator poate avea nevoie de nregistrrile din relaia Filiala care conin numele
managerilor, mpreun cu celelalte atribute. Aceast vedere se creaz prin uiunea
relaiilor Filiala i Personal, urmat de proiectarea asupra atributelor care mai intereseaz
un alt utilizator ar putea dori s vad nregistrrile din relaia Personal, dar fr atributul
Salariu. Pentru aceasta se efectueaz o proiecie ce creaz o vedere care nu include
atributul Salariu
atributele pot fi redenumite, astfel nct utilizatorul s poat folosi denumirile care i sunt
lui familiare
un membru al personalului poate vizualiza numai informaii din filiala n care lucreaz.
n acest caz, trebuie efectuat o operaie de selecie, astfel nct s se poat vizualiza
numai un subset din relaia Personal
3.4.3 Reactualizarea vederilor
Toate reactualizrile unei relaii din baza de date trebuie s fie imediat reflectate n toate
vederile care se refer la aceasta. Similar, dac o vedere este reactualizat, atunci relaia de baz
corespunztoare trebuie s reflecte modificarea. Totui exist restricii privind tipurile de
modificri care pot fi efectuate prin intermediul vederilor:
sunt permise reactualizrile prin vederi definite prin utilizarea unei interogri simple,
care implic o singur relaie de baz i conine fie cheia primar, fie cheia candidat;
nu sunt permise reactualizrile prin vederi care implic relaii de baz multiple;
nu sunt permise reactualizrile prin vederi care implic operaii de acumulare sau de
grupare.
3.5 SGBD relaional
Exist 12 reguli plus una fundamental, care constituie un etalon pentru identificarea unui
SGBD relaional. Pentru a sublinia implicaiile acestor reguli, ele vor fi prezentate grupat n cinci
domenii de funcionalitate:
1. reguli fundamentale
2. reguli structurale
3. reguli de integritate
4. reguli de manipulare a datelor
5. reguli privind independena de date
Reguli fundamentale (Regula 0 i Regula 12)
Regula 0 Regula fundamental
Pentru a fi relaional, un SGBD trebuie s fie capabil s gestioneze n ntregime bazele de
date prin capacitile sale relaionale.
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.
Regula 12 Regula de nonsubversiune
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.