SISTEMUL DE GESTIUNE AL BAZELOR DE DATE - … si algebra... · 1.2. Sistemul de Gestiune al Bazei...

12
CAPITOLUL 1. CONCEPTE PRIVIND BAZELE DE DATE ŞI SISTEMUL DE GESTIUNE AL BAZELOR DE DATE 1.1. Conceptul de bază de date Utilizarea calculatoarelor electronice în activitatea practică din organizaţii impune elaborarea unor sisteme informatice în conformitate cu cerinţele solicitate de utilizatorii lor. Aplicaţiile informatice din domeniul economic au de regulă un volum relativ mare de date, care se organizează cel mai bine în baze de date. De altfel, există o părere unanimă a specialiştilor că bazele de date reprezintă unul dintre cele mai moderne şi mai eficiente mijloace de stocare şi gestiune modernă a datelor referitoare la un anumit domeniu particular (de exemplu: evidenţa resurselor umane, evidenţa livrărilor de mărfuri, evidenţa mijloacelor fixe etc.). Baza de date poate fi definită ca o colecţie de date, referitoare la un domeniu de activitate particular, în care proprietăţile datelor precum şi relaţiile semantice dintre date sunt specificate utilizând concepte propuse de un anumit model. Un model se poate defini ca o reprezentare abstractă a informaţiei şi, eventual, a operatorilor pentru manipularea informaţiei. Conceptul de model de date este esenţial, opţiunea pentru o anume bază de date fiind făcută pornind de la modelul care va sta la baza ei. În literatura de specialitate există mai multe definiţii date bazei de date, fiecare definiţie evidenţiind anumite elemente, astfel: C. Delobel a definit baza de date drept un „ansamblu structurat de date înregistrate pe suporturi accesibile calculatorului pentru a satisface simultan mai mulţi utilizatori de o manieră selectivă şi într-un timp oportun”. G. Gardarin precizează: „pentru ca un ansamblu de date independente să fie o bază de date, trebuie să fie interogabile prin conţinut, după orice criteriu precum şi să fie posibilă regăsirea structurii datelor”. În timp au fost definite mai multe modele de date care au reprezentat punctul de pornire în organizarea bazelor de date. Amintim următoarele modele: - modelul ierarhic; - modelul reţea; - modelul relaţional; - modelul relaţional-obiectual; - modelul orientat obiect. Aceste modele au o serie de particularităţi, aşa cum rezultă din figura 1.1.

Transcript of SISTEMUL DE GESTIUNE AL BAZELOR DE DATE - … si algebra... · 1.2. Sistemul de Gestiune al Bazei...

CAPITOLUL 1. CONCEPTE PRIVIND BAZELE DE DATE ŞI

SISTEMUL DE GESTIUNE AL BAZELOR DE DATE

1.1. Conceptul de bază de date

Utilizarea calculatoarelor electronice în activitatea practică din organizaţii impune elaborarea

unor sisteme informatice în conformitate cu cerinţele solicitate de utilizatorii lor. Aplicaţiile

informatice din domeniul economic au de regulă un volum relativ mare de date, care se

organizează cel mai bine în baze de date. De altfel, există o părere unanimă a specialiştilor că

bazele de date reprezintă unul dintre cele mai moderne şi mai eficiente mijloace de stocare şi

gestiune modernă a datelor referitoare la un anumit domeniu particular (de exemplu: evidenţa

resurselor umane, evidenţa livrărilor de mărfuri, evidenţa mijloacelor fixe etc.).

Baza de date poate fi definită ca o colecţie de date, referitoare la un domeniu de activitate

particular, în care proprietăţile datelor precum şi relaţiile semantice dintre date sunt specificate

utilizând concepte propuse de un anumit model. Un model se poate defini ca o reprezentare

abstractă a informaţiei şi, eventual, a operatorilor pentru manipularea informaţiei. Conceptul de

model de date este esenţial, opţiunea pentru o anume bază de date fiind făcută pornind de la

modelul care va sta la baza ei.

În literatura de specialitate există mai multe definiţii date bazei de date, fiecare definiţie

evidenţiind anumite elemente, astfel:

C. Delobel a definit baza de date drept un „ansamblu structurat de date înregistrate pe

suporturi accesibile calculatorului pentru a satisface simultan mai mulţi utilizatori de o

manieră selectivă şi într-un timp oportun”.

G. Gardarin precizează: „pentru ca un ansamblu de date independente să fie o bază de

date, trebuie să fie interogabile prin conţinut, după orice criteriu precum şi să fie posibilă

regăsirea structurii datelor”.

În timp au fost definite mai multe modele de date care au reprezentat punctul de pornire în

organizarea bazelor de date. Amintim următoarele modele:

- modelul ierarhic;

- modelul reţea;

- modelul relaţional;

- modelul relaţional-obiectual;

- modelul orientat obiect.

Aceste modele au o serie de particularităţi, aşa cum rezultă din figura 1.1.

Model ierarhic

Se particularizează prin reprezentarea

datelor sub formă arborescentă

descendentă. Una dintre caracteristici

este imposibilitatea de a separa nivelul

logic de cel fizic.

Model reţea

Este o extensie a modelului ierarhic.

Prezintă în plus conexiunea dintre

elemente (legături transversale).

Model relaţional

Reprezentarea datelor se realizează prin

tabele având două coordonate: linii şi

coloane. Fiecare tabel descrie o entitate

din lumea reală. Modelul permite

reprezentarea asocierilor dintre aceste

entităţi.

Model orientat obiect

Reprezentarea datelor se face sub formă

de obiecte. Un obiect încorporează atât

date cât şi comportamente (prelucrări).

Figura 1.1 Particularităţile modelelor de date

Grupul de normalizare ANSI/X3/SPARC a stabilit trei niveluri de descriere a datelor în cazul

unei baze de date:

Nivelul extern – care descrie viziunea particulară (view) a unui utilizator sau grup de

utilizatori asupra bazei de date (este vorba de acea parte a bazei de date pentru care

utilizatorul are acces). În consecinţă, pot fi definite mai multe scheme externe fiecare

reprezentând un subansamblu de date accesibile unui utilizator;

Nivelul conceptual - corespunde unei structurări semantice a datelor descriind lumea

reală, fără a lua în considerare restricţii specifice implementării bazei de date pe un

anumit calculator. Cu alte cuvinte, corespunde unei viziuni a datelor independente de

aplicaţiile individuale şi de modul în care datele sunt stocate;

Nivelul fizic (intern) care corespunde unei structuri de stocare a datelor pe suporturi

(organizare şi mod de acces fizic). Acest nivel este responsabil de organizarea fizică a

fişierelor la nivelul memoriei externe precum şi de utilizarea unei metode de acces la

date cât mai eficiente.

Pentru o bază de date se pot defini mai multe niveluri (scheme) externe, un nivel conceptual şi un

nivel fizic (intern).

Fiecare nivel de abstractizare este protejat la modificările în structura din nivelul inferior.

Nivelurile de abstractizare menţionate asigură independenţa datelor, autorizează manipularea

datelor, garantează integritatea datelor şi optimizează accesul la date.

Independenţa datelor poate fi:

- independenţă logică - care protejează modificările în structura logică de date;

- independenţă fizică - care protejează modificările în structura fizică de date.

Asigurarea independenţei datelor este unul dintre beneficiile importante aduse de sistemele de

gestiune a bazelor de date.

Utilizatorii unei baze de date pot fi:

- Utilizatorii finali – toate persoanele care au acces doar la interfaţa oferită de SGBD şi/sau

execută aplicaţii;

- Programatorii de aplicaţii - specialiştii care proiectează şi realizează aplicaţiile ce

interacţionează cu SGBD-ul;

- Administratorul bazei de date - este un utilizator privilegiat care:

Cunoaşte schemele logice/fizice;

Răspunde de problemele de securitate ale bazei de date, stabileşte şi acordă

autorizările privind accesul şi drepturile utilizatorilor în baza de date;

Asigură disponibilitatea datelor şi, la nevoie, recuperarea datelor;

Monitorizează parametrii bazei de date şi adaptează baza de date în funcţie de

cerinţele nou apărute.

1.2. Sistemul de Gestiune al Bazei de Date

Gestiunea şi accesul la baza de date sunt asigurate de un ansamblu de programe care formează

sistemul de gestiune al bazei de date (SGBD).

Sistemul de gestiune al bazei de date se defineşte ca un instrument de asamblare, codificare,

aranjare, protecţie şi regăsire a datelor în bazele de date. In acelaşi timp, SGBD mai poate fi

definit ca un ansamblu de programe speciale cu ajutorul cărora se creează, actualizează,

interoghează şi protejează o bază de date.

Principalele avantaje oferite de SGBD pot fi sintetizate astfel:

- independenţa datelor: aplicaţiile nu sunt afectate de detalii, şi implicit modificările,

de reprezentare şi stocare a datelor;

- coerenţa datelor prin implementarea unor reguli explicite sau implicite (restricţii de

integritate) pe care datele trebuie să le respecte de-a lungul evoluţiei lor;

- asigurarea gestiunii tranzacţiilor: o tranzacţie este o secvenţă atomică de acţiuni

asupra bazei de date (citire/scriere). O tranzacţie executată asigură aducerea bazei

de date într-o stare consistentă. După orice modificare în baza de date sunt

verificate toate regulile de coerenţă asupra tuturor datelor;

- asigurarea confidenţialităţii datelor: fiecare utilizator cu drept de acces la baza de

date are definite anumite drepturi;

- limitarea redundanţei datelor (dublarea memorării unor date este controlată);

- acces eficient la date: SGBD-ul utilizează metode sofisticate de stocare şi acces la

date asigurând optimizarea accesului la date;

- integritatea şi securitatea datelor asigurate prin implementarea restricţiilor de

integritate şi a controalelor de acces la date;

- acces concurent la date;

- stochează un volum mare de date;

- oferă facilităţi de gestiune a meta-datelor prin intermediul dicţionarului de date1.

Meta-datele privesc datele referitoare la: schema bazei de date (în cazul SGBD-

urilor relaţionale spre exemplu privesc relaţii, atribute, restricţii, view-uri), view-

uri, utilizatori (identificarea şi drepturile utilizatorilor) şi sistemul în ansamblu

(informaţii statistice);

- timp redus pentru realizarea aplicaţiilor;

- administrarea uniformă a datelor asigurată de către administratorul bazei de date;

- recuperarea şi restaurarea datelor: SGBD-ul oferă facilităţi de restaurare a bazei de

date în cazul afectării parţiale sau totale a conţinutului acesteia.

SGBD-ul trebuie să asigure două funcţii de bază şi anume: descrierea bazei de date şi

manipularea bazei de date. Descrierea bazei de date se realizează prin intermediul limbajului de

1 Meta-datele pot fi definite ca date care descriu date. Tot ceea ce descrie baza de date, prin opoziţie cu conţinutul

bazei de date, sunt meta-date. Spre exemplu: nume de coloane, nume de utilizatori etc.

descriere a datelor (LDD). Manipularea bazei de date se realizează prin intermediul limbajului

de manipulare a datelor (LMD) care dispune de două componente: limbajul de interogare şi

limbajul de actualizare a bazei de date.

1.3. Modelul relaţional

Modelul relaţional a fost elaborat de E. F. Codd în 1970. Este un model simplu şi intuitiv bazat

pe o viziune tabelară asupra datelor. Întregul model relaţional are la bază teoria matematică a

relaţiilor şi algebra relaţională.

În cele ce urmează se prezentă în sinteză principalele concepte specifice modelului relaţional.

O relaţie (tabel) este un subansamblu al produsului cartezian de n domenii (un domeniu este un

ansamblu de valori) conform următoarei formule:

R (D1 x D2 x D3 x … x Dn)

Exemplu:

Entităţii din lumea reală numită PRODUSE îi va corespunde relaţia (tabelul) PRODUSE

definită prin produsul cartezian al domeniilor, CODPRODUS, DENUMIREPRODUS, UM,

PRET,

adică:

CODPRODUS x DENUMIREPRODUS x UM x PRET

Relaţia este reprezentată sub forma unui tablou dezvoltat pe linii şi coloane (de unde şi

denumirea de tabel). Relaţia este formată dintr-un ansamblu de n-tupluri. Fiecare tuplu

reprezintă un rând în cadrul tabelului. Fiecare coloană corespunde unui atribut, descriind o

caracteristică a entităţii din lumea reală, aşa cum rezultă din figura 1.2.

PRODUSE

COD PRODUS DENUMIRE

PRODUS

UM PRET

100 P1 Buc 4

300 P2 Kg 6,5

200 P3 Mc 7

150 P4 Buc 1,5

700 P5 Kg 2

domeniu tuplu

Figura 1.2. Structura relaţiei PRODUSE

Atribute

Conform modelului relaţional, în cadrul unei relaţii se utilizează următoarele concepte:

Atributul (câmpul) – o variabilă care ia valori într-un anumit domeniu. Aceste valori corespund

unor caracteristici ale lumii reale.

Tuplul – totalitatea valorilor atributelor de pe o linie dintr-un tabel. Tuplul se mai numeşte şi

înregistrare.

Cardinalitatea relaţiei este egală cu numărul de linii sau tupluri conţinute de un tabel.

Cheia primară - câmpul (grupul de câmpuri) cu valori unice şi nenule ce serveşte la

identificarea înregistrărilor unui tabel. Orice relaţie (tabel) are o cheie primară. În exemplul

prezentat în figura 1.2., cheia primară este atributul COD PRODUS.

Cheia candidat - un câmp (altul decât cheia primară) ce îndeplineşte condiţiile necesare cheii

primare. Dintre cheile candidate se va alege, de fapt, cheia primară.

Cheia externă - câmpul (grup de câmpuri) ce serveşte la realizarea legăturii cu alt tabel în care

acesta este cheie primară. Valorile asociate atributului cu rol de cheie externă pot fi duplicate sau

nule.

Exemplu: Se consideră o bază de date formată din tabelele Furnizori şi Facturi, a căror structură

este reprezentată în modelul de mai jos:

Furnizori (CodFz, NumeFz, Localitate, Telefon, ContBancar)

cheia primară cheia candidat

Facturi (NrFact, DataFact, DataScad, CodFz)

cheia primară cheie externă

Figura 1.3. Reprezentarea modelului relaţional detaliat

La baza definirii legăturilor dintre tabele stă conceptul de restricţie de integritate referenţială

(Referential Integrity), care presupune că valorile unei chei externe trebuie să se regăseacă

printre valorile cheii primare corespondente sau să fie nule. Aşa cum se poate observa în

exemplul anterior (figura 1.3) între relaţiile Furnizori şi Facturi s-a definit o legătură pe baza

câmpului comun CodFz cu implementarea conceptului de restricţie de integritate referenţială

(valorile atributului cu rol de cheie externă CodFz din tabelul Facturi se regăsesc în domeniul

cheii primare corespondente CodFz din tabelul Furnizori).

Elemente de algebră relaţională

Algebra relaţională oferă un ansamblu de operatori permiţând operarea asupra conceptelor

modelului relaţional. Rezultatul obţinut prin utilizarea operatorilor algebrei relaţionale este un

tabel virtual. Având în vedere fundamentele matematice ale modelului relaţional, algebra

relaţională utilizează operatori clasici de manipulare a ansamblurilor de date (reuniune,

intersecţie, diferenţă, produs cartezian) şi introduce operatori proprii bazelor de date (selecţie,

proiecţie, compunere, diviziune).

Operatorii algebrei relaţionale se definesc şi utilizează după cum urmează:

a) Operatori de asamblare

Reuniunea

Operatorul de reuniune crează un nou tabel T plecând de la două tabele R (conţinând m tupluri)

şi S (conţinând n tupluri) prezentând aceeaşi structură. Rezultatul, tabelul T prezintă aceeaşi

structură cu a tabelelor sursă dar conţine m+n tupluri:

T= R U S

Tabelul Studenţi (R)

Matricola Nume Media

110 Dan Ion 8,75

111 Denilescu Ana 9,25

Tabelul Transferări (S)

Matricola Nume Media

230 Pop Geta 9,15

190 Marin Dana 8,25

Tabelul FinalStudenţi (T= R U S)

Matricola Nume Media

110 Dan Ion 8,75

111 Denilescu Ana 9,25

230 Pop Geta 9,15

190 Marin Dana 8,25

Intersecţia

Intersecţia a două tabele R şi S (R ∩ S) prezentând aceeaşi structură, unde R prezintă m tupluri

iar S prezintă n tupluri generează relaţia T (cu aceeaşi structură) conţinând tuplurile identice din

R şi S.

T= (R ∩ S)

Tabelul Bursieri (R)

Matricola Nume Media

110 Dan Ion 8,75

111 Denilescu Ana 9,25

112 Toma Ene 8,80

Tabelul Căminişti (S)

Matricola Nume Media

110 Dan Ion 8,75

111 Denilescu Ana 9,25

130 Ionescu Angela 8,15

127 Manea Ion 8,30

Tabelul BursieriCăminişti (T= R ∩ S)

Matricola Nume Media

110 Dan Ion 8,75

111 Denilescu Ana 9,25

Diferenţa

Diferenţa a două tabele (relaţii) R şi S prezentând aceeaşi structură conduce la obţinerea

tabelului (relaţiei) T conţinând tuplurile lui R care nu se regăsesc în S.

T= (R – S)

Tabelul BursieriNecăminişti (T= R - S)

Matricola Nume Media

112 Toma Ene 8,80

Produs Cartezian

Produsul cartezian al tabelelor R şi S conduce la obţinerea unui tabel T stocând mulţimea

perechilor obţinute din concatenarea înregistrărilor lui R şi S:

T= (R x S)

Tabelul Căminişti (R)

Matricola Nume Media

110 Dan Ion 8,75

111 Denilescu Ana 9,25

Tabelul Camere (S)

Camin Camera

C1 1

C1 2

C2 1

Tabelul Repartiţii T= (R x S)

Matricola Nume Medie Cămin Camera

110 Dan Ion 8,75 C1 1

110 Dan Ion 8,75 C1 2

110 Dan Ion 8,75 C2 1

111 Denilescu Ana 9,25 C1 1

111 Denilescu Ana 9,25 C1 2

111 Denilescu Ana 9,25 C2 1

Operatori unari

Proiecţia

Operatorul de proiecţie aplicat asupra tabelului R conţinând m atribute conduce la obţinerea

rtabelului T cu acelaşi număr de tupluri ca şi R, dar cu un număr redus de atribute.

T = ∏ (R; A,B) unde A şi B sunt atribute aparţinând lui R.

Dacă se doreşte obţinerea listei conţinând numele studenţilor transferaţi se aplică operatorul de

proiecţie astfel:

T= ∏ (Transferări, Nume)

Tabelul Transferări (R)

Matricola Nume Media

230 Pop Geta 9,15

190 Marin Dana 8,25

T= ∏ (Transferări, Nume)

Nume

Pop Geta

Marin Dana

Selecţia

Aplicarea operatorului de selecţie asupra tabelului R generează tabelul T prezentând aceeaşi

structură cu R dar conţinând doar tuplurile ce corespund unei condiţii precizate:

T= Sel (R; <condiţie>)

Dacă se doresc informaţii despre studenţii căminişti având medii peste 8,50 operatorul de selecţie

va fi:

T = Sel (Căminişti; Media>8,50)

Tabelul Căminişti (R)

Matricola Nume Media

110 Dan Ion 8,75

111 Denilescu Ana 9,25

130 Ionescu Angela 8,15

127 Manea Ion 8,30

T = Sel (Căminişti; Media>8,50)

Matricola Nume Media

110 Dan Ion 8,75

111 Denilescu Ana 9,25

Operatori de extensie

Compunerea (Join)

Compunerea a două tabele R şi S, după valorile egale ale unui atribut comun A, conduce la

obţinerea unui tabel T ale cărei tupluri s-au format prin produsul cartezian al tuplurilor din R şi S

prezentând valori egale pe atributul de compunere A.

Tabelul Căminişti

Matricola Nume Media

110 Dan Ion 8,75

111 Denilescu Ana 9,25

Tabelul CamereStudenţi

Camin Camera Matricola

C1 1 110

C2 10 111

T= Join (Căminişti, CamereStudenţi; Căminişti. Matricola=CamereStudenţi.Matricola)

Matricola Nume Media Cămin Camera

110 Dan Ion 8,75 C1 1

111 Denilescu Ana 9,25 C2 10

Diviziunea

Fiind date tabelele R (cu schema r) şi S (cu schema s), aplicarea operatorului de diviziune va

genera tabelul (R S) de grad r-s ale cărui tupluri concatenate cu tuplurile lui S vor genera

tupluri aparţinând lui R.

Exemplu:

Fie tabelul R din exemplul anterior:

Matricola Nume Media Cămin Camera

110 Dan Ion 8,75 C1 1

111 Denilescu Ana 9,25 C2 10

Prin aplicarea operatorului diviziune prin tabelul Căminişti se va genera tabelul Camere:

Tabelul Căminişti (S)

Matricola Nume Media

110 Dan Ion 8,75

111 Denilescu Ana 9,25

Tabelul Camere (R S)

Cămin Camera

C1 1

C2 10