Sunteți pe pagina 1din 8

CAPITOLUL I

INTRODUCERE IN BAZE DE DATE

CURSUL 1

1. Ce este o baza de date?

La inceput calculatoarele au fost utilizate numai pentru calcule aritmetice.


Prin cresterea vitezei de calcul, prin cresterea capacitatii de memorare a datelor, prin
adaugarea unor noi componente de intrare iesire, prin dezvoltarea unor limbaje de
programare s-a ajuns acum la prelucrarea intr-un timp scurt a unei mari cantitati de
informatii. Organizarea si gestionarea acestor informatii se face la nivelul bazelor de
date.

O baza de date contine toate informatiile necesare despre obiectele ce


intervin intr-o multime de aplicatii, relatiile logice intre aceste informatii si tehnicile
de prelucrare pentru aceste informatii. In bazele de date se face o integrare a datelor
in sensul ca mai multe fisiere sunt privite in ansamblu, eliminandu-se pe cat posibil
informatiile redondante. In acelasi timp se permite accesul simultan la aceleasi date a
mai multor persoane.

Exemplul 1.1. Pentru o facultate pot fi pastrate de exemplu pe perioade mari


de timp informatii privind studentii, personalul, salile, planul de invatamant,
aparatura si alte elemente despre care diferite persoane pot cere informatii la un
moment dat. Intre aceste elemente exista diferite relatii cum ar fi: unii studenti fac
anumite cursuri, unele cursuri se tin in anumite sali, unele aparate se afla in anumite
sali, unele persoane pot tine cursuri si alte relatii asemanatoare.

Sistemul de programe cu care se pot construi bazele de date, se pot introduce


date in bazele de date si se pot dezvolta aplicatii privind bazele de date se numeste
sistem de gestiune al bazelor de date (SGBD). Un SGBD da posibilitatea
utilizatorului sa aiba acces la date folosind un limbaj de tip inalt apropiat de modul
obisnuit de exprimare pentru a obtine informatii, utilizatorul facand abstractie de
algoritmii aplicati pentru selectionarea datelor implicate si a modului de memorare a
lor. SGBD-ul este o interfata intre utilizatori si sitemul de operare.

Orice SGBD contine printre alte componente un limbaj de descriere a


datelor (LDD) care permite descrierea structurii unei baze de date, a fiecarei
componente a ei, a relatiilor dintre ele, a drepturilor de acces ale utilizatorilor la baza
de date, a restrictiilor in reprezentarea informatiilor si alte elemente asemanatoare. O
alta componenta foarte inportanta a unui SGBD este limbajul de cereri (LC) sau
limbajul de prelucrare a datelor (LPD) ce permite operatii asupra datelor aflate in
baza de date cum sunt: incarcarea bazei de date, inserarea unui nou element, stergerea
unui element, modificarea unuui element, cautarea unor elemente, diferite statistici
asupra datelor si alte operatii asemanatoare.

Spre deosebire de limbajele de programare obisnuite in care declararea datelor


este facuta in acelas loc cu prelucrarea lor, bazele de date prevad limbaje separate
pentru declarare si pentru prelucrare. Aceasta deoarece intr-un program obisnuit
datele exista efectiv numai pe timpul rularii programului pe cand intr-o baza de date
in general datele sunt definite o data pentru totdeauna si nu mai sunt necesare
redefiniri.

Limbajele LDD si LC sunt de cele mai multe ori extinderi ale unor limbaje de
programare numite limbaje gazda. Compilarea succesiunilor de comenzi pentru
descrierea datelor sau pentru operarea cu date se reduce in acest caz la o precompilare
adica transformarea acestor comenzi intr-o succesiune de instructiuni ale limbajului
gazda care prin executare sa dea efectul dorit. O alta modalitate de operare este aceea
a transformarii comenzilor in lansari de programe executabile.

O structura posibila pentru SGBD este data in figura 1.1. In aceasta figura
procesorul de cereri prelucreaza cererile utilizatorilor presentate la terminal sau sub
forma de programe de aplicatii scrise in LC transformandu-le in comenzi executabile
de catre gestionarul bazei de date; compilatorul LDD interpreteaza transforma
descrierile utilizatorului in comenzi pentru initierea sau modificarea unei baze de
date; gestionarul bazei de date transforma comenzile de cereri si descrieri de baze de
date in operatii executabile de catre sistemul de gestiune a fisierelor care opereaza
asupra datelor aflate in diferite fisiere.

frecvent (cerere C1 procesor


utilizator) cereri

mai putin (cerere C2 (cerere C2 gestionar gestionar baza


frecvent program compilata) baza date fisiere date
aplicativ) fizica

rar (schema compilator (descriere


baza date) LDD baza date)

Figura 1.1.

Dintre sarcinile pe care le indeplineste gestionarul bazelor de date fac parte si


urmatoarele:

- Reducerea redondantelor prin identificarea informatiilor comune si


alcatuirea corespunzatoare a aplicatiilor.

- Eliminarea inconsistentelor ce rezulta din eliminarea redondantelor.

- Utilizarea simultana a datelor de mai multi utilizatori.


- Standardizarea informatiilor.

- Asigurarea securitatii bazelor de date in sensul acordarii si urmaririi modului


de acces al utilizatorilor la diferite parti componente ale bazelor de date.

- Asigurarea integritatii bazelor de date in sensul pastrarii corectitudinii


datelor continute in baza de date prin testele aplicate datelor introduse in baza de date.

- Asigurarea sincronizarii in cazul utilizarii bazei de date simultan de mai


multi utilizatori sau a distribuirii informatiei pe mai multe sisteme.

Utilizatorii bazelor de date pot fi impartiti in urmatoarele clase:

- Utilizatorii obisnuiti care pot sa obtina informatiile fara sa aiba cunostinte


de programare. Ei obtin informatiile pe care le doresc prin comenzi stiute si eventual
raspunzand la diferitele optiuni pe care i le indica sistemul de calcul la un moment
dat.

- Programatorii de aplicatii care pot scrie programe in LC, acestea fiind apoi
compilate si memorate in fisiere putand fi lansate in executie de utilizatori prin
invocarea numelui asociat lor.

- Administratorul bazei de date care stabileste structura initiala a bazei de


date si modul de memorare a datelor la nivel fizic, acorda drepturi de acces al
utilizatorilor la baza de date sau parti ale ei, stabileste conditiile pentru asigurarea
securitatii si integritatii datelor, modifica structura bazei de date daca este nevoie,
asigura intretinerea bazei de date facand periodic copii si reconstituid eventual baza
de date in cazul cand au aparut erori datorate componentelor soft, hard sau de
utilizare si raspunde in general de modul de utilizare al bazei de date.

- Administratorul sistemului de baze de date care stabileste bazele de date


de pe un sistem de calcul, aloca spatii de memorare si asigura drepturi de acces.

Cele mai multe SGBD-uri contin si diferite utilitare folosite in diferitele


aplicatii cum sunt: procesoare pentru limbaje de cereri, editoare de rapoarte,
subsiteme de reprezentari grafice, posibilitati de lucru tabelat, procesoare de limbaje
naturale, programe statistice, posibilitati de copiere, generatoare de aplicatii
(procesore inteligente de tip "4GL") si alte posibilitati de dezvoltari aplicatii de tip
CASE (computer-aided software engineering).

Pentru a usura munca administratorului de sistem un SGBD contine o serie de


componente ce permit incarcarea (crearea unei versiuni initiale a bazei de date
plecand de la unul sau mai multe fisiere), salvarea si reincarcarea (efectuarea de copii
periodice si posibilitatea refacerii bazei de date plecand de la aceste copii),
reorganizarea (rearanjarea datelor pentru a obtine performante superioare), statistici,
analize si altele.

CURSUL 2

2. Arhitectura unei baze de date


O baza de date poate fi privita din mai multe puncte de vedere cum sunt:

- Punctul de vedere al utilizatorilor care privesc anumite parti componente ale


bazei de date numite vederi. Vederile sunt descrise prin subscheme in sublimbaje ale
limbajului de descriere a datelor. De asemenea utilizatorii pot sa primesca raspunsuri
la diferitele cereri formulate prin intermediul limbajului de prelucrare a datelor.

- Punctul de vedere al administratorului de baza de date care integreaza toate


vederile ce privesc baza de date intr-un singur model numit schema conceptuala.
Schema conceptuala constituie nivelul logic al bazei de date.

- Punctul de vedere al implementatorului bazei de date (care de cele mai multe


ori coincide cu administratorul bazei de date) care priveste baza de date ca o colectie
de fisiere memorate pe diferite medii externe cum sunt benzile si discurile magnetice.
Acesta constituie nivelul fizic al bazei de date fiind de fapt singurul nivel existent
efectiv.

Fiecare dintre cele trei nivele contine subnivele. De exemplu utilizatorii pot fi
utilizatori obisnuiti, fara cunostinte de programare sau programatori de aplicatii,
organizarea vederilor corespunzatoare lor fiind diferita. La fel nivelul fizic poate sa
contina un subnivel logic in care conteaza semnificatia diferitelor campuri din
inregistrarile fisierelor si structurile de date asociate si un subnivel fizic in care
esential este numai modul de organizare si gestionare a blocurilor pe memoria
externa.

Primele doua nivele sunt descrise prin planuri ce constau in enumerarea


tipurilor de entitati ce apar in baza de date, relatiile intre aceste tipuri de entitati si
modul de trecere de la notiunile acestui nivel la nivelul imediat urmator. In mod
curent aceste planuri se numesc scheme externe sau subscheme conceptuale sau
vederi pentru primul nivel si scheme conceptuale pentru al doilea nivel. Descrierile la
nivel fizic sunt facute prin scheme interne sau scheme fizice.

3. Scheme externe

Informatiile ce apar in scheme externe pot fi luate ca atare din nivelele logic si
fizic sau pot fi deduse din aceste informatii pe baza unor calcule. De exemplu pentru
o persoana poate sa apara intr-o vedere atributul varsta dar la nivel logic si fizic
atributul varsta nu este indicat din cauza permanentei modificari a continutului lui. In
acest caz se foloseste la nivel logic un atribut data_nasterii care prin scadere din data
curenta permite aflarea varstei persoanei respective. Alte informatii ce pot sa apara in
vederi si care de obicei nu sunt prevazute in schemele conceptuale privesc numarul de
elemente dintr-o multime, media valorilor unei multimi de elemente numerice si alte
informatii asemanatoare.
Vederile sunt definite prin intermediul unui sublimbaj de definire a datelor
(SLDD) care de cele mai multe ori este inclus in LDD sau este foarte apropiat ca
structura de LDD. Exista sisteme de baze de date care permit mai multe SLDD in
acelasi timp fiecare utilizator alegandu-si modul propriu de descriere al datelor.
Informatiile ce se obtin din baza de date pot fi apoi prelucrate prin proceduri scrise in
anumite limbaje de programare.

Pentru utilizatorul obisnuit modul de definire a vederilor este transparent el


putand sa obtina sau sa modifice informatiile dorite prin intermediul unor comenzi cu
structura data, folosind forme predefinite pe care le completeaza sau utilizand un
sistem de meniuri.

In reprezentarea intuitiva a vederilor intervin notiunile de entitate, relatie,


atribut, cheie, functionalitate, diagrama si altele pe care le vom definii ulterior.

Notiunea de entitate nu se poate defini formal fiind o notiune primara. Mai


multe elemente de acelasi tip formeaza o entitate. Cateva exemple de entitati sunt:
persoana, student, sala, culoare, simt, padure, etc. O problema foarte importanta in
definirea vederilor este fixarea entitatilor asociate ei adica a claselor de obiecte cu
care se opereaza in vederea respectiva.

Fiecare entitate este descrisa de o multime de proprietati esentiale numite


atribute care pentru diferitele elemente ale entitatii pot sa primeasca valori din
anumite multimi numite domeniul atributului. De obicei domeniile sunt submultimi
ale multimii numerelor reale sau ale multimii numerelor intregi sau ale multimii
sirurilor de caractere. Alegerea atributelor asociate entitatilor este o alta problema
foarte importanta in definirea vederilor.

Un atribut sau o multime de atribute pentru care valorile asociate determina in


mod unic orice element al entitatii respective se numeste cheie. De obicei orice
entitate admite cel putin o cheie deci inplicit se considera ca toate elementele unei
entitati sunt distincte. In cazurile in care exista elemente care sa aiba aceleasi valori
pentru toate atributele se ia drept cheie un atribut suplimentar ce defineste numarul
asociat elementului in entitatea
respectiva care defineste in mod unic elementul.

Numim relatie intre entitatile E1,E2,...,Ek orice submultime a produsului


cartezian al multimilor elementelor celor k entitati, adica multimi de elemente de
forma (e1,e2,...,ek) unde e1 este un element din E1, e2 este un element din E2 si asa
mai departe. O astfel de relatie o notam REL(E1,E2,...,Ek) si spunem ca are aritatea
k. De cele mai multe ori k=2 deci se lucreaza cu relatii binare.

In cazul relatiilor binare se poate face o clasificare a lor in functie de cate


elemente corespund fiecarui element dintr-o entitate in cealalta entitate dupa cum
urmeaza:

- relatie unu-la-unu (notata 1:1) in cazul in care fiecarui element din prima
entitate ii corespunde cel mult un element din a doua entitate si reciproc.
- relatie unu-la-mai-multi (notata 1:N) in cazul in care fiecarui element al
primei entitati ii pot corespunde mai multe elemente din cea de-a doua entitate dar
fiecarui element din a doua entitate ii corespunde cel mult un element din prima
entitate.

- relatie mai-multi-la-mai-multi (notata M:N) in cazul in care fiecarui element


al primei entitati ii pot corespunde mai multe elemente din cea de-a doua entitate si
reciproc.

In practica cele mai des intalnite sunt ultimile doua tipuri de relatii dar la
implementarea bazelor de date de cele mai multe ori ultimul tip se reduce la relatii de
tipul 1:N dupa cum vom vedea in continuare.

Exemplul 1.2. ?????? - de construit ??????

Informatiile privind structura unei vederi sunt sintetizate grafic intr-o


diagrama entitate-relatie care pune in evidenta entitatile ce intervin reprezentate prin
dreptunghiuri, atributele asociate lor reprezentate prin elipse si diferitele relatii ce se
stabilesc intre entitati reprezentate prin sageti (cu varf dublu catre entitatea pentru
care pot apare mai multe elemente in relatie cu un element din cealalta entitate.
Pentru vederea definita in exemplul 1.2 se poate asocia diagrama din figura 2.

4. Scheme conceptuale

Schema conceptuala a bazei de date combina subschemele vederilor ce privesc


o anumita aplicatie intr-un model unitar. Modul de descriere si de reprezentare este
acelasi cu modul de descriere si de reprezentare al vederilor. Deci si in schema
conceptuala intervin notiunile de entitate, relatie, cheie, diagrama entitate-relatie si
altele.

In combinarea vederilor se tine seama de posibilitatea identificarii unor


entitati, de transformarea unor relatii, de completarea unor informatii, de modul de
reconstituire a informatiilor la nivelul vederilor. In plus trebuie sa se tina seama si de
modelul de baze de date ales pentru cazul particular dat.

O schema conceptuala trebuie sa se bazeze pe un model teoretic si sa fie


simpla in sensul de a fi usor de inteles si de prelucrat. Numarul elementelor ce o
constituie sa nu fie prea mare, diferitele concepte folosite sa fie separate clar, sa se
pastreze simetriile, sa se tina sub control redondantele sunt cateva din principiile ce se
aplica in acest caz.

Pana acum sistemele de gestiune a bazelor de date au fost clasificate in trei


grupe mari in functie de tipul elementelor cu care lucreaza:

- modelul retea permite lucrul cu entitati si relatii binare de tipul unu-la-unu


si unu-la-mai-multi cu diagrama rezultata un graf oarecare.
- modelul arborescent (ierarhic) permite lucrul cu entitati si relatii binare de
tipul unu-la-unu si unu-la-mai-multi si diagrama alcatuita dintr-o multime de arbori.

- modelul relational in care intervin numai relatii si operatii cu ele.

In capitolele urmatoare vom descrie aceste modele punand accent pe modelul


relational care este cel mai raspandit fiind foarte eficient in special pentru baze de
date de dimensiuni mici, fiind mai mult studiat si din punct de vedere teoretic si nu in
ultimul rand fiind mai usor de manuit de utilizatori.

5. Scheme interne

Schemele interne descriu diferitele fisiere utilizate pentru memorarea


informatiilor bazei de date si modul de operare cu ele. Dintre multiplele moduri de
organizare a fisierelor vom descrie in capitolul al saselea al acestei lucrari organizarea
secventiala, organizarea cu index rar si index dens, organizarea cu dispersie si
organizarea folosind B-arbori. Vor fi discutate si alte probleme speciale legate de
organizarea fisierelor cum ar fi cautarea informatiilor dupa chei secundare sau chei
incomplete si memorarea inregistrarilor de dimensiuni variabile.

Traducerea schemelor conceptuale in scheme interne se face de obicei automat


de catre SGBD. Pe langa stabilirea diferitelor tipuri de inregistrari utilizate in
reprezentarea fizica a datelor se specifica si existenta indexilor asociati unor fisiere,
semnificatia campurilor inregistrarilor, ordinea de aparitie a inregistrarilor si modul
de acces.

6. Introducere in proiectarea bazelor de date

Proiectarea bazelor de date presupune fixarea structurii bazei de date si a


metodelor de prelucrare a datelor spre deosebire de utilizarea bazei de date care
priveste mai mult ceeace contine baza de date la un moment dat. Daca baza de date isi
schimba frecvent continutul, structura ei ramane nemodificata pe lungi perioade de
timp.

Prin proiectare se determina un model semantic in care sa se reflecte cat mai


fidel lumea reala construit astfel:

1. Se identifica o multime de concepte semantice (entitati, tipuri de entitati,


proprietati ale entitatilor, identificatorii entitatilor, relatii intre entitati si altele) ce dau
informatii despre lumea reala.

2. Se asociaza obiecte simbolice formale prin care sunt reprezentate conceptele


semantice.

3. Se definesc reguli de integritate formale ce se aplica obiectelor simbolice.


4. Se defineste o multime de operatori formali ce pot sa transforme obiectele formale.

Un model de etapizare a construirii unei baze de date ar putea fi urmatorul:

1. Studiul de fezabilitate consta in cercetarea sistemelor operative deja


existente, stabilirea unor alternative cu evaluarea costurilor, a avantajelor
si dezavantajelor fiecarei alternative in parte.

2. Cercetarea sistemului prin determinarea diferitelor detalii ale sistemului


prezent (tipuri de date, dimensiuni, conditii exceptie) folosind metode de
interogare, chestionare, exemplificari si observatii directe.

3. Analiza sistemului prin determinarea cauzelor diferitelor evenimente si a


adoptarii diferitelor metode, eventualele alternative posibile.

4. Proiectarea sistemului prin determinarea celui mai bun model de reprezentare


si prelucrare a datelor, de asigurare a securitatii si integritatii.

5. Dezvoltarea sistemului prin stabilirea detaliilor asociate datelor asociate,


a relatiilor dintre ele si a modului de reprezentare fizica.

6. Implementare prin proiectarea, scrierea si testarea programelor, antrenarea


utilizatorilor, alcatuirea documentatiei, crearea si incarcarea fisierelor.

7. Revizuire si intretinere prin probe de lucru ale noului sistem, efectuarea


unor eventuale modificari, adaugarea de noi componente si urmarirea
procesului de prelucrare a datelor.

In proiectarea bazelor de date se tine seama de independenta datelor pe


diferite nivele. De exemplu reprezentarea fizica a datelor se poate schimba in timp
pentru a obtine performante superioare din punct de vedere al timpului de raspuns si
al spatiului ocupar fara ca aceasta sa afecteze modul de reprezentare a datelor in
schema conceptuala. Acesta independenta se numeste independenta fizica a datelor.
De asemenea intre vederi si schema conceptuala apare o independenta numita
independenta logica a datelor. In timpul existentei unei baze de date pot apare
modificari in schema conceptuala prin adaugarea unor noi entitati sau prin adaugarea
de noi atribute unor entitati existente. Vederile care nu fac referiri la campurile
modificate raman neschimbate fiind rescrise numai aplicatiile pentru care s-au
modificat unele atribute sau pot fi construite vederi noi.

Proiectarea unei baze de date priveste in primul rand nivelul logic si mai putin
cel fizic. Proiectarea se poate face plecand de la modelul relational care permite o
tehnologie de proiectare si apoi se poate transforma rezultatul proiectarii in oricare
dintre modele prin adaptarile corespunzatoare.

Capitolele urmatoare descriu pe larg structura bazelor de date si in cea mai


mare parte vom urmarii acrivitatile specifice privind proiectarea bazelor de date
legate de toate notiunile prezentate.

S-ar putea să vă placă și