Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




INTRODUCERE IN BAZE DE DATE

Informatica


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 datelo 19319o142t r 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.


Document Info


Accesari: 3473
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )