Documente Academic
Documente Profesional
Documente Cultură
de Gestiune
Curs 1
BAZE DE DATE
Fig.1
SIG-Curs 1 Baze de date 9
1. Nivelul fizic (intern) este nivelul elementar şi
descrie modalitatea efectivă în care datele sunt
scrise (memorate) pe suportul de stocare (hard-
disc, CD, DVD, ori bandă magnetică). Structura
datelor este descrisă detaliat, fiind accesibilă doar
specialiştilor. La acest nivel structura BD se
concretizează în schema internă.
2. Nivelul conceptual (global) priveşte datele prin
prisma semanticii lor, vizând conţinutul lor efectiv şi
relaţiile care le leagă de alte date. Obiectivul
acestui nivel îl constituie modelarea realităţii:
utilizatorii îşi exprimă cerinţele administratorului
bazei de date, care este responsabil cu definirea
schemei conceptuale a bazei de date.
SIG-Curs 1 Baze de date 10
3. Nivelul logic (extern) descrie modul în care
utilizatorii folosesc baza de date pentru propriile
aplicaţii. Se au în vedere cerinţele unui utilizator/
grup de utilizatori, deoarece fiecare lucrează numai
cu o porţiune a BD, în funcţie de nevoile şi atribuţiile
sale. La acest nivel, structura BD se prezintă sub
forma unor scheme externe, în funcţie de nevoile
fiecărui utilizator.
Nivelele de independenţă a datelor într-o bază de
date:
1. Independenţa fizică asigură posibilitatea modificării
schemei fizice a datelor, fără ca aceasta să oblige la
modificarea schemei conceptuale, schemei logice şi
a programelor de aplicaţie.
SIG-Curs 1 Baze de date 11
2. Independenţa logică asigură posibilitatea modificării
schemei conceptuale a datelor fără ca aceasta să
oblige la modificarea schemei logice şi a programelor
de aplicaţie.
3. Independenţa faţă de strategiile de acces permite
programului să precizeze data pe care doreşte să o
acceseze, dar nu modul cum accesează această
dată. SGBD va stabili drumul optim de acces la date.
Cel mai răspândit tip de sistem informatic este cel
orientat spre tranzacţii.
Tranzacţia este un set de instrucţiuni elementare
de interogare şi/sau modificare a BD, ce se execută sau
se anulează împreună.
O tranzacţie se consideră efectuată când toate
operaţiile ei au fost executate cu succes.
SIG-Curs 1 Baze de date 12
În cazul accesului simultan al mai multor
utilizatori la BD, BD este protejată de interferenţa
tranzacţiilor ce acţionează simultan asupra sa.
BD este protejată împotriva deteriorărilor
parţiale sau totale, întâmplătoare sau intenţionate. Se
realizează prin efectuarea şi păstrarea unor copii
(backup) ale imaginilor trecute ale BD şi prin înre-
gistrarea detaliilor schimbărilor efectuate asupra BD.
Frecvenţa efectuării copiilor pentru refacerea
sau restaurarea (recovery) BD depinde de frecvenţa
schimbărilor ei. Se poate copia mai frecvent decât
restul şi separat numai acea parte din BD care se
schimbă mai des.
BD se poate avaria între două copieri, când au
fost executate operaţii de modificare prin tranzacţii.
SIG-Curs 1 Baze de date 13
Pentru a reface efectul tranzacţiilor pierdute, se
ţine o evidenţă a acestora într-un fişier numit jurnal,
prin memorarea valorilor câmpurilor înainte şi după
modificare (numite imagini anterioare, respectiv,
imagini ulterioare).
BD se poate avaria şi pe parcursul execuţiei
unei tranzacţii, care rămâne neterminată, cu datele
în zonele tampon sau în fişiere temporare. Pentru
restaurare, informaţia despre derularea fiecărei
tranzacţii se memorează în acelaşi jurnal, dar nu în
imagini, ci în punctul de verificare.
Problema securităţii copiilor şi a jurnalelor se
poate parţial rezolva prin efectuarea unor copii în mai
multe exemplare, a căror deteriorare simultană are o
probabilitate mult mai mică.
SIG-Curs 1 Baze de date 14
2. Tipologia bazelor de date
STUDENT
Număr matricol
Nume şi prenume
Specializare
An
Grupă
Fig.5
Fig.10
SIG-Curs 1 Baze de date 63
Schema unei BDOR conţine schemele TAD-
urilor, ale tabelelor, relaţiile dintre acestea, precum şi
restricţiile de integritate. Din punct de vedere grafic,
schema BDOR poate fi reprezentată folosind
formalismul UML utilizat pentru BDOO.
Mulţi producători de baze de date au adoptat o
strategie de extindere graduală a modelului relaţional,
care a încorporat elemente de programare orientată
obiect, dar a păstrat tehnologiile relaţionale în definirea
şi manipularea datelor (Visual FoxPro).
Alţi producători au mers pe ideea de a păstra
modelul de date orientat pe obiect şi de a extinde cu
funcţii noi limbajul de interogare după sintaxa
limbajului SQL, păstrând astfel compatibilitatea cu
programele SQL existente (Sybase).
SIG-Curs 1 Baze de date 64
4. Metode de accesare a datelor
Fig.11
SIG-Curs 1 Baze de date 66
Colecţiile de date înregistrate pe memorii
externe sunt accesate din diverse motive: citirea unor
înregistrări, regăsirea unor date, ordonarea înregistră-
rilor după anumite criterii etc.
Accesarea datelor organizate în colecţii de date
se poate realiza prin două metode:
¾ metoda secvenţială;
¾ metoda indexată.
Regăsirea unei înregistrări prin metoda
secvenţială presupune parcurgerea în secvenţă a
colecţiei de date, începând cu prima înregistrare, până
la înregistrarea căutată (dacă există) sau până la
ultima înregistrare (dacă înregistrarea căutată nu
există).
SIG-Curs 1 Baze de date 67
Avantaje:
9complexitate redusă;
9colecţia de date nu se încarcă cu date suplimentare
Dezavantajul major: viteza redusă cu care este
efectuată operaţia pe colecţii mari de date.
Metoda indexată permite regăsirea unei înre-
gistrări într-un timp mult mai redus decât metoda
precedentă.
Metoda presupune utilizarea unui tabel de
indecşi pentru fiecare câmp, ce va permite o astfel de
căutare. Tabelele de indecşi conţin două atribute:
- realizările ordonate (crescător/descrescător) ale
câmpului de indexare;
- adresele fizice relative ale fiecărei realizări.
SIG-Curs 1 Baze de date 68
Exemplu: Tabelul index asociat câmpului CodMaterial
va conţine următoarele date:
Fig.12
Pentru regăsirea unei realizări a câmpului
CodMaterial (câmpul indexat) se parcurg etapele:
1) Se localizează realizarea respectivă în tabelul de
index (această operaţie se poate realiza rapid cu un
algoritm de căutare în mulţimi ordonate).
SIG-Curs 1 Baze de date 69
2) Dacă valoarea există, atunci se memorează adresa
fizică relativă corespunzătoare şi se localizează
înregistrarea logică aflată la adresa memorată
anterior.
Această metodă poate fi folosită numai pentru
suporturi de date direct adresabile (hard-disk, floppy-
disk, CD etc).
Avantaj: operaţia de căutare a unei valori se
realizează foarte rapid în comparaţie cu metoda
secvenţială.
Dezavantaje:
- tabelele de indecşi supraîncarcă colecţia de date;
- orice actualizare a colecţiei de date presupune o
actualizare şi a tabelelor de indecşi.
SIG-Curs 1 Baze de date 70
5. Proiectarea bazelor de date
relaţionale
Fig.13
SIG-Curs 1 Baze de date 77
4. Stabilirea dependenţelor dintre atribute: dependen-
ţele sunt descrise fie printr-o matrice (conţine ca linii şi
coloane toate atributele din dicţionar în aceeaşi ordine)
fie printr-un graf al dependenţelor. Sunt vizate
îndeosebi dependenţele funcţionale. Dependenţele
funcţionale tranzitive sunt evidenţiate în mod distinct.
Exemplu:
Fig.14
SIG-Curs 1 Baze de date 78
Dependenţele funcţionale dintre atribute sunt
reprezentate prin valoarea 1, pe linie, iar cele
tranzitive au fost marcate cu 1T.
Dependenţele dintre atribute pot fi reprezentate
şi prin intermediul unui graf (cele funcţionale prin
săgeţi, cele tranzitive prin săgeţi punctate) (fig.15).
Fig.15
SIG-Curs 1 Baze de date 79
5. Pentru atributele rămase izolate se vor căuta
grupuri de câmpuri ce pot constitui determinanţi ai
acestora.
6. Toate atributele (grupuri de atribute) determinante
devine chei candidate. Cheile candidate ce vor
aparţine aceluiaşi tabel sunt caracterizate prin
dependenţe funcţionale reciproce (CodFurnizor<->
DenumireFunizor, CodFurnizor<->Adresa)
7. Se stabilesc cheile primare dintre atributele
candidate.
Exemplu: CodFurnizor, NumărFactură
8. Cu fiecare cheie primară şi atributele determinate
direct (netranzitiv) de aceasta se va forma un tabel.
SIG-Curs 1 Baze de date 80
Exemplu:
Furnizor (CodFurnizor, DenumireFurnizor,
AdresaFurnizor)
Factură (NumărFactură, Data, CodFurnizor)
9. Se stabilesc cheile externe (atribute comune ale
tabelelor şi care sunt chei primare în alte tabele)
Exemplu:
Furnizor (CodFurnizor, DenumireFurnizor,
AdresaFurnizor)
Factură (NumărFactură, Data, CodFurnizor)
Fig.17
SIG-Curs 1 Baze de date 86
Cum asocierea leagă instanţieri ale claselor este
necesar să se precizeze cardinalităţile (ele se citesc în
sensul clasă către asociere) şi opţional rolurile jucate
de fiecare clasă (în exemplul Utilizate şi, respectiv,
Utilizează) (v.fig.18):
Fig.18