Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Modelul relational in Baze de date

baze de date



+ Font mai mare | - Font mai mic



Baze de date

Modelul relational

Modelul relational reprezinta datele sub forma unor structuri bidimensionale, asemanatoare tabelelor.



Conceptele teoretice care formeaza baza modelului relational au aparut la inceputul anilor 70, in principal datorita lui Edgar F. Codd.

Modelul relational nu este orientat spre sistemul de calcul, adica modelul nu include regulile, structurile si operatiile referitoare la implementarea fizica a unui sistem de baze de date. De fapt, unul din principalele obiective ale sistemului relational este separarea clara intre aspectele fizice si cele logice ale unei baze de date.

In acelasi timp, modelul relational si operatiile folosite de catre acesta au la baza o riguroasa fundamentare matematica; se bazeaza pe algebra relationala si calculul relational.

Desi are la randul lui imperfectiuni, modelul relational a devenit in ultima vreme principalul model de baze de date si a fost adoptat de majoritatea producatorilor de software din acest domeniu. Principalele sale avantaje sunt simplitatea, fundamentarea matematica riguroasa si independenta datelor, adica separarea aspectelor logice ale acestora de cele fizice.

Concepte de baza ale modelului relational

In general, definirea unui model de date presupune precizarea si identificarea urmatoarelor elemente:

Structurile de date folosite;

Operatorii care actioneaza asupra structurilor de date;

Restrictii care trebuie impuse pentru mentinerea corectitudinii datelor, numite si restrictii de integritate.

In modelul relational datele sunt reprezentate ca structuri bidimensionale, numite relatii. O relatie este alcatuita dintr-un numar fix de elemente numite atribute, fiecare dintre acestea putand lua valori intr-o multime finita, numita domeniu. Numarul de atribute al unei relatii se numeste aritatea relatiei.

relatie(atribut_1, atribut_2, ., atribut_n)

De exemplu datele despre angajatii unei firme se pot reprezenta ca o relatie de aritate 7, dupa cum urmeaza:

salariat(cod_salariat, nume, prenume, adresa, data_nastere,

sex, cod_departamant)

Elementele unei relatii se numesc tupluri sau inregistrari. De obicei relatiile sunt reprezentate sub forma unor tabele, in care fiecare rand reprezinta un tuplu si fiecare coloana reprezinta valorile tuplurilor corespunzatoare unui anumit atribut.

Cod

Salariat

nume

prenume

adresa

data_natere

sex

cod_

departament

S1

Ion

Cosmin

Str. Jiului nr.3

M

D1

S2

Popescu

Vasile

M

D1

S3

Ionescu

Gina

Str. Valea Alba

F

D2

S4

Costache

Viorel

Str. Siret nr.5

M

D1

Relatiile ce constituie o baza de date trebuie sa satisfaca mai multe conditii, dupa cum urmeaza:

1. Fiecare atribut trebuie sa poarte un nume, care este unic in cadrul relatiei. Modelul relational nu permite ca doua atribute din cadrul aceleiasi relatii sa poarte acelasi nume. Pe de alta parte, este posibil ca doua atribute din doua relatii diferite sa poarte acelasi nume.

2. Fiecare atribut poate avea doua valori atomice, deci care nu se pot descompune din punct de vedere logic. Sa presupunem, de exemplu, ca un producator de automobile atribuie fiecarui automobil fabricat un cod de identificare, care se obtine prin concatenarea mai multor coduri, reprezentand marca automobilului, culoarea, fabrica unde este produs, seria si numarul de fabricatie, etc. Atunci, definirea acestui cod de identificare ca atribut al unei relatii ar incalca aceasta regula, deoarece fiecare valoare a atributului s-ar putea descompune in mai multe valori cu semnificatie logica.

3. Fiecare tuplu este unic. Nu sunt permise tupluri identice (duplicat). In plus, unicitatea unui tuplu nu este limitata la datele existente: fiecare tuplu trebuie sa fie unic tot timpul.

Aceasta inseamna ca intr-o relatie exista intotdeauna una sau mai multe atribute care asigura ca tuplul va ramane unic tot timpul. Un atribut sau set de atribute care identifica in mod unic un tuplu se numeste cheie candidata sau mai simplu cheie. Pentru fiecare relatie se alege din multimea cheilor candidate o cheie care se numeste cheie primara a relatiei. Eventualele alte chei candidate, diferite de cheia primara, se numesc chei alternative. Cand mai mult de un singur atribut este necesar pentru a crea o cheie, se spune ca avem o cheie compusa. In cazul unei chei compuse, atributele care fac parte din cheie sunt alese astfel incat nici unul sa nu fie in plus, adica nici un atribut nu poate fi sters din cheia candidata astfel incat partea care ramane din cheia candidata sa identifice inca in mod unic tuplurile; de aceea, se spune ca o cheie trebuie sa fie minimala.

Uneori, in unele tupluri dintr-o relatie, un atribut poate fi necunoscut sau neaplicabil. Pentru a reprezenta un astfel de atribut se foloseste o valoare conventionala, notata cu Null. Ca regula generala, nici unul din atributele care alcatuiesc cheia primara nu poate avea valoarea Null pentru nici unul din tuplurile relatiei.

Exemplu:

Pentru relatia salariat definita mai sus, o cheie candidata este cod salariat. Daca se presupune ca nume, prenume si data nastere identifica in mod unic salariatul, atunci combinatia acestor trei atribute este o alta cheie candidata, care, datorita faptului ca este alcatuita din mai multe atribute, este si cheie compusa. Daca cheia cod_salariat este aleasa cheie primara, atunci combinatia celor trei atribute (nume, prenume, data_nastere) devine cheie alternativa.

In alegerea cheilor candidate s-a tinut cont de principiul minimalitatii in sensul ca din cheia compusa nume, prenume si data nastere nu poate fi sters nici un atribut si nici nu mai trebuie adaugat altul, aceste trei atribute identificand in mod unic tuplurile. De exemplu, combinatia (nume, prenume, data nastere, cod departament) nu este o cheie a relatiei salariat pentru ca si in absenta atributului cod departament, un salariat este identificat in mod unic de primele trei atribute. Observam ca tuplul identificat prin valoarea cheii primare egala cu S2 are atributul adresa necunoscut, adica acesta area valoarea Null. Prin urmare, atributul adresa nu poate fi cheie primara si nici nu poate intra in componenta unei chei compuse care este si cheie primara.

Se numeste cheie straina un atribut sau o multime de atribute ale unei relatii R1 care exista si intr-o alta relatie R2, nu neaparat distincta de R1, si care formeaza cheia primara a relatiei R2. In cazul acesta, cheia straina din R1 se spune ca face referinta la cheia primara din R2. Valorile pe care le ia cheia straina, daca nu au valoarea Null, trebuie sa se gaseasca printre valorile cheii primare la care face referinta.

Exemplu:

Daca mai definim o relatie de aritate 3, dupa urmeaza:

departament (cod departament, denumire, localitate

cod departament

denumire

localitate

D1

Analiza financiara

Bucuresti

D2

Depozit

Pitesti

D3

Contabilitate

Constanta

D4

Magazin

Pitesti

pentru evidenta departamentelor din firma, atributul cod departament din relatia salariat devine cheie straina care face referinta la cheia primara a relatiei departament. Valoarea cheii straine cod departament, din relatia salariat trebuie ori sa fie Null, ori sa coincida cu o valoare a cheii primare la care face referinta. Prin urmare, daca atributul cod departament, din relatia salariat ar fi avut pentru un anumit tuplu valoarea D5, valoare ce nu se regaseste printre valorile cheii primare cod departament, din relatia departament, atunci s-ar fi incalcat o regula de integritate.

Exista posibilitatea ca o cheie straina sa faca referinta la cheia primara a propriei relatii. Pentru a ilustra acest lucru, sa adaugam la relatia salariat un nou atribut cod manager, reprezentand codul superiorului ierarhic al salariatului (facem presupunerea ca un angajat poate avea cel mult un superior ierarhic).

cod salariat

nume

Prenume

cod manager

S1

Ion

Bucuresti

S2

Popescu

Pitesti

S1

S3

Ionescu

Constanta

S2

S4

Costache

Pitesti

S3

Deci salariatul cu codul S1 este superiorul ierarhic al salariatilor cu codurile S2 si S3, salariatul cu codul S2 este superiorul ierarhic al salariatului cu codul S4, iar S1 nu are un superior ierarhic.

4. Navigatia in cadrul modelului relational se face prin intermediul valorii pe care o ia un atribut . Aceasta inseamna ca limbajul de interogare va prelua ca parametrii de intrare doar numele unor atribute si valorile posibile ale acestora, corespunzatoare cerintelor utilizatorului, si va returna tuplurile care satisfac aceasta cerinta. Spre deosebire de alte modele, nu exista legaturi intre tupluri si deci nu exista dependenta de calea urmata.

5. Tuplurile vor fi prezentate utilizatorului in orice ordine. Deci acesta nu trebuie sa faca nici o presupunere in privinta ordinii tuplurilor.

6. Atributele pot fi prezentate in orice ordine, deci utilizatorul nu trebuie sa faca nici o presupunere in privinta ordinii acestora. Cu alte cuvinte, in modelul relational nu exista dependenta de secventa. De exemplu, desi relatiile

Salariat(cod_salariat, nume, prenume, adresa, data_nastere,

sex, cod departament)

si

Salariat(cod_salariat, nume, prenume, cod departament,

data_nastere, sex, adresa

par diferite, ele sunt echivalente functional pentru ca au atribute identice, chear daca sunt in alta ordine.

7. Relatiile pot fi manipulate pentru a furniza utilizatorului diferite vederi asupra datelor, rezultatul fiind noi relatii. Cu alte cuvinte, rezultatul manipularii relatiilor sunt noi relatii. In plus, relatiile produse ca rezultat al comenzilor limbajului de interogare a datelor satisfac toate regulile la care sunt supuse relatiile initiale.

Exemplu de organizare conceptuala a unei bazei de date :

Fie o firma oarecare care produce mobila . Aceasta firma doreste sa fie ajutata in a tine evidenta aprovizionarii cu materiale . Pentru asta , activitatea de aprovizionare se descompune in mai multe subactivitati :

calculul necesarului de aprovizionat ( in functie de planul de productie si de consumurile unitare pe produs, de stocurile existente) , mai bine zis ce cantitate trebuie aprovizionata.

activitatea de contractare cu scopul de a avea la timp necesarul de materiale pentru realizarea produselor. Sigur, in urma studierii pietei, se aleg furnizori de materiale si se perfecteaza contracte de furnizare materiale ( ce cantitate, in ce data si cum sa fie platite si cand sa fie platite materialele ).

gestiunea stocurilor prin inregistrarea intrarilor si iesirilor de materiale in sau din depozit (pot exista conditii speciale cum ar fi materiale perisabile, limita minima de materiale)

urmarirea realizarii aprovizionarii , adica verificarea si compararea a ceea ce s-a contractat ( comandat) si ceea ce s-a livrat, eventual somand furnizorii sa trimita marfa restanta .

Dorim sa organizam datele necesare intr-o baza de date, stiind ca firma doreste sa cunoasca in orice moment urmatoarele informatii :

care sunt contractele incheiate de furnizorul Y pentru materialul X ?

care este stocul din materialul X , in toate depozitele unitatii ?

ce furnizori avem ?

care sunt materialele de aprovizionat pentru a putea realiza produsul P?

care este valoarea totala a contractelor furnizorului X ?

cati furnizori sunt dintr-o anumita regiune?

Pe baza acestor cereri de informatii si urmarind activitatea firmei se pot defini entitatile pentru care avem nevoie de date si care sunt acele date :

PRODUSE cu atributele nume si cont

FURNIZORI cu atributele nume, adresa , cont banca

CONTRACTE cu numar , data semnarii, conditii

MATERIALE cu nume, cod

DEPOZITE cu nume, gestionar

Observam ca se formeaza legaturi intre aceste entitati :

legatura PRODUSE - MATERIALE de tipul m -n , un produs are n materiale, dar un material se poate gasi in componenta a n produse .

FURNIZORI - CONTRACTE de tipul 1 -n , un furnizor are n contracte si evident un contract nu poate apartine decat unui singur furnizor.

CONTRACTE - MATERIALE de tipul m-n , un contract defineste mai multe materiale de achizitionat, un material poate fi contractat prin diverse contracte, de la mai multi furnizori .

DEPOZIT - MATERIALE de tipul m-n , un depozit poate avea mai multe materiale ,dar acelasi material poate exista in mai multe depozite.

Prin urmare administratorul bazei de date hotaraste urmatoarea structura virtuala a bazei de date :

Varianta relationala foloseste tabele simple pentru fiecare entitate , tabele de forma :

PRODUSE MATERIALE

Codp

Denumire

Plan

CodM

Nume

DEPOZIT FURNIZORI

CodD

Nume

Admin

CodF

Nume

Adrs

Telef

Pentru a pastra legaturile se pot folosi tabele :

CONTRACTE STOCURI CONSUM-SPECIFIC

Nr

CodF

Codm

Cant

Termen

CodM

CodD

Stoc

Codp

Codm

Consum

SistemE DE gestiune a bazelor de date (SGBD) .

1. Definire. Functii.

Accesul la baza de date se face cu ajutorul unui pachet de programe numit SGBD. Acesta este un pachet de programe realizat de firme specializate, care realizeaza gestiunea si prelucrarea complexa a datelor , asigurand independenta programelor de aplicatie fata de modul de structurare a datelorsi un timp optim de raspuns la solicitarile utilizatorilor in conditii de multiacces.

S.G.B.D. trebuie sa contine rutine care sa permita mai multe functii grupate , simplu , in patru clase : definire, manipulare , administrare , protectie .

Comunicarea cu bazele de date

Un SGBD nu este util daca nu se poate comunica cu el, deci o prima functie a unui SGBD este de a asigura accesul utilizatorului la baza de date. Prin aceasta se intelege atat definirea structurilor din baza de date cat si manipularea si interogarea (extragerea si prelucrarea) datelor din baza de date. In plus, utilizatorul trebuie sa aiba la dispozitie modalitati de a controla integritatea si securitatea datelor. Cu alte cuvinte, comunicarea cu baza de date presupune urmatoarele patru functiuni principale:

-Definirea structurilor de date. Un SGBD trebuie sa furnizeze un Limbaj de Definire a Datelor (Data Definition Language, DDL) care permite definirea (crearea, modificarea si distrugerea) schemei bazei de date, adica a structurilor de date folosite si a legaturilor dintre acestea.

Nota: Schema bazei de date, numita si metadata, nu trebuie confundata cu datele propriu-zise. Schema descrie modul de structurare al bazei da date, este definita de la inceput si se schimba destul de putin in timp. Datele, pe de alta parte, reprezinta instante ale schemei bazei de date si se modifica frecvent in timp. Aceste doua concepte sunt analoage conceptelor de tip si variabila dintr-un limbaj de programare.

Un SGBD trebuie sa cuprinda un dictionar de date (data dictionary) cateodata referit sub denumirea de catalog al sistemului, care stocheaza date despre toate obiectele pe care le detine, cum ar fi numele obiectului, tipul, structura si locatia sa. Ciclul de viata al unei structuri de date, de la crearea pana la distrugerea ei, este inregistrat in dictionarul de date, precum si toate informatiile logice si fizice despre aceasta.

-Manipularea datelor. Odata create structurile din baza de date, trebuie permisa inserarea de date in aceasta, precum si actualizarea sau stergerea celor existente. Aceste operatii sunt efectuate de catre Limbajul de Manipulare a Datelor (Data Manipulation Language, DML).

-Interogarea datelor. Un SGBD trebuie sa permita extragerea, vizualizarea si prelucrarea (filtrarea, stocarea, etc.) datelor existente. Aceste operatii se fac cu ajutorul unui limbaj numit limbaj de interogare sau acces (Data Query Language, DQL).

-Controlul datelor. Limbajul de Control al Datelor (Data Control Language, DCL) permite asigurarea securitatii si confidentialitatii datelor, salvarea datelor si realizarea fizica a modificarilor in baza de date, garantarea integritatii si consistentei datelor in cazul manipularii concurente.

Securitate datelor

Securitatea este o preocupare constanta in proiectarea si dezvoltarea bazelor de date. In mod uzual, nu se pun probleme legate de existenta securitatii, ci mai de graba de cat de mare va fi aceasta. Un SGBD are in mod caracteristic mai multe nivele de securitate, pe langa cele oferite de sistemul de operare sau de retea. De obicei, un SGBD detine conturi pentru utilizatori, care necesita o parola de conectare ce trebuie autentificata pentru a accesa datele.

Un SGBD ofera de asemenea si alte mecanisme cum ar fi grupurile, rolurile, privilegiile si profilurile care dau securitatii mai mult rafinament. Aceste nivele de securitate nu prevad numai constrangeri, ci si stabilirea politicii de securitate. De exemplu, intr-un sistem de electronic banking o companie isi poate deschide un cont la o banca, iar accesul persoanelor din cadrul companiei pentru consultarea contului va fi autorizat printr-un nume si cel putin o parola. In plus, accesul poate fi diferentiat intre diferiti membri ai companiei, numai unora dintre ei fiindu-le permis sa faca si tranzactii asupra contului.

Mentinerea si constrangerea integritatii

Integritatea datelor se refera la consistenta si corectitudinea acestora. Pentru ca datele sa fie consistente, ele trebuie modelate si implementate in acelasi mod pentru toate circumstantele. Pentru ca datele sa fie corecte, ele trebuie sa fie exacte, precise si sa aiba inteles. Prin integritate datele devin informatii. Conditiile de integritate pe care trebuie sa le satisfaca o baza de date pot fi atat conditii structurale, comune tuturor SGBD-urilor care folosesc un anumit model de date(de exemplu, orice SGBD relational trebuie sa impuna respectarea integritatii referentiale), cat si conditii de comportament, specifice fiecarei baze de date particulare (de exemplu, o coloana "culoare" dintr-un tabel nu poate avea decat valorile rosu, albastru, verde, etc.).

Asigurarea accesului concurent la date

In plus, in cazul existentei mai multor utilizatori, un SGBD trebuie sa gestioneze accesul concurent al acestora, mentinand in acelasi timp integritatea bazei de date. Vom spune in acest caz ca SGBD-ul gestioneaza concurenta bazei de date. Concurenta poate fi definita ca simultaneitate in sensul ca doi sau mai multi utilizatori acceseaza aceleasi date in aceiasi perioada de timp. Gestionarea de catre SGBD a concurentei o intalnim atunci cand mai mult de o persoana trebuie sa acceseze aceiasi baza de date, si in mod special aceleasi date, iar SGBD-ul trebuie sa asigure intr-un fel sau altul ca acest acces concurent este posibil. In plus, fiecare utilizator trebuie sa aiba o "vedere" consistenta asupra bazei de date, incluzand modificarile vizibile facute de catre alti utilizatori, iar pe de alta parte SGBD-ul trebuie sa impiedice modificari incorecte ale datelor, care ar compromite integritatea acestora.

Metodele pe care un SGBD le foloseste pentru a realiza acest lucru sunt in principiu destul de simple, implementarea lor fiind insa destul de complexa. In esenta, un SGBD asigura concurenta in modul urmator. Cand doua sau mai multe persoane vor sa vizualizeze aceleasi date fara a le modifica insa, totul este in ordine si nu trebuie luate masuri suplimentare. Cand insa cel putin o persoana doreste sa faca modificari asupra unor date care in acelasi timp sunt vizualizate de catre alte persoane, atunci SGBD-ul trebuie sa stocheze mai multe copii ale datelor si sa transfere toate modificarile copiilor intr-o singura versiune atunci cand intreaga operatiune este terminata.

Problema este ceva mai complicata in momentul cand mai multi utilizatori incearca sa faca modificari asupra acelorasi date. Un SGBD rezolva problema folosind blocarea (locking). Utilizatorul care a efectuat primul modificarea datelor le blocheaza, ceilalti utilizatori neputandu-le modifica pana cand operatia efectuata de acesta nu este incheiata.

Tranzactii

Intregul mecanism care gestioneaza concurenta intr-o baza de date are la baza conceptul de tranzactie. Tranzactia este cea mai mica unitate de lucru. Aceasta inseamna ca nu poate exista nici o operatie mai mica decat o tranzactie. Toate tranzactiile trebuie sa fie atomice, adica orice tranzactie individuala fie este complet executata, fie nu se executa deloc. Cu alte cuvinte, o tranzactie nu poate fi executata partial. Cand o tranzactie este incheiata se spune ca este permanentizata (commited); cand o tranzactie nu poate fi incheiata si este anulata se spune ca este derulata inapoi (rolled back).

Derularea inapoi a unei tranzactii poate fi facuta explicit printr-o comanda a utilizatorului sau poate surveni in mod neasteptat, in cazul unei probleme in functionarea sistemului.

Un SGBD realizeaza recuperarea datelor (data recovery) utilizand tranzactiile ca unitati de recuperare. In functie de modul in care se deruleaza o tranzactie (este incheiata normal), fie pentru a anula modificarile facute (daca tranzactia a fost abandonata la cerere sau intrerupta neasteptat). SGBD-ul pastreaza o istorie a tranzactiilor (transaction log) cu scopul de a derula inainte sau inapoi. Derularea inapoi (roll back) a unei tranzactii inseamna anularea efectelor acesteia asupra datelor. Derularea inainte (roll forward) a unei tranzactii inseamna operarea modificarilor tranzactiei asupra datelor. Atunci cand efectele unei tranzactii finalizate nu sunt transmise din memorie pe disc, de exemplu din cauza unei probleme hardware sau software, SGBD-ul repeta tranzactia respectiva. Prin urmare, cheia pentru modul de recuperare a tranzactiilor intr-un SGBD este faptul ca tranzactia trebuie sa fie atomica si poate fi efectuata, anulata sau repetata atunci cand este necesar.

Baze de date de distributie

Avand in vedere rolul din ce in ce mai important al retelelor si proceselor distribuite in informatica, sistemele de gestiune a bazelor de date trebuie sa poata beneficia de avantajele procesarii si stocarii distribuite. Intuitiv, o baza de date distribuita este o multime de date corelate logic, dar distribuite pe mai multe masini interconectate printr-o retea de comunicatie. Din punct de vedere al utilizatorului, o baza de date distribuita reprezinta o singura baza de date. Programul de aplicatie care manipuleaza baza de date poate avea acces la date rezidente pe mai multe masini, fara ca programatorul sa cunoasca localizarea acestor date (distribuirea lor fizica).

Bazele de date distribuite ofera utilizatorului o flexibilitate si o securitate sporita fata de o singura baza de date. Sa luam, de exemplu, o companie care are sedii in mai multe orase ale lumii. Daca se opteaza pentru o arhitectura distribuita, fiecare dintre aceste locatii isi administreaza propria baza de date, pe care o acceseaza in mod frecvent, putand sa aiba in acelasi timp acces si la bazele de date ale celorlalte locatii. Astfel distribuirea bazei de date duce la exploatarea mai eficienta a bazei de date si usureaza administrarea acesteia, care se face local. In plus, defectarea unei baze de date locale nu afecteaza celelalte baze de date din retea, cu alte cuvinte bazele de date locale sunt protejate impotriva defectiunilor din celelalte noduri ale retelei.

In ce constau operatiile asupra bazelor de date ?

a.      Definirea bazei de date , care cuprinde :

stabilirea structurii virtuale , precizandu-se structurile de date necesare ( in functie de modelul de date ce se alege )

definirea structurilor logice

informatii necesare pentru stabilirea structurii fizice ( fisierele necesare , care date se include in acestea )

Aceste lucruri se realizeaza cu ajutorul acelui Limbaj de Definire a Datelor, prin diferite comenzi sau printr-o interfata cu utilizatorul ( pentru exemplele de la laborator comanda a fost comanda Create ) .

b. Manipularea datelor din b.d. care cuprinde :

introducerea ( adaugarea datelor ) in baza de date

regasirea ( extragerea ) datelor din baza de date .

actualizarea ( stergerea , modificarea ) datelor din baza de date .

Si aceasta functie este realizata fie cu ajutorul unui Limbaj de Manipulare a datelor sau cu ajutorul unor comenzi . Comenzile si programele pot sa fi si din alte medii diferite . De exemplu am creat baza de date cu ajutorul mediului Visual Foxpro dar o accesam cu ajutorul mediului Delphi Pascal, Visual C , Builder C sau Visual Basic. .

c. Administrarea bazei de date . Dupa crearea bd. aceasta trebuie folosita o anumita perioada. Prin urmare , trebuie sa se faca un control al datelor si al programelor care aceseaza baza de date . Acest lucru cade in sarcina unei persoane numita administratorul bazei de date functiile lui fiind cele de administrare a bazei de date :

  1. organizarea bazei de date

- definirea structurii b.d. si a structurilor logice .

- stabilirea structurilor fizice a bazei de date .

- introducerea de date in b.d.

  1. urmarirea functionarii b.d. :

pastrarea datelor corecte si la zi

asigurarea integritatii si confidentialitatii datelor

punerea la dispozitia utilizatorilor a unor programe sau proceduri

  1. reorganizarea b.d. :

modificarea structurii virtuale si a structurii fizice pentru optimizarea diferitelor functii sau pentru a include noi date

modificarea unor programe de acces

  1. Protectia datelor :

confidentialitatea adica protectia impotriva accesului neautorizat asupra b.d.

integritatea datelor impotriva alterarii continutului datorita unor defectiuni , erori de programare .

controlul redundantei datelor, adica acelasi date sa fie pastrat de mai multe ori (se ajunge si la inconsistenta datelor )

Ex.O b.d cu datele despre personalul unei institutii . Nu toate persoanele din reteaua de calculatoare a institutiei au dreptul sa acceseze acele date . Pentru aceasta se folosesc parole pentru diferentierea utilizatorilor care au drept de acces , datele se pastreza codificat , se folosesc firewall-uri pentru filtrarea utilizatorilor .

Trebuie sa remarcam si utilizatorii care intervin in contact cu SGBD :

utilizatorii informaticieni - programatorii , ei folosesc limbajul de manipulare si cunosc structura logica a datelor de care au nevoie cat si toate facilitatile oferite de un anumit SGBD.

utilizatorii obisnuiti , care fie folosesc produse program, fie folosesc comenzi simple pentru accesarea si folosirea datelor din b.d.

administratorul bazei de date , aceea persoana care se ocupa de controlul si intretinerea bazei de date ( mai ales pe sistemele mari ).

2. Structura si functionarea unui SGBD.

Complexitatea unui SGBD rezida in dimensiunea sa , reflectata nu numai in multitudinea instructiunilor sale dar si in multimea componentelor , fiind prin complexitatea apropiat de un sistem de operare . SGBD lucreaza de fapt sub controlul sistemului de operare al calculatorului, S.O. care se ocupa de suportul hard al bazei de date.

In mod obisnuit, un SGBD contine urmatoarele module :

monitor cuprinde modul specializate pentru gestionarea bazei de date , a zonelor de memorie interna, a retelei de transmisie si a mesajelor cu terminalele care acceseaza bazele de date cat si module pentru activarea proceselor, asigurarea legaturii cu sistemul de operare .

compilatoare sunt module asociate limbajelor de descriere si manipulare , avand rol de verificare si translatare a comenzilor catre sistemul de operare.

monitoare de inlantuire : asigura succesiunea fazelor distincte de prelucrare (executia programelor sau executia directa a comenzilor).

programe utilitare: editoare de texte pentru a putea scrie codul programelor, generatoare de rapoarte, module de securitate(fisiere de urrmarire) , etc.

Din punct de vedere schematic, functionarea unui SGBD se poate reprezenta astfel :



PROGRAME

COMENZI

 


Cum decurge de fapt o sesiune a unui SGBD ? Utilizatorul cere SO. sa lanseze in executie SGBD-ul respectiv. Apoi, SO incarca de pe disc programul monitoral SGBD -ului, care mai departe preia cererile de la utilizatori.

3. clasificarea sGBD-urilor si a bazelor de date .

In functie de modelul de date al bazei de date exista SGBD-uri ierarhice, relationale (cele mai multe ) si retea.

SGBD ierarhic. Modelul ierarhic stocheaza datele in structuri de tip arbore. El porneste de la ideea ca intre date exista o relatie de tip parinte-copil. Nivelul cel mai de sus al arborelui, cunoscut sub numele de radacina, poate avea orice numar de dependenti. La randul lor, acestia pot avea dependentii lor si asa mai departe. In prezent, modelul ierarhic este depasit si nu se mai foloseste aproape deloc.

SGBD retea. Modelul retea stocheaza datele sub forma de inregistrari si legaturi intre acestea. Acest model poate fi vazut ca o extindere a celui ierarhic, diferenta intre cele doua fiind ca, in timp ce in modelul ierarhic o inregistrare copil are exact un parinte, in modelul retea el poate avea mai multi parinti, eventual chiar nici unul. Modelul retea permite reprezentarea de structuri de date complexe dar este extrem de complicat. Din aceasta cauza, el este in prezent putin folosit.

SGBD relational (SGBDR). Modelul relational reprezinta probabil cea mai simpla structura pe care o poate avea o baza de date. Intr-un SGBD relational, datele sunt organizate in tabele. Tabelele sunt formate din inregistrari care, la randul lor sunt formate din campuri. Doua sau mai multe tabele pot fi legate prin intermediul unuia sau mai multor campuri. Bazele de date relationale sunt foarte flexibile si usor de folosit, astfel incat au cunoscut o dezvoltare intensa in ultimii douazeci de ani si sunt in prezent cele mai raspandite.

SGBD obiect pe obiect. Acesta este cel mai nou tip de SGBD, incercand sa integreze principiile programarii orientate pe obiect (Actor, Smalltalk, C++)si ale bazelor de date. Bazele de date relationale, cele mai populare in ultimul deceniu, ofereau prea putin suport pentru tipurile neconventionale de date. Necesitatea gestiunii obiectelor complexe (texte, grafice, harti, imagini, sunete) si a gestiunii obiectelor dinamice (programe, simulari) care nu pot fi realizate cu ajutorul sistemelor relationale a condus la introducerea conceptului de obiect in cadrul sistemelor de gestiune a bazelor de date. In prezent tehnologia bazelor de date orientate pe obiect este inca la inceput, neexistand un mod general de SGBD orientat pe obiect, astfel incat producatorii diferiti folosesc moduri de organizare oarecum diferite. O solutie in acest sens este si crearea unui model relational care sa suporte si majoritatea principiilor modelarii orientate pe obiect.

In functie de distribuirea resurselor soft si hard SGBD-urile pot fi integrate si distribuite .

SGBD-urile integrate sunt cele in care baza de date propriu-zisa si suprafata utilizator alcatuiesc un tot unitar . In baza de date - numita BACK - END sunt stocate fizic datele, in timp ce prin intermediul suprafetei utilizator (mai nou suprafata grafica utilizator) numita FONT - END - datele sunt definite, manipulate si controlate. Acest tip de organizare implica existenta bazei de date pe un singur calculator, datele fiind accesibile doar utilizatorului acelui PC. Acesta era modul de lucru pentru SGBD-urile rulabil sub vechiul MS-DOS.

Bazele de date client-server (deci si SGBD -urile client server) sunt disponibile in retelele client-server ( serverul-calculatorul central al retelei si clientii sunt statiile de lucru). SGBD-ul lucreaza astfel intr-o retea ( este vorba despre SGBD-urile actuale cum este si Visual Foxpro ) . In mod tipic , pe server se gasesc bazele de date iar pe clienti se gasesc pachete de programe ce comunica cu baza de date de pe server , pachete ce dispun de o interfata bazata pe un limbaj de interogare numit SQL - Structured Query Language) . De exemplu , intr-un supermarket avem un server central in care sunt stocate bazele de date cu stocurile de produse. Pe fiecare statie de lucru din magazin ( unde se gasesc gestionarele ) exista un program de stocuri ce examineaza de fiecare data baza de date de pe server pentru a vedea daca mai exitsa un produs sau pentru a actualiza stocul existent ( in urma vanzarii produsului respectiv) .

Aceste tipuri de SGBD ofera un mare avantaj si a anume faptul ca programele si baza de date pot fi folosite simultan . sau pe rand de mai multi utilizatori , fara a fi nevoie ca ei sa posede pe computerele lor o copie a bazei de date.

Bazele de date distribuite . Sunt folosite pentru organizatiile economice mari care necesita manipularea de baze de date mari sau multe. In astfel de situatii baza de date este distribuita in baze de date mai mici astfel incat aplicatiile sa aiba controlul doar a catorva baze de date mici. O baza de date distribuita este de fapt o colectie de tabele si relatii stocate in nodurile retelei. De fapt, baza de date este integrata , dar fizic este distribuita pe mai multe sisteme de calcul. Cel mai cunoscut dintre SGBD -urile ce lucreaza cu baze de date distribuite este Oracle , folosit foarte mult pentru gestionarea datelor din organizatiile economice mari, pentrui banci, etc. .

Structura fizica a bazelor de date

Bazele de date sunt in general prea mari pentru a fi memorate in memoria interna a unui calculator. Din aceasta cauza, ele sunt rezidente ( stocate ) in memoria externa a computerului ( de obicei pe discuri sau benzi magnetice ) .

Baza de date fizica este o colectie de fisiere care implementeaza un anumit model de date logice ( structura logica ) . Fisierele sunt integrate de catre structura logica a bazei de date si ele pot comunica intre ele. Baza de date este organizata sub forma de colectii de inregistrari . Inregistrarea este unitatea de baza de transfer de date intre memoria externa si memoria interna ( in care are loc prelucrarea ) . Mai mult, pentru reducerea numarului de accese la memoria externa, mai multe inregistrari sunt citite sau scrise printr-un singur acces ( se grupeaza mai multe inregistrari in blocuri ).

Fisierele care formeaza baza de date sunt de 2 tipuri :

fisiere de date : acestea contin datele efective .

fisere index : acestea precizeaza modul de acces la fisiere (pastreaza anumite date din b. d. pentru a putea regasi mai usor datele ) .

Exista ma multe tipuri de organizare a fisierelor :

secvential : accesul la componentele fisierului se face in ordinea fizica a inregistrarilor (banda magnetica este un exemplu de suport pentru memoria externa in care fisierele de acolo nu pot fi accesate decat secvential )

direct accesul la inregistrari se poate face in orice ordine , ne putem pozitiona pe orice inregistrare ( discul ofera un astfel de acces ) .

secvential - indexata : inregistrarile se acceseaza in ordinea data de fisierul index (acesta este parcurs secvential) . Acest mod de organizare permite parcurgerea intr-o anumita ordine a inregistrarilor ( nu chiar oricare ) .

Fisierele de date au trei structuri principale bazate pe faptul ca inregistrarile au pointeri intrafisiere , pointeri interfisiere sau nu au pointeri . Un pointer este o adresa memorata intr-o inregistrare astfel incat se pot accesa ( regasi ) inregistrarile cu ajutorul acelor adrese . Valoarea pointerului poate fi o adresa absoluta din memorie sau o adresa relativa . Adresa absoluta (fizica) depinde de memoria fizica, pe cand o adresa relativa indica locatia inregistrarii in cadrul fisierului ( totusi aceasta adresa relativa trebuie sa se traduca si ea in final in adresa absoluta pentru a putea accesa inregistrarea fizica .

Obs. S.G.B.D. -ul FoxPro foloseste baze de date care pot fi cu acces secvential sau cu acces secvential - indexate . Trebuie subliniat faptul ca SGBD. trebuie sa ofere un serviciu de acces la structurile de date fizice . Programatorul sau utilizatorul nu trebuie sa-si bata capul cu structura fizica , acest lucru se realizeaza de SGBD. impreuna cu sistemul de operare.

In functie de organizare se determina operatiile necesare pentru a gasi inregistrarile . Evident, putem avea acces direct la inregistrari sau acces secvential la inregistrari . Inregistrarile se pot adauga intr-o ordine oarecare fie intr-o ordine sortata in concordanta cu valorile dintr-un anumit camp . Cel mai simplu si cel mai folosit mod de organizare al colectiei de inregistrari este fisierul secvential . Inregistrarile sunt scrise consecutiv in fisierul de date , in ordinea crearii .

Organizarea ca fisier secvential - indexata combina tipurile de acces secvential si relativ. Inregistrarile pot fi accesate in ambele moduri ( acesta exista si in FoxPro) . Bazele de date indexate sunt de fapt formate din doua fisiere : unul cu date si unul index, cu pointeri la cel de date. Putem avea mai multe fisiere index ( mai multe moduri de ordonare, de parcurgere ) sau putem avea fisiere index multichei care contin mai multe chei de indexare (mai multe criterii de parcurgere ) .

In mod particular, SGBD-un Foxpro (Visual Foxpro-pentru platforme Windows) este unul relational. Tabelele bazei de date poate fi organizata secvential sau secvential-indexat.

Baza de date este formata din mai multe tabele in care inregistrarile sunt reprezentate de linii, iar coloanele sunt campurile bazei de date . Capul de tabel fomeaza structura logica a tabelului .

Cimpurile tabel.

 

Structura tabel.

 


Exemplu o baza de date cursanti :

Nume

Prenume

DataN

Studii

Venit

Popescu

Ion

SUPERIOARE

Georgescu

Mihai

SUPERIOARE

Inregistrarile

 

Avrom

Mihai

MEDII

Acest tabel formeaza fisierul de date, fisier ce se salveaza sub numele de cursanti.dbf (acesta va fi fisierul fizic care va contine efectiv datele ) .

Structura tabelului dintr-o baza de date presupune precizarea fiecarui camp component al bazei de date impreuna cu caracteristicile sale. Specificarea unui camp presupune precizarea numelui de identificare al campului ( in Foxpro numele simbolic este format din litere sau cifre de lungime variabila ), a tipului de date ( ce fel de date se vor stoca acolo ) si a lungimii acestuia ( datele care se vor stoca in acel camp cat de lungi vor fi ele) .



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1263
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved