Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice
Acasa » referate » informatica » baze de date
Modelul de date relational

Modelul de date relational


Modelul de date relational

SGBD relationale au devenit in zilele noastre elementul de software dominant in prelucrarea datelor. Ele reprezinta a doua generatie[1] de SGBD si se bazeaza pe modelul de date relational propus de matematicianul E. F. Codd in 1970. In modelul relational, toate datele sunt structurate logic in cadrul unor relatii (tabele).

Sistemele comerciale bazate pe modelul relational au inceput sa apara pe la inceputul anilor 80. Acum exista sute de sisteme SGBD relationale, atat pentru mainframe cat si pentru microcalculatoare. Din ultima categorie amintim cateva exemple: Access si FoxPro ale companiei Mirosoft, Paradox si Visual dBase de la Borland.

Terminologie

Modelul relational se bazeaza pe conceptul matematic de relatie, reprezentat fizic sub forma de tabel. Bazele acestei tratari au fost puse de Codd, care a utilizat terminologia si conceptele din teoria multimilor si logica predicativa.



Structura relationala a datelor

Relatie O relatie este un tabel cu coloane si randuri.

 


Un SGBD relational necesita ca baza de date sa fie perceputa de catre utilizator doar sub forma de tabele. Aceasta perceptie se aplica numai structurii logice a bazei de date - adica nivelurilor externe si conceptuale ale arhitecturii ANSI-SPARC. Nu se aplica si structurii fizice a bazei de date, care poate fi implementata utilizand o varietate de structuri de stocare.

Atribut Un atribut este o coloana a unei relatii, cu o anumita denumire.

 


O relatie este reprezentata de un tabel bidimensional, in care randurile acestuia corespund inregistrarilor individuale, iar coloanele corespund atributelor. Atributele pot aparea in orice ordine, relatia ramanand neschimbata.

Domeniu Un domeniu este multimea de valori permise pentru unul sau mai multe atribute.

 


Domeniile constituie o caracteristica extrem de puternica a modelului relational. Fiecare atribut dintr-o baza de date relationala este definit pe un domeniu. Domeniile pot fi diferite pentru fiecare atribut, sau doua sau mai multe atribute pot fi definite pe un acelasi domeniu.

Conceptul de domeniu este important deoarece permite utilizatorului definirea sensului si a sursei de valori pe care le poate lua atributul. Ca rezultat, sistemului ii sunt disponibile mai multe informatii si la executarea unei operatii relationale, pot fi evitate operatiile incorecte semantic. De exemplu, nu are sens compararea unui numar de strada cu un numar de telefon, cu toate ca pentru ambele atribute domeniile de definitie sunt siruri de caractere.

Tuplu Un tuplu este un rand dintr-o relatie .

 


Elementele unei relatii sunt randurile sau tuplurile dintr-un tabel. Tuplurile pot apare in orice ordine, relatia va ramane aceeasi.


Filiala

NrFil

Adresa

Zona

Orasul

NrTelefon

NrFax

C4

Bdul Saturn 25

Astra

Brasov

C11

Sp. Independentei 142

Berceni

Bucuresti

C5

Bdul Eroilor 14

Centru

Brasov

C6

Str Balcescu 75

Schei

Brasov

Relatie

 
Personal

NrPers

Prenume

Nume

Adresa

NrTel

Functie

Sex

DataN

Salariu

NrAsig

NrFil

Ion

Albu


Ciorii 22

manager

M

C5

Ana

Negrea

Vaii 45

asistent

F

C6

Vasile

Sargu

Lunii 86

secretar

M

C5

Marin

Rosu

Rozei 25

manager

M

C11

Fig. Exemple de relatii Filiala si Personal

Structura unei relatii, impreuna cu specificarea domeniilor si a oricaror alte restrictii asupra valorilor posibile este denumita uneori intensitatea acesteia. Iar tuplurile sunt denumite extensia sau starea unei relatii, care se modifica in timp.

Grad Gradul unei relatii reprezinta numarul de atribute pe care le contine aceasta.

 


O relatie cu un singur atribut are gradul intai si este denumita relatie unara, una cu doua atribute este denumita binara, cu trei ternara, etc n-nara.

Cardinalitate Cardinalitatea unei relatii reprezinta numarul de tupluri continute de aceasta..

 


Cardinalitatea se modifica prin adaugarea sau stergerea unor tupluri.

Baza de date relationala Un set de relatii normalizate.

 


O baza de date relationala consta in relatii, care sunt structurate adecvat. Aceasta structurare este denumita normalizare.

Tabelul 

Termeni formali

Altenativa 1

Alternativa 2

Relatie

Tabel

Fisier

Tuplu

Rand

Inregistrare

Atribut

Coloana

Camp

Relatii matematice

Pentru a intelege sensul corect al termenului de relatie, este necesara prezentarea succinta a catorva notiuni de matematica.

Presupunem ca avem doua multimi, D1 si D2, unde

D1= si D2=

Produsul cartezian al acestor doua multimi, scris sub forma D1×D2, reprezinta multimea tuturor perechilor ordonate astfel incat primul element sa fie membru al multimii D1, iar al doilea element sa fie membru al multimii D2. Deci,

D1×D2=

Orice submultime a acestui produs este o relatie. De exemplu, se poate realiza o relatie R astfel incat

R=

Putem extinde acum notiunea de relatie la trei multimi. Fie trei multimi, D1, D2, D produsul cartezian D1×D2×D3 al acestor trei multimi reprezinta multimea tuturor tripletelor ordonate, in care primul element ii apartine lui D1, al doilea lui D2 si al treilea lui D orice submultime a acestui produs cartezian reprezinta o relatie.

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

D1×D2×. × Dn

Si de obicei se scrie sub forma:

n

X Di

i=1

Orice submultime a acestui produs cartezian reprezinta o relatie a celor n multimi. De observat ca, in definirea acestor relatii trebuie specificate multimile, sau domeniile, din care se aleg valori.

Relatii in bazele de date

Aplicand aceste concepte la baza de date, vom avea:

Schema de relatie O denumire a relatiei, urmata de un set de perechi de atribute si denumiri de domenii.

 


Fie atributele A1, A2, An, cu domeniile D1, D2, Dn. Atunci multimea

reprezinta schema de relatie. O relatie R, definita de schema de relatie S, este un set de corespondente intre denumirile atributelor si domeniile corespunzatoare acestora. Prin urmare, relatia R este o multime de n tupluri:

(A1:d1, A2:d2, An:dn) astfel incat d1ID1, d2ID2, dnIDn.

Fiecare element din n-tuplu este format dintr-un atribut si o valoare a acestuia. In acest mod putem considera o relatie din modelul relational ca pe o submultime a produsului cartezian al atributelor si domeniilor.

In exemplul dat anterior, relatia Filiala are atributele NrFil, Adresa, Zona, Orasul, NrTel si NrFax, fiecare cu domeniul sau corespunzator. Relatia Filiala reprezinta orice submultime a prodului cartezian al domeniilor NumarFiliala, Adrese, Zone, Orase, etc. Tabelul Filiala reprezinta o modalitate convenabila de scriere a acestor tupluri.

Proprietatile relatiilor

O relatie are urmatoarele caracteristici

are o denumire, diferita de toate celelalte denumiri de relatii

fiecare celula a relatiei contine o valoare singulara

fiecare atribut are o valoare distincta

toate valorile unui atribut apartin aceluiasi domeniu

ordinea atributelor nu are nici o importanta

fiecare tuplu este distinct, nu exista dubluri ale tuplurilor

teoretic, ordinea tuplurilor nu are nici o importanta, dar practic, ordinea poate afecta eficienta accesarii tuplurilor

Pentru a ilustra semnificatia acestor restrictii, vom face referire tot la relatia Filiala din exemplul anterior. Din moment ce fiecare celula trebuie sa contina doar o singura valoare, stocarea intr-o singura celula a doua numere de telefon pentru o singura filiala este ilegala. Cu alte cuvinte, relatia nu contine grupuri repetitive. O relatie care satisface aceasta proprietate se spune ca este normalizata, sau in prima forma normala. Formele normale vor fi studiate intr-un capitol separat.

Majoritatea proprietatilor specificate mai sus provin din proprietatile relatiilor matematice:

din moment ce relatia este o multime, ordinea elementelor sale nu are nici o semnificatie

intr-o multime nu se repeta nici un element

Totusi, intr-o relatie matematica, ordinea elementelor dintr-un tuplu are importanta. De exemplu, perechea ordonata (1, 2) este diferita de perechea ordonata (2, 1). Acest fapt nu este valabil si pentru relatiile din modelul relational, care necesita in mod special ca ordinea atributelor sa nu prezinte importanta.

Chei relationale

Pentru identificarea unica a unui tuplu dintr-o relatie, nu sunt necesare valorile tuturor atributelor sale, ci sunt suficiente doar valorile unui subset al atributelor.

Cheia Este un subset al atributelor unei relatii care satisface proprietatile de:

identificare unica: fiecare tupla a relatiei este identificata unic de valorile atributelor care compun cheia

neredundanta: subsetul de atribute este minimal, adica eliminarea oricarui atribut din subset duce la pierderea primei proprietati.

 


Problema gasirii unei chei se reduce la determinarea setului minimal de atribute care satisface proprietatea 1.

Orice atribut al unei relatii care face parte din cel putin o cheie se numeste atribut prim. Toate celelalte atribute ale relatiei sunt neprime.

Intr-o relatie pot exista mai multe chei. Acestea sunt numite chei candidate. Pentru fiecare relatie se desemneaza dintre acestea o cheie privilegiata, numita cheie primara.

Cheie primara Cheia candidat care este selectata pentru a identifica in mod unic tuplurile din cadrul unei relatii.

 


Statutul de cheie primara 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 multimea cheilor candidate se va tine seama de necesitatea ca numarul atributelor cheii primare sa fie cat mai mic posibil.

Integritatea relationala

In paragraful precedent, am analizat partea structurala a modelului de date relational. Asa cum am stabilit in capitolul precedent, in paragraful Modele de date si modelarea conceptuala, un model de date mai are inca doua parti: o parte de manipulare, care defineste tipurile de operatii permise asupra datelor si un set de reguli de integritate, care asigura corectitudinea datelor. Acum vom analiza care sunt regulile relationale de integritate.

Din moment ce fiecare atribut are un domeniu asociat, exista anumite constrangeri (denumite constrangeri de domeniu) sub forma de restrictii asupra multimii de valori permise pentru atributele relatiilor. Pe langa acestea, exista doua reguli de integritate care reprezinta restrictii sau constrangeri ce se aplica tuturor instantelor unei baze de date. Pentru modelul relational, acestea sunt:

integritatea entitatilor

integritate referentiala

Conceptul de null

Null-ul reprezinta valoarea unui atribut care este in mod curent necunoscuta sau nu este aplicabila tuplului respectiv. Un null nu este acelasi lucru cu o valoare numerica egala cu 0 sau cu un text completat cu spatii; zerourile si spatiile sunt valori, pe cand null-ul semnifica absenta unei valori.

Null-urile pot crea probleme privind implementarea. Aceasta dificultate apare deoarece modelul relational se bazeaza pe calculul predicativ de ordinul intai, care reprezinta o logica bazata pe doua valori, sau booleana, unde singurele valori admise sunt adevarat sau fals. Introducerea null-urilor inseamna ca trebuie sa lucram cu o logica polivalenta. Incorporarea null-urilor in modelul relational constituie o chestiune controversata. In prezent, Codd trateaza null-urile ca parte integranta a modelului, in timp ce altii considera aceasta abordare gresita, fiind de parere ca problema informatiilor lipsa nu este complet inteleasa, ca nu s-a gasit inca o solutie complet satisfacatoare si ca incorporarea null-urilor in modelul relational este prematura. Asadar, atentie!, nu toate sistemele relationale accepta null-urile.

Integritatea entitatilor

Prima regula de integritate se aplica cheilor primare ale relatiilor de baza. Pentru moment, vom defini o relatie de baza ca o relatie ce corespunde unei entitati in schema conceptuala.

Integritatea entitatilor Intr-o relatie de baza, nici un atribut al unei chei primare nu poate fi null.

 


Prin definitie, o cheie primara este un identificator minim, utilizat pentru identificarea unica a tuplurilor. Aceasta inseamna ca nici un subset al cheii primare nu este suficient pentru a permite identificarea unica a tuplurilor. Daca admitem un null pentru orice parte a unei chei primare, aceasta implica faptul ca nu toate atributele sunt necesare pentru a deosebi tuplurile, ceea ce contrazice definitia cheii primare.

Tema: analizati in detaliu definitia de mai sus si gasiti anomalii.

Integritate referentiala

A doua regula de integritate se aplica cheilor straine.

Integritatea referentiala Daca intr-o relatie exista o cheie straina, valoarea acesteia trebuie ori sa coincida cu valoarea unei chei candidat a unui tuplu in relatia sa de baza, ori sa fie in intregime null.

 


De exeplu atributul NrFil din relatia Personal este o chei straina, care tinteste atributul NrFil din relatia de baza Filiala. Nu trebuie sa fie posibila crearea unei inregistrari de personal cu numarul de filiala C20, de exemplu, decat daca exista deja o inregistrare corespunzatoare numarului C20 in relatia Filiala. Totusi trebuie sa existe posibilitatea de a crea o noua inregistrare de personal cu numar de filiala null. Aceasta corespunde situatiei in care un nou membru al personalului a fost angajat in companie, fara a i se atribui inca o anumita filiala.

Limbajele relationale

Asa cum am aratat anterior, limbajele bazelor de date sunt impartite in 2 categorii: limbaje de definire a datelor (DDL) si limbaje de manipulare a datelor (DML). DDL este utilizat pentru a specifica schema bazei de date, iar DML este utilizat pentru citirea si reactualizarea bazei de date.

DML asigura un set de procedee ce permit operatii de baza pentru manipularea datelor din baza de date:

inserarea de date noi

modificari de date

regasirea datelor

stergerea de date

Limbajele DML pot fi de doua tipuri: procedurale si neprocedurale.

procedurale specifica modul cum trebuie sa fie obtinut rezultatul unei instructiuni DML

neprocedurale descriu numai ce rezultat trebuie obtinut

La baza limbajelor relationale sta algebra relationala si calculul relational. Dar atat algebra cat si calculul sunt limbaje formale neprietenoase cu utilizatorul. Ele au fost utilizate ca fundament pentru DML.

Algebra relationala este un limbaj teoretic, cu operatii care actioneaza asupra uneia sau mai multor relatii, pentru a defini o alta relatie, fara modificarea celor initiale. Prin urmare, atat operanzii cat si rezultatele sunt relatii, asa ca, iesirea unei operatii poate deveni intrare pentru o alta. Aceasta permite imbricarea expresiilor, la fel ca la operatiile matematice.

Algebra relationala este un limbaj de tip cate-o-relatie-o-data, in care toate tuplurile sunt manipulate intr-o singura instructiune, fara ciclare.

Cele 5 operatii fundamentale din algebra relationala sunt: selectia, proiectia, produsul cartezian, reuniunea si diferenta.

Mai exista operatiile de uniune, intersectie si impartire, care pot fi exprimate prin intermediul celor 5 operatii fundamentale.

Operatiile de selectie si proiectie sunt unare, deoarele opereaza asupra unei singure relatii. Celelalte actioneaza asupra unor perechi de relatii si se numesc operatii binare.

Selectia (sau restrictia)

spredicat(R): actioneaza asupra unei singure relatii R si defineste o relatie care contine numai acele tupluri ale lui R care satisfac conditia specificata (predicatul).

Ex: ssalariu>1000(Personal)

Proiectia

Pcol1, , coln(R): actioneaza asupra unei singure relatii R si defineste o relatie care contine un subset vertical al lui R, extragand valorile atributelor specificate si eliminand dublurile.

Ex: PPersID, NumeP, Salariu(Personal)

Produsul cartezian

R S: defineste o relatie care reprezinta o concatenare a fiecarui tuplu din relatia R cu fiecare tuplu din relatia S.

Reuniunea

R È S: reuniunea a doua relatii cu i, respectiv j tupluri, reprezinta o relatie obtinuta prin concatenarea celor doua si avand maxim i+j tupluri, tuplurile duble fiind eliminate. R si S trebuie sa fie compatibile la reuniune.

Diferenta

R - S: defineste o relatie ce consta din tuplurile care sunt in R si nu sunt in S. R si S trebuie sa fie compatibile la reuniune.

Vederi

In arhitectura ANSI-SPARC cu 3 nivele am descris vederea externa ca structura bazei de date asa cum apare ea unui anumit utilizator. In modelul relational, notiunea de vedere are un inteles usor diferit. Mai degraba decat intregul model extern al unui utilizator, o vedere este o relatie virtuala - o relatie care nu este de sine statatoare, ci este derivata in mod dinamic din una sau mai multe relatii de baza. O vedere poate fi construita prin efectuarea unor operatii sau calcule cu valorile relatiilor de baza existente. Deci, un model extern poate consta atat in relatii de baza (la nivel conceptual), cat si in vederile derivate din acestea.

Terminologie

Relatie de baza este o relatie cu o anumita denumire, corespunzatoare unei entitati din schema conceptuala, ale carei tupluri sunt stocate fizic in baza de date.

 


Vederile se pot defini prin intermediul relatiilor de baza.

Vederea este rezultatul dinamic al uneia sau mai multor operatii relationale, care actioneaza asupra relatiilor de baza pentru a realiza o alta relatie. O vedere este o relatie virtuala care, in realitate nu exista in baza de date, ci este produsa in momentul respectiv, la cererea unui anumit utilizator.

 


O vedere este o relatie care pentru utilizator pare sa existe si poate fi manipulata ca si cum ar fi o relatie de baza, dar care nu exista in dispozitivul de stocare in sensul admis pentru relatiile de baza. Continutul unei vederi este definit ca o interogare asupra uneia sau mai multor relatii de baza.orice operatii efectuate asupra unei vederi sunt automat transpuse in operatii asupra relatiilor din care este derivata. Vederile sunt dinamice, adica modificarile din relatiile de baza care o afecteaza, sunt imediat reflectate de catre acestea.

Scopul vederilor

furnizeaza un mecanism de securitate puternic si flexibil, prin ascunderea unor parti ale bazei de date fata de anumiti utilizatori. Utilizatorul nu este constient de existenta atributelor tuplurilor care lipsesc din vederea respectiva;

permite accesarea datelor intr-un mod personalizat, conform cu cerintele utilizatorilor, astfel incat, aceleasi date pot fi vizualizate simultan, de catre utilizatori diferiti, in diverse moduri;

poate simplifica operatii complexe asupra relatiilor de baza. De ex, daca o vedere este definita ca o uniune a doua relatii, utilizatorul poate efectua operatiile unare mai simple, de selectie si proiectie a vederii, iar acestea vor fi traduse de SGBD in operatii echivalente asupra uniunii.

O vedere trebuie proiectata astfel incat sa accepte modelul extern, cu care este familiarizat utilizatorul. De exemplu:

un utilizator poate avea nevoie de inregistrarile din relatia Filiala care contin numele managerilor, impreuna cu celelalte atribute. Aceasta vedere se creaza prin uiunea relatiilor Filiala si Personal, urmata de proiectarea asupra atributelor care mai intereseaza

un alt utilizator ar putea dori sa vada inregistrarile din relatia Personal, dar fara atributul Salariu. Pentru aceasta se efectueaza o proiectie ce creaza o vedere care nu include atributul Salariu

atributele pot fi redenumite, astfel incat utilizatorul sa poata folosi denumirile care ii sunt lui familiare

un membru al personalului poate vizualiza numai informatii din filiala in care lucreaza. In acest caz, trebuie efectuata o operatie de selectie, astfel incat sa se poata vizualiza numai un subset din relatia Personal

Reactualizarea vederilor

Toate reactualizarile unei relatii din baza de date trebuie sa fie imediat reflectate in toate vederile care se refera la aceasta. Similar, daca o vedere este reactualizata, atunci relatia de baza corespunzatoare trebuie sa reflecte modificarea. Totusi exista restrictii privind tipurile de modificari care pot fi efectuate prin intermediul vederilor:

sunt permise reactualizarile prin vederi definite prin utilizarea unei interogari simple, care implica o singura relatie de baza si contine fie cheia primara, fie cheia candidat;

nu sunt permise reactualizarile prin vederi care implica relatii de baza multiple;

nu sunt permise reactualizarile prin vederi care implica operatii de acumulare sau de grupare.

SGBD relational

Exista 12 reguli plus una fundamentala, care constituie un etalon pentru identificarea unui SGBD relational. Pentru a sublinia implicatiile acestor reguli, ele vor fi prezentate grupat in cinci domenii de functionalitate:

reguli fundamentale

reguli structurale

reguli de integritate

reguli de manipulare a datelor

reguli privind independenta de date

Reguli fundamentale (Regula 0 si Regula 12)

Regula 0 - Regula fundamentala

Pentru a fi relational, un SGBD trebuie sa fie capabil sa gestioneze in intregime bazele de date prin capacitatile sale relationale.

 


Aceasta regula obliga sistemul sa nu recurga la nici un fel de operatii ne-relationale, pentru a realiza oricare dintre capacitatile sale de gestionare a datelor, cum ar fi definirea si manipularea acestora.

Regula 12 - Regula de nonsubversiune

Daca un sistem relational are un limbaj de nivel jos (cate-o-inregistrare-o-data), acel nivel jos nu poate fi utilizat pentru a submina sau a ocoli regulile de integritate si constrangerile exprimate in limbajul relational de nivel mai inalt (mai-multe-inregistrari-deodata).

 


Aceasta regula cere ca intregul acces la baza de date sa fie controlat de catre SGBD, astfel incat integritatea bazei de date sa nu poata fi compromisa fara cunostinta utilizatorului sau administratorului de baze de date. Totusi aceasta nu interzice utilizarea unui limbaj de nivel jos.

Reguli structurale (Regula 1 si Regula 6)

Conceptul structural fundamental al modelului relational este cel de relatie. Codd stabileste ca un SGBDR trebuie sa accepte o serie de caracteristici structurale: relatii, domenii, chei primare si straine. Pentru fiecare relatie din baza de date trebuie sa existe cate o chei primara.

Regula 1 - Reprezentarea informatiilor

La nivel logic, toate informatiile dintr-o baza de date relationala sunt reprezentate explicit numai intr-un singur mod - prin valorile din tabele.

 


Aceasta regula cere ca toate informatiile, chiar si meta-datele continute in catalogul de sistem, sa fie stocate ca relatii si gestionate de catre aceleasi functii operationale utilizate pentru intretinerea datelor. Referirea la "nivelul logic" inseamna ca elementele de constructii logice, cum sunt indexurile, nu sunt reprezentate si nu este nevoie sa fie mentionate explicit de utilizator in cadrul unei operatii de regasire, chiar daca ele exista.

Regula 6 - Reactualizarea vederilor

Toate vederile care sunt teoretic reactualizabile pot fi reactualizate si de catre sistem.

 


Aceasta regula stabileste ca, daca o vedere poate fi teoretic reactualizata, atunci sistemul SGBD trebuie sa fie capabil sa efectueze reactualizarea respectiva. Nici un SGBD nu accepta cu adevarat aceasta caracteristica, deoarece nu au fost inca descoperite conditiile pentru identificarea tuturor vederilor care pot fi teoretic reactualizabile.

Reguli de integritate (Regula 3 si Regula 10)

Acceptarea integritatii datelor este un criteriu important de apreciere a caracterului convenabil al unui produs. Cu cat sunt mai multe constrangeri de integritate care pot fi intretinute de SGBD, nu de fiecare program aplicatie, cu atat garantarea calitatii datelor este mai buna.

Regula 3 - Tratarea sistematica a valorilor null

Valorile null sunt acceptate pentru a reprezenta informatiile lipsa si cele care nu pot fi acceptate in mod sistematic, indiferent de tipul de date.

 


Regula 10 - Independenta de integritate

Constrangerile de integritate specifice unei anumite baze de date relationale trebuie sa poata fi definite in sublimbajul relational de date si stocate in catalog, nu in programele aplicatie.

 


Se pune un accent deosebit pe ideea de stocare a constrangerilor de integritate in catalogul de sistem, mai degraba decat incapsularea lor in programele aplicatie sau interfetele cu utilizatorul. Stocarea acestor constrangeri in catalogul de sistem are avantajul unui control si a unei constrangeri centralizate.

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

Exista 18 caracteristici de manipulare pe care trebuie sa le accepe un SGBD relational ideal. Acestea definesc caracterul complet al limbajului de interogare. Respectarea acestor reguli are ca efect izolarea utilizatorului si programelor aplicatie de mecanismele fizice si logice care implementeaza capacitatile de gestionare a datelor.

Regula 2- Accesul garantat

Se garanteaza ca fiecare element de data (valoare atomica) dintr-o baza de date relationala este accesibil din punct de vedere logic, prin apelarea la o combinatie de nume de tabel, valoare a cheii primare si nume de coloana.

 


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

Descrierea bazei de date este reprezentata la nivel logic in acelasi mod ca si datele obisnuite, astfel incat utilizatorii autorizati pot aplica la interogarea aceasteia acelasi limbaj relational ca cel aplicat datelor curente.

 


Aceasta regula specifica faptul ca exista un singur limbaj de manipulare atat a meta-datelor, cat si a datelor si ca exista o singura structura logica (relatia) utilizata pentru stocarea informatiilor despre sistem.

Regula 5 - Sublimbaje de date cuprinzatoare

Un sistem relational poate accepta mai multe limbaje si diverse moduri de utilizare a terminalelor (de exemplu, modul de completare a spatilor libere). Totusi trebuie sa existe cel putin un limbaj ale carui instructiuni sa poata exprima urmatoarele:

definirea datelor

definire vederilor

manipularea datelor (interactiv si prin intermediul programului)

constrangerile de integritate

autorizarea

limitele tranzactiilor (begin, commit si rollback)

 


Vom vedea ca noul standard ISO al limbajului SQL prezinta toate aceste functii.

Regula 7 - Operatii de inserare, reactualizare si stergere de nivel inalt.

Capacitatea de tratare a unei relatii de baza sau a unei relatii derivate (adica o vedere) ca pe un singur operand se aplica nu numai regasirii de date, ci si inserarii, reactualizarii si stergerii acestora.

 


Reguli privind independenta de date (Regulile 8, 9 si 11)

Codd defineste trei reguli care specifica independenta datelor de programele aplicatie care le utilizeaza. Respectarea acestor reguli garanteaza protectia utilizatorilor si realizatorilor de programe fata de necesitatea de a schimba aplicatiile, ca urmare a reorganizarii de nivel jos a bazei de date.

Regula 8 - Independenta fizica de date.

Programele aplicatie si activitatile de la terminal trebuie sa ramana logic intacte la modificarea suportului de stocare si la modificarea metodelor de acces la date.

 


Regula 9 - Independenta logica de date.

Programele aplicatie si activitatile de la terminal trebuie sa ramana logic intacte la modificarea tabelelor de baza.

 


Regula 11 - Independenta de distributie.

Sublimbajul de manipulare a datelor dintr-un SGBD relational trebuie sa permita programelor aplicatie si nterogarilor sa ramana aceleasi din punct de vedere logic, daca si ori de cate ori datele sunt centralizate sau distribuite fizic.

 


Asta inseamna ca un program aplicatie care acceseaza sistemul SGBD pe un singur calculator trebuie sa functioneze fara modificari si intr-o retea, chiar daca datele sunt mutate de pe un calculator pe altul. Altfel spus, utilizatorului final trebuie sa i se dea impresia ca datele sunt centralizate pe o singura masina, in timp ce responsabilitatea localizarii acestora in (posibil) multiple site-uri si responsabilitatea reconstituirii lor trebuie sa revina totdeauna sistemului. De observat ca aceasta regula nu cere ca SGBD sa accepte o baza de date distribuita pentru a fi relational, dar stabileste ca limbajul de interogare va ramane acelasi daca se introduce aceasta capacitate iar datele vor fi distribuite.



Prima generatie o constituie SGBD in retea si ierarhice.





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.