Sunteți pe pagina 1din 9

CAPITOLUL 2

SISTEME DE GESTIUNE A BAZELOR DE DATE RELAŢIONALE (SGBDR)

2.1. Definirea SGBDR


2.2. Caracterizarea SGBDR
2.3. Exemple de SGBDR
2.4. Avantajele şi limitele sistemelor relaţionale

2.1. Definirea SGBDR

SGBDR este un sistem software complet care implementeză modelul de date relaţional,
precum şi cel puţin un limbaj relaţional.
Teoria relaţională este un ansamblu de concepte ,metode şi instrumente care a dat o
fundamentare riguroasă realizării de SGBDR performante.
Paralela între conceptele utilizate în evoluţia organizării datelor în memoria externă până
la sistemele relaţionale.

FIŞIERE TEORIA BD TERIA SGBDR


RELAŢIONALĂ
Fişier Colecţie de date Relaţie Tabela
Înregistrare Familie de Tuplu Linie
caracteristici
Câmp Caracteristică Atribut Coloană
Valoare Domeniu de valori Domeniu Domeniu

Regulile lui Codd

E.F. Codd (cercetător la IBM) a formulat 13 reguli care exprimă cerinţele maximale
pentru ca un SGBD să fie relaţional.
Regulile sunt utile pentru evoluarea performanţelor unui SGBDR.
R0. Gestionarea datelor la nivel de relaţie: limbajele utilizate trebuie să opereze cu
relaţii (unitatea de informaţie).
R1. Reprezentarea logică a datelor: toate informaţiile din BD trebuie stocate şi
prelucrate ca tabele.

-1-
R2. Garantarea accesului la date: LMD trebuie să permită accesul la fiecare
valoare atomică din BD (tabelă, coloană, cheie).
R3. Valoarea NULL: trebuie să se permită declararea şi prelucrarea valorii NULL
ca date lipsă sau inaplicabile.
R4. Metadatele: informaţiile despre descrierea BD se stochează în dicţionar şi
tratează ca tabele ,la fel ca datele propiu-zise.
R5. Limbajele utilizate: SGBD trebuie să permită utilizarea mai multor limbaje,
dintre care cel puţin unul să permită definirea tabelelor (de bază şi virtuale), definirea
restricţiilor de integritate, manipularea datelor, autorizarea accesului, tratarea
tranzacţiilor.
R6. Actualizarea tabelelor virtuale: trebuie să se permită ca tabelele virtuale să fie
şi efectiv actualizabile, nu numai teoretic actualizabile (exemplu atributul “valoare” dintr-
o tabelă virtuală nu poate fi actualizat).
R7. Actualizările în baza de date: manipularea unei tabele trebuie să se facă prin
operaţii de regăsire dar şi de actulizare.
R8. Independenţa fizică a datelor: schimbarea stucturii fizice a datelor (modul de
reprezentare (organizare) şi modul de acces) nu afectează programele.
R9. Independenţa logică a datelor: schimbarea structurii de date (logice) a
tabelelor nu afectează programele.
R10. Restricţiile de integritate: acestea, trebuie să fie definite prin LDD şi stocate
în dicţionarul (catalogul) BD.
R11. Distribuirea geografică a datelor: LMD trebuie să permită ca programele de
aplicaţie să fie aceleaşi atât pentru date distribuite cât şi petru date centralizate (alocarea
şi localizarea datelor vor fi în sarcina SGBD-ului).
R12. Prelucrarea datelor la nivel de bază (scăzut): dacă SGBD posedă un limbaj de nivel scăzut
(prelucrarea datelor se face la nivel de înregistrare), acesta nu trebuie utilizat pentru a evita restricţiile de
integritate.

2.2. Caracterizarea SGBDR

Sistemele relaţionale îndeplinesc funcţiile unui SGBD cu o serie de aspecte specifice care
rezultă din definirea unui SGBDR.
Caracterizarea SGBDR (FIG. 9.1) se poate face pe două niveluri :
1) Global, unde sistemele relaţionale sunt privite ca o categorie distinctă de
SGBD.
2) Particular, unde fiecare SGBDR are aspecte individuale comparativ cu altele
similare.

1) Caracterizarea globală a SGBDR

Câteva dintre mecanismele şi instrumentele care, după modul cum sunt implementate,
ajută la caracterizarea globală a SGBDR-urilor sunt:
a) Limbajele relaţionale
b) Protecţia datelor
c) Optimizarea cererilor de regăsire

-2-
d) Utilitarele specializate

a) Limbajele relaţionale

SGBDR oferă seturi de comenzi pentru descrierea şi manipularea datelor. Acestea pot fi
incluse într-un singur limbaj relaţional (cazul cel mai întâlnit) sau separate în LDD şi
LMD. În ambele situaţii, comenzile pentru definirea datelor sunt distincte de cele pentru
manipularea datelor.
Exemple de limbaje relaţionale: SQL (Structured Querry Language-standarde începând
cu 1985), QUEL, QBE, SQUARE, ALPHA, ISBL.

a1) Limbajele relaţionale de definire a datelor (LDD)


¾ Aceste limbaje sunt simplificate, cu puţine comenzi.
¾ Descrierea datelor este memorată în BD, sub formă de tabele, în
dicţionarul (metabaza) bazei de date.
¾ Facilităţi de descriere sunt prezente în SGBDR prin comenzi, care
definesc anumite operaţii, la nivelurile: conceptual, logic, fizic.
La nivel conceptual
• Crearea unei BD: CREATE DATABASE
Unele sisteme suportă noţiunea explicită de BD (Oracle, VFP, Ingres) altele nu
(Foxpro 2.x).
• Ştergerea unei BD: DROP DATABASE
• Crearea tabelelor de bază: CREATE TABLE
• Ştergerea tabelelor de bază: DROP TABLE
• Crearea de sinonome: CREATE SYNONYM
Sinonimele sunt alternative (de obicei prescurtate) la numele unor tabele.
• Ştergerea sinonimeleor :DROP SYNONYM
• Actualizarea structurii unei tabele :ALTER TABLE cu opţiunile
ADD,MODIFY (nu are opţiuni de ştergere)
• Adăugarea restricţiilor de integritate :ASSERT ON
Restricţiile de integritate se declară la cererea tabelelor .Ele pot fi ulterior
actualizate în sens de adăugare (comanda ASSERT) sau ştergere (opţiunea DROP
din comanda ALTER TABLE).În Oracle restricţiile sunt:NULL, CHECK,pe
cheie (PRIMARY , UNIQUE, REFERENTIAL -cheie externă).
La nivel logic
• Crearea tabelelor virtuale: CREATE VIEW
Tabelele virtuale (viziunile) reprezintă, la nivel logic, modul cum “vede” un
utilizator, la un moment dat, o bază de date. O viziune este de fapt o comandă
SELECT memorat în dicţionarul BD şi apelată apoi de utilizator.
• Ştergerea tabelelor virtuale: DROP VIEW.
• Acordarea drepturilor de acces la BD:
GRANT CONNECT – conectarea la BD a unui utilizator.
GRANT drepturi – acordarea unor drepturi de acces (pentru regăsire,
actualizare etc).
• Retragerea drepturilor de acces la BD:
REVOKE drepturi – retragerea unor drepturi

-3-
REVOKE CONNECT – deconectarea unui utilizator de la BD
La nivel fizic
• Crearea indecşilor: CREATE INDEX
Indexarea se foloseşte în BD pentru accesul la date ordonate şi pentru accesul
direct după cheie. În unele sisteme (exemplu Oracle), dacă la creare s-a declarat
cheie primară atunci sistemul creează automat index.
• Ştergerea indecşilor: DROP INDEX
• Controlul alocării spaţiului fizic al BD:
CREATE PARTITION –crearea unei partiţii
ALTER PARTITION –actualizare a unei partiţii cu fişiere.
CREATE SPACE –creează un model de alocare a spaţiului fizic
pentru o BD (bun pentru optimizări)
ALTER SPACE –actualizarea modelului de alocare
DROP S PACE –şterge un model de alocare
• Regruparea fizică a datelor dintr-o BD (clustere pentru acces rapid la date):
CREATE CLUSTER – creează un cluster dintr-o BD
ALTER CLUSTER– actualizează un cluster
DROP CLUSTER – şterge un cluster

a2 ) Limbajele relaţionale de manipulare a datelor (LMD)


Aspectele care pot caracteriza LMD sunt diverse şi din acest motiv, le putem grupa în trei
categorii:
- generale
- funcţionale
- calitative

Caracterizarea generală a LMD


1. Modul de tratare a datelor. Toate LMD relaţionale realizează o tratare la nivel
de ansamblu a datelor: unitatea de informative pentru lucru este tabela. Avantajele sunt
date de :
- posibilitatea gestionării automat a tuplurilor duplicate;
- prelucrarea paralelă a asamblurilor.
La comunicarea unui LMD relational cu un limbaj universal, avantajele se pierd deoarece
comunicarea se poate face doar tuplu cu tuplu şi nu la nivel de ansamblu. Deoarece
limbajele universale oferă alte avantaje legate de proceduralitate, soluţia este de a integra
în acestea un limbaj relaţional.
Cursorul este soluţia în SGBDR pentru a face trecerea de la tratarea la nivel de ansamblu
la cea la nivel de înregistrare (tuplu).
CREATE CURSOR – se crează un pointer spre tuplurile ansamblului
(tabelei).
FETCH – transmite un tuplu indicat printr-un cursor, către program şi
deplasează cursorul spre urmatorul tuplu.
2. Operatorii relaţionali implementaţi. SGBDR s-au dezvoltat, din punct de
vedere relaţional, având la bază:
• calculul relaţional orientat pe tuplu (ALPHA, QUEL).
• calculul relaţional orientat pe domeniu (QBE).

-4-
• algebra relaţională (ISBL)
• transformarea (mapping) (SQL, SQUARE)
Notă. Limbajele bazate pe calculul relaţional sunt neprocedurale, cele bazate pe algebra
relaţională sunt procedurale, celelalte sunt combinaţii.
3. Realizatorii limbajelor relaţionale s-au orientat pe domenii precise din teoria
relaţională. Astfel, au rezultat: limbaje relaţionale standardizate internaţional (exemplu
SQL - ANSI), limbaje cu standard de utilizare impus de constructor (exemplu QUEL),
limbaje nestandardizate (celelalte limbaje relaţionale).
4. Utilizatorii limbajelor relaţionale sunt mult diversificaţi. SGBDR oferă atât
elemente procedurale (pentru specialişti) cât şi neprocedurale (pentru nespecialilşti).

Caracterizarea funcţională a LMD


1. Facilităţi de interogare a datelor. Acestea sunt puternice şi oferite prin
comenzi pentru:
• Interogarea tabelelor de bază (exemlu SELECT)
• Interogarea tabelelor virtuale (exemplu SELECT)
2. Facilităti de actualizare a datelor.
• Actualizarea tabelelor de bază
INSERT INTO – adaugă rânduri la sfârşitul unei tabele.
UPDATE – modifică rânduri dintr-o tabelă.
DELETE FROM - şterge rânduri dintr-o tabelă.
• Actualizarea tabelelor virtuale (la fel ca mai sus).
Notă. Unele SGBDR nu permit actualizarea tabelelor virtuale (exemplu Foxpro 2.x),
altele permit acces lucru cu o serie de restricţii pentru ca operaţia să se propage spre
tabelele de bază fără ambiguităţi (exemplu DB2, Oracle).
3. Alte facilităţi funcţionale. La facilităţile relaţionale de mai sus, SGBDR-urile
oferă şi alte facilităţi pe care le au toate limbajele de programare procedurale:
• Calculul aritmetic prin operatorii specifici: +, -, *, /, **
• Agregarea: prin funcţii standard (exemplu SUM), prin comenzi
(exemplu COMPUTE OF expr ).
• Comenzi de intrare/ieşire standard: ACCEPT…PROMPT…

Caracterizarea calitativă a LMD


1. Puterea selectivă a LMD relaţionale este dată de posibilitatea selectării
datelor după criterii (filtre) complexe (exemplu comanda SELECT).
2. Uşurinţa de învăţare şi utilizare este nuanţată în funcţie de tipul LMD-ului
relaţional
• Cele bazate pe calculul relaţional sunt neprocedurale (descriptive),
deci uşor de învăţat şi utilizat (apropiat, ca stil, de limbajul natural)
(exemplu QUEL).
• Cele bazate pe algebra relaţională sunt procedurale (algoritmice),
deci mai greu de învăţat şi utilizat (exemplu ISBL).
• Cele intermediare promovează stilul neprocedural dar acceptă şi
elemente de control procedural (exemplu SQL).
• Cele bazate pe grafică oferă primitive grafice pentru machetarea
cererilor de regăsire, deci uşor de utilizat (exemplu QBE).

-5-
3. Eficacitatea utilizării este determinată de posibilitatea optimizării cererilor
de regăsire.
¾ LMD bazate pe calculul relaţional lasă compilatorul să aleagă ordinea
de execuţie a operaţiilor, deci rezultă o eficienţa mare.
¾ LMD bazate pe algebra relaţională au o ordine impusă pentru
execuţia operaţiilor, deci rezultă o eficienţă mica.

b) Protecţia datelor
Aspectele privind protecţie a datelor (vezi capitolul 2) sunt foarte importante
pentru un sistem de bază de date şi ele trebuie asigurate (implementate) de către
SGBD. Protecţia bazei de date se referă la integritatea datelor (integritatea
semantică, concurenţa la date, salvarea/restaurarea) şi securitatea datelor
(autorizarea accesului, viziunile, procedurile speciale, criptarea). Dintre toate
aceste aspecte, ne vom ocupa aici, pe scurt, doar de integritatea semantică şi de
concurenţa la date.
Integritatea semantică
¾ Definirea restricţiilor de integritate se face, conform cerinţelor modelului
relaţional, în LDD (exemplu CREATE TABLE, ALTER TABLE).
¾ Utilizarea restricţiilor de integritate se face cu ajutorul unor mecanisme
care controlează validitatea regulilor pentru fiecare nouă stare a BD. Aceste
mecanisme sunt:
• metode de detectare a inconsistenţei datelor (se verifică restrciţiile de
integritate) la sfârşitul tranzacţiilor, care se realizează automat de
SGBDR;
• puncte de verificare a integrităţii fixate de utilizator, acolo unde
doreşte el în program.
Concurenţa la date (coerenţa)
¾ Unitatea de lucru pentru asigurarea coerenţei datelor este tranzacţia.
Aceasta este un ansamblu de comenzi tratate unitar. Tranzacţia se execută în
totalitate sau deloc.
¾ Coerenţa poate fi afectată la actualizarea concurentă sau la incidente.
¾ Mecanismele utilizate de SGBDR pentru asigurarea coerenţei datelor
(controlul accesului concurent) sunt (vezi protecţia BD în cap.2):
• blocarea la diferite niveluri: bază de date, tabelă, tuplu, atribut;
• definirea unor puncte de salvare în interiorul tranzacţiilor (exemplu
comanda SAVEPOINT);
• tranzacţii explicite (exemplu, Begin şi End Tranzaction ) şi implicite
(exemplu, comenzile de actualizare);
• fişiere jurnal.

c) Optimizarea regăsirii

¾ Cererile de regăsire se exprimă în SGBDR în diferite limbaje relaţionale.


Pentru a se obţine un rezultat optim, se utilizează interfeţe automate de rescriere a
cererilor de regăsire, prin parcurgerea a doi paşi:

-6-
• Exprimarea cererilor de regăsire sub forma unor expresii algebrice
relaţionale, care are la bază echivalenţa dintre calculul şi algebra
relaţională .
• Aplicarea unor transformări algebrice relaţionale asupra expresiilor
construite în pasul anterior, pentru a se obţine expresii relaţionale
echivalente şi eficiente.
¾ Transformarea se poate realiza prin doua strategii de optimizare: generale,
specifice.
- Generale, care sunt independente de modul de memorare a
datelor. Ele se bazează pe propietăţile operaţiilor din algebra relaţională
(comutativitatea, asociativitatea, compunerea ). Astfel de strategii sunt:
™ Selecţia înaintea joncţiunii
™ Proiecţia înaintea joncţiunii
™ Selecţia înaintea proiecţiei
™ Combinarea selecţiei multiple
- Specifice, care ţin cont de modul de memorare a datelor şi ele
sunt caracteristice unui SGBDR. Elementele care influenţează executarea
operaţiilor ce intervin la o cerere de regăsire sunt: accesul direct, reguli de
ordonare a expresiilor algebrice specifice unui SGBDR.

e) Utilitarele specializate

Posibilitatile de utilizare ale unui SGBDR sunt influenţate de utilitarele


specializate pe care le are, pentru diferitele categorii de utilizatori (exemplu în Oracle:
Developer pentru dezvoltatori, Designer pentru analişti, Administration Tools şi Utilities
pentru administrator etc.).

2) Caracterizarea particulară a SGBDR

Pentru a putea caracteriza un anumit SGBDR particular, vom lua în considerare o serie de
criterii de comparaţie. Aceste criterii se vor urmări, grupate pe anumite categorii, pentru
câteva SGBDR-uri care ne intersează. După această analiză vom avea un argument serios
pentru a putea alege un SGBDR în scopul dezvoltării unei aplicaţii cu baze de date .
Gruparea caracteristicilor particulare de comparaţie a SGBDR-urilor o vom face funcţie
de:
- Facilităţile de descriere a datelor ;
- Facilităţile de manipulare a datelor ;
- Facilităţile de utilizare şi administrare a datelor.
Notă. Se obeservă că gruparea caracteristicilor s-a facut după funcţiile oricărui SGBD
a) Caracteristici funcţie de facilităţile de descriere:
• modul de implementare a modelului relaţional ;
• conceptul de bază de date utilizat în schema;
• definirea metadatelor;
• definirea relaţiilor virtuale;
• actualizarea schemei relaţiei;
• restricţii de integritate ce pot fi declarate.

-7-
b) Caracteristici funcţie de facilităţile de manipulare:
• LMD relaţional implementat ;
• calcul aritmetic şi funcţii agregate ;
• moduri de acces la date;
• programare orientată pe obiecte/vizuală;
• tratarea valorii null;
• optimizarea cererilor de regăsire ;
• actualizarea relaţiilor de bază şi virtuale.
c) Caracteristici funcţie de facilităţile de utilizare şi administrare:
• dezvoltatoare (generatoare) de diferite tipuri (ecrane, rapoarte,
aplicaţii etc.);
• elemente de CASE (proiectare);
• analize statistice;
• acces de la distanţă ;
• utilitare de întreţinere;
• mecanisme pentru autorizarea accesului la date.

2.3 Exemple de SGBDR

ORACLE – realizat de firma Oracle Corporation USA. Produs complet


relaţional, robust, bazat pe SQL standard extins, ajuns la versiunea 9I, extensie
orientată obiect, arhitectura client/server, lucrul distribuit, BD Internet,
optimizator de regăsire.
DB2 - realizat de firma IBM, bazat pe SQL, optimizator de regăsire, respectă
teoria relaţională, lucrul distribuit, robust.
INFORMIX – realizat de firma Informix, respectă teoria relaţională, lucru
distribuit, robust.
PROGRESS – realizat de firma Progress Software, are limbaj propiu (Progress
4GL), suportă SQL, rulează pe o gamă largă de calculatoare sub diferite sisteme
de operare.
SQLServer – realizat de firma Microsoft, bazat pe SQL, rulează în arhitectura
client/server.
INGRES II – realizat de firma Computer Associates, este un SGBDR complet,
implementează două limbaje relaţionale (întâi Quel şi apoi SQL), este suportat de
diferite sisteme de operare (Windows, VMS, UNIX), lucrează distribuit în
arhitectura client/server, extensie cu facilităţi orientate obiect, permite aplicaţii tip
Internet, protecţia ridicată a datelor, organizarea fizică a tabelelor se face prin
sistemul de operare, are numeroase componente.
VISUAL FOXPRO - realizat de firma Microsoft, are un limbaj procedural
propiu foarte puternic, extensie orientată obiect, programare vizuală, nucleu
extins de SQL, raqpid.
ACCESS – realizat de firma Microsoft, bazat pe SQL, are limbajul procedural
gazdă (Basic Access), are generatoare puternice.
PARADOX - realizat de firma Borland, are limbaj procedural propiu (PAL) şi
suportă SQL.

-8-
2.4 Avantajele şi limitele sistemelor relaţionale

Avantaje
1. Simplitatea conceptelor şi a schemei .
2. Teoria relaţională oferă un solid suport teoretic şi o bază pentru cercetări
ulterioare.
3. Un grad mare de independenţă a datelor faţă de programe.
4. Limbajele relaţionale declarative (de nivel înalt) cu o mare putere de
regăsire.
5. Ameliorarea semnificativă a protecţiei datelor, sub toate aspectele.
6. Optimizarea semnificativă a accesului la date, precum şi a alocării datelor.
7. Manipularea de ansambluri de date prin operatorii din calculul sau algebra
relaţională, cu implicaţii importante pentru regăsirea datelor.

Limite
1. Prea marea simplitate a modelulu relaţional, care pentru tipurile noi de
apllicaţii (Internet, sisteme deschise etc.) conduce la:
• Pierderea unor informaţii semantice utile (prin multiplicarea tabelelor
la normalizare );
• Operaţiile relaţionale, chiar optimizate, sunt costisitoare (noile
aplicaţii generează multe operaţii relaţionale) din punct de vedere al
resurselor de calcul.
2. LMD relaţionale sunt prea limitate, ceea ce generează disfuncţionalităţi :
• Programatorul trebuie să cunoască două tipuri de limbaje (declarativ -
relaţional şi procedural - universal). De aici rezultă necesitatea
conversiilor, o fiabilitate scăzută, necesitatea comunicării,
productivitatea scăzută.
• Mecanismele de optimizare privesc doar LMD relaţional, deci ceea
ce este scris în limbaj procedural trebuie optimizat de către
programator.

-9-