bd si sgbd

47
Baze de date şi sisteme de gestiune a bazelor de date Capitolul 1. Baze de date şi sisteme de gestiune a bazelor de date 1.1. Conceptele de bază de date (BD) şi sistem de gestiune a bazelor de date(SGBD) În contextul actual al globalizării şi accentuării concurenţei, informaţiile devin o resursă imaterială de importanţă capitală iar gestiunea ei o prioritate pentru întreprinderi. Nu putem disocia gestiunea resursei informaţie de gestiunea datelor care constituie sursa pentru obţinerea informaţiilor. Întreprinderile stochează tot mai multe date, interne sau externe, pe care le procesează pentru a obţine informaţiile necesare structurilor operaţionale şi decizionale. Specific domeniului economic este că datele sunt, în mare parte, structurate uniform şi formează ceea ce numim structuri de date. O structură de date permite reprezentarea în planul datelor a realizărilor unor clase de obiecte reale sau conceptuale. Spre exemplu, clasa de obiecte Clienţi (figura 1.1) se poate reprezenta în planul datelor prin atributele: codul clientului (Cod client), denumirea clientului (Den client), localitatea (Localitate), adresa (Adresa) şi adresa de e-mail (Mail). Datele despre un anume client (obiect real) formează ceea ce numim o realizare a structurii de date Clienţi. Figura 1.1 Realizări ale structurii de date Clienţi O structură de date corespunde unei clase de obiecte reale sau conceptuale şi are ca atribute caracteristicile acestor 1

Upload: madalina-firica

Post on 08-Aug-2015

66 views

Category:

Documents


2 download

DESCRIPTION

Baze de date

TRANSCRIPT

Page 1: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Capitolul 1. Baze de date şi sisteme de gestiune a bazelor de date

1.1. Conceptele de bază de date (BD) şi sistem de gestiune a bazelor de date(SGBD)

În contextul actual al globalizării şi accentuării concurenţei,

informaţiile devin o resursă imaterială de importanţă capitală iar

gestiunea ei o prioritate pentru întreprinderi. Nu putem disocia

gestiunea resursei informaţie de gestiunea datelor care constituie

sursa pentru obţinerea informaţiilor. Întreprinderile stochează tot mai

multe date, interne sau externe, pe care le procesează pentru a obţine

informaţiile necesare structurilor operaţionale şi decizionale. Specific

domeniului economic este că datele sunt, în mare parte, structurate

uniform şi formează ceea ce numim structuri de date. O structură de

date permite reprezentarea în planul datelor a realizărilor unor clase

de obiecte reale sau conceptuale. Spre exemplu, clasa de obiecte

Clienţi (figura 1.1) se poate reprezenta în planul datelor prin

atributele: codul clientului (Cod client), denumirea clientului (Den

client), localitatea (Localitate), adresa (Adresa) şi adresa de e-mail

(Mail). Datele despre un anume client (obiect real) formează ceea ce

numim o realizare a structurii de date Clienţi.

Figura 1.1 Realizări ale structurii de date Clienţi

O structură de date corespunde unei clase de obiecte reale sau

conceptuale şi are ca atribute caracteristicile acestor obiecte. Ea se

identifică printr-un nume unic, se defineşte prin ansamblul de atribute

ce o compun şi se reprezintă în planul datelor printr-o mulţime de

realizări. Gestiunea datelor pe domenii de aplicaţie se focalizează pe

precizarea structurilor de date şi a relaţiilor care există între

realizările acestora.

Fie, spre exemplu, domeniul Gestiunii facturilor (nu vom trata datele

privind plata facturilor). Documentul în care sunt consemnate datele

este Factura (figura 1.2). Datele din facturi pot fi grupate în

următoarele structuri de date:

1

Page 2: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Structura de date Clienţi definită în figura 1.1;

Structura de date Produse care conţine datele din catalogul de

produse;

Structura de date Facturi care conţine datele din antetul facturii

;

Structura de date Produse facturate care conţine datele ce apar

pe fiecare linie din factură, o linie constituind o realizare a

structurii de date.

Figura 1.2 Structuri de date aferente documentului factură

Identificăm o structură de date atunci când obiecte reale sau

conceptuale au mai multe atribute şi mai multe realizări. Legăturile

între structurile de date permit acestora să realizeze un obiectiv

comun. În exemplul luat, obiectivul comun este gestiunea facturilor

(mai puţin plata facturilor). Cunoaşterea legăturilor ce există între

înregistrările de date este importantă pentru asigurarea integrităţii

datelor. Nu putem trata o factură care face referire la un produs

facturat dacă respectivul produs nu se găseşte în catalogul de

produse.

Progresele înregistrate în domeniul tehnologiilor informaţionale şi de

comunicaţii, şi îndeosebi în domeniul memoriilor de masă adresabile

şi respectiv al lucrului în reţele de calculatoare, au adus în prim plan

soluţia bazelor de date pentru gestiunea optimă a datelor în

întreprinderi.

Definiţie: O bază de date (BD) este un ansamblu de structuri de

date, legate funcţional între ele, memorate pe suporturi

adresabile, ce pot fi accesate simultan de mai mulţi utilizatori,

de o manieră selectivă şi în timp optim.

2

Page 3: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Persistenţa datelor este asigurată prin înregistrarea lor pe suport

adresabil. O bază de date este partajată de unul sau mai mulţi

utilizatori. În capitolul 2 se va prezenta conceperea structurilor de

date şi respectiv, cum se defineşte ceea ce numim modelul bazei de

date.

Gestiunea bazelor de date este asigurată cu ajutorul un ansamblu de

programe care constituie un sistem de gestiune a bazelor de date

(SGBD).

Un SGBD trebuie să permită:

definirea modelului bazei de date;

înregistrarea datelor pe un suport de stocare;

persistenţa datelor pe suport de stocare;

manipularea datelor: interogare, actualizare (adăugare de

înregistrări, modificare de date din înregistrări, ştergere

înregistrări) şi crearea de rapoarte;

partajarea datelor şi gestiunea conflictelor de acces;

integritatea bazei de date, respectarea constrângerilor de

coerenţă;

siguranţa în funcţionare, reluarea în caz de pană;

arhivarea pe un suport extern (back-up).

Interacţiunea dintre utilizatorii unei baze de date şi baza de date se

realizează prin intermediul unui SGBD. Utilizatorii accesează baza de

date folosind un program de aplicaţie (o aplicaţie) ce se conectează la

baza de date prin intermediul SGBD (figura1.3).

Figura 1.3 Accesarea datelor de către utilizatori

3

Page 4: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

1.2. Modelarea datelor

1.2.1. Model de date

Un model de date defineşte un model de reprezentare a datelor

urmărind trei componente:

Structurile de date;

Constrângerile pentru asigurarea integrităţii datelor;

Operaţiile folosite pentru manipularea datelor (în interogare şi

actualizare).

Momentele importante în evoluţia modelării datelor sunt marcate de

modele (figura 1.3):

Modelul ierarhic presupune reprezentarea datelor sub formă

arborescentă. Entităţile reprezintă nodurile, iar legăturile dintre

noduri trebuie să fie de tipul „unu la mai mulţi” sau „unu la

unu”. Un nod părinte poate avea mai mulţi copii, dar un nod

copil poate avea doar un singur părinte.

Modelul reţea presupune reprezentarea datelor sub formă de

reţea, fiind de fapt un model ierarhic care permite şi legături de

tip „mai mulţi la mai mulţi”. Un nod părinte poate avea mai mulţi

copii şi un nod copil poate avea mai mulţi părinţi.

Modelul relaţional, prin care modelarea realităţii se realizează

folosind tabele cu două dimensiuni, unde dimensiunea coloane

defineşte atributele, iar dimensiune linie reprezintă tuplurile

(înregistrările);

Modelul orientat pe obiecte, modelarea directă a realităţii este

realizată prin intermediul obiectelor definite ca entităţi cu

identitate proprie şi caracterizate prin stare (structură) şi

comportament (metode de accesare a datelor);

Modelul relaţional-obiect, este o extensie a modelului relaţional

şi îmbină facilităţile modelului orientat obiecte cu cele ale

modelului relaţional;

Modelul semi-structurat, util pentru reprezentarea de

documente variate (multimedia, hipertext, date ştiinţifice, etc.),

4

Page 5: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

care vede Web-ul ca pe o mare bază de date descentralizată.

Limbajul XML (acronim de la eXtended Markup Language) este

un format textual ce permite crearea de documente conţinând

date semi-structurate.

Figura 1.4 Istoricul modelelor de reprezentare a datelor (adaptare după Grossniklaus, 2007)

În funcţie de modelul utilizat pentru gestiunea datelor delimităm:

Baze de date relaţionale;

Bazele de date orientate pe obiecte;

Baze de date obiect-relaţionale;

Baze de date semi-structurate (capitolul 5).

O bază de date poate fi locală sau distribuită. Elementele specifice

bazelor de date distribuite sunt prezentate în capitolul 5.

1.2.2. Modelul relaţional

1.2.2.1. Concepte de bază

Modelul relaţional este un mod de organizare şi de structurare a

datelor sub formă de tabele bidimensionale numite şi relaţii, fără

ordine particulară, ce pot fi manipulate cu ajutorul unui set de

operatori neprocedurali care returnează alte tabele virtuale.

Ansamblul acestor operatori formează algebra relaţională . Modelul

relaţional a fost introdus de E. F. Codd în 1970 şi se fondează pe

conceptul de relaţie definit în teoria matematică a mulţimilor ca fiind

o submulţime a produsului cartezian al mai multor domenii: R Í D1 ´

5

Page 6: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

D2 ´ … ´ Dn; unde Dn reprezintă coloana n a relaţiei. Relaţia este de

gradul n.

O viziune tabelară asimilează relaţiei conceptul de tabel

bidimensional: pe dimensiunea coloană sunt trecute atributele

relaţiei, iar pe dimensiunea linie, tuplurile (înregistrările) relaţiei. Prin

definiţie, fiecare tuplu al unei relaţii este unic, şi este identificat

printr-un atribut sau o combinare de mai multe atribute ce formează

cheia primară. Ordinea tuplurilor este nesemnificativă. Un atribut ia

valori într-un domeniu de definiţie (exemplu numere întregi, lanţ de

caractere, etc.). O valoare a unui atribut este atomică dar poate fi

eventual nulă (valoare specială ce specifică absenţa unei valori). În

baza domeniului de definiţie se stabileşte tipul datei şi eventual,

regula de validare a datelor la stocarea lor în baza de date. Toate

atributele unui tabel sunt atomice (nu se pot descompune în alte

atribute).

Pentru exemplificare, prezentăm tabelele Facturi şi respectiv Clienţi

(figura 1.5). În tabela Facturi atributul NrFactură reprezintă cheia

primară. Fiecare înregistrare se identifică unic printr-un număr de

factură. Atributul Cod client constituie cheia primară în tabelul

Clienţi. În tabelul Facturi atributul CodClient este cheia externă, ce

permite să se facă legătura între înregistrările din tabelul Facturi şi

cele din tabelul Clienţi. Este singura redundanţă admisă de către

modelul relaţional. Spunem că un atribut al relaţiei R1 este cheie

externă, dacă, utilizând o parte din valorile lui sau toate, putem regăsi

realizările (tuplurile) relaţiei R2. Valorile pentru atributul cheie

externă trebuie să refere valori din relaţia pentru care atributul

constituie cheia primară. În felul acesta se asigură ceea ce numim

integritatea referenţială a datelor din baza de date.

6

Page 7: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Figura 1.5 Asigurarea legăturii între tabele prin relaţia cheie primară - cheie externă

Modelul relaţional al bazei de date defineşte tabelele bazei de date şi

legăturile între tabele. Pentru exemplificare, în figura 1.6 prezentăm

un model simplificat al bazei de date relaţionale pentru gestiunea

facturilor.

Figura 1.6 Modelul relaţional al bazei de date

O relaţie se defineşte prin următoarele elemente:

Numele relaţiei;

Structura relaţiei;

Restricţiile pentru asigurarea integrităţii datelor din realizările

relaţiei.

7

Page 8: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Schema unei relaţii este formată din numele relaţiei, structura

(atributele) relaţiei şi restricţiile de integritate la nivel

relaţie[Florescu&al.02].

Exemple practice :

Relaţia CLIENTI (CodCli, Nume, Telefon, Fax, Strada, Nr,

ComplAdresa, CodPostal, TipClient)

' Restricţii de integritatae

RI1: CodCli, constituie cheia primară

RI2: Dom(TipClient)={Ext, Int}

RI3: Val(Nume) diferit de Null

RI4: Val(CodPostal) diferit de Null

RI5: Val(Telefon) diferit de Null

Relaţia FACTURI (NrFact, DataFact, CodCli)

' Restricţii de integritate

RI1: NrFact, cheia primară

RI2: Val(DataFact) Între <data min> Şi <data max>

Schema bazei de date cuprinde schemele relaţiilor bazei de date

S = {R1, R2, ..., Rn}

şi restricţiile de integritate la nivelul bazei de date (ce vizează

legăturile între realizările tabelelor bazei de date).

În exemplul luat referitor la gestiunea facturilor, se pot defini

următoarele restricţii de integritate la nivelul bazei de date :

RIR1: CodClient din FACTURI referă CodCli din CLIENTI

RIR2: NrFact din Produse_facturate referă NrFact din FACTURI

RIR3: CodProd din Produse_facturate referă CodProd din PRODUSE

Modelul relaţional este cel mai utilizat model folosit pentru gestiunea

bazelor de date.

De o manieră informală, se poate defini modelul relaţional astfel :

Datele sunt organizate în tabele bidimensionale (numite şi

relaţii) în care liniile sunt numite tupluri (înregistrări) ;

8

Page 9: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Datele sunt manipulate folosind un set de operatori ai algebrei

relaţionale ;

Starea coerentă a bazei de date este definită de către restricţiile

de integritate.

1.2.2.2. Algebra relaţională

Algebra relaţională cuprinde un ansamblu de operatori ce operează pe

relaţii (tabele sursă) şi produc noi relaţii (tabele rezultat). Este posibil

să se construiască noi tabele rezultat aplicând o secvenţă de operatori

asupra unor tabele sursă. Deoarece tabelele sunt mulţimi ce au

anumite particularităţi, algebra relaţională este un subset al algebrei

generice pe mulţimi. Clasificarea operatorilor se poate face în funcţie

de modul de aplicabilitate, deosebind astfel operatori generali ce

operează asupra oricărei categorii de mulţimi şi operatori specifici

operaţiilor pe relaţii.

Operatorii generali pe mulţimi sunt :

A. Reuniune;

B. Intersecţie;

C. Diferenţă;

D. Produs cartezian.

Operatorii specifici pe relaţii sunt:

E. Selecţie;

F. Proiecţie;

G. Compunere;

H. Diviziune.

O altă clasificare a operatorilor se bazează pe numărul de tabele

cerute de acel operator. Astfel, deosebim operatorii binari care se

aplică pentru cel puţin două tabele şi operatori unari pentru a căror

aplicare este nevoie de cel puţin o tabelă.

Operatorii binari sunt :

A. Reuniune;

B. Intersecţie;

9

Page 10: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

C. Diferenţă;

D. Produs cartezian;

E. Compunere;

F. Diviziune.

Operatori unari sunt:

G. Selecţie;

H. Proiecţie.

E. F. Codd a propus opt operaţii de bază în algebra relaţională, dintre

care cinci sunt considerate operaţii primare şi trei sunt operaţii

derivate (ce pot fi exprimate pe baza operaţiilor primare).

Operaţii primare:

A. Reuniunea;

B. Diferenţa;

C. Produsul cartezian;

D. Selecţia;

E. Proiecţia

Operaţii derivate:

F. Intersecţia

G. Compunerea (proiecţia selecţiei asupra unui produs

cartezian);

H. Diviziunea (intersecţia proiecţiilor aplicate anumitor

selecţii);

În afară de operaţiile menţionate, mai există operaţii de grupare,

agregare, sortare, eliminare a duplicatelor şi operaţii de redenumire

care nu se consideră a face parte din algebra relaţională, dar care

sunt frecvent folosite în cadrul limbajelor specializate de interogare a

bazelor de date cum ar fi SQL (Structured Query Language) şi QBE (Query By Example) .

Reuniunea

Reuniunea (figura 1.7) a două relaţii compatibile (ce au aceeaşi

structură) are ca rezultat o relaţie ce conţine totalitatea tuplurilor

celor două, excluzându-se tuplurile comune (identice). Numărul de

10

Page 11: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

înregistrări din tabela rezultat (cardinalitatea tabelei) al reuniunii este

mai mic sau cel puţin egal cu suma numerelor de înregistrări din

fiecare tabel. Dacă nu există înregistrări comune (identice) în cele

două tabele atunci cardinalitatea tabelei rezultat al reuniunii este

egală cu suma cardinalităţilor celor două tabele. Gradul relaţiei R3

este egal cu gradul relaţiei R1 şi respectiv al relaţiei R2.

Notaţia specifică pentru reuniune este R2 = R3, unde R1 şi R2

sunt tabelele sursă, iar R3 este tabela rezultat.

Figura 1.7 Reuniunea a două tabele

În exemplul următor, considerăm tabela Studenţi şi tabela

Doctoranzi. Rezultatul reuniunii celor două tabele reprezintă

totalitatea studenţilor şi a doctoranzilor (figura 1.8).

Figura 1.8 Exemplu de reuniune a tabelelor Studenţi şi Doctoranzi

Diferenţa

11

Page 12: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Prin diferenţa (figura 1.9) dintre relaţia R1 şi relaţia R2, care este

compatibilă cu R1, se obţine tot o relaţie R3 ce conţine tuplurile din

R1 care nu se regăsesc în R2. Gradul relaţiei R3 este egal cu gradul

relaţiei R1 şi respectiv R2.

Notaţia specifică pentru diferenţă este , unde R1 şi R2 sunt

tabelele sursă, iar R3 este tabela rezultat.

a b

c d

x y

z t

\

c d=a b

Figura 1.9 Reprezentarea diferenţei dintre două tabele

În exemplul următor (figura 1.10), este prezentată diferenţa dintre

tabelul Studenţi şi tabelul Doctoranzi prin intermediul tabelului ce

conţine studenţii care nu sunt doctoranzi.

Figura 1.10 Exemplu diferenţă a tabelelor Studenti şi Doctoranzi

Produsul cartezian

Produsul cartezian (figura 1.11) a două relaţii R1 şi R2 este relaţia R3

ce conţine toate perechile de tupluri din R1 şi R2. Cardinalitatea

relaţiei R3 este egală cu produsul gradelor relaţiilor R1 şi R2. Gradul

relaţiei R3 este egal cu suma gradelor relaţiilor R1 şi R2. Notaţia

specifică pentru reuniune este , unde R1 şi R2 sunt tabelele

sursă, iar R3 este tabela rezultat.

12

Page 13: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Figura 1.11 Reprezentarea operaţiei produs cartezian a două tabele

În exemplul următor (figura 1.12) este prezentat produsul cartezian al

tabelelor Studenţi şi Facultăţi, conţinând toate combinaţiile posibile

între tuplurile tabelei Studenţi şi cele ale tabelei Facultăţi.

Figura 1.12 Exemplu de produs cartezian al tabelelor Studenţi şi Doctoranzi

Selecţia

Selecţia (figura 1.13) aplicată unei tabele R1 generează o nouă tabelă

R2 având aceeaşi structură ca şi R1, dar care conţine doar tuplurile ce

îndeplinesc condiţia specificată de selecţie. Cardinalitatea relaţiei

rezultat R2 este mai mică sau egală cu gradul relaţiei R1, în timp ce

gradul relaţiei este egal cu al relaţiei sursă. Notaţia specifică pentru

selecţie este R2 = SELECTC (R1), unde:

R1 este tabelul (relaţia) de baza asupra căreia se aplică

selecţia;

C este condiţia ce se referă la atributele lui R2;

R2 este tabelul (relaţia) rezultat, alcătuit din tuplurile lui

R1 care îndeplinesc condiţia C.

13

Page 14: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Figura 1.13 Reprezentarea operaţiei de selecţie aplicată unei tabele

În cadrul condiţiei C pot exista operatori logici cum ar fi OR , AND,

NOT sau operatori aritmetici de comparaţie: <, >, <>, =, <=, >=.

Pot exista, de asemenea, condiţii impuse asupra valorilor obţinute

prin agregare folosind operatorii aritmetici: +,-, ÷,.

Pentru exemplificare, prezentăm selecţia aplicată tabelei Client (figura

1.14).

Figura 1.14 Exemplu de selecţie aplicată tabelei Credit

Proiecţia

Proiecţia (figura 1.15) este o operaţie unară ce returnează tuplurile ce

conţin un subset al atributelor tabelei sursă. Proiecţia aplicată asupra

unei tabele R1 generează o tabelă R2 ce va avea gradul mai mic decât

R1 dar cu acelaşi număr de tupluri (cardinalitate). Notaţia specifică

pentru proiecţie este R2=PROIECTIEL (R2), unde:

R1 este tabelul (relaţia) sursă asupra căreia se aplică proiecţia ;

L este subsetul de atribute (dintre atributele lui R2) ;

R2 este tabelul (relaţia) rezultat, alcătuit din tuplurile lui R2

cuprinzând doar atributele din lista L;

14

Page 15: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

a be f

c dg h

i jx y

k lz t

bf

dh

jy

lt

C1 C2 C3 C4 C2 C4

PROIECTIEC2,C4(R1)R1

Figura 1.15 Reprezentarea operaţiei de proiecţie

Înregistrările identice sunt eliminate în cadrul proiecţiei. Astfel dacă

dorim să obţinem doar oraşul de provenienţă al studenţilor vom folosi

proiecţia astfel (figura 1.16):

R2=PROIECTIEOraş (Studenţi)

Figura 1.16 Exemplu de proiecţie a tabelei Studenţi după câmpul Oraş

Intersecţia

Intersecţia (figura 1.17) a două relaţii compatibile (având aceeaşi

structură) este tot o relaţie ce conţine doar înregistrările comune

(identice) pentru cele două tabele. Cardinalitatea relaţiei obţinute în

urma intersecţiei a două tabele este mai mică sau cel puţin egală cu

minimul cardinalităţilor celor două tabele. Gradul relaţiei R3 este egal

cu gradul relaţiei R1 şi respectiv al relaţiei R2.

Notaţia specifică pentru intersecţie este , unde R1 şi R2

sunt tabelele sursă, iar R3 este tabela rezultat.

15

Page 16: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Figura 1.17 Reprezentarea intersecţiei dintre două tabele

Pe baza tabelelor Studenţi şi Doctoranzi, pentru identificarea

studenţilor care sunt şi doctoranzi se foloseşte intersecţia (figura

1.18):

Figura 1.18 Exemplu de intersecţie a tabelelor Studenţi şi Doctoranzi

Compunerea

Compunerea (figura 1.18) a două tabele R1 şi R2 este o tabelă R3 ce

combină tuplurile celor două tabele sursă, fiind alese doar acelea care

îndeplinesc o anumită condiţie specificată în cadrul compunerii.

Gradul relaţiei obţinute ca urmare a compunerii a două relaţii este

egal cu suma gradelor relaţiilor sursă.

Notaţia specifică pentru compunere este R3=R1 JOINC R2, unde

R1 şi R2 sunt tabelele (relaţiile) de bază asupra cărora se

aplică compunerea;

C este condiţia  care poate să conţină operatori logici şi

aritmetici precum şi agregări de date.

R3 este tabelul (relaţia) rezultat, alcătuit din tuplurile

produsului cartezian R2 X R3 care îndeplinesc condiţia C.

a 1b 2

xy

a 3d 4

zt

A B C

R

a 1b 4b 7a 9

D E

S

JOIN A D si B=E d 4 tA B C

b 4D E

R JOIN A D si B=E S

16

Page 17: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Figura 1.19 Reprezentarea operaţiei de compunere

În exemplul următor (figura 1.20), se încadrează fiecare credit într-o

anumită categorie în funcţie de perioadă. Acesta se realizează cu

ajutorul compunerii, criteriul după care se face compunerea fiind

încadrarea perioadei creditului între cele două limite minime şi

maxime ale fiecărui tip de credit.

Figura 1.20 Exemplu de compunere a tabelelor Credit şi TipCredit

Compunerea este, de fapt, o selecţie aplicată produsului cartezian a

celor două tabele sursă, putând să fie scrisă astfel :

R3= R1 JOINC R2= SELECTC (R1 X R2)

În funcţie de natura condiţiilor, compunerea cunoaşte mai multe

cazuri particulare printre care cele care prezintă o importanţă

deosebită pentru algebra relaţională sunt:

echicompunerea;

compunerea naturală;

compunerea externă.

Echicompunerea

Este compunerea pentru care condiţia este alcătuită numai din

egalităţi, putând conţine una sau mai multe egalităţi. În cazul

echicompunerii (figura 1.21), în tabela rezultat apar două câmpuri ce

au valori identice. Gradul relaţiei obţinute ca rezultat al

echicompunerii este egal cu suma gradelor celor doua relaţii sursă.

Cardinalitatea ce reprezintă numărul de tupluri ale relaţiei rezultat

17

Page 18: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

este mai mică sau egală decât produsul cardinalităţilor tabelelor

sursă.

a 1b 2

xy

a 3d 4

zt

A B CR JOIN B=E SR

a 1b 4b 7a 9

D E

S

JOIN B=Ea 1d 4

xt

A B Cab 4

D E1

Figura 1.21 Reprezentarea operaţiei de echicompunere

Exemplul următor prezintă echicompunerea tabelelor Credit şi Client

pe baza câmpurilor CodClient respectiv Cod (figura 1.22).

Figura 1.22 Exemplu de echicompunere a tabelelor Credit şi Client

Fiind un caz particular al compunerii, proprietăţile echicompunerii

sunt aceleaşi ca şi ale compunerii, adică este comutativă şi nu este

asociativă.

Compunerea naturală

Compunerea naturală (figura 1.23) este echicompunerea a două

tabele, pentru care există cel puţin câte un câmp având acelaşi nume

şi tip şi în care, din rezultat, se elimină câmpurile identice. Gradul

relaţiei obţinute ca rezultat al compunerii naturale este mai mic decât

suma gradelor celor două relaţii sursă, deoarece sunt eliminate

câmpurile identice. Cardinalitatea ce reprezintă numărul de tupluri

ale relaţiei rezultat este mai mică sau egală decât produsul

cardinalităţilor tabelelor sursă.

18

Page 19: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Notaţia specifică pentru compunerea naturală este R3=R1 JOIN R2,

unde:

R1 şi R2 sunt tabelele (relaţiile) de bază asupra cărora se

aplică compunerea naturală;

R3 este tabela (relaţia) rezultat, alcătuită din tuplurile

produsului cartezian R2 X R3 care îndeplinesc condiţia de

egalitate a valorilor câmpurilor ce au aceeaşi denumire şi

tip.

a 1b 2

xy

a 3d 4

zt

A B CR JOIN SR

a 1b 4b 7a 9

D B

S

JOIN a 1d 4

xt

A B Cab

D

Figura 1.23 Reprezentarea operaţiei de compunere naturală

Exemplul următor prezintă compunerea naturală a tabelelor Credit şi

Client pe baza câmpului CodClient (figura 1.24).

Figura 1.24 Exemplu de compunere naturală a tabelelor Credit şi Client

Compunerea externă

Compunerea externă (figura 1.25) este o echicompunere care, spre

deosebire de aceasta, afişează şi tuplurile care nu au corespondent în

cadrul celor două tabele sursă. Notaţia specifică pentru compunerea

externă este R3 = R1 OUTER JOIN C R2, unde:

19

Page 20: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

R1 şi R2 sunt tabelele (relaţiile) de bază asupra cărora se

aplică compunerea;

C este condiţia  care poate să conţină operatori logici şi

aritmetici precum şi agregări de date;

R3 este tabelul (relaţia) rezultat, alcătuit din tuplurile

produsului cartezian R2 X R3 care îndeplinesc condiţia C, la

care se adaugă tuplurile din cele două tabele sursă care nu

au făcut parte din selecţia anterioară, pentru acestea

completându-se restul valorilor cu valoarea NULL.

a 1b 3a 2

A BR1

x 1z 2

C DR2

x 6

OUTER JOIN B=Da 1b 3a 2

A BR1 OUTER JOIN B=D R2

x 1NULL NULL

C D

z 2NULL NULL x 6

=

Figura 1.25 Reprezentarea operaţiei de compunere externă

Compunerea externă poate să fie la stânga şi în acest caz se vor afişa

toate tuplurile din primul tabel, pentru cele care nu au corespondent

se completează cu NULL valoarea atributelor lipsă, iar din al doilea

tabel se vor afişa doar tuplurile care au corespondent în primul tabel.

Compunerea externă la dreapta presupune acelaşi mecanism, cu

deosebirea că se vor afişa toate tuplurile din tabelul doi chiar dacă au

sau nu corespondent iar din tabelul unu se vor afişa doar tuplurile ce

au corespondent.

În exemplele următoare, sunt utilizate tabela „Cursuri” ce conţine

detalii despre cursurile ce se pot susţine în cadrul unei facultăţi şi

tabela „InscrieriCurs” conţinând înscrierile studenţilor la anumite

cursuri. Afişarea situaţiei înscrierilor la cursuri, dorindu-se informaţii

atât despre cursurile la care s-au înscris studenţi dar şi despre cele la

care nu s-au înscris studenţi, se poate realiza folosindu-se

compunerea externă la stânga pentru tabelele „Cursuri” şi

„InscrieriCurs” (figura 1.26).

20

Page 21: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Cursuri LEFT JOIN InscrieriCurs

CursuriInscrieriCurs

Figura 1.26 Exemplu de compunere externă la stânga

Afişarea tuturor înscrierilor chiar şi a celor care nu au corespondent

în cadrul tabelei „Cursuri” se realizează cu ajutorul operatorului de

compunere externă la dreapta (figura 1.27).

Cursuri RIGHT JOIN InscrieriCurs

CursuriInscrieriCurs

Figura 1.27 Exemplu de compunere externă la dreapta

Diviziunea

Diviziunea (figura 1.28) presupune împărţirea unei tabele (R1),

denumită deîmpărţit, la o tabelă denumită împărţitor (R2), rezultând o

altă tabelă (R3) denumită cât, astfel încât orice tuplu al tabelei cât

(R3) trebuie să se regăsească în cadrul tuplurilor tabelei deîmpărţit

(R1) în combinaţie cu fiecare tuplu din tabela împărţitor (R2). Pentru

a putea să aibă sens diviziunea, tabela împărţitor (R2) trebuie să aibă

21

Page 22: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

ca atribute un subset al atributelor tabelei deîmpărţit (R1). Gradul

tabelei cât (R3) este egal cu diferenţa gradelor tabelelor deîmpărţit

(R1) şi împărţitor (R2).

Notaţia specifică pentru diviziune este R3=R1 ÷ R2, regula care

trebuie verificată fiind ca produsul cartezian al câtului cu împărţitorul

sa fie un subset al tabelei deîmpărţit (R3 X R2= R4, R4 R1).

a 1b 2

xy

a 2d 3

xx

A B CR1 ÷ R2

R1

12

BR2

÷ a xA C

Figura 1.28 Reprezentarea operaţiei de diviziune relaţională

Diviziunea poate să fie reprezentată ca intersecţia proiecţiilor după

atributele care nu aparţin împărţitorului, proiecţii aplicate selecţiilor

realizate în cadrul tabelei deîmpărţit pentru fiecare dintre tuplurile

împărţitorului (figura 1.29).

a 1b 2

xy

a 2d 3

xx

A B CR1

12

BR2

a 1 xA B C

S1=SELECTB=1 (R1)

a 1b 2

xy

a 2d 3

xx

A B CR1

S2= SELECTB=2 (R1)

b 2a 2

yx

A B C

T1 T2=R1 ÷ R2

a xA C

a xA C

T1=PROI A,C (S1)

b yA C

T2=PROI A,C (S2)

a x

Figura 1.30 Reprezentarea variantei alternative de realizare a diviziunii relaţionale

Diviziunea este utilă pentru a se evidenţia studenţii care urmează o

anumită listă de cursuri (figura 1.30).

22

Page 23: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

InscriereCurs

Cursuri InscriereCurs ÷ Cursuri

÷ =

Figura 1.30 Exemplu de utilizare a diviziunii relaţionale

1.2.3. Modelul obiect

Modelul relaţional este simplu şi eficace, motiv pentru care este şi cel

mai utilizat pentru gestiunea bazelor de date. El prezintă însă şi

anumite limite, dintre care menţionăm:

nu permite utilizarea unor structuri de date complexe (cum ar fi,

spre exemplu, structurile ierarhice) ;

nu permite declararea prelucrărilor standard aferente

structurilor de date;

nu permite definirea unor tipuri de date utilizator ;

nu permite partajarea/reutilizarea structurilor de date.

În esenţă, modelul obiect [Cozgarea02.a] permite modelarea directă a

realităţii prin intermediul obiectelor definite ca entităţi cu identitate

proprie şi caracterizate prin stare (atribute) şi comportament (setul

de operaţii, numite şi metode, aplicabile obiectului respectiv şi

cunoscute din exterior). Operaţiile sunt,de regulă, proceduri sau

funcţii ce acţionează asupra atributelor obiectului respectiv.

Orice entitate din lumea reală este un obiect, şi reciproc, orice obiect

reprezintă o entitate din realitate. Obiectele pot “comunica” între ele

prin intermediul mesajelor (figura 1.31). O clasă de obiecte regrupează obiectele care au aceeaşi structură şi acelaşi

comportament. Un obiect este o instanţă a unei clase. Structura

clasei de obiecte este definită prin atributele acestora. Identitatea

(OID) unui obiect este proprietatea acestuia care îl distinge de alte

obiecte şi este, de regulă, o adresă logică invariantă (pointer). Astfel,

23

Page 24: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

spre deosebire de modelul relaţional în care datele sunt identificate

prin valori ale cheilor primare desemnate de utilizator, în modelul

orientat obiect, identificarea obiectelor este asigurată automat de

sistem şi este transparentă utilizatorului.

O bază de date obiect stochează obiecte, spre deosebire de o bază de

date relaţională care stochează relaţii (tabele). În cazul bazelor de

date obiect, relaţiile dintre obiecte sunt incluse în structura obiectului

(figura 1.31).

Clasa PUBLICATIE

Creează (P)Suprimă (P)Nr_Autori (P)

Comportament

DenumireNrPaginiEdituraTaraListă Autor

StructuraCreeazăSuprimăNr_Autori

Interfaţa

Clasa AUTOR

Creează (A)Suprimă (A)

Comportament

DenumireUniversitateGradUniversitarTara

StructuraCreeazăSuprimă

Interfaţa

Lista obiecte detip AUTOR

Figura 1.31 Descrierea clasei Publicatie şi a clasei Autor

Clasa Autor este descrisă prin atributele invizibile (private) din exteriorul clasei:

Denumire, Universitate, GradUniversitar, Ţara

şi operaţiile accesibile din exterior (publice):

Creează(Denumire, Universitate, GradUniversitar, Ţara)

Returnează Denumire (): text

Returnează Universitate () : text

Returnează GradUniversitar ():intreg

Returnează Ţara (): text

24

Page 25: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Instanţierea clasei presupune folosirea constructorului (vizibil din

exteriorul obiectului). Pentru crearea obiectului Popescu A. se

apelează metoda-constructor:

Creează(“Popescu E.“, “ASE Bucureşti”, “prof. dr.”, “Romania“)

Pentru a se asigura securitatea informaţiilor stocate de un obiect,

utilizatorul percepe un obiect de tip Autor numai prin atributele (read-

only): Denumire, Universitate, GradUniversitar şi Ţara, cu ajutorul

metodelor de tip Returnează.

Un obiect al clasei Publicatie este descris prin atributele private:

Denumire, NrPagini, Editura, Ţara, lista Autor

şi operaţiile publice:

Creează(Denumire, NrPagini, Editura, Ţara, lista Autor)

Returnează Denumire (): text

Returnează Editura () : text

Returnează Ţara (): text

Returnează NrPagini ():intreg

Returnează Autori (): lista Autor

Returnează Nr_Autori ():intreg

Crearea obiectului Baze de date prin apelarea metodei-constructor

Creează se realizează astfel:

Creează(“Baze de date“, “Editura ASE”, “Romania”, 200, (“Popescu

E.“, “Vasilescu A.“))

unde lista “Popescu E.“,“Vasilescu A.“ este o listă (colecţie) de obiecte

de tip autor (instanţe ale clasei autor).

Un concept important pentru modelul obiect este moştenirea. O

clasă moşteneşte de la o super-clasă comportamentul şi structura şi,

poate avea structură şi comportament proprii.

Pentru exemplificare, în figura 1.32, se prezintă super-clasa Publicaţie

şi clasele Carte şi respectiv, Articol. Clasa Carte poate conţine ca

atribute specifice ISBN, Imagine copertă, An Apariţie iar clasa Articol

poate fi descrisă prin atributul propriu ISSN, DenumireRevistă,

NumarRevistă, An Apariţie, Document.

25

Page 26: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

O bază de date orientată pe obiecte organizează datele sub forma

instanţelor de clase ierarhizate care posedă propriile lor metode de

exploatare.

Un alt concept important al modelului obiect este polimorfismul, care

presupune ca obiecte din clase diferite să răspundă diferit la aceleaşi

metode. Astfel, obiectele din clasa Publicaţie şi cele din clasa Autor

răspund diferit la apelarea metodei Creează.

Figura 1.32 Derivarea claselor Carte şi Articol din superclasa Publicatie

1.2.4. Modelul obiect-relaţional

Modelul relaţional-obiect [Cozgarea02.b] reprezintă un hibrid al

modelului relaţional cu modelul obiect, ce permite existenţa

atributelor multivaloare, a relaţiilor şi tipurilor de moştenire,

identitatea obiectelor, tipurile abstracte de date, etc. Acest model este

o extensie a modelului relaţional ce permite stocarea ca valoare a

unui câmp, un obiect ce încapsulează proprietăţi şi metode, precum şi

a obiectelor complexe (imagini, fişiere, grafice, etc.).

26

Page 27: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Modelul relaţional-obiect (figura 1.33) îmbină facilităţile modelului

orientat obiect (structuri de date complexe, moştenire) cu cele ale

modelului relaţional (tabele bidimensionale, acces optimizat şi

concurent, standardizare etc.).

(OID)(metode)

(TAD)

OBIECT

PolimorfismTip abstract

de date

Identitate

Figura 1.33 Modelul relaţional-obiect (adaptare din Gardarin,(2001)

Pentru gestionarea studenţilor şi a facultăţilor unde studiază, în

cadrul unei baze de date relaţional-obiectuală, se va realiza următorul

model (figura 1.34).

Denumire

Baze de date

Editura

EdituraASE

Document Autori

Denumire

Popescu E.

Universitate

Denumire

ASE

Adresa

Bucuresti

Vasilescu A.Denumire

ASE

Adresa

Bucuresti

Internet siMultimedia

EdituraElectra SRL

Denumire

Popescu E.

Universitate

Denumire

ASE

Adresa

BucurestiDenumire

ASE

Adresa

Bucuresti

Universitate

Publicatii

Denumire

Popescu E.

Universitate

Denumire

ASE

Adresa

Bucuresti

Autor

Vasilescu A.Denumire

ASE

Adresa

Bucuresti

Figura 1.34 Reprezentarea datelor în modelul obiect relaţional

Principala îmbunătăţire adusă modelului relaţional o constituie

tipurile abstracte de date (TAD).

27

Page 28: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Tipurile abstracte de date (TAD) reprezintă tipuri de date definite de

utilizator, diferite de tipurile implicite (numeric, şir de caractere etc.),

ce pot fi utilizate la definirea tabelelor. Deosebirea fundamentală

dintre un TAD şi o clasă constă în faptul că în timp ce clasa admite

instanţieri directe, un TAD serveşte numai ca model (template) la

definirea structurii unuia sau mai multor tabele (partajarea TAD-lui).

De exemplu, tipul abstract de date Publicatie (Denumire, NrPagini,

Editura, Ţara) poate servi drept structură pentru tabelele Carte şi

Articol (figura 1.35).

ISBN

1234-1567

AnAparitie

2009

Imaginecopertã

Publicatie

Denumire

Baze de date

Editura

Editura ASE

Tabel Carte

Tabel Publicatie

Document

ISSN

1234-1567

AnAparitie

2008

DenumireRevistã

Internet

Publicatie

Denumire

Internet siMultimedia

Editura

EdituraElectra SRL

Tabel Articol

Document

Denumire

Baze de date

Editura

Editura ASE

Document

Internet siMultimedia

EdituraElectra SRL

Figura 1.35 Reprezentarea moştenirii în modelul obiect relaţional

Tipurile abstracte de date (TAD) sunt elemente complexe, un câmp

din structura sa putând fi un tip elementar (numeric, şir de caractere),

un tip complex de date (imagini, fişiere,etc.), un alt TAD sau o listă

(colecţie) de tipuri de date elementare complexe sau TAD. Acestea pot

conţine pe lângă atribute (câmpuri) şi metode (operaţii) implementate

prin proceduri sau funcţii definite de utilizator.

În modelul obiect-relaţional, moştenirea constă în posibilitatea

derivării unui TAD generic în TAD-uri specializate. Prin moştenire, un

TAD derivat va prelua structura (datele) şi metodele TAD-lui de bază.

Totodată, un TAD derivat poate fi descris şi prin date şi metode

specifice.

Schema unei baze de date obiect relaţională conţine schemele TAD-

urilor, ale tabelelor, relaţiile dintre acestea precum şi restricţiile de

integritate

28

Page 29: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

1.3. Sisteme de gestiune a bazelor de date (SGBD)

1.3.1. Nivelurile de reprezentare a datelor

Norma ANSI/SPARC

Baza de date asigură o abordare globală (integratoare) a datelor din

întreprindere sau dintr-un anumit domeniu de activitate. Încă din

1975, ANSI1/SPARC2 propune o normă de reprezentare a datelor pe

trei niveluri ierarhice (figura 1.36) pentru reprezentarea datelor în

condiţiile folosirii SGBD- urilor.

Figura 1.36 Nivelurile de reprezentare a datelor

Nivelul extern se concretizează prin una sau mai multe scheme

externe de date. O schemă externă de date constituie viziunea asupra

bazei de date a unui utilizator sau unui grup de utilizatori, altfel spus

datele de care utilizatorul (sau grupul de utilizatori) are nevoie

(obţinute prin extragere din baza de date sau prin aplicarea unor

expresii asupra datelor extrase din baza de date). O schemă externă

exprimă <cererea> unui utilizator sau a unui grup de utilizatori.

Pentru o bază de date se pot descrie una sau mai multe scheme

externe.

1 American National Standards Institute

2 Standards Planning And Requirements Committee

29

Page 30: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Nivelul conceptual descrie structura conceptuală a bazei de date. În

cazul utilizării SGBD- urilor relaţionale, nivelul conceptual se

concretizează prin schema conceptuală care este exprimată utilizând

conceptele de tabel (relaţie), atribute şi restricţii de integritate. La

acest nivel se descriu tabelele, fără referiri la detalii tehnice cu privire

la memorarea datelor pe suport tehnic. O schemă conceptuală trebuie

să satisfacă toate cerinţele informaţionale exprimate prin schemele

externe. Pentru o bază de date se concepe o singură schemă

conceptuală. Procesul de concepere a schemei conceptuale prin

normalizare este descris în cadrul capitolului 2 .

Nivelul intern face referire la modul de stocare fizică a datelor pe

suporturi tehnice şi se concretizează printr-o schemă internă. Schema

internă se obţine prin descrierea bazelor de date folosind un limbaj de

descriere date (LDD) ce constituie un subset al limbajului pentru baze

de date (în cazul bazelor de date relaţionale limbajul SQL, acronim de

la Structured Query Langage). Folosind LDD se descriu tabelele bazei

de date prin precizarea atributelor din tabel, a tipurilor de date şi a

restricţiilor de integritate.

30

Page 31: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Figura 1.37 Exemplu de reprezentare pentru nivelurile de descriere a datelor

Conversia de la schema conceptuală la schema internă este realizată

în mod automat de către SGBD. Pentru ca acest proces să aibă loc

este necesar ca la descrierea schemei conceptuale (folosind un limbaj

de descriere a datelor acceptat de SGBD) să se facă precizările

referitoare la: tipul datelor, formatul de memorare (eventual),

câmpurile pe care se face indexarea, restricţiile de integritate, etc.

Tehnica indexării permite un acces rapid la înregistrările din tabele.

Sistemul asociază pentru câmpul pe care se face indexarea un tabel cu

indecşi care are două atribute:

Valoare de identificare a înregistrării;

Adresa fizică relativă la care se găseşte înregistrarea.

Accesarea înregistrărilor indexate se poate realiza:

Secvenţial, ce presupune parcurgerea în secvenţă a colecţiei de

date, începând cu prima înregistrare, până la înregistrarea căutată

31

Page 32: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

(dacă există) sau până la ultima înregistrare (dacă înregistrarea

căutată nu există);

Indexat, ce presupune parcurgerea mai întâi a tabelului cu indecşi

şi apoi localizarea înregistrării în baza adresei fizice precizată în

tabelul cu indecşi.

Stocarea datelor pe suporturi tehnice se realizează utilizând tehnica

fişierelor de date. Un fişier de date este constituit dintr-o succesiune

de înregistrări. Schimburile de date între memoria externă şi memoria

internă (operaţiile de intrare/ieşire) se fac prin transferul de blocuri

(în fiecare bloc putând fi memorate una sau mai multe înregistrări de

date).

Sistemul de gestiune a fişierelor (SGF) asigură gestiunea datelor la

nivel intern.

Independenţa datelor

Descrierea datelor pe trei niveluri ierarhice permite garantarea :

Independenţei logice, ce presupune posibilitatea de a modifica

la nivel conceptual, fără a pune în cauză schemele externe sau

programele de aplicaţie.

Independenţei fizice, ce presupune posibilitatea de a modifica

schema internă (adăugarea sau suprimarea unor metode de

acces, etc.) fără a modifica schema conceptuală.

1.3.2. Arhitectura generală, obiectivele şi funcţionalităţile unui SGBD

Arhitectură generală

Un SGBD face apel la trei mari componente (figura 1.37):

SGBD extern, reprezintă interfaţa cu utilizatorul şi cu

programele de aplicaţie;

SGBD intern, gestionează ordonanţarea datelor;

SGF, permite stocarea datelor pe suport tehnic şi realizarea

operaţiilor de intrare-ieşire la nivel înregistrare de date.

32

Page 33: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Figura 1.37. Arhitectura generală a unui SGBD

Obiectivele SGBD- urilor

Componentele din arhitectura generală a unui SGBD trebuie să

permită realizarea (în parte sau în totalitate) a următoarelor obiective

(figura 1.38):

Figura 1.38 Obiectivele unui SGBD

Adaptare după: Gardarin (2001)

Independenţa logică şi fizică a fost prezentată în paragraful 1.3.1.

33

Page 34: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Vom particulariza celelalte obiective pe exemplul SGBD-urilor

relaţionale:

Manipularea uşoară a datelor este asigurată prin folosirea unui

limbaj declarativ SQL (Structured Query Langage);

Gestiunea relaţiilor virtuale (SGBD-ul stochează definiţia relaţiei

virtuale3 şi nu rezultatul);

Executarea şi optimizarea cererilor, automatizarea procesului

de traducere şi eventual optimizarea cererilor formulate în

limbaj declarativ;

Gestiunea coerenţei, conform căreia datele sunt supuse la un

anumit număr de restricţii de integritate ce definesc coerenţa

bazei de date. Ele trebuie să poată fi exprimate şi verificate

automat la fiecare operaţie de actualizare a bazei de date.

Partajarea datelor pentru a permite mai multor utilizatori să

acceseze baza de date în acelaşi timp (dificultăţi apar îndeosebi

în cazul operaţiilor de actualizare a bazei de date şi de asigurare

a unui rezultat de interogare coerent, pentru un utilizator ce

consultă un tabel în timp ce altul îl modifică). SGBD- ul trebuie

să gestioneze accesul concurent la baza de date;

Confidenţialitatea, protejarea bazei de date contra unui acces

neautorizat;

Gestiunea "penelor" , când o "pană" se produce trebuie să se

asigure recuperarea bazei de date în starea în care era înainte

de producerea ei;

Standarde, SGBD relaţionale folosesc pentru gestiunea bazelor

de date standardul SQL.

Un SGBDR poate să asigure instrumentele pentru atingerea, parţială

sau integrală, a acestui set de obiective.

Funcţionalităţi

Prin componentele sale un SGBD trebuie să asigure trei mari

funcţionalităţi (figura 1.39):

Descriere, pentru descrierea datelor modelului conceptual al

bazei de date;

3 Concept folosit pentru a defini o relaţie rezultat obţinut prin aplicarea unor operatori relaţionali la tabele reale ale bazei

de date. O relaţie virtuală este o cerere stocată.

34

Page 35: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Utilizare, pentru a realiza operaţii de actualizare a bazelor de

date (adăugare de înregistrări, modificare date din înregistrări,

ştergere de înregistrări) şi respectiv, de interogare a bazelor de

date;

Control, pentru a asigura integritatea datelor, partajarea şi

accesul concurent, confidenţialitatea bazelor de date, salvarea şi

restaurarea, şi securitatea în funcţionare.

Figura 1.39. Funcţionalităţile SGBDR

Un SGBD memorează descrierea datelor în ceea ce numim dicţionarul

datelor (DD). Un DD este constituit dintr-un ansamblu de tabele ce

conţin informaţii relative la structura bazei de date :

Numele şi caracteristicile obiectelor conţinute de baza de date

(tabele, tabele virtuale, indecşi, tranzacţii);

Utilizatorii bazei de date (rol şi parolă);

Restricţiile de integritate;

Resursele fizice alocate bazei de date;

1.3.3. Caracteristicile principalelor SGBD- uri relaţionale

SGBD- urile care folosesc modelul relaţional sunt numite SGBD- uri

relaţionale (SGBDR). În tabelul 1.1. prezentăm o parte din cele mai

utilizate SGBDR.

Tabelul 1.1

35

Page 36: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

SGBD Caracteristici mai importante

Oracle - proprietar: Oracle Corporation;

- permite gestiune bazelor de date voluminoase pe reţele

vaste;

- are facilităţi pentru utilizarea modelului obiect-

relaţional;

- începând cu versiune 9i integrează un motor OLAP (Online Analytical Processing) şi permite citirea şi

scrierea de documente XML (eXtensible Markup

Language);

- dispune de instrumente utilitare pentru copii de

siguranţă, restaurare, recuperare de date, dar şi pentru

importul şi exportul datelor sau agregări şi consolidări la

nivelul acestora;

- implementează limbajul SQL ((Structured Query

Language), dar dispune şi de un limbaj propriu pentru

crearea de proceduri, funcţii şi declanşatori (limbajul

PL/SQL). Cele două limbaje pot fi accesate prin

instrumentul SQL*PLUS.

My SQL - proprietar: Sun Microsystems;

- sistem cu sursă-deschisă4;

- implementează limbajul SQL într-o variantă restrânsă;

- poate rula pe majoritatea sistemelor de operare;

- performanţe scăzute în stocarea bazelor de date de

mari dimensiuni;

- imposibilitatea utilizării mai multor procesoare în

rezolvarea unei singure interogări;

- permite manipularea parţială a datelor stocate în

format Unicode;

4 open – source

36

Page 37: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

- versiunile mai noi permit lucrul cu proceduri stocate şi

declanşatori.

Microsoft

SQL

Server

- proprietar: Microsoft;

- suportă baze de date mari (de până la 524.258 TB ) pe

reţele vaste;

- implementează SQL şi permite proceduri stocate şi

declanşatori (trigger);

- dispune de o componentă pentru optimizarea

interogărilor care încearcă să determine cea mai

eficientă cale de executare a acesteia;

- permite separarea sarcinilor utilizatorilor, în funcţie de

rolul acestora (administratori, operatori, proprietari,

etc.);

- prezintă tehnologii avansate de analiză a datelor, data

mining, servicii de integrare, servicii de raportare,

servicii de notificare, servicii de replicare;

- securitate, performanţă şi scalabilitate avansată;

- nu funcţionează decât sub sistemul de operare

Windows.

DB2 - proprietar: IBM;

- utilizează limbajul SQL;

- permite lucrul cu baze de date voluminoase (maxim 512

TB) pe reţele vaste;

- sisteme de operare acceptate: Windows, Linux, Unix,

z/OS;

- permite implementarea tuturor operatorilor algebrei

relaţionale, chiar şi pe versiunile mai vechi;

- acceptă utilizarea de declanşatori, cursoare, funcţii şi

proceduri scrise în limbajul SQL;

37

Page 38: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

- permite integrarea cu diverse medii de programare;

Microsoft

Access

- este utilizat pentru gestiunea de baze de date în volume

mici şi medii (o bază de date nu poate depăşi doi

Gigaoctets);

- face parte din pachetul MS Office;

- utilizează fişiere cu extensia .mdb ( .accdb începând cu

versiunea 2007);

- acceptă limbajul SQL (cu anumite restricţii);

- dispune de o interfaţă grafică pentru definirea cererilor

de interogare a bazelor de date (QBE - Query By

Example);

- integrează limbajul procedural VBA (Visual Basic for

Application);

- suportă configuraţii de 256 posturi (în practică, pentru

o utilizare confortabilă, admite 20 utilizatori simultani);

- datele sunt uşor exploatabile în Word şi Excel.

Bibliografie

[Grossniklaus

07]

M. Grossniklaus (2007), Object-Oriented Databases

Introduction

[Cozgarea02a

]

A. Cozgarea (2002.a.), Modelul Obiect, în lucrarea

Baze de date: fundamente teoretice şi practice,

Editura Infomega, 2002, pp.42-45

[Cozgarea02b

]

A. Cozgarea, (2002.b.), Modelul Obiect-relaţional, în

lucrarea, Baze de date: fundamente teoretice şi

practice, Editura Infomega, 2002, pp. 46-48

[Gardarin01] Bases de donnees : objets & relationnel, Eyrolles,

38

Page 39: BD si SGBD

Baze de date şi sisteme de gestiune a bazelor de date

Paris, 2001

[Date04] Date J., Introduction aux bases de données, Vuibert,

2004

[Gardarin00] Gardarin G., Internet, Intranet et bases de donnees, Eyrolles, 2000;

[GrupBDSEIG

02]

Grup BDSEIG, Baze de date: fundamente teoretice şi practice, Editura

Infomega, 2002

[Lungu05] Lungu I., Baze de date Oracle. Limbajul SQL, Editura ASE, 2005

[Nastase&al.

00]

Năstase P. şi al., Tehnologia bazelor de date, Editura Economică, 2000

39