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.
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.
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 |
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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
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.
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.
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |