Utilizarea Access Pentru Proiectarea Unei Aplicatii
Utilizarea Access pentru proiectarea unei aplicatii
CAPITOLUL 1
ELEMENTE DE TEORIA BAZELOR DE DATE
1.1 Activitațile și obiectivele organizării datelor
Organizarea datelor ocupă un loc important în proiectarea sistemelor informatice. De modul în care sunt organizate datele depinde eficiența sistemului informatic.
Organizarea datelor presupune:
definirea, structurarea, ordonarea și gruparea datelor în colecții de date omogene;
stabilirea legăturilor (relațiilor) între date, între elementele unei colecții, între colecțiile de date;
reprezentarea (stocarea) lor pe suport informațional, prelucrabil într-un sistem de calcul.
Scopul organizarii datelor îl constituie regăsirea automată a datelor după diverse criterii și forme.
Obiectivele urmărite în organizarea datelor sunt:
timpul de acces la datele organizate pe diferite suporturi de date să fie minim
spațilul de memorie internă și externă ocupat de date să fie cât mai redus. Se urmarește ca pe un spațiu de memorie cât mai mic să se introducă un volum cât mai mare de date;
datele să apară o singură dată în sistem. Totuși, uneori, pentru realizarea unui acces mai rapid la date, se impune acceptarea unei redundanțe minime de date;
în sistemul de organizare a detelor să se reflecte, pe cât posibil, toate legăturile dintre obiecte, fenomenele, procesele economice pe care aceste date le reprezintă;
să permită scgimbarea structurii datelor și a relațiilor dintre ele fără a modifica programele ce le gestionează.
1.2 Concepte utilizate în organizarea datelor
Cele trei concepte de bază utilizate sunt: entitate, atribut, valoare. Ele au fost introduse în literatura de specialitate odată cu apariția bazelor de date. Aceste concepte sunt legate între ele: o entitate are mai multe atribute, iar atributelor li se asociază o mulțime de valori.
Prin entitate se înțelege un obiect concret sau abstract reprezentat prin proprietățile sale.
Orice proprietate a unui obiect poate fi exprimată printr-o pereche (ATRIBUT, VALOARE). Exemplu: “masa X are culoarea albă”, unde “culoare” reprezintă atributul, iar “albă” valoarea.
Așadar, o entitate se poate exprima prin mai multe proprietăți, deci mai multe perechi de forma (ATRIBUT, VALOARE).
De exemplu o persoană X poate fi rerezentată prin mulțimea de perechi: (NUME, POPESCU); (VÂRSTA, 25); (SEX, MASCULIN); (PROFESIE, ECONOMIST); (SALARIU, 90000).
În realitate, mulțimea atributelor NUME, VÂRSTĂ, SEX, PROFESIE, SALARIU poate fi asociată mai multor PERSOANE. Rezultă că atributul nu caracterizează doar o entitate, ci poate caracteriza o clasă de entități numită entitate grup. În exemplul de mai sus, entitatea grup se caracterizează prin aceeași mulțime de atribute, se poate spune că entitățile din cadrul unei entități grup sunt de același tip. În acest sens, se utilizează termenul de “tip de entitate” pentru o clasă de entități.
Noțiunea de atribut este cunoscută și sub denumirea de câmp, caracteristică.
Fiecare atribut e caracterizat de natura valorilor pe care le poate lua. Astfel, un atribut este de tip numeric dacă valorile sale sunt numerice, alfanumeric dacă valorile sale sunt șiruri de caractere, etc. În general, un atribut are valori elementare, dar pot exista și situații de atribute compuse (formate prin concatenarea mai multor atribute). Pot exista atribute ce identifică în mod unic o entitate, ele numindu-se atribute cheie sau pot exista atribute ce nu identifică unic o entitate și se numesc atribute non-cheie
Un alt concept utilizat este cel de dată. Data este un model de reprezentare a informației. Accesibil unui anumit procesor (om, program, calculator); cu acest model se opereză pentru a obține noi informații despre fenomenele și procesele lumii reale.
O dată care este indivizibilă în raport cu informația pe care o reprezintă, dar și în raport cu modul de prelucrare se numește dată elementară sau scalară. Mai multe date elementare formează o dată compusă.
Din punct de vedere logic, o dată se definește prin: identificator, atribut și valoare.
Exemplu: PROF -identificator PROFESIA -atribut ECONOMIST -valoare
Din punct de vedere fizic, unei date îi corespunde o zonă de memorie de o
anumită mărime, situată la o adresă absolută.
1.3 Relații între date
Între date există diverse legături, relații. Între datele ce aparțin unor tipuri de entități pot exista două categorii de legături:
prima se definește prin însăși apartenența detelor la entiate;
a doua categorie o constituie legăturile dintre entitățile de același tip sau de tipuri diferite.
Exemple:
Fie A mulțimea persoanelor ce lucrează într-o societate comercialș. Între datele acestei mulțimi se pot stabili relații de tipul:
x are aceeași profesie cu y;
x este soția lui y;
x are salariul mai mare sau egal cu al persoanei y;
x este mai în vârstă decât y;
x a absolvit aceeași școală ca și y; etc.
Fie B mulțimea județelor țării. Între datele acestei mulțimi pot exista relații de tipul:
x este vecin cu y și y este vecin cu x;
x are suprafața mai mare decât y;
x are mai multe orașe decât y etc.
Fie C mulțimea produselor finite ale unei societăți. Între datele ce caracterizează aceste produse există relația de tipul:
x intră în componența lui y;
x este mai ieftin decât y;
x este mai util decât y etc.
Fie două clase de entități: PRODUSE și BENEFICIARI. Între datele acestor două clase de entități pot exista următoarele relații:
o mulțime de legături R1 între entitățile clase PRODUSE, date de faptul că un produs poate intra în alcătuirea altui produs;
o mulțime de legături R2 între clasele de entități PRODUSE și BENEFICIARI, date de faptul că un produs poate fi livrat la unul sau mai mulți beneficiari iar un beneficiar poate primi unul sau mai multe produse.
1.4 Structuri de date
Tipurile de structuri de date întâlnite în sistemele informatice se diferențiază în funcție de sistemul informațional și de tehnologiile de prelucrare a datelor utilizate.
Definiție Structura de date este definită ca o colecție de date între care s-au stabilit o serie de relații care conduc la un anumit mecanism de selecție și identificare a componentelor.
Mulțimea de date asociată structurii poate fi alcătuită din datele unui tip sau mai multor tipuri de entități. Componentele structurii pot fi individualizate și identificate prin nume (identificator) sau prin poziția pe care o ocupă în structură (în raport cu ordinea specificată).
Dacă localizarea unei componente se face prin parcurgerea tuturor componentelor se face prin parcurgerea tuturor componentelor care se află înaintea sa în ordinea specificată, atunci structura are un acces secvențial.
Dacă o componentă din structură poate fi selectată fără a ține seama de celelalte componente, atunci structura are un acces direct
Componentele unei structuri de date pot fi date elementare sau pot fi ele însele structuri de date.
Asupra unei structuri de date se pot efectua o multitudine de operații care se referă la valori și/sau la structură. Dintre acestea, cele mai frecvente sunt:
crearea (memorarea datelor în forma inițială pe suport de memorie);
consultarea (accesul la componentele structurii în vederea prelucrării valorilor);
actualizarea (schimbarea stării structurii prin adăugarea, ștergerea unor elemente, modificarea valorii unor elemente, modificarea relațiilor dintre elemente);
sortarea (aranjarea elementelor unei structuri după anumite criterii);
ventilarea (spargerea structurii în două sau mai multe structuri);
fuzionarea (formarea unei noi structuri din două sau mai multe structuri);
copierea;
interclasarea etc.
Operațiile la care poate fi supusă o structură de date și eficiența cu care acestea pot fi realizate, depind în mare măsură de relațiile între datele materializate pe suport de memorie.
Toate structurile de date care au acceași organizare și sunt supuse acelorași operații formează un anumit tip de structură de date.
Definiție Un tip de structură de date este o mulțime ordonată de date între care s-au stabilit anumite releții și pentru realizarea operațiilor se folosește un grup de operatori de bază cu o anumită semantică.
1.4.1 Clasificarea structurilor de date
După tipul componentelor, structurile se clasifică în:
structuri omogene, în care componentele sunt de același tip;
structuri eterogene, în care componentele aparțin unor tipuri diferite.
Dacă o structură se poate descompune în structuri de același tip, atunci structura este recursivă.
După posibilitatea de modificare a valorilor și/sau structurii, avem:
structuri statice, care pe tot parcursul existenței lor au același număr de componente în aceeași ordine;
structuri dinamice, care permit modificarea valorilor și/sau structurii prin aplicarea operatorilor. Aceste structuri pot avea, teoretic, un număr nelimitat de componente și de aceea se mai numesc structuri cu cardinalitate infinită.
Structura statică se consideră, similar cu cardinalitatea finită.
Din punct de vedere al nivelului de structurare al datelor avem:
structură logică, ce se referă la modul de ordonare al datelor, operatorii de tratare a detelor;
structura fizică, ce se referă la modul de implementare, de reprezentare efectivă pe suporții informaționali.
Clasificarea în structuri fizice și dinamice se referă, în principal la structurile fizice de date. Din acest punct de vedere, alocarea memoriei pentru o structură statică este o alocare statică, atât pentru componente cât și pentru structură. Pentru o structură dinamică, alocarea este dinamică atât la nivelul întregii structuri cât și la nivelul componentelor.
O structură logică poate fi implementată și ca structură statică și ca structură dinamică. Există structuri logice care nu pot fi implementate static.
În organizarea datelor trebuie definită atât structura logică cât și structura fizică, cele două nivele condiționându-se reciproc.
1.4.2 Tipuri de structuri de date
Principalele tipuri de structuri (logice) de date sunt:
structura punctuală;
structura liniară;
structura arborescentă;
structura rețea;
structura relațională.
Dintre acestea, structurile de bază sunt: cea liniară și arborescentă. Prin combinarea lor se pot construi structuri oricât de complexe.
Structura punctuală este reprezentată de o entitate grup izolată. De exemplu, tipul de entitate PERSOANA. Considerând că nu există relații explicite între realizările de entitate, acest tip de entitate luat singur reprezintă structura punctuală.
Structura liniară.
Dacă între elementele unei colecții de date există o relație de ordine totală, spunem că structura definită este liniară.
Structura punctuală este reprezentată de o entitate grup izolată. De exemplu, tipul de entitate PERSOANA. Considerând că nu există relații explicite între realizările de entitate, acest tip de entitate luat singur reprezintă structura punctuală.
Acest tip de structură are următoarele proprietăți (fig.1.1.a):
Cardinalul mulțimii elementelor inițiale (maximale) este egal cu 1.
Cardinalul mulțimii elementelor terminale (minimale) este egal cu 1.
Card (m(D))=1;
Orice element neterminal are un succesor imediat unic;
Primul element nu are predecesor;
Ultimul element nu are succesor;
Dacă există un cuplu în relație(u,p) format din ultimul element u și primul element p, structura liniară este inelară sau circulară (fig.1.1.b).
Relațiile stabilite între date sunt de tipul 1 la 1;
Dacă componentele unei structuri liniare sunt la rândul lor, structuri arborescente, spunem că avem structură liniară cu elemente structurate arborescent;
Dacă componentele unei structuri liniare sunt structuri rețea, atunci spunem că avem structură liniară cu elemente structurate rețea
Fig.1.1. Exemplu de structură liniară
Structura arborescentă (ierarhică sau descendentă). Dacă între elementele unei colecții de date există o relație de ordine, spunem că structura acestei colecții de date este o structură arborescentă.
Acest tip de structură are următoarele propriettică se consideră, similar cu cardinalitatea finită.
Din punct de vedere al nivelului de structurare al datelor avem:
structură logică, ce se referă la modul de ordonare al datelor, operatorii de tratare a detelor;
structura fizică, ce se referă la modul de implementare, de reprezentare efectivă pe suporții informaționali.
Clasificarea în structuri fizice și dinamice se referă, în principal la structurile fizice de date. Din acest punct de vedere, alocarea memoriei pentru o structură statică este o alocare statică, atât pentru componente cât și pentru structură. Pentru o structură dinamică, alocarea este dinamică atât la nivelul întregii structuri cât și la nivelul componentelor.
O structură logică poate fi implementată și ca structură statică și ca structură dinamică. Există structuri logice care nu pot fi implementate static.
În organizarea datelor trebuie definită atât structura logică cât și structura fizică, cele două nivele condiționându-se reciproc.
1.4.2 Tipuri de structuri de date
Principalele tipuri de structuri (logice) de date sunt:
structura punctuală;
structura liniară;
structura arborescentă;
structura rețea;
structura relațională.
Dintre acestea, structurile de bază sunt: cea liniară și arborescentă. Prin combinarea lor se pot construi structuri oricât de complexe.
Structura punctuală este reprezentată de o entitate grup izolată. De exemplu, tipul de entitate PERSOANA. Considerând că nu există relații explicite între realizările de entitate, acest tip de entitate luat singur reprezintă structura punctuală.
Structura liniară.
Dacă între elementele unei colecții de date există o relație de ordine totală, spunem că structura definită este liniară.
Structura punctuală este reprezentată de o entitate grup izolată. De exemplu, tipul de entitate PERSOANA. Considerând că nu există relații explicite între realizările de entitate, acest tip de entitate luat singur reprezintă structura punctuală.
Acest tip de structură are următoarele proprietăți (fig.1.1.a):
Cardinalul mulțimii elementelor inițiale (maximale) este egal cu 1.
Cardinalul mulțimii elementelor terminale (minimale) este egal cu 1.
Card (m(D))=1;
Orice element neterminal are un succesor imediat unic;
Primul element nu are predecesor;
Ultimul element nu are succesor;
Dacă există un cuplu în relație(u,p) format din ultimul element u și primul element p, structura liniară este inelară sau circulară (fig.1.1.b).
Relațiile stabilite între date sunt de tipul 1 la 1;
Dacă componentele unei structuri liniare sunt la rândul lor, structuri arborescente, spunem că avem structură liniară cu elemente structurate arborescent;
Dacă componentele unei structuri liniare sunt structuri rețea, atunci spunem că avem structură liniară cu elemente structurate rețea
Fig.1.1. Exemplu de structură liniară
Structura arborescentă (ierarhică sau descendentă). Dacă între elementele unei colecții de date există o relație de ordine, spunem că structura acestei colecții de date este o structură arborescentă.
Acest tip de structură are următoarele proprietăți:
Există un element unic, numit rădăcina arborelui.
Orice nod diferit de rădăcină are un predecesor imediat unic.
Orice nod neterminal are un număr finit de succesori imediați.
Relațiile stabilite între noduri sunt de tipul 1 la m.
succesiune de noduri (ai1,ai2,…,ain) în care pentru orice aik, k≠n, ai,k+1
Este un succesor imediat al lui aik, se numește drum de lungime n-1 de la nodul ai1 la nodul ain.
Drumul de lungime maximă constituie înălțimea arborelui. Un arbore ordonat de gradul 2 se numește arbore binar (fig.1.2.a). Un arbore care are ordinul superior lui 2 se numește multicăi (fig.1.2.b). Un arbore este echilibrat dacă diferența dintre drumurile de la rădăcină la orice nod terminal este cel mult 1.
O structură arborescentă care are elemente structurale arborescent formează o structură arborescentă cu elementele structurate arborescent. O structură arborescentă care are elementele structurate în rețea formează o structură (listă) arborescentă cu elementele structurate în rețea. Există și o structură arborescentă cu elementele structurate liniar
Fig.1.2. Exemple de arbori de date
Structura rețea. Dacă între elementele unei colecții da date există o relație de preordine, atunci spunem că structura acestei colecții de date este o structură rețea. Aceasta are următoarele proprietăți:
rețea este un graf în care între două noduri există legături bidirecționale;
Un nod are mai mulți predecesori și el însuși poate fi predecesor pentru propriul său predecesor. Apar astfel în rețea cicluri. Un ciclu este un drum în care nodul inițial este același cu nodul final.
Cardinalul mulțimii elementelor (nodurilor) inițiale este mai mare sau egal cu 1. Card(M(D)) ≥ 1;
Cardinalul mulțimii elementelor (nodurilor) finale este mai mare sau egal cu 1. Card(m(D)) ≥ 1;
Între elementele rețelei se stabilesc relații de tipul m la n.
O rețea este denumită “simplă” dacă pentru orice cuplu (a,b) ∈ R ⇒ (b,a) ∉ R (fig. 1.3.a.). În caz contrar, rețeaua este complexă (fig.1.3.b.). Într-o rețea simplă nu există cicluri.
Fig.1.3. Exemple de rețele de date
Structura relațională
Structura relațională este formată din mai multe tabele (relații, tablouri) de date elementare, fără o legătură aparentă între ele, componentele unei tabele fiind aduse într-una din cele cinci forme normale (fig.1.4.). O formă naomală este starea în care se află structura tabelului în funcție de diferite cerințe impuse. Operațiile pe aceste structuri sunt realizate cu operatori relaționali ai algebrei relaționale sau ai calculului relațional.
PERSOANE
Fig.1.4. Tabelă de date
1.5 Modele de date
Pentru cunoașterea realității înconjurătoare și prelucrarea datelor cu ajutorul calculatorului este necesară modelarea acestei realități.
Definirea unui model de date presupune precizarea, identificarea următoarelor trei elemente:
structura modelului;
operatorii care acționează asupra structurilor de date;
restricțiile pentru menținerea corectitudinii datelor, numite și reguli de integrare.
Descrierea structurii modelului presupune:
Definirea obiectelor (entităților) și a caracteristicilor asociate. Acesta se realizează utilizând următoarele elemente generice: câmpul (ca fiind cel mai mic element al structurii care poate fi identificat în scopul prelucrării), grupul simplu sau compus (este un set format din mai multe câmpuri și/sau grupuri) și înregistrarea (este un amsamblu de câmpuri și grupuri, constituind totodată și elementul generic al structurii).
Stabilirea relațiilor între obiecte. Relația între înregistrări aparținând unui singur obiect independent sau la două sau mai multe obiecte independente se materializează într-o legătură între o realizare a înregistrării părinte și una sau mai multe relizări ale înregistrării fiu. Realizările înregistrărilor de tip fiu formează o clasă de echivalență
Formalizarea relațiilor între înregistrări în cadrul unui model de date are ca scop reduceread redundanței datelor. Relația între înregistrări poate pune în evidență două tipuri de legături:
legături orizontale care permit localizarea claselor de echivalență (liste înlănțuite);
legături verticale care permit localizarea înregistrării părinte.
Legătutra dintre obiecte (entități) poartă denumirea de asociere. Legăturile dintre două entități pot fi de trei tipuri:
Legături “unu la unu” (1 → 1). De exemplu, relația dintre apartamentele închiriate din fondul locativ de stat și chiriați poate beneficia de un singur apartament cu chirie (fig. 1.6.).
Fig. 1.6. Exemplu de legătură de tipul “unu la unu”
Legătura “unu la mai mulți” (1 → n). De exemplu, un elev poate face parte dintr-o singură clasă, o clasă poate avea mai mulți elevi. Această structură este de tip arborescent (fig. 1.7.).
Fig. 1.7. Exemplu de legături de tipul “unu la mulți”
Legătură de tipul “mulți la mulți” (m → n). De exemplu, un produs este achiziționat de mai mulți clienți și un client poate achiziționa mai multe produse. Această structură este de tip rețea (fig. 1.8.).
Produsul 1 Produsul 2 … Produsul m
Client 1 Client 2 … Client n
Fig. 1.8. Exemplu de legătură de tip rețea
3. Operatorii care acționează asupra structurilor de date reprezintă cel de al doilea element al unui model de date. Acești operatori pot fi de citire, memorare, modificare, joncțiune etc.
4. Regulile de integritate, cel de-al treilea element al unui model de date sunt restricții menite să asigure menținerea corectitudinii datelor.
Exemple de astfel de restricții:
1. să nu se accepte memorarea valorilor asociate caracteristicilor unui produs dacă nu se cunoaște valoarea cheii lui (CODP pentru entitatea PRODUS și CODC pentru entitatea CLIENȚI);
2. să nu se permită ștergerea valorilor atributelor unui client dacă acesta nu a achitat integral factura pentru cumpărarea unui produs x, etc.
În funcție de modul în care de definesc elementele amintite, modelele de date se împart în: modele ierarhice sau arborescente; modele rețea; medele relaționale; modele orientate obiect.
1.5.1 Modelul ierarhic
Modelul ierarhic are ca structură de bază tipuri de înregistrări care grupează toate atributele unei entități. Pentru realizarea asocierilor (relațiilor, legăturilor) dintre tipuri de înregistrări, acest model introduce un nou tip de structură: ierarhia.
O ierarhie are un tip de înregistrare definit ca rădăcină și mai multe tipuri de înregistrări subordonate, legate sub formă de arbore (fig. 1.9.).
Fiecare nod din arbore care nu e rădăcină sau nod final are un singur nod superior și unul sau mai multe noduri inferioare. Legătura de la un nod superior la unul inferior este de tipul 1 → m, iar legătura de la un nod inferior la unul superior este de tipul 1 → 1
Fig. 1.9. Exemplu de ierarhie de date
Deci modelul ierarhic pune la dispoziție două structuri: tipuri de înregistrări și ierarhia. Datorită existenței celor două structuri, modelul oferă operatori separați și anume:
operatori de citiri pentru tipuri de înregistrare;
operatori de citiri pentru ierarhie;
operatori de memorare pentru tipuri de înregistrare;
operatori de memorare pentru ierarhie.
La acest model, în cazul operației de actualizare apar o serie de anomalii precum:
la inserare nu se pot introduce noi realizări ale unei înregistrări subordonate dacă nu sunt cunoscuți superiorii;
la ștergere, dacă se șterge o realizare rădăcină a unei înregistrări, atunci se șterg automat toate înregistrările subordonate.
1.5.2 Modelul rețea
În acest model, datele sunt reprezentate asemănător cu modelul ierarhic, cu deosebire că fiecare inferior poate avea mai mulți superiori. Toate structurile de date, inclusiv legăturile de tipul m la n sunt definite natural, fără a recurge la artificii. În cadrul acestui model, întâlnim două structuri:
tipul de înregistrări (care asigură atributele unei entități);
tipul de set (care asigură legăturile între tipurile de înregistrare).
Actualizările în acest caz sunt cele obișnuite (adăugare, modificare, ștergere)și se pot opera atât în tipurile înregistrărilor logice cât și în legături.
În ceea ce privește interogarea bazei de date, pot apare cereri de genul: atributele unui singur tip de înregistrări logice, legături dintre două tipuri de înregistrări, legături dintre mai multe tipuri de înregistrări.
1.5.3 Modelul relațional
Acest model are la bază teoria matematică a relațiilor. Are o singură structură de date: relația (tabelul), o submulțime a produsului cartezian al unor domenii (un domeniu este o mulțime de valori ale entităților).
În concluzie, un astfel de model poate fi privit ca o mulțime de tabele obținute prin metoda normalizării. Normalizarea pleacă de la o mulțime de atribute (câmpuri de date) și o mulțime de dependențe funcționale dintre atribute și conduce la o schemă conceptuală a modelului relațional într-o formă normalizată în care se vor elimina anomalii de actualizări.
La aceste trei modele, se mai adaugă modelul orientat obiect, modelul distribuit. Modelul distribuit de bazează pe primele trei modele, dar cu particularitățile legate de distribuirea geografică a datelor.ordinea modelelor de date prezentate este și cea istorică, în ultimii ani utilizându-se practic numai modelul relațional sau distribuit, datorită avantajelor față de celelalte modele.
1.6 Baze de date
Evoluția metodelor și tehnicilor de organizare a datelor a fost determinată de necesitatea de a avea un acces cât mai rapid și ușor la un volum din ce în ce mai mare de informațiiprecum și de perfecționarea echipamentelor de culegere, memorare, transmitere și prelucrare a datelor.
Conceptul de bază de dată a apărut în 1969 cu ocazia prezentării primului raport CODASYL (în cadrul unei conferințe pe probleme de limbaje de gestiune a datelor). Ideea principală în organizarea datelor se baza pe existența unui fișier de descriere globală a datelor prin care realiza independența programelor față de date și a datelor față de programe (fig.1.10.).
Accesul oricărui utilizator la baza de date se realiza prin intermediul fișierului de descriere globală a datelor. Fișierul da date conținea colecțiile da date și legăturile dintre ele.
Ulterior, acest concept a fost dezvoltat luând forma de baze de date rețea, baze de date relaționale sau baze de date orientate obiect.
În esență, conceptul de bază de date poate fi definit ca fiind una sau mai multe colecții de date (K1) aflate în interdependență, împreună cu descrierea datelor și a relațiilor dintr ele, (B = {K1, K2, …}).
Bazele de date astfel definită trebuie să îndeplinească următoarele condiții:
să asigure o independență sporită a datelor față de programe și invers;
structura bazei de date trebuie astfel concepută încât să asigure informațiile necesare și suficiente pentru cerințele de informare și decizie;
să se asigure o redundanță minimă și controlată a datelor;
să permită accesul rapid la informațiile stocate în bază.
Pe plan internațional există mai multe grupuri specializate în standardizarea conceptelor ce apar în dezvoltarea bazelor de date, cele mai importante fiind DBTG, CODASYL, ANSI/X3/SPARC, grupul IBM.
Bazele de date sunt extrem de variate în funcție de criteriile luate în considerare. Prezentăm câteva criterii:
după orientare: generalizate, specializate;
după modelul de date: ierarhice, rețele, relaționale, orientate obiect;
după amploarea geografică: locale, distribuite;
după limbajele utilizate: autonome (limbaje proprii), cu limbaj gazdă, mixte.
Arhitectura bazelor de date evidențiază componentele acestora și a fost standardizată internațional. O astfel de arhitectură generală cuprinde următoarele componente:
baza de date propriu-zisă în care memorează colecția de date;
sistemul de gestiune al bazei de date, care este un asamblu de programe (soft) care realizează gestiunea și prelucrarea complexă a detelor
un set de proceduri manuale și automate, precum și reglementările administrative, destinate bunei funcționări a întregului sistem;
un dicționar al bazei de date (metabaze de date), ce conține informații despre date, structura acestora, elemente de descriere a semanticii, statistici, documentației etc.
mijloace hard utilizate (comune, specializate etc.);
personalul implicat: (categorii de utilizatori: finali – (neinformaticieni); de specialitate (administrator), analiști – programatori, gestionari, operatori).
Arhitectura bazei de date dă o imagine despre modul general de organizare și funcționare a ei.
Componentele bazei de date pot fi structurate pe trei nivele, în funcție de clasa utizatorilor implicați;
Nivelul logic. Este dat de viziunea programatorului de aplicații, care realizează programele de aplicații pentru manipularea datelor și structura logică (subschema) corespunzătoare descrierii datelor aplicației;
Nivelul conceptual (global). Este dat de viziunea administratorului bazei de date, care realizează structura conceptuală (schema) corescunzătoare descrierii bazei de date și administrează componentele bazei de date pentru manipularea datelor;
Nivelul fizic. Este dat de viziunea inginerului de sistem care realizează structura fizică corespunzătoare descrierii datelor pe suportul fizic.
1.7 Sisteme de gestiune a bazelor de date
1.7.1 Definirea sistemului de gestiune a bazei de date
O bază de date apare ca o colecție de date stocate pe memorii externe adresabile, folosite de o multitudine de utilizatori. Însă o bază de date care nu are asociat un sistem de gestiune al acesteia, nu are sens, ea nu își atinge obiectivele pentru care a fost creată.
Sistemul de gestiune al bazei de date reprezintă software-ul propriu-zis al acesteia care asigură realizarea următoarelor activități:
definirea structurii bazei de date;
încărcarea datelor în baza de date;
accesul la date (interogarea, actualizarea);
întreținerea bazei de date (colectarea și refolosirea spațiilor goale, refacerea bazei de date în cazul unui incident);
reorganizarea bazei de date (restructurarea și modificarea strategiei de acces);
securitatea datelor.
Așadar, sistemul de gestiune al bazei de date apare ca un sistem complex de programe care asigură interfața între o bază de date și utilizatorii acestuia.
În sens mai larg, sistemul de gestiune a bazei de date este o componentă activă a băncilor de date, ce interacționează cu toate celelalte componente, cu toate categoriile de personal implicat în funcționarea băncii de date.
Obiectivele unui sistem de gestiune a bezelor de date
După cum este cunoscut, obiectivul informaticii il constituie culegerea, verificarea, transmiterea, stocarea și prelucrarea automată a datelor cu ajutorul mijloacelor electronice de calcul, în scopul satisfacerii diferitelor nivele de conducere cu informații necesare luării deciziilor, în condiții de eficiență economică sporită.
În aceste condiții, necesitatea acută de informare trebuie satisfăcută tinând seama de o serie de cerințe prin care să se asigure: minimizarea costului procesului de prelucrare a datelor; creșterea vitezei de răspuns la întrebările solicitate de utilizatori; adaptarea facilă a sistemului informatic la evoluția în timp a sistemului de informare dispunând de un minim de cunoștințe despre modul de organizare a lui în general și informatică în special; integritatea și securitatea datelor etc.
În acest context, sistemul de gestiune al bazei de date îi revine o serie de obiective, cum sunt:
1. Asigurarea independenței datelor. O aplicație, în general, este dependentă de date în sensul că modificarea structurii de memorare a datelor sau a strategiei de acces la date afectează și aplicația. Independența datelor față de aplicație au nevoie de viziuni diferite ale acelorași date; administrarea bazei de date trebuie să aibă libertatea de a schimba structura de memorare sau strategia de aceces, ca răspuns la cerințele (schimbări de standarde, prioritățile aplicațiilor, unități de memorare etc.), fără a modifica aplicațiile existente; baza de date existență, precum și programele de exploatare a ei, care au fost folosite o perioadă de timp, reprezintă o investiție majoră la care nu trebuie să se renunțe prea ușor.
De accea, se impune ca atunci când când apar noi cerințe în cadrul sistemului informațional, sistemele informatice să poată funcționa cu programele și procedurile existente, iar datele existente să poată fi convertite. Deci, modificările care se fac la nivel de structură de date nu trebuie să modifice programele de aplicație.
Independența datelor trebuie privită din două puncte de vedere: independența fizică; independența logică a datelor.
Independența fizică a datelor face ca memoria datelor și tehnicile fizice de memorare să poată fi modificate fără a determina rescrierea programelor de aplicație.
Independența logică a datelor se referă la posibilitatea adăugării de noi articole de date sau extinderea structurii conceptuale (globale), fără ca aceasta să impune rescrierea programelor existente.
2. Asigurarea unei redundenței minime și controlate a datelor din baza de date. Spre deosebire de sistemele clasice de prelucrare automată a datelor, stocarea datelor în cazul bazelor de date se face astfel încât fiecare dată să apară o singură dată. Totuși, nu sunt excluse nici cazurile în care, pentru a realiza performanțe sporite, referitoare la timpul de acces la date și răspuns la solicitările utilizatorilor, să se accepte o anumită redundață a datelor, încă în acest caz se va institui un control automat asupra ei în vederea asigurării coerenței datelor din bază.
3. Asigurarea unor facilități sporite de utilizare a datelor. Acesta presupune:
folosirea datelor de către mai mulți utilizatori în diferite scopuri (aplicații);
accesul cât mai simplu al utilizatorilor la date, fără ca aceștia să fie nevoiți să cunoască structura întregii baze de date, acest lucru rămânând în sarcina administratorului bazei de date;
existența unor limbaje performate de regăsire a datelor, care permit exprimarea sub forma unei conversii, a unor criterii de selecție a datelor și indicarea unor reguli cât mai generale pentru editarea informațiilor solicitate;
spre deosebire de sistemul clasic de prelucrare pe fișiere, unde există un singur criteriu de adresare (cel care a stat la baza organizării fișierului) în cazul bazelor de date, sistemul de gestiune trebuie să ofere posibilitatea unei acces multicriterial, fără sortări suplimentare, în timp ce modificarea criteriului la fișierele clasice implică reorganizarea lor;
utilizarea unui limbaj cât mai apropiat de limbajul natural, cu posibilitatea exploatării bazei de date în regim conversațional. Acesta ar oferi posibilitatea exploatării în mod facil a bazei de date și către utilizatorii neinformaticieni.
4. Sporirea gradului de securitate a datelor împotriva accesului neautorizat la ele. În condițiile bazei de date, administratorul bazei de date poate prevedea ca accesul la baza de date să se facă numai prin canale corespunzătoare, și poate, totodată, defini, verificări de autorizare relizate oricând se încearcă accesul la anumite date;
5. Asigurarea integrității datelor împotriva unor ștergeri intenționate sau neintenționate, prin intermediul unor proceduri de validare, a unor protocoale de control concurent și a unor proceduri de refacere a bazei de date după incidente.
6. Asigurarea partajabilității datelor. Partajabilitatea datelor trebuie înțeleasă nu numai sub aspectul asigurării accesului mai multor utilizatori la aceleași date, ci și acela al posibilității dezvoltării unor aplicații fără a se modifica structura bazei de date.
1.7.2 Funcțiile unui sistem de gestiune a bazei de dat
Pentru realizarea obiectivelor enumerate mai sus, sistemele de gestiune a bazelor de date dispun de o serie de componente ce permit efectuarea nimeroaselor operații. În funcție de natura lor și scopul urmărit, operațiile pot fi grupate pe activități. Activitățile acceptă și ele o grupare pe funcții (una sau mai multe activități, relativ omogene, vor realiza o anumită funcție).
Ținând seama de multitudinea sarcinilor ce revin unui sistem de gestiune a bazelor de date și grupând aceste sarcini pe activități și apoi pe funcții, se deduc, în final, funcțiile sistemului de gestiune. Ținând seama de complexitatea sistemului de gestiune, de facilitățile propuse a fi oferite de acesta, de limbajele utilizate și tipul bazei de date ce urmează a fi gestionate de SGBD, gruparea activităților pe funcții are un oarecare caracter relativ. În situația sistemelor de gestiune ce utilizează limbaje gazdă de nivel înalt, identificarea și delimitarea funcțiilor nu este atât de evidentă. În ciuda acestor particularități, totuși, se pot deduce câteva funcții cu caracter de generalitate pentru toate sistemele de gestiune a bazei de date.
Prezentăm în continuare câteva astfel de funcții (fig. 1.11.).
Fig. 1.11. Funcțiile unui SGBD
Funcția de descriere a datelor permite definirea structurii bazei de date cu ajutorul limbajului de definire. Definirea datelor poate fi realizată la nivel logic, conceptual și fizic. La nivelul acestei funcții se descriu multitudinea atributelor (câmpurilor) din cadrul structurii bazei de date, legăturile dintre entitățile bazei de date sau dintre atributele aceleași entități, se definesc eventualele criterii de validare a datelor, metodele de acces la date, aspectele referitoare la asigurarea integrității și confidențialității datelor, etc. Rezultatul acestei funcții se va concretiza în schema bazei de date, memorate în cod intern.
Funcția de manipulare a datelor este cea mai complexă funcție și realizează următoarele activități:
crearea (încărcarea) bazei de date;
adăugarea de noi înregistrări (tupluri);
suprimarea unor înregistrări;
modificarea valorilor corespunzătoare unor câmpuri;
căutarea, sortarea și editarea parțială sau totală a unei înregistrări virtuale etc.
Funcția de manipulare a datelor se realizează prin intermediul limbajului de manipulare a datelor.
Funcția de utilizare asigură mulțimea interfețelor necesare pentru comunicarea tuturor utilizatorilor cu baza de date. În cadrul realizării acestei funcții, apar mai multe categorii de utilizatori:
utilizatori “liberi” sau conversaționali. Aceștia reprezintă categoria beneficiarilor de informații (utilizatori finali) care utilizează limbajele de interogare a bazei de date într-o formă simplistă. Ei apar ca utilizatori neinformaticieni;
utilizatori programatori, care utilizează limbajele de manipulare, realizând proceduri complexe de exploatare a bazei de date;
administratorul bazei de date apare ca un utilizator special și are rolul hotărâtor în ceea ce privește funcționarea optimă a întregului ansamblu.
Funcția de administrare a bazei de date apare ca o funcție complexă și este de competența administratorului bazei de date.
1.7.3 Clasificarea sistemelor de gestiune a bazelor de date
Clasificarea SGBD se poate realiza din mai multe puncte de vedere.
Din punctul de vedere al sistemelor de calcul pe care se implementează pot fi: sisteme de gestiune pentru calculatoarele mari; sisteme de gestiune pentru minicalculatoare; sisteme de gestiune pentru microcalculatoare.
În prezent se manifestă tendința ca majoritate a sistemelor de gestiune a bazei de date să fie compatibile pe platforme cât mai largi de sisteme de calcul.
Din punct de vedere al limbajului pe care îl utilizează, sunt: sisteme cu limbaj gazdă; sisteme cu limbaj autonom.
Sistemele cu limbaj gazdă readlizează activitățile de creare, actualizare și interogare a bazei de date, utilizând limbajele de nivel înalt sau extensii ale acestora, proprii sistemului de calcul pe care se implementează baza de date. Avantajul acestor sisteme constă în posibilitățile sporite ce le oferă limbajele de nivel înalt în elaborarea unor proceduri complexe. Ele reprezintă dezavantajul că formularea cerințelor nu este atât de simplificată ca în cazul sistemelor cu limbaj autonom.
Din punct de vedere al concepției de organizare a datelor pe care le gestionează: sisteme de gestiune a bazei de date cu structuri ierarhice și rețea; sisteme de gestiune a bazei de date releționale;sisteme de gestiune a bazelor de date orientate obiect.
Din punct de vedere al modului de localizare a bazei de date: sisteme de gestiune a bazei de date centralizate; sisteme de gestiune a bazei de date distribuite.
Marea majoritate a sistemelor de gestiune apărute în ultima perioadă dispun și de o componentă de gestiune distribuită a datelor.
1.8. Mașini baze de date. Arhitectura mașinilor baze de date
Calculatoarele “baze de date” și “mașinile baze de date” au apărut ca soluții de îmbunătățire a lucrului cu bazele de date, de ameliorare a performanțelor sistemelor de gestiune a bazei de date. Ideea de bază o constituie descentralizarea prelucrării datelor, în scopul evitării saturării memoriei și a procesoarelor calculatorului central. Această descentralizare înseamnă transferarea unei părți importante din funcțiile unui SGBD unui calculator periferic (unui așa numit “calculator backend”), realizându-se astfel deplasarea algoritmilor de căutare și a celor de actualizare a datelor mai aproape de memoria secundară, deci de locul unde sunt memorate datele (fig. 1.14.).
Fig.1.14. Calculatorul backen
Calculatorul backend poate fi un calculator clasic, dar cu un soft specific (de SGBD), caz în care poartă numele de calculator de bază de date sau poate fi o mașină cu hard specializat în gestiunea bazelor de date (în efectuarea operațiilor pe o bază de date), situație în care este denumit mașină baze de date.
Prin introducerea unui backend se obțin urătoarele avantaje în lucrul cu baze de date:
se transferă în memoria calculatorului central numai datele utile, evitându-se astfel saturarea acesteia;
specializarea backend-ului în prelucrări pe baze de date determină performanțe sporite în gestionarea bazelor de date, în raport cu ale unui calculator general (cental);
posibilitatea unor tehnologii speciale, de înaltă performanță în realizarea hardului specializat în lucrul cu baze de date;
utilizarea unor tehnici avansate de prelucrare sau acces la date, precum prelucrarea paralelă.
Există mai multe variante de utilizare a calculatoarelor backend, dintre care:
utilizarea unui singur calculator bază de date; utilizarea mai multor calculatoare bază de date; utilizarea unei mașini bază de date.
1.Utilizarea unui singur calculator bază de date. În această variantă, se
recurge la utilizarea unui singur hard convențional (calculatorul bază de date)
drept calculator backend. Acest hard poate fi, de exemplu, un minicalculator. Softul pentru realizarea funcțiilor de gestiune a bazei de date este plasat pe calculatorul bază de date. Softul de interfață (inclusiv cel de comunicații date) se află plasat atât pe calculatorul central, cât și pe backend. La nivelul calculatorului central, interfața programelor de aplicații cu baza de date apar în același mod ca la lucrul convențional cu baza de date (cu sistemul de gestiune a bazelor de date operând pe calculatorul central). Cu ajutorul softului de interfață, se transmit către calculatorul bază de date toate cererile de lucru pe baza de date.
2.Utlizarea mai multor calculatoare baze de date. Funcțiile calculatorului central sunt similare celor pe care la are acesta în varianta anterioară. Deosebirea dintre aceste două variante constă în faptu că drept calculatorul backend figurează mai multe harduri convenționale, atașate la un controler.
Această variantă de lucru oferă posibilitatea de paralelism în prelucrarea datelor și/sau accesul la date. Fiecare calculator bază de date poate dispune de software-ul complet pentru realizarea funcțiilor de gestiune a bazei de date, având însă dreptul să lucreze numai pe anumite partiții ale bazei de date sau poate deține o parte din software-ul de gestiune a bazei de date (specializare în realizarea anumitor funcții), caz în care are dreptul să lucreze pe întreaga bază de date.
3.Utilizarea unei mașini bază de date. Calculatorul backend este realizat special pentru efectuarea de operații pe baza de date. Software-ul mașinilor baze de date conțin proceduri de control a modului de efectuare a acestor operații.
Este posibil ca o parte din funcțiile de gestiune a bazei de date (în special de nivel înalt, precum: interfața cu utilizatorul, optimizarea cerințelor de date) să fie realizate de calculatorul central, mașinii bază de date fiindu-I transferate, în acest caz, numai operațiile de nivel scăzut (accesul la date).
Cel mai adesea, o mașină bază de date realizează în totalitate funcțiile de gestionare a bazei de date.
Avantajul utilizării mașinilor bază de date rezidă în faptul că în acest caz, nu se manifestă nici un fel de restricții în realizarea unor performanțe sporite de lucru cu baze de date (mașinile bază de date permit utilizarea unor tehnologii mai avansate, a unor arhitecturi mai bine adaptate cerințelor lucrului cu baze da date, în special pentru prelucrarea și accesul paralel la date).
1.8.1 Arhitectura mașinilor bază de date
În cadrul acestei arhitecturi, pot fi puse în evidență următoarele componente de mai mare importanță; gestionarul de comunicații; gestionarul de cereri; gestionarul memoriei asociative.
Comunicarea între calculatorul central și mașina bază de date se realizează cu ajutorul gestionarului de comunicații, care este localizat atât la nivelul mașinii bază de date cât și la nivelul calculatorului central. La nivelul calculatorului central se mai află plasat și gestionarul interfeței care are sarcina de a lua în considerare, de a analiza și de a codifica cererile de lucru cu baza de date.
Ansamblu de mesaje prin care se realizează dialogul dintre calculatorul central și mașina bază de date poartă numele de protocol de manipulare a datelor.
Gestionarul de cereri reprezintă o componentă importantă a mașinii bază de date, și are rolul de a descompune cererile de lucru cu baza de date (dă căutare și de actualizare a datelor), în operații mai simple, pe care apoi, în scopul executării lor, le ordonează într-o secvență convenabilă. Totodată, gestionarul de cereri execută o serie de sortări și/saz calcule aritmetice. Tot gestionarul de cereri este și cel care determină care sunt căile de acces cele mai scumpe către date.
Având în vedere funcțiile realizate, gestionarul de cereri poate fi considerat drept optimizatorul de cereri al mașinii bazei de date.
CAPITOLUL 2
PROIECTAREA BAZELOR DE DATE
2.1 Etapele de realizare a bazelor de date
realizarea unei BD presupune parcurgerea următoarelor etape:
analiza sistemului (domeniului) economic pentru care se realizează BD și a cerințelor informaționale asociate;
proiectarea structurii BD (schema conceptuală, externă și internă);
încărcarea datelor în BD;
exploatarea și întreținerea BD.
Conținutul acestor etape, respectiv activitățile implicate și modul lor de desfășurare depind, în general, de tipul BD precum și de domeniul pentru care se construiește BD. Există însă și o serie de aspecte cu caracter general care nu sunt influențate de specificul unui anumit domeniu economic-social sau de caracteristicile unui anumit tip de BD.
Realizarea BD presupune utilizarea unor metode și tehnici de analiză (tehnica normalizării relațiilor, a diagramelor de dependență riguroasă etc.), de programare precum și a unor instrumente de lucru (limbaje de descriere a datelor – LDD, limbaje de manipulare a datelor – LMD etc.
2.2 Analiza sistemului (domeniului) economic și a cerințelor informaținale
Activitatea de analiză presupune:
1. analiza componentelor și a legăturilor (asocierilor) dintre acestea, activitate cunoscută sub denumirea de analiză structurală sau statică, în urma căreia se obține modelul structural (static) al sistemului;
2. analiza stărilor sistemului și a tranzițiilor posibile între aceste stări, în raport de anumite evenimente. Este așa numita analiză temporală (comportamentală), prin care se obține modelul dinamic (sau temporal) al sistemului;
3. analiza cerințelor informaționale asociate domeniului economic. În urma acestei activități se obține modelul funcțional (transformațional) al sistemului economic;
4. integrarea modelelor sistemului economic (structural, dinamic și funcțional) în scopul corelării și completării lor.
Pe baza rezultatelor obținute în această etapă se trece la următoarea etapă de realizare a BD și anume la definirea structurii BD.
Pentru BD prerelaționale (ierarhice, rețea) și relaționale este deosebit de important analiza structurală a sistemului întrucât aceste tipuri de BD reflectă preponderent aspectele structurale ale sistemului și mai puțin cele de dinamică (de comportament) și respectiv de semantică (de semnificație) a datelor. Aceste din urmă elemente sunt extrem de importante în cazul BD postrelaționale, în special BDOO, ceea ce face ca analiza temporală și funcțională să fie, pentru BDOO tot atât de importante ca și analiza structurală.
Analiza sistemului (domeniului) economic se finalizează prin integrarea rezultatelor obținute în cadrul analizei structurale, dinamice și funcționale, mai precis prin integrarea modelului structural, dinamic și a velui funcțional.
Modelul structural și cel dinamic sunt obținute printr-o investigare a sistemului real, a proprietăților intrinseci, statice și dinamice ale componentelor acestui sistem, proprietăți care sunt independente de aplicațiile care operează asupra lor. Modelul funcțional este rezultatul analizei cerințelor informaționale ale utilizatorilor, mai precis a tranzacțiilor (aplicațiilor) prin care pot fi satisfăcute aceste cerințe.
Perspectiva diferită din care este realizată, analiza explică de ce rezultatele obținute pot să difere fiind necesară o coordonare, deci o integrare a acestor rezultate.
În cadrul etapei de integrare a modelelor sistemului economic se stabilește în ce măsură modelul structural și cel dinamic satisfac necesitățile diferitelor aplicații, verificându-se completitudinea (existența elementelor informaționale solocitate) și consistența lor (în ce măsură componentele modelelor sunt necesare și suficiente în raport cu procesele de prelucrare). Se verifică dacă relațiile dintre compenentele sistemului sunt stabilite în mod corespunzător, pentru a face posibilă regăsirea informațiilor din mai multe entități. Se determină, de asemenea dacă legăturile dintre entități asigură coerența informațiilor, posibilitatea efectuării de actualizări concomitente asupra datelor redundante.
Se urmărește ca toate elementele informaționale participante la diferitele tranzacții să fie asignate, ca atribute ale diverselor entităti.
Pe baza acestei analize integrate se efectuează adăugările și/sau corelările necesare între modelele sistemului.
În final, se ajunge ca modelul structural și cel dinamic să nu mai fie complet independent față de aplicații, iar modelul funcțional să nu mai fie orientat exclusiv pe aplicații. Modelarea orientată exclusiv pe aplicații are dezavantajul înglobării unor cerințe eterogene, care complică artificial modelul și oferă posibilități scăzute de adaptare a modelului la noi cerințe informaționale. Pe de altă parte, modelarea complet independentă de aplicații presupune o analiză costisitoare, complexă care solicită resurse considerabile, dezvoltarea aplicațiilor reclamând, de asemenea, un effort substanțial. Integrarea analizei structurale dinamice și a celei funcționale elimină aceste dezavantaje.
2.3 Proiectarea structurii bazei de date
Modelele obținute în urma analizei sistemului economic sunt modele informaționale, adică modele ale datelor despre sistem.
O caracteristică esențială a acestor modele (numite și modele conceptuale sau semantice) este faptul că sunt independente de instrumentul, respectiv SGBD-ul care le face să devină opereționale.
Este extrem de important ca în etapa de analiză a sistemului economic și a cerințelor informaționale asociate, activitatea de modelare a datelor să se realizeze independent de un SGBD. Orientarea pe conceptele proprii unui anumit SGBD prezintă numeroase dezavantaze, dintre care se pot menționa:
schimbarea SGBD-ului impune reproiactarea BD;
conceptele tehnice ale SGBD-ului pot influența negativ activitatea de analiză (și deci de modelare), prin rectricții impuse de acestea, cate pot încuraja sau descuraja anumite reprezentări;
fixând ca punct de plecare facilitățile unui SGBD utilizatorul neinformatician care nu stăpânește acest SGBD nu își poate exprima cerințele în deplină cunoștință de cauză.
Trecerea la proiectarea structurii BD impune luarea în considerare a SGBD-ului cu ajutorul căruia va fi implementată și exploatată BD.
Structura BD reprezintă, de fapt un model al datelor, exprimat în conceptele specifice unui anumit SGBD, cea ce face ca proiectarea structurii BD să reprezinte transpunerea modelelor conceptuale în termenii unui model al datelor suportat de un anumit SGBD (model ierarhic, rețea, relațional, funcțional, orientat obiect).
Tendința care se manifestă în prezent, de nuanțare și îmbogățire a modelelor da date cu care operează SGBD-urile, face ca trecerea de la etapa de analiză la etapa de proiectare a structurii BD să fie din ce în ce mai simplă și mai facil de realizat.
Etapa de proiectare a structurii BD constă din următoarele activități:
alegera SGBD-ului care să fie utilizat pentru implementarea și exploatarea BD;
proiectarea schemei conceptuale a BD;
proiectarea schemei externe (subschemei) BD;
proiectarea schemei interne (de memorare) a BD.
Aceste activități sunt puternic influențate de tipul BD care se proiectează. În continuare, vor fi reprezentate numai aspectele generale ale acestor activități, urmând ca elementele specifice să fie prezentate în capitolele dedicate diferitelor tipuri de BD.
2.3.1 Alegerea sistemului de gestiune a bazei de date
Procesul de alegere a unui SGBD presupune realizarea următoarelor activități:
Stabilirea cerințelor utilizatorilor, sub aspectul:
tipurilor de aplicații;
timpului de răspuns;
confidențialității datelor;
securitatea datelor;
ușurința de utilizare și altele.
Stabilirea cerințelor de ordin tehnic privind realizarea BD, precum:
portabilitatea SGBD (utilizarea SGBD-ului pe diferite sisteme de calcul);
portabilitatea colecțiilor de date și a programelor;
facilitățile de încărcare, exploatare și întreținere a BD ce trebuiesc asigurate (modalitățile de descriere a datelor, tehnicile de organizare și regăsire a datelor etc.) și altele.
Stabilirea cerințelor de ordin economic, privind:
încărcarea în bugetul alocat pentru realizarea BD;
timpul necesar pentru pregătirea utilizatorilor și trecerea la exploatarea curentă a BD etc.
Ierarhizarea cerințelor în funcție de importanța (prioritatea) acordată fiecărei cerințe în parte.
Analiza comparativă a SGBD-ului disponibile și/sau posibil de achiziționat, în funcție de caracteristicile pe care le reprezintă aceste SGBD-uri.
Stabilirea corespondenței între cerințele formulate și caracteristicile diferitelor SGBD-uri analizate, pentru a se determina măsura în care diferitele SGBD-uri analizate permit satisfacerea cerințelor formulate.
Alegerea propriu-zisă a SGBD-ului care să fie utilizat la realizarea BD.
2.3.2 Proiectarea schemei conceptuale
Proiectarea schemei conceptuale a BD presupune:
1.stabilirea colecțiilor de date și definirea detaliată a conținutului acestora;
2.determinarea legăturilor dintre colecțiile da date și a modului de reprezentare a acestora în cadrul schemei conceptuale;
3.testarea schemei obținute și revizuirea acesteia, dacă este cazul;
4.descrierea schemei conceptuale în limbajul de descriere a datelor de care dispune SGBD-ul și încărcarea acestei descrieri în BD.
În realizarea acestor activități sunt utilizate, în principal modelul structural și cel dinamic al sistemului economic.
2.3.3. Proiectarea schemei externe
Schema externă a BD reprezintă forma sub care apare schema conceptuală pentru un utilizator oarecare. Programele de aplicație operează asupra elementelor schemei conceptuale prin intermediul schemei externe, având acces doar la acele elemente care sunt incluse în schema externă.
În general, elementele care compun schema externă sunt similare celor care compun schema conceptuală, depinzând totuși de SGBD utilizat.
În concepția CODASYL, schema externă reprezintă o parte a schemei conceptuale. Articolele care compun grupurile și înregistrările din schema conceptuală.
În cazul BDR, schema externă este realizată, în principal cu ajutorul viziunilor(view-urilor) și al mecanismelor de acordare a drepturilor de acces la BD.
2.3.4. Proiectarea schemei interne
Este cunoscut faptul că schema conceptuală încarcă diferitele forme de structurare a datelor: liniară, arborescentă, rețea, relațională. Memorarea datelor pe suportul fizic îmbracă numai forma unei structuri liniare. De aceea, la proiectarea schemei interne a BD se pune problema modului în care să fie liniarizată schema conceptuală. Metoda de liniarizare a schemei conceptuale este specifică SGBD-ului utilizat. O serie de SGBD-uri, de exemplu INGRES fac apel la metodele de memorare a datelor pe suportul de informație pe care le folosesc sistemele de operare gazdă. Alte SGBD-uri utilizează metode proprii de stocare a datelor pe suportul fizic. Aceste SGBD-uri depind mai puțin de sistemele de operare gazdă, ceea ce le imprimă o portabilitate sporită, comparativ cu SGBD-urile din prima categorie.
2.4 Încărcarea datelor în baza de date
Sunt etape în care se realizează popularea masivă cu date a BD. Deși conținutul acestei etape este relativ simplu, activitatea putând fi considerată drept o activitate de rutină, fără dificultatea și creativitatea reclamate de activitățile de analiză și proiectare, încărcarea datelor în BD reprezintă totuși o activitate dificil de realizat datorită volumului mare de date care se transferă în BD de la diferite surse de date.
Popularea cu date a BD trebuie să garanteze încărcarea numai a datelor corecte și acesta cu un minim de effort, respestiv cu un minim de parcurgeri ale ciclului: validare-corectare.
Sursele de alimentare cu date a bazei pot fi (fig.2.41.):
1.documente primare;
2.colecții de date, gestionate prin diverse instrumente informatice, de exemplu sisteme de gestiune a fișierelor.
Indiferent de sursa datelor, se recomandă ca în scopul încărcării BD să se constituie colecții temporare de date (fișiere). În situația în care datele se preiau din documente este necesară utilizarea unor colecții temporare pentru a se deplasa activitatea de validare a datelor cât mai devreme în procesul de încărcare a datelor în BD. Programele de încărcare a bazei de date, scrise în limbajul de manipulare a datelor de care dispune SGBD-ul trebuie să conțină cât mai puține validări întrucât aceste validări încetinesc mult execuția programelor și determină apatiția unor “puncte albe” în BD, de exemplu, legături neconstituite datorită inexistenței datelor.
Pe la altă parte, în situația în care datele se preiau din colecții gestionate prin alte instrumente informatice este necesară utilizarea colecțiilor temporare pentru a se putea adapta cât mai bine structura acestora colecții la modul de organizare a datelor în BD. Programele de încărcare vor fi în acest caz mai simple și mai robuste, asigurând un transfer mai rapid al datelor în cadrul BD.
Fig.2.41. Încărcarea datelor în BD
2.5 Exploatarea și întreținerea bazei de date
Exploatarea BD de către diferiți utilizatori finali este realizată în scopul satisfacerii cerințelor de informare ale acestora. SGBD sprijină utilizatorii finali în exploatarea BD, oferind o derie de mecanisme și instrumente cum ar fi de exemplu, limbajele de manipulare a datelor care servesc la descrierea cerințelor de date.
Întreținerea BD reprezintă o activitate complexă, care se referă la actualizarea datelor din cadrul BD și la reproiectarea structurii BD. Activitatea este realizată în principal de către administratorul BD. Întreținerea BD este facilitată, ca și exploatarea BD de către SGBD utilizat, de exemplu prin intermediul limbajelor de manipulat’re a datelor, utilitarelor pentru generarea de ststistici privind activitatea BD etc.
CAPITOLUL 3
MODELELE BAZEI DE DATE
3.1 Modelul ierarhic și baze de date ierarhice
Simplitatea conceptului de ierarhie și larga sa aplicabilitate în modelarea realității înconjurătoare, au făcut ca modelul ierarhic să fie primul model utilizat pentru organizarea datelor în baze de date. El a fost acceptat cu ușurință de programatori, datorită structurii familiare pe care o utilizează.
Modelul ierarhic are ca structură de bază structura arborescentă (ierarhia). Proprietățile acestei structuri de date determină caracteristicile și restricțiile modelului ierarhic. În modelul ierarhic fiecărui nod al arborelui îi corespunde un tip de înregistrare, format din unul sau mai multe câmpuri, reprezentând atribute ce descriu entități. Descrierea acestei structuri poate fi făcută utilizând diagrame de structură (fig.3.1).
Din figură se observă că un nod părinte poate avea subordonate mai multe noduri copil, în timp ce un nod copil poate avea un singur părinte, ceea ce înseamnă că relația părinte-copil între tipurile de înregistrări va fi 1 la M (“unu la mulți”) și cea copil-părinte va fi de tipul 1 la 1 (“unu la unu”).
Unui tip de întegistrare din diagrame de structură a modelului ierarhic îi corespunde în baza de date un anumit număr de realizări. Relațiile între realizările unui cuplu părinte-copil sunt indicate de arcele care leagă cele două componente ale diagramei. Astfel arcul ce leagă TIP_ÎNREG_1 de TIP_ÎNREG_2 indică faptul că unei realizări a tipului părinte (TIP_ÎNREG_1) I se pot asocia “n” realizări ale tipului copil (TIP_ÎNREG_2) și că o realizare a tipului copil e asociată cu o singură realizare a tipului părinte. Între TIP_ÎNREG _3 și TIP_ÎNREG _4, relația de 1 la 1 este reciprocă. Acestea sunt singurele tipuri de relații permise între realizările tipurilor de înregistrări ale modelului ierarhic
Fig.3.1. Diargamă de structură ierarhică
O bază de date ierarhică poate fi definită ca fiind o mulțime ordonată de realizări ale unui singur tip arbore.
Noțiunea de tip de arbore
Un tip arbore constă dintr-un singur tip de înregistrare “rădăcină”, la care se adaugă o mulțime ordonată alcătuită din unul sau mai multe tipuri de subarbori dependenți. Un tip subarbore constă dintr-un tip de înregistrare rădăcină și o mulțime ordonată alcătuită din unul sau mai multe tipuri de subarbori dependenți. Deci, un tip arbore constă dintr-o ierarhie a tipurilor de înregistrări.
3.2 Modelul rețea și baze de date rețea
Modelul rețea utilizează structura rețea ca structura da date da bază. Rețeaua este un graf orientat alcătuit din noduri conectate prin arce. Nodurile corespund tipurilor de înregistrare și arcele pointerilor. Modelul rețea folosește înregistrările pentru a reprezanta entitățile și pointerii între înregistrări pentru a reprezenta relații dintre entități.
. Structura de rețea (fig.3.2.) seamănă cu structura de date arborescentă, cu diferența că un nod dependent (copil) poate avea mai mult decât un singur părinte.
Fig.3.2. Structură rețea
O bază de date rețea constă dintr-un număr oarecare de tipuri de înregistrări. O înregistrare e constituită dintr-un număr oarecare de câmpuri (elemente sau agregate). Un câmp este cea mai mică unitate de date care are nume. Fiecare câmp are un tip de dată asociat. Câmpul corespunde unui atribut și înregistrarea unei entități.
3.3 Modelul relațional al datelor
Modelul relațional al datelor a fost primit cu entuziasm și acceptat aproape fără rezerve atât de specialiștii din domeniul bazelor de date cât și de utilizatori, încă de la apariția primelor articole ale lui Codd E. F., în 1970, prin care erau puse bazele acestui model. Ideea unui model asamblist al datelor a fost lansată în 1968 de către Childs D.F. care a subliniat faptul că orice structură de date poate fi reprezentată printr-una sau mai multe tabele de date, în cadrul cărora este necesar să existe și informații de legătură, pentru asigurarea legăturilor între tabele. Codd are meritul de a fi articulat și dezvoltat idei cu privire la utilizarea teoriei apartenenței la ansambluri sub forma unui model coerent de structurare a datelor – modelul relațional. Despre acest model s-a scris mult, astfel încât în prezent, lucrările consacrate modelului relațional sunt cu mult mai numeroase decât cele dedicate altor tipuri de modele și sisteme. Totodată și numărul sistemelor care apar sub eticheta de “relațional” sau care sunt prezentate cu ajutorul conceptelor relaționale este foarte mare.
Componentele modelului relațional sunt:
Structura relațională a datelor. În cadrul bazelor de date relaționale,datele sunt organizate sub forma unor tablouri bidimensionate (tabele) de date, numite relații. Asocierile dintre relații se reprezintă explicit prin atribute de legături. Aceste atribute figurează într-una din relațiile implicate în asociere (de regulă, în cazul legăturilor de tip “unu la mulți”) sau sunt plasate într-o relație distinctă, construită special pentru exprimarea legăturilor între relații (în cazul legăturilor de tip “mulți la mulți”). O bază de date relațională (BDR) reprezintă un ansamblu de relații, prin care se reprezintă atât datele cât și legăturile dintre date.
Operatorii modelului relațional. Definesc operațiile care se pot efectua asupra relațiilor, în scopul realizării funcțiilor de prelucrare asupra bazei de date, respectiv consultarea, inserarea, modificarea și ștergerea datelor.
Restricțiile de integrare ale modelului relațional. Permit definirea stărilor coerente ale bazei da date.
3.4 Modelul de date orientat pe obiecte
Bazele de date orientate pe obiecte permit crearea de obiecte complexe, din componente mai simple, fiecare având propriile atribute și propriul comportament. Să considerăm, de exemplu, desenarea unui mecanism complex. Acesta este compus din diverse tipuri de piese. Roțile dințate pot fi un exemplu.
Fiecare roată dințată va ști să se deseneze. Mecanismul în ansamblu se va autodesena cerând tuturor componentelor sale să se autodeseneze și să rezolve și problemele de vizibilitate. Cam în același fel se poate obține și o simulare animată a funcționării, toate piesele componente interacționând.
Obiectivele principale ale sistemelor de gestiune orientate pe obiecte sunt:
Puterea de modelare superioară a datelor. Acesta se realizează prin:
deschiderea către noi aplicații: CAO, FAO, cartografie, gestiune de documente, birotică;
facilitatea sarcinilor de concepție: economie în expansiune, posibilitatea de generalizare și agregare a relațiilor, flexibilitate în modelare;
evoluție către multimedia (sunet, imagini, texte);
Posibilitatea de deducție superioară (ierarhie de clase, moștenire);
Ameliorarea interfeței cu utilizatorul;
Luarea în considerare a aspectelor dinamice, integrarea descrierii structurale și comportamentale.
Un model de date orientat pe obiecte are la bază noțiunea de entitate conceptuală și definește un obiect ca o colecție de proprietăți care descriu entitatea.
Nu există un “model orientat pe obiecte” propriu-zis, care să descrie în mod coerent structura și funcționarea unei baze de date orientate obiect. Lipsa acestuia s-ar putea datora mai multor motive. Unul ar putea fi imaturitatea tehnologiei. Altul, mai plauzibil, îl constituie naturalețea dezarmantă a tehnologiei orientate pe obiecte.
3.5 Modelul funcțional al datelor
Baze de date funcționale (BDF) au apărut în 1979 odată cu definirea modelului funcțional al datelor și cu utilizarea unor limbaje fundamentate pe principiile programării funcționale ca limbaje de descriere și manipulare a datelor pentru bazele de date. Modelul fucțional al datelor a fost introdus de Shipman având la bază noțiunea de entitate și funcție.
Pentru fiecare entitate (obiect) de un anumit tip există o colecție de funcții care sunt aplicate acelui obiect. Unele funcții oferă o valoare simplă, altele oferă valori multiple. Spre deosebire de modelul relațional, modelul funcțional permite exprimarea proprietăților unor obiecte atât sub forma inor valori explicite cât și ca pointeri spre alte obiecte. În general, proprietățile pot fi obținute prin aplicarea funcțiilor. Dacă rezultatul unei funcții punctează spre alte entități, atunci se pot aplica asupra acestora din urmă alte funcții, rezultând o compunere de funcții.
Noțiunea de funcție este esențială în cadrul modelului funcțioanal al datelor. O BDF este definită drept un ansamblu de funcții memorate. Funcțiile sunt utilizate atât pentru definirea atributelor de entitate, deci pentru descrierea entităților, cât și pentru exprimarea asocierilor dintre entități.
Într-o BDF, atributele de entitate sunt sconsiderate drept funcții care iau valori din anumite domenii. Legăturile dintre entități sunt reprezentate tot cu ajutorul noțiunii matematice de funcție. Funcțiile nu trebuie să mapeze într-o singură direcție, impunându-se prezența unui mecanism explicit de inversare a fincțiilor. În plus, este necesar și un mecanism pentru compunerea funcțiilor prin care să se asigure navigarea în cadrul modelului funcțional.
Descrierea datelor și a relațiilor dintre acestea cu ajutorul noțiunii de funcție face ca manipularea datelor să se poată realiza pe baza programării funcționale, să fie de ci o manipulare funcțională.
3.6 Modelul bazei de date deductive
Anii optzeci au marcat apariția și consolidarea unui nou concept în cadrul tehnologiei bazelor de date: bazele de date inteligente (BDI). Dintre realizările extrem de convingătoare din domeniul bazelor de date inteligente pot fi menționate bazele de date deductive (BDDe).
BDI trebuie să permită tratarea unei mari cantități de date, provenind din diferite surse, sub diferite forme de prezentare (text, imagine, sunet, etc). BDI reclamă, deci utilizarea tehnologiilor multimedia. Trebuie subliniat faptul că diferite medii, precum imaginile sau sunetele, atunci când sunt aduse în formă digitizată, consumă o mare cantitate de suport de memorie. De exemplu, o pagină obișnuită de caractere memorată sub formă de text ASCII reclamă în jur de 2KB de memorie, în timp ce reprezentarea picturală (de tip imagine) a aceleiași pagini reclamă 500KB memorie. În situația în care o persoană vorbește timp de două minute, pentru a citi aceeași pagină, digitizarea vocii reclamă, pentru memorare 1MB. Pe lângă suport de memorare, tehnologiile multimedia reclamă dispozitive speciale pentru introducerea-extragerea datelor (cititor optic de caractere, scanner, plotter, sintetizator de voce etc).
O mare cantitate de date poate fi cu adevărat utilă numai în condițiile utilizării unor metode adecvate de organizare și regăsire. Modelul datelor utilizat în cadrul unei BDI irebuie să ofere datelor o structură flexibilă care să permită încorporarea în BD atât a caracteristicilor structurale, cât și a celor comportamentale ale realității reflectate informațional. Totodată, BDI trebuie să poată încorpora cât mai mult din semantica datelor în scopul transformării BD dintr-un ansamblu de date amorf, greu de tratat, într-un ansamblu posibil de interpretat drept răspunsuri la potențialele întrebări ale utilizatorilor. Transferarea semanticii datelor din cadrul programelor de aplicație, evitându-se duplicarea programelor cu funcționalitatea apropiată. Ținând seama de aceste cerințe, BDI recurg adesea la utilizarea modelelor orientate obiect pentru organizarea datelor.
A ști unde se găsețte o anumită dată și cum trebuie accesată, reprezintă în cadrul BDI de multe ori o sarcină extrem de dificilă.Se știe că în cadrul BD tradiționale pentru regăsire se utilizează modelul datelor, un sistem de indexare și un limbaj de cereri, toate având un caracter static, astfel încât actualizarea lor nu se poate realiza decât prin procese externe, la anumite intervale de timp. În cadrul BDI se utilizează frecvent procese de căutare inteligente, bazate pe inferențe care permite determinarea nevoilor informaționale ale utilizatorilor și a modului în care aceste nevoi pot fi satisfăcute. Este posibil ca informațiile necesare unui anumit utilizator nici să nu fie memorate explicit în BDI, fiind necesară inferențierea, derivarea lor de către SGBDI prin procese de raționament.
Nu numai procesul de căutare a datelor în cadrul BDI poate fi prezentat drept un proces inteligent, ci și procesele de asigurare a calității datelor din BDI, de gestionarea inteligent, ci și procesele de asigurare a calității datelor din BDI, de gestionare a tranzacțiilor etc. BDI presupun, deci înglobarea în cadrul SGBDI a unor puternice facilități de raționament automat. Aceste facilități de inferențiere fac ca BDI să dobândească un caracter dinamic. BDI sunt în mod necesar BD active, cu un comportament relativ autonom, care inițiază acțiuni fără intervenții externe asupra ei.
În sfârșit, SGBDI trebuie să încorporeze o serie de facilități de asistare a procesului de modeloare a datelor, precum și facilități de interacțiune cu utilizatorii, atât în ceea ce privește formularea cererilor de date, cât și în explicarea structurii BD și a comportamentului acesteia.
Aceste caracteristici ale BDI le fac extrem de utile în aplicații de o mare complexitate în care volumul, structura și dinamica datelor ridică probleme deosebite în utilizarea bazelor de date convenționale. Caracterul activ al BDI, precum și facilitățile de modelare și de interacțiune cu utilizatorii fac ca efortul de realizare și intreținere a BDI să se distribuie mai echilibrat între om și mașină, decât la BD convenționale
3.7 Modelul bazei de date distribuite
În ultimii ani, bazele de date distribuite (BDD) au devenit un sector important al prelucrării informației și se poate anticipa că importanța lor va crește rapid. Această tendință este motivată atât organizarea cât și tehnologic întrucât BDD elimină multe din neajunsurile BD centralizate și sunt bine venite pentru descentralizarea structurilor organizatorice.
O BDD poate fi definită ca o colecție de date integrate din punct de vedere logic dar fizic distribuite pe stațiile unei rețele de calculatoare.
Această definiție pune în evidență două aspecte importante ale BDD:
1. Integrarea logică a colecțiilor de date. Din punct de vedere al utilizatorului există o singură bază de date cu care utilizatorul interacționează la fel ca și în cazul bazelor de date centralizate (BDC).
2. Distribuirea fizică se referă la partiționarea fizică a bazei de date pe stații ale unei rețele de calculatoare.
Ambele aspecte sunt destul de vagi pentru a realiza deosebirile între BDD și un set de BD locale.
CAPITOLUL 4
PROTECȚIA BAZELOR DE DATE
Protecția bazelor de date constă într-un set de măsuri umane și facilități oferite de SGBD prin care se urmărește asigurarea integrității datelor, definită simplu prin corctitudinea datelor introduse și manipulate, și a securității datelor, ce vizează interzicerea accesului la date pentru persoanele ce nu au competențe în folosirea lor. Aceasta capătă o importanță deosebită în contextul extinderii folosirii configurațiilor cu număr mare de utilizatori și cu un volum mare de date de prelucrat.
În cea ce privește sfera de acțiune a metodelor utilizate pentru protecția datelor, pot fi puse în evidență două tendințe: protecția împotriva unor defecte sau erori accidentale și protecția completă care realizează în plus față de prima și protecția contra unor acțiuni violente. Teoretic, toate sistemele ar trbui să asigure protecția completă a datelor. În practică însă, costul protecției care crește pe măsură ce sunt reduse posibilitățile de apariție a unor erori și de violare a confidențialității datelor, este cel care dictează complexitatea metodelor de protecție care vor fi utilizate.
Aspectele protecției bazelor de date ce vor fi prezentate în continuare se bazează pe presupunerea că protecția informației la nivelul sistemului de operare este asigurată.
4.1 Integritatea datelor
Corespunzător situațiilor care pot genera apariția unor date incorecte în baza de date, se disting trei aspecte ale asigurării integrității datelor:
Asigurarea integrității semantice a datelor – presupune prevenirea introducerii unor date incorecte și a efectuării unor prelucrări greșite. Dacă acest lucru nu va fi împiedicat sau semnalat imediat, datele vor fi utilizate în alte prelucrări, declanțându-se astfel un proces necontrolat de alterare a bazei de date.
Cu cât sesizarea unei erori are loc după o perioadă mai mare, cu atât efectele ei vor fi mai greu sau chiar imposibil de înlăturat.
Controlul accesului concurent la date – presupune prevenirea obținerii unor rezultate incorecte din execuția concurentă a unor prelucrări în regim multi-utilizator. De exemolu, în cazul a două prelucrări concurente care constau în calcularea salariului mediu lunar al angajaților unei firme și respectiv, aplicarea unui procent de creștere de 10% salariilor angajaților, există riscul ca în calculul salariului mediu să intervină valori actualizate și valori vechi ale câmpului salariu, rezultatul fiind evident fără semnificație.
Salvarea și restaurarea bazei de date – presupun refacerea bazei de date afectată de funcționarea anormală sau căderea SGBD sau SO sau ca urmare a unor defecte hardware.
4.2 Securitatea bazei de date
Asigurarea securității bazei de date presupune interzicerea accesului neautorizat la date. Acesta se realizează cu ajutorul unui set de măsuri de protecție umane, software și hardware.
O primă astfel de măsură o poate constitui izolarea sistemului de calcul în încăperi în care accesul persoanelor să fie permis pe bază de legitimații sau a altor forme de identificare.
Un alt nivel de protecție îl poate constitui stabilirea de parole pe baza cărora să fie permis accesul la resursele sistemului de calcul.
În contextul lucrului efectiv cu baza de date se va verifica dacă utilizatorul are dreptul de a executa un tip de operație asupra anumitor date SGBD poate ține și un jurnal pentru urmărirea accesului la baza da date, pe baza căruia pot fi depistate încercările de acces neautorizat la baza da date.
Pentru cererile de I/O transmise sistemului de operare de către SGBD sunt posibile verificările suplimentare referitoare la utilizarea corectă a fișierelor sau a funcțiilor sistemului de operare.
Hardware-ul poate să ofere o protecție suplimentară, ca de exemplu transferarea datelor numai în zona de memorie controlată de SGBD. De asemenea, datele pot fi memorate pe suportul extern într-o formă criptată.
În cele ce urmează vor fi prezentate următoarele mecanisme de asigurare a securității bazei de date:
autorizarea și controlul accesului la date;
definirea și utilizarea viziunilor;
relizarea de proceduri speciale;
criptarea datelor.
Cea mai mare parte a SGBD actuale folosesc pentru identificarea utilizatorilor parole. Fiecare parolă va fi asociată cu anumite drepturi de acces la date, ea nefiind deci decât un prim obstacol pentru cei care încearcă să violeze securitatea bazei de date.
Astfel, pentru fiecare utilizator identificat prin parolă, SGBD menține o listă a privilegiilor acestuia. De asemenea, utilizatorii pot fi asociați unor grupuri de utilizatori, la drepturile fiecăruia adăugându-se drepturi stabilite pentru grupul respectiv.
Privilegiile unui utilizator depind de clasa de utilzatori căreia îi aparține. Astfel, administratorul bazei de date și de asemenea dreptul de a stabili sau revoca privilegii pentru ceilalți utilizatori. O altă clasă de utilizatori, în anumite SGBD, o constituie proprietatea celui care-l crează.Implicit, proprietarul unui obiect are toate privilegiile asupra acestuia, putând să le transmită sau revoce celorlalți utilizatori. Utilizatirii obișnuiți sunt cei care nu au în proprietate obiecte și nu au alte privilegii decât cele moștenite ca membrii ai unui grup sau menționate explicit de administratorul bazei de date sau proprietarii de obiecte.
Subiectul – în general, este reprezentat de un utilizator sau un grup de utilizatori identificat printr-o parabolă dar poate fi și un terminal, o tranzacție sau o aplicație. De asemenea, poate fi o combinație a acestora, ca de exemplu o anumită persoană care execută o tranzacție particulară la un anumit terminal.
Obiectul – este reprezentat de date ce trebuie protejate (înregistrare, relații, câmpuri, programe, baze de date). Nivelul la care se asigură protecția este specific fiecărui SGBD.
Restricțiile – reprezintă condiții suplimentare ca trebuie respectate când un subiect execută o acțiune asupra unui anumit obiect.
Majoritatea SGBD implementează versiuni simplificate ale acestui model. O variantă o constituie menținerea pentru fiecare subiect a unei tabele în care sunt specificate obiectele și drepturile stabilite pentru subiect asupra lor. O altă posibilitate constă în asocierea pentru fiecare obiect a unei tabele în care pentru fiecare subiect sunt specificate privilegiile sale în raport cu obiectul respectiv.
Aceste informații sunt stocate în dicționarul datelor și pentru ele trebuie prevăzute mecanisme de securitate speciale.
În general, SGBD permit specificarea privilegiilor prin comenzi speciale ale limbajului.
Viziunile (schemele externe) sunt partiții logice ale bazei de date. Ele sunt definite pentru diferiți utilizatori în raport cu necesitățile acestora de a avea acces la date, putând fi utilizate pentru a restricționa accesul la date.
Privilegiile pentru o viziune sunt specificate independent de cele pentru obiecte pe baza căreia este definită. Securitatea datelor este asigurată prin definirea tuturor drepturilor necesare unui utilizator pentru o viziune și revocarea drepturilor pentru obiectele inițiale.
Această modalitate este suficientă în cazul în care asupra datelor viziunii este permisă doar operația de citire. Pentru operația de modificare trebuie avute în vedere efectele laterale pe care aceasta la poate produce asupra viziunii acele operații care pot afecta obiectele inițiale. În caz contrar, pot să apară erori sau inconsistențe în baza de date.
Unele SGBD oferă facilitatea definirii unor proceduri ce vor fi păstrate la nivelul sistemului într-o formă precompilată.
În cadrul acestor proceduri vor fi specificate explicit operațiile ce trbuie efectuate asupra datelor. Utilizatorului i se va acorda dreptul de execuție a cestor proceduri și I se va interzice accesul la obiectele bazei de date gestionate de procedură.
Criptarea este operația de codificare a datelor pe timpul stocării sau al transportului, astfel încât descifrarea lor să poată fi făcută numai de posesorii de cod.
La nivelul SGBD această facilitate poate îmbrăca două forme:
1.existența unor rutine speciale care realizează criptarea datelor la cerere sau automat;
2.existența unor instrumente care permit utilizatorului să-și realizaze propriile rutine de criptare.
Procesul efectiv de criptare presupune utilizarea unui sistem de cifrare, ale cărui componente sunt:
Algoritmul de criptare – realizează trnsformarea datelor din forma inițială în forma criptată (cifrată).
Cheia de criptare – valoare ce constituie o intrare a algoritmului de criptare, aleasă dintr-o mulțime de chei posibile.
Algoritmul de decriptare – realizează trnsformarea datelor din forma criptată în forma inițială.
Cheia de decriptare – valoare ce constituie o intrare a algoritmului de decriptare.
Un astfel de sistem de cifrare, frecvent utilizat, este Data Encryption Standard (DES) eliberat de Biroul Național de Standarde. Acesta are la bază un algoritm de criptare public, care însă utilizează o cheie de criptare privată. Cheia de decriptare este aceeași cu cea de criptare și algoritmul este standard, este posibilă implementarea sa hardware pe un singur chip, ca o consecință, criptarea și decriptarea pot fi realizate foarte rapid și cu un cost scăzut, în comparație cu soluția implementării software a algoritmului.
Algoritmul DES folosește o cheie pe 64 biți pentru un bloc de 64 biți de text inițial, furnizând ca rezultat un bloc de 64 biți text cifrat. În cadrul unui bloc, caracterele sunt substituite și rearanjate corespunzător valorii cheii.
Problema securității datelor se rezumă la asigurarea securității cheii de criptare. Aceasta trebuie păstrată în condiții de siguranță, iar în cazul transmiterii ei pentru a fi utilizată la decriptarea trebuie utilizate linii speciale, punându-se recurge chiar la utilizarea poștei sau mesagerilor.
Un alt sistem de cifrare larg răspândit este sistemul de criptare cu cheie publică. Cheia privată va fi reprezentată de o pereche de numere prime foarte mari, produsul acestora formând cheia publică. Transformarea textului inițial în text cifrat va fi realizată pe baza cheii publice. Astfel, oricine dorește să transmită un mesaj, va folosi cheia publică a utilizatorului căruia îi este adresat mesajul. Decriptarea acestuia va fi posibilă doar prin furnizarea cheii private.
CAPITOLUL 5
DESCRIEREA APLICAȚIEI
5.1 Etapele de realizare a unei aplicații
Etapele realizării aplicației ce însoțesc lucrarea de față sunt următoarele :
Se studiază problema ce trebuie rezolvată;
Se stabilesc intrările și ieșirile aplicației;
datele care trebuiesc introduse de către utilizator;
cerințele utilizatorului (ceea ce dorește să obțină ca rezultat al aplicației);
Se stabilește modul de memorare a acestor date, în memorie (temporare) sau pe disc în baza de date care se stabilesc structurile.
Se atabilește structura meniului principal al aplicației, aceasta trebuind să conțină opțiuni pentru toate funcțiunile sistemului informatic accesibil utilizatorului.
Se stabilește algoritmul general de rezolvare al problemei.
Se împarte pe programe aplicația, fiecare program al aplicației urmând să rezolve o parte a problemei.
Se testează programul în cât mai multe condiții, incluzând și situații extreme și se inlătură eventualele erori.
Se elaborează documentația.
5.2 Enunțul problemei
Aplicația care însoțește această lucrare rezolvă o problemă de gestiune a mărfurilor într-un abator, realizând o evidență a intrărilor și ieșirilor, a furnizărilor și clienților. Aplicația este realizată în Access.
5.3. Structura bazei de date
Informațiile necesare acestei aplicații sunt memorate în baza de date Licenta.mdb care conține urătoarele tabele: tblActivitate, tblCategoria, tblChitante, tblClienti, tblData, tblDetFact, tblRap, tblRec, tblFac, tblFurnizor, tblProduse, tblRaport, tblRec, tblSoldFinal, tblStocInitial.
Relațiile între tabelele definite sunt prezentate în figura următoare
Tabelul tblFurnizor conține urătoarele câmpuri:
Tabelul tblFact conține următoarele câmpuri:
Tabelul tblProduse conține următoarele câmpuri:
Tabelul tblStocinit conține următoarele câmpuri:
Tabelul tblSoldFinal conține următoarele câmpuri:
Tabelul tblClienti conține urătoarele câmpuri:
Tabelul tblChitante conține următoarele câmpuri:
Tabelul tblCategorie conține următoarele câmpuri:
Tabelul tblActivitate conține următoarele câmpuri:
Tabelul tblRaport conține următoarele câmpuri:
Tabelul tblRec conține urătoarele câmpuri:
Tabelul tblData conține următoarele câmpuri:
Tabelul tblDetFact conține următoarele câmpuri:
Tabelul tblDetRec conține următoarele câmpuri:
Formulare(Forms)
O bază de date folosește multe procese, iar stocarea datelor este doar unul dintre ele. O dată ce tabelele există, este nevoie de o modalitate de a introduce și de le modifica. Cea mai eficientă modalitate de a lucra cu datele este prin formulare. Acestea oferă o interfață atractivă pentru vizualizarea sau introducerea datelor din tabele. Prin faptul că urmăresc introducerea sau modificarea datelor din tabele după anumite reguli stricte,impuse de programator, formularele permit eliminarea erorilor provocate de utilizatori la manipularea datelor. Un formular conceput în mod corespunzător ajută la introducerea datelor mai rapid și mai exact.
Aplicația folosește următoarele formulare:
Principalul formular este formularul Switchboard
Din acest meniu se pot introduce date, modifica prin butoanele FORMULARE și FORMULARE (CONTINUARE). Pot fi introduse activități, categorii, produse, clienți, furnizori, produse vândute, chitanțe, facturi. De exemplu introducerea sau modificarea produselor se poate realiza folosind următorul formular:
Butonul RAPOARTE ne permite obținerea a trei categorii de rapoarte și anume: RAPOARTE GENERALE, RAPOARTE PE DATA și RAPOARTE PE FIRME; acestea permit realizarea următoarelor situații: Chitanțe, Centralizator recepții, Centralizator facturi, Centralizator facturi pe clienți, Centralizator recepții pe furnizori, Situații chitanțe, Furnizori și Clienți. Toate aceste situații pot fi vizualizate pe ecran sau pot fi tipărite la imprimantă. De asemenea se pot obține diverse raporte pe baza unor criterii de dată (de exemplu, Afișarea chitanțelor dintr-o anumită zi sau pe o anumită perioadă, Afișarea centralizatorului de facturi și de recepții.
Raportul rezultat este de forma:
O altă categorie de rapoarte ce se poate obține este pe baza codului fiscal o constituie Situația facturilor clienților și Situația recepțiilor. Următorul raport exemplifică această funcțiune.
Bibliografie
Roger Jennings, Totul despre Access 2000 – Ed. Teora, 2002
Ioan Despi, Gheorghe Petrov, Reisz Robert, Teoria Generală a Bazelor de Date – Timișoara, Ed. Mirton 2002
Popescu, I., Modelarea bazelor de date – Editura Tehnica, Bucuresti 2001.
Felicia Ionescu, Baze de Date Relaționale și Aplicații, Editura Tehnică, Bucurști, 2004
Thomas Connolly; Carolyn Begg; Anne Strachan – Baze de date – Proiectare. Implementare. Gestiune
Pavel Năstase ș.a.- Baze de Date – Microsoft Access 2000 –Editura TEORA 2002
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Utilizarea Access Pentru Proiectarea Unei Aplicatii (ID: 130970)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
