Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Sisteme de gestiune a bazelor de date relationale

sql


Sisteme de gestiune a bazelor de date relationale

1.3.1. Definitie. Caracteristici.



Într-o prima încercare de definire, se poate considera un sistem de gestiune a bazelor de date relationale (SGBDR) ca reprezentand un SGBD care utilizeaza modelul relational drept conceptie de organizare a datelor. Altfel spus, SGBDR reprezinta un sistem care suporta modelul relational.

Definitia de mai sus este mult prea generala, pentru a putea fi operationala, deoarece modul de implementare a modelului relational difera, de regula atat între diferitele SGBDR, cat si în raport de modelul "teoretic", cel definit în cadrul teoriei relationale.

Diversitatea modelelor relationale "operationale" au determinat, în mod natural existenta unei mari diversitati de SGBDR, pentru a caror prezentare a fost necesara nuantarea terminologiei. Au aparut o serie de sintagme, precum: sisteme cu interfata relationala, sisteme pseudorelationale, sisteme complet relationale.

Organizarea datelor în fisiere

SGBDR

Teoria relationala

Fisier

Tabela

Relatie

Record (înregistrare)

Linie

Tuplu

Camp

Coloana

Atribut

Figura 2.2.2. Conceptele specifice organizarii datelor în fisiere, SGBDR si teoriei relationale între care se pot stabili analogii   

În general, conceptele utilizate la prezentarea SGBDR si a modelelor relationale operationale difera de cele din cadrul teoriei relationale. Figura 2.2.2 prezinta, comparativ conceptele organizarii datelor în fisiere, conceptele SGBDR si ale teoriei relationale.

Definirea unui SGBDR impune o detaliere a caracteristicilor pe care trebuie sa le prezinte un SGBD pentru a putea fi considerat relational. În acest sens, CODD E.a6s a formulat 13 reguli care exprima cerintele pe care trebuie sa le satisfaca un SGBDR.

R1: Regula privind gestionarea datelor la nivel de relatie.

Sistemul trebuie sa gestioneze baza de date numai prin mecanisme relationale. Acesta înseamna ca sistemul trebuie sa-si îndeplineasca toate functiile prin manipulari în care unitatea de informatie sa fie multimea (relatia), adica sa utilizeze limbaje, precum SQL care sa opereze la un moment dat pe o întreaga relatie. Unele sisteme utilizeaza mecanisme relationale numai pentru o parte din functii, în special pentru interogare. Aceste sisteme se numesc SGBD cu interfata relationala si nu SGBDR.

R2: Regula privind reprezentarea logica a datelor.

Toate datele din baza de date relationala trebuie sa fie reprezentate explicit la nivel logic într-un singur mod, si anume ca valori în tabele de date. Acesta înseamna ca toate datele trebuie sa fie memorate si prelucrate în acelasi mod. Informatiile privind numele de tabele, coloane, domenii, definitiile tabelelor virtuale, restrictiile de integritate trebuie sa fie memorate tot în tabele de date (catalog).

R3: Regula privind garantarea accesului la date.

Orice data din baza de date relationala trebuie sa poata fi accesata prin specificarea numelui de tabela, valorii cheii primare si a numelui de coloana. Aceasta regula exprima cerinta ca limbajul de interogare al SGBDR sa permita accesul la fiecare valoare atomica din baza de date.

R4: Regula privind valorile null.

Sistemele trebuie sa permita declararea si manipularea valorilor null, ce au semnificatia unor date lipsa sau inaplicabile.

R5: Regula privind metadatele.

Descrierea bazei de date trebuie sa se prezinte la nivel logic în acelasi mod cu descrierea datelor propriu zise, astfel încaât utilizatorii autorizati sa poata aplica asupra descrierii bazei de date aceleasi operatii ca si asupra datelor obisnuite.

R6 Regula privind facilitatile limbajelor utilizate.

intr-un sistem relational trebuie sa existe cel putin un limbaj de nivel înalt ale carui instructiuni sa poata exprima oricare din urmatoarele operatii: definirea relatiilor de baza si a celor virtuale, manipularea datelor, definirea restrictiilor de integritate, autorizarea accesului, precizarea limitelor tranzactiilor.

R7: Regula privind actualizarea tabelelor virtuale.

Toate tabelele virtuale care teoretic sunt posibil de actualizat trebuie sa poata fi efectiv actualizabile. Nu toate atributele din cadrul unei tabele virtuale, deci nu toate tabelele virtuale sunt teoretic actualizabile.



R8: Regula privind inserarile, modificarile si stergerile în baza de date.

Sistemul trebuie sa ofere posibilitatea manipularii unei tabele (de baza sau virtuala) nu numai în cadrul operatiilor de regasire, ci si în actiunile de inserare, modificare si stergere a datelor. Aceasta regula exprima cerinta ca în operatiile prin care se schimba continutul bazei de date sa se lucreze la un moment dat pe o întreaga relatie.

R9: Regula privind independenta fizica a datelor.

Programele de aplicatie nu trebuie sa fie afectate de schimbarile efectuate în modul de reprezentare a datelor sau în metodele de acces. O schimbare a structurii fizice a datelor nu trebuie sa blocheze functionarea programelor de aplicatie.

R10: Regula privind independenta logica a datelor.

Programele de aplicatie nu trebuie sa fie afectate de schimbarile efectuate asupra relatiilor bazei de date, schimbari care conserva datele si teoretic, garanteaza valabilitatea programelor de aplicatie existente.

R11: Regula privind restrictiile de integritate.

Restrictiile de integritate trebuie sa poata fi definite în limbajul utilizat de sistem pentru definirea datelor si sa fie memorate în catalogul bazei de date si nu în cadrul programelor de aplicatie.

R12: Regula privind distribuirea geografica a datelor.

Limbajul de manipulare a datelor utilizat de sistem trebuie sa permita ca, în situatia în care datele sunt distribuite, programele de aplicatie sa fie logic aceleasi cu cele utilizate în cazul în care datele sunt fizic centralizate.

Utilizatorul trebuie sa perceapa datele ca fiind centralizate. Sarcina de localizare a datelor, atunci când acestea sunt distribuite geografic precum si sarcina recompunerii datelor trebuie sa revina sistemului si nu utilizatorului.

R13: Regula versiunii procedurale a unui SGBD.

Orice componenta procedurala a unui SGBD trebuie sa respecte aceleasi restrictii de integritate ca si componenta relationala. De exemplu, daca in partea de manipulare a datelor a limbajului relational valoarea dintr-o coloana este de tipul not null, orice alta metoda procedurala de accesare a acestei coloane nu trebuie sa permita introducerea valorilor null.

Nici unul dintre SGBD disponibile astazi nu respecta toate cerintele exprimate de Codd, în cadrul celor 13 reguli. De aceea, s-au formulat criterii minimale pe care trebuie sa le satisfaca un sistem de gestiune a bazelor de date pentru a putea fi considerat relational.

Un SGBD este minimal relational daca satisface urmatoarele conditii:

Toate datele din cadrul bazei de date sunt reprezentate prin valori în tabele;

Nu exista pointeri observabili de catre utilizatori între tabele;

Sistemul suporta operatorii relationali de proiectie, selectie si join natural, fara limitari impuse din considerente interne (cum ar fi de exemplu, necesitatea indexarii atributelor). Unitatea de informatie cu care se lucreaza în cadrul acestor operatii trebuie sa fie relatia.

Un SGBD este complet relational daca este minimal relational si satisface în plus urmatoarele conditii:

Sistemul suporta toate operatiile de baza ale algebrei relationale, fara limitari impuse din    considerente interne;

Sistemul suporta doua dintre restrictiile de integritate de baza ale modelului relational si anume unicitatea cheii unei relatii si restrictia referentiala.

Un SGBDR îndeplineste functiile unui SGBD, cu anumite particularitati care decurg din conceptia de organizare a datelor, respectiv din modelul relational. Astfel, ca si sistemele nerelationale, SGBDR îndeplinesc functia de descriere a datelor, dar într-un mod diferit. Modelul relational, spre deosebire de cel ierarhic sau retea asigura o reprezentare uniforma a entitatilor si a legaturilor dintre entitati, prin tabele de date. Aceasta caracteristica a modelului relational influenteaza modul în care este realizata functia de descriere a datelor, care este mai simpla, mai flexibila, cu mai putine constructii sintactice ale limbajului de descriere a datelor decat în cazul SGBD-urilor ierarhice si retea. Sistemele relationale, ca orice SGBD îndeplinesc functia de manipulare a datelor. Modelul relational ofera ca set de operatori calculul relational, pe langa algebra relationala. Existenta acestui set de operatori în cadrul modelului relational face posibila utilizarea unor limbaje relationale neprocedurale de manipulare a datelor, caracteristica proprie SGBDR, care nu este prezenta la celelalte SGBD.

Dintre instrumentele si mecanismele de lucru de care dispune un SGBDR se pot mentiona:

Un limbaj relational pentru descrierea datelor la nivel fizic, logic si conceptual;

Un limbaj relational pentru manipularea datelor (interogare si actualizare);

Mecanisme pentru controlul integritatii semantice a datelor;

Mecanisme pentru optimizarea cererilor de date;

Utilitare pentru prezentarea rezultatelor, de tipul generatoarelor de rapoarte, utilitare pentru generarea de aplicatii, pentru generarea de statistici despre starea bazei de date etc.



În continuare, vor fi prezentate o serie de caracteristici ale acestor instrumente si mecanisme de lucru ale SGBDR.

Limbaje relationale de definire si manipulare a datelor

Un SGBDR trebuie sa puna la dispozitia utilizatorilor un set de comenzi prin care acestia sa realizeze definirea si manipularea datelor din baza de date.

Ca si în cazul SGBD-urilor ierarhice si retea, aceste comenzi pot fi grupate în:

A1. Comenzi pentru definirea datelor, care formeaza limbajul de definire al datelor;

A2. Comenzi pentru manipularea datelor, care formeaza limbajul de manipulare a datelor.

În cazul SGBDR aceste categorii de comenzi pot fi interpretate drept componente ale unui singur limbaj relational, limbaj cu facilitati atat de descriere, cat si de manipulare a datelor. O asemenea abordare unificata a comenzilor îsi gaseste explicatia în faptul ca modelul relational, prin reprezentarea uniforma a entitatilor lumii reale si a legaturilor dintre acestea, a simplificat sarcina de definire a datelor. Se ajunge astfel la conceptul de limbaj relational de definire si manipulare a datelor, chiar daca sintaxa constructiilor destinate definirii datelor difera de cea a constructiilor pentru manipularea datelor. Se pot da numeroase exemple de astfel de limbaje: SQLPLUS (limbajul de descriere si manipulare a datelor utilizate de SGBD ORACLE), QUEL(limbajul utilizat de SGBD INGRES) etc. Unele SGBDR mentin distinctia dintre limbajele de definire si cele de manipulare a datelor. Din aceasta cauza, în continuare, prezentarea caracteristicilor limbajelor relationale se va face separat, pentru limbajele de definire a datelor si pentru cele de manipulare a datelor.

Limbajele relationale, difera între ele în principal prin facilitatile oferite utilizatorilor. Vor fi analizate, în continuare aceste facilitati.

A1. Limbajele relationale de definire a datelor

Functia de descriere a datelor este deosebit de importanta la orice SGBD, deoarece trebuie sa faciliteze reprezentarea lumii reale în interiorul sistemului. Spre deosebire de modelul ierarhic si de cel retea, modelul relational ofera posibilitatea reprezentarii uniforme a acestor elemente, prin intermediul tabelelor de date.

Descrierea datelor este memorata în baza de date sub forma de relatii, ca si datele propriu-zise, aceste relatii constituind metabaza de date (metadatele). Relatiile ce contin descrierea datelor nu reclama un tratament special, fiind prelucrate prin intermediul acelorasi comenzi ale limbajului relational, ca si relatiile care contin datele propriu-zise.

Limbajele relationale de definire a datelor ofera urmatoarele facilitati utilizatorilor:

1. Facilitati de descriere a datelor la nivel conceptual. În vederea descrierii datelor la nivel conceptual, limbajele relationale contin o serie de comenzi, si anume:

- comenzi pentru crearea unei baze de date. Nu toate SGBDR suporta notiunea explicita de baza de date. Sisteme precum DB2 nu poseda notiunea explicita de baza de date, asa cum este cazul sistemelor INGRES si dBASE.

De exemplu, crearea unei baze de date BAZ se poate realiza prin comanda QUEL:

CREATEDB    BAZ

Creatorul bazei de date devine automat administratorul acestei baze.

- comenzi pentru suprimarea unei baze de date

De exemplu, comanda QUEL pentru distrugerea bazei de date BAZ este:

DESTROYDB BAZ

- comenzi pentru crearea relatiilor de baza (relatii implementate fizic). În cadrul acestor comenzi se precizeaza numele relatiei, numele si tipul atributelor.

De exemplu, comanda SQL pentru crearea unei relatii ORASE, cu atributele: COD, DEN si NRLOC este:

CREATE TABLE ORASE

(COD NUMBER NOT NULL, DEN CHAR(20), NRLOC NUMBER);

- comenzi pentru suprimarea unei relatii de baza,

Comanda SQL pentru suprimarea relatiei definite anterior este:

DROP TABLE ORASE;

- comenzi pentru modificarea numelui unei relatii,

Comanda SQL pentru schimbarea numelui relatiei ORASE în LOCALITAT este:

RENAME ORASE TO LOCALIT;

- comenzi pentru crearea de sinonime pentru relatiile din baza de date

Unele SGBDR utilizeaza sinonimele, ca alternative ale specificatorilor prea lungi, în vederea simplificarii lucrului pe relatii.

De exemplu, comanda SQL pentru crearea unui sinonim pentru LOCALIT este:

CREATE SYNONYM LOC FOR LOCALIT;

- comenzi pentru suprimarea sinonimelor,

Comanda SQL pentru suprimarea sinonimului LOC este:

DROP SYNONYM LOC;

- comenzi pentru modificarea descrierii unei relatii, adica adaugarea de noi atribute, suprimarea unor atribute, modificarea numelui si/sau tipului unui atribut din cadrul relatiei.

De exemplu, comanda SQL pentru adaugarea unui atribut JUDET la tabela ORASE este:

ALTER TABLE ORASE ADD

(JUDET CHAR (2));

- comenzi pentru declararea restrictiilor de integritate. Restrictiile de integritate sunt memorate în baza de date numai daca la momentul declararii lor, datele din cadrul bazei da date respecta aceste restrictii. Ulterior, restrictiile memorate vor fi verificate în cadrul fiecarii operatii de actualizare.

Pentru declararea restrictiilor de integritate limbajul SQL dispune de comanda ASSERT, cu ajutorul careia putem defini urmatoarea restrictie de integritate temporala:

ASSERT ON UPDATE TO ORASE:

NEW NRLOC >=OLD NRLOC

unde NEW si OLD sunt cuvinte cheie utilizate în formularea oricarei restrictii de integritate temporale.



2. Facilitati de descriere a datelor la nivel logic

Pentru descrierea datelor la nivel logic, limbajele relationale dispun de o serie de comenzi, precum:

- comenzi pentru definirea relatiilor virtuale (relatii care nu sunt fizic implementate în baza de date)

Relatiile virtuale se construiesc dintr-una sau mai multe relatii de baza, prin combinarea unor atribute din relatiile de baza, excluderea unor atribute, redenumirea unor atribute, schimbarea domeniului asociat anumitor atribute, alte prelucrari asupra atributelor din relatiile de baza.

Un anumit utilizator va primi, de obicei drepturi de acces la relatiile virtuale si nu la relatiile de baza.

Se poate considera deci ca notiunea de relatie virtuala este esentiala la fundamentarea nivelului logic de organizare a datelor în cadrul BDR. O schema externa a BDR este constituita din relatiile (virtuale si de baza) pentru care un utilizator detine drepturi de acces.

Considerând drept relatie de baza ORA}E, putem defini cu ajutorul ei o relatie virtuala MUNICIPII prin intermediul comenzii SQL:

DEFINE VIEW MUNICIPII AS

SELECT*

FROM ORASE

WHERE NRLOC>

Relatia virtuala poseda aceeasi schema ca si relatia de baza, însa prin intermediul selectiei care este implicata în definirea relatiei virtuale (clauza WHERE) se ascund utilizatorului o parte din tuplurile relatiei ORASE.

- comenzi pentru suprimarea relatiilor virtuale ;

De exemplu, suprimarea relatiei MUNICIPII se poate realiza cu ajutorul comenzii SQL:

DROP VIEW MUNICIPII;

- comenzi pentru acordarea drepturilor de acces la baza de date. Accesul unor persoane la baza de date se poate realiza doar în conditiile detinerii unor drepturi de acces la date.

Proiectantul unei relatii (de baza sau virtuala) primeste în mod automat toate privilegiile de operare asupra acestei relatii, putand realiza: cautari de date în relatie, actualizari ale datelor din relatie, actualizari ale schemei relatiei, atasarea unor restrictii de integritate, suprimarea relatiei.

La randul sau, proiectantul poate acorda sau nu privilegii asupra acestor relatii si altor utilizatori, dupa cum mecanismul de autorizare a accesului utilizat de catre SGBDR este descentralizat sau centralizat.

Comanda SQL:

GRANT CONNECT TO RIZA IDENTIFIED BZ BDR

confera utilizatorului cu numele RIZA si parola BDR dreptul de conectare la baza de date.

- comenzi pentru retragerea drepturilor de acces la baza de date. Comanda SQL prin care se retrage utilizatorului RIZA dreptul de a actualiza tabela ORA}E este:

REVOKE UPDATE ON ORASE FROM RIZA;

3. Facilitati de descriere a datelor la nivel fizic

Pentru definirea unor caracteristici legate de organizarea la nivel fizic a datelor din baza de date, limbajele relationale dispun de o serie de comenzi, si anume:

- comenzi pentru definirea de indecsi pe atributele relatiilor. Pentru majoritatea SGBDR, indexul constituie principala cale de acces la date. De regula, accesul la tuplurile unei relatii se face prin doua metode: acces secvential si acces pe baza de cheie.

Accesul secvential presupune parcurgerea relatiei, respectiv a tuplurilor în ordinea de încarcare. Accesul secvential se poate utiliza pentru relatii mici (cu putine tupluri) sau relatii cu rezultate intermediare.

Accesul pe baza de chei poate avea mai multe forme. De exemplu, în cazul sistemului DB2, principala cale de acces la date o reprezinta indecsii sortati, care permit realizarea urmatoarelor tipuri de acces pe baza de cheie:

Accesul direct la unul sau mai multe tupluri, conform valorii de cheie;

Accesul secvential sortat la un subansamblu de tupluri din cadrul unei relatii, de la o valoare a cheii pana la o alta valoare a cheii;

Accesul secvential sortat pe o întreaga relatie.

Se poate considera urmatorul exemplu de comanda SQL pentru crearea unui index pentru tabela ORASE:

CREATE INDEX INCOD ON ORASE(COD);

Utilizarea indecsilor pentru accesul la date determina cresterea vitezei de acces, constituind o cale de acces mai rapida decat accesul secvential, dar în acelasi timp îngreuneaza operatiile de actualizare a datelor (inserari, modificari, stergeri). Orice actualizare care afecteaza atributul dupa care s-a indexarea trebuie urmata de o actualizare a indexului.

- comenzi pentru suprimarea indecsilor;

Comanda SQL pentru stergerea indexului INCOD este:

DROP INDEX INCOD;

- comenzi pentru controlul alocarii spatiului fizic al bazei de date.

in limbajul SQLPLUS, putem considera ca exista: comenzi pentru crearea unei partitii a bazei de date, comenzi pentru modificarea partitiilor existente, comenzi pentru gestionarea modelului de alocare a spatiului pentru aceste partitii (crearea, modificarea si stergerea acestui model de alocare).

De exemplu, crearea unei partitii cu numele PART pentru baza de date se poate realiza prin intermediul comenzii SQLPLUS:

CREATE PARTITION PART

Adaugarea unor fisiere la partitia PART se poate realiza prin comanda:

ALTER PARTITION PART ADD FILE ORASE. DBS




Document Info


Accesari: 5864
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2025 )