BD_Cap_3.doc

12
 3 MODELUL DE DA TE RELAŢIONAL SGB D relaţ ionale au deveni t în zil ele noa stre ele men tul de sof twa re dom ina nt în  prelucrarea datelor. Ele reprezintă a doua generaţie 1  de SGBD şi se azează pe modelul de date relaţional propus de matematicianul E. !. "odd în 1#$%. &n modelul relaţional' toate datele sunt structurate logic în cadrul unor relaţii (taele). Sistemele comerciale azate pe modelul relaţional au început să apară pe la începutul anilor *+%. ,c um e-istă sute de sisteme SGBD relaţiona le' att pent ru mainframe ct şi pentru microcalc ula toa re. Din ult ima cat eg ori e amintim c tev a e-e mp le/  Access şi  FoxPro ale companiei 0irosoft' Paradox şi Vi sual dBase de la Borland. 3.1 Te rminologie 0odelul relaţional se azează pe conceptul matematic de relaţie' reprezentat fizic su formă de tabel. Bazele acestei trat ări au fost puse de "odd' care a utilizat terminologia şi conceptele din teoria mulţimilor şi logica predicativă. 3.1.1 Structu ra relaţion ală a datelor n SGBD relaţional necesită ca aza de date să fie percepută de către utilizator doar su formă de taele. ,ceastă percepţie se aplică numai structurii logice a azei de date 2 adică nivelurilor e-terne şi conceptuale ale ar3itecturii ,4S56S7,8". 4u se aplică şi structurii fizice a azei de date' care poate fi implementată utiliznd o varietate de structuri de stocare. 9 relaţie este reprezentată de un tael idimensional' în care rndurile acestuia corespund înregistrărilor individuale' iar coloanele corespund atriutelor. ,triutele pot apărea în orice ordine' relaţia rămnnd nesc3imată. Domeniile constituie o caracteristică e-trem de puternică a modelului relaţional. !iecare atriut dintr6o ază de date relaţională este definit pe un domeniu. Domeniile pot fi diferite pentru fiecare atriut' sau două sau mai multe atriute pot fi definite pe un acelaşi domeniu. "onceptul de domeniu este important deoarece permite utilizatorului definirea sensului şi a sursei de valori pe care le poate lua atriutul. "a rezultat' sistemului îi sunt disponiile mai multe infor maţii şi la e-ecuta rea unei operaţii relaţionale ' pot fi evitate operaţiile incorecte semantic. De e-emplu' nu are sens compararea unui număr de stradă cu un număr de telefon' cu toate că  pentru amele a triute domeniile de de finiţie sunt şiruri de cara ctere. Elementele unei relaţii sunt rndurile sau tuplurile dintr6un tael. :uplurile pot apare în orice ordine' relaţia va rămne aceeaşi. 1  7rima generaţie o constituie SGBD în reţea şi ierar3ice. Relaţie 9 relaţie este un tabel cu coloane şi rnduri. Atribut n atriut este o coloană a unei relaţii' cu o anumită denumire. Domeniu n domeniu este mulţimea de valori permise pentru unul sau mai multe Tulu n tuplu este un r!n" dintr6o relaţie .

Transcript of BD_Cap_3.doc

1

3 Modelul de date relaional

SGBD relaionale au devenit n zilele noastre elementul de software dominant n prelucrarea datelor. Ele reprezint a doua generaie 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.

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.

Filiala

NrFilAdresaZonaOraulNrTelefonNrFax

C4Bdul Saturn 25AstraBraov234256124123

C11Sp. Independenei 142BerceniBucureti748397328964

C5Bdul Eroilor 14CentruBraov456345759456

C6Str Blcescu 75ScheiBraov253414842362

Personal

NrPersPrenumeNumeAdresaNrTelFuncieSexDataNSalariuNrAsigNrFil

4123IonAlbuCiorii 22123456managerM19653500313131C5

4124AnaNegreaVii 45213141asistentF19772000424141C6

4125VasilearguLunii 86secretarM19681500748494C5

4127MarinRouRozei 25324354managerM19673500322121C11

Fig. 3.1 Exemple de relaii Filiala i PersonalStructura 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.

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.

Cardinalitatea se modific prin adugarea sau tergerea unor tupluri.

O baz de date relaional const n relaii, care sunt structurate adecvat. Aceast structurare este denumit normalizare.

Tabelul 3.1Termeni formaliAltenativa 1Alternativa 2

RelaieTabelFiier

TupluRndnregistrare

Atribut Coloan Cmp

3.1.2 Relaii matematice

Pentru a nelege sensul corect al termenului de relaie, este necesar prezentarea succint a ctorva noiuni de matematic.

Presupunem c avem dou mulimi, D1 i D2, unde

D1=(2,4( i D2=(1,3,5(Produsul cartezian al acestor dou mulimi, scris sub forma D1D2, reprezint mulimea tuturor perechilor ordonate astfel nct primul element s fie membru al mulimii D1, iar al doilea element s fie membru al mulimii D2. Deci,

D1D2=((2,1), (2,3), (2,5), (4,1), (4,3), (4,5)(Orice submulime a acestui produs este o relaie. De exemplu, se poate realiza o relaie R astfel nct

R=((2,1), (4,1)(

Putem extinde acum noiunea de relaie la trei mulimi. Fie trei mulimi, D1, D2, D3. produsul cartezian D1D2D3 al acestor trei mulimi reprezint mulimea tuturor tripletelor ordonate, n care primul element i aparine lui D1, al doilea lui D2 i al treilea lui D3. orice submulime a acestui produs cartezian reprezint o relaie.

Extindem acum la n mulimi D1, D2, , Dn. Produsul cartezian al acestora este definit ca:

D1D2 Dn=((d1, d2, ..., dn)| d1D1, d2D2, , dnDn(i de obicei se scrie sub forma:

n

X Di

i=1Orice 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:

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 d1(D1, d2(D2, ... dn(Dn.

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.

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.

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 null-urilor n modelul relaional constituie o chestiune controversat. n prezent, Codd trateaz null-urile 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.2 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.

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.3 Integritate referenial

A doua regul de integritate se aplic cheilor strine.

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.

3.3 Limbajele relaionale

Aa cum am artat anterior, limbajele bazelor de date sunt mprite n 2 categorii: limbaje de definire a datelor (DDL) i limbaje de manipulare a datelor (DML). DDL este utilizat pentru a specifica schema bazei de date, iar DML este utilizat pentru citirea i reactualizarea bazei de date.

DML asigur un set de procedee ce permit operaii de baz pentru manipularea datelor din baza de date:

inserarea de date noi

modificri de date

regsirea datelor

tergerea de date

Limbajele DML pot fi de dou tipuri: procedurale i neprocedurale.

procedurale specific modul cum trebuie s fie obinut rezultatul unei instruciuni DML

neprocedurale descriu numai ce rezultat trebuie obinut

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.

Selecia (sau restricia)

(predicat(R): acioneaz asupra unei singure relaii R i definete o relaie care conine numai acele tupluri ale lui R care satisfac condiia specificat (predicatul).

Ex: (salariu>1000(Personal)

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

Vederile se pot defini prin intermediul relaiilor de baz.

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

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

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.

Reguli structurale (Regula 1 i Regula 6)

Conceptul structural fundamental al modelului relaional este cel de relaie. Codd stabilete c un SGBDR trebuie s accepte o serie de caracteristici structurale: relaii, domenii, chei primare i strine. Pentru fiecare relaie din baza de date trebuie s existe cte o chei primar.

Regula 1 Reprezentarea informaiilor

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.

Regula 6 Reactualizarea vederilor

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.

Reguli de integritate (Regula 3 i Regula 10)

Acceptarea integritii datelor este un criteriu important de apreciere a caracterului convenabil al unui produs. Cu ct sunt mai multe constrngeri de integritate care pot fi ntreinute de SGBD, nu de fiecare program aplicaie, cu att garantarea calitii datelor este mai bun.

Regula 3 Tratarea sistematic a valorilor null

Regula 10 Independena de integritate

Se pune un accent deosebit pe ideea de stocare a constrngerilor de integritate n catalogul de sistem, mai degrab dect ncapsularea lor n programele aplicaie sau interfeele cu utilizatorul. Stocarea acestor constrngeri n catalogul de sistem are avantajul unui control i a unei constrngeri centralizate.

Reguli de manipulare a datelor (Regulile 2, 4, 5 i 7)

Exist 18 caracteristici de manipulare pe care trebuie s le accepe un SGBD relaional ideal. Acestea definesc caracterul complet al limbajului de interogare. Respectarea acestor reguli are ca efect izolarea utilizatorului i programelor aplicaie de mecanismele fizice i logice care implementeaz capacitile de gestionare a datelor.

Regula 2- Accesul garantat

Regula 4 Catalog dinamic on-line, bazat pe modelul relaional

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.

Regula 5 Sublimbaje de date cuprinztoare

Vom vedea c noul standard ISO al limbajului SQL prezint toate aceste funcii.

Regula 7 Operaii de inserare, reactualizare i tergere de nivel nalt.

Reguli privind independena de date (Regulile 8, 9 i 11)

Codd definete trei reguli care specific independena datelor de programele aplicaie care le utilizeaz. Respectarea acestor reguli garanteaz protecia utilizatorilor i realizatorilor de programe fa de necesitatea de a schimba aplicaiile, ca urmare a reorganizrii de nivel jos a bazei de date.

Regula 8 Independena fizic de date.

Regula 9 Independena logic de date.

Regula 11 Independena de distribuie.

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.

Sublimbajul de manipulare a datelor dintr-un SGBD relaional trebuie s permit programelor aplicaie i nterogrilor s rmn aceleai din punct de vedere logic, dac i ori de cte ori datele sunt centralizate sau distribuite fizic.

Programele aplicaie i activitile de la terminal trebuie s rmn logic intacte la modificarea tabelelor de baz.

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.

Un sistem relaional poate accepta mai multe limbaje i diverse moduri de utilizare a terminalelor (de exemplu, modul de completare a spailor libere). Totui trebuie s existe cel puin un limbaj ale crui instruciuni s poat exprima urmtoarele:

definirea datelor

definire vederilor

manipularea datelor (interactiv i prin intermediul programului)

constrngerile de integritate

autorizarea

limitele tranzaciilor (begin, commit i rollback)

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.

Se garanteaz c fiecare element de dat (valoare atomic) dintr-o baz de date relaional este accesibil din punct de vedere logic, prin apelarea la o combinaie de nume de tabel, valoare a cheii primare i nume de coloan.

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.

Valorile null sunt acceptate pentru a reprezenta informaiile lips i cele care nu pot fi acceptate n mod sistematic, indiferent de tipul de date.

Toate vederile care sunt teoretic reactualizabile pot fi reactualizate i de ctre sistem.

La nivel logic, toate informaiile dintr-o baz de date relaional sunt reprezentate explicit numai ntr-un singur mod prin valorile din tabele.

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).

Programele aplicaie i activitile de la terminal trebuie s rmn logic intacte la modificarea suportului de stocare i la modificarea metodelor de acces la date.

Relaie

Cheie strin

Cheie primar

grad

Relaie

Atribute

cardinalitate

RelaieO relaie este un tabel cu coloane i rnduri.

AtributUn atribut este o coloan a unei relaii, cu o anumit denumire.

DomeniuUn domeniu este mulimea de valori permise pentru unul sau mai multe atribute.

TupluUn tuplu este un rnd dintr-o relaie .

GradGradul unei relaii reprezint numrul de atribute pe care le conine aceasta.

CardinalitateCardinalitatea unei relaii reprezint numrul de tupluri coninute de aceasta..

Baz de date relaionalUn set de relaii normalizate.

Schema de relaie O denumire a relaiei, urmat de un set de perechi de atribute i denumiri de domenii.

Cheia Este un subset al atributelor unei relaii care satisface proprietile de:

identificare unic: fiecare tupl a relaiei este identificat unic de valorile atributelor care compun cheia

neredundan: subsetul de atribute este minimal, adic eliminarea oricrui atribut din subset duce la pierderea primei proprieti.

Cheie primarCheia candidat care este selectat pentru a identifica n mod unic tuplurile din cadrul unei relaii.

Integritatea entitilorntr-o relaie de baz, nici un atribut al unei chei primare nu poate fi null.

Integritatea referenialDac ntr-o relaie exist o cheie strin, valoarea acesteia trebuie ori s coincid cu valoarea unei chei candidat a unui tuplu n relaia sa de baz, ori s fie n ntregime null.

Pentru a fi relaional, un SGBD trebuie s fie capabil s gestioneze n ntregime bazele de date prin capacitile sale relaionale.

Relaie de bazeste o relaie cu o anumit denumire, corespunztoare unei entiti din schema conceptual, ale crei tupluri sunt stocate fizic n baz de date.

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.

Prima generaie o constituie SGBD n reea i ierarhice.

PAGE