BD si SGBD
-
Upload
madalina-firica -
Category
Documents
-
view
61 -
download
2
description
Transcript of 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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