Professional Documents
Culture Documents
DUMNESCU DOREL
BAZE DE DATE
PLOIETI 2013
CUPRINS
Pagina
Unitatea de nvare nr. 1. ELEMENTE DE TEORIA BAZELOR DE DATE Organizarea datelor. Structuri de date. Relaii ntre date Obiectivele unitii de nvare nr. 1 1.1. Organizarea datelor 1.2. Relaii ntre date 1.3. Structuri de date 1.4. Modele de date 1.5. Rspunsuri i comentarii la testele de autoevaluare 1.6. Lucrare de verificare a cunotinelor
5 5 9 11 17 21 24
Unitatea de nvare nr. 2. ELEMENTE DE TEORIA BAZELOR DE DATE Baze de date. Sistem de Gestiune a Bazelor de Date. Funciile unui SGBD Obiectivele unitii de nvare nr. 2 2.1. Baze de date 2.2. Sisteme de gestiune a bazelor de date 2.3. Funciile unui sistem de gestiune a bazelor de date 2.4. Rspunsuri i comentarii la testele de autoevaluare 2.5. Lucrare de verificare a cunotinelor
27 27 30 33 35 36
Unitatea de nvare nr. 3. PROIECTAREA BAZELOR DE DATE Analiza sistemului informaional existent
39 39
3.2. Analiza sistemului informaional 3.2.1. Analiza structural a sistemului informaional Tehnica diagramelor entitate-asociere 3.2.2. Analiza dinamic (de comportament) a sistemului informaional 3.2.3. Analiza cerinelor informaionale (analiza funcional a sistemului) 3.2.4. Integrarea modelelor sistemului informatic analizat 3.3. Rspunsuri i comentarii la testele de autoevaluare 3.4. Lucrare de verificare a cunotinelor
8 41 49 51 52 53 55
Unitatea de nvare nr. 4. PROIECTAREA BAZELOR DE DATE Proiectarea structurii bazei de date. Implementarea i exploatarea BD Obiectivele unitii de nvare nr. 4 4.1. Proiectarea structurii bazei de date 4.1.1. Alegerea sistemului de gestiune al bazei de date 4.1.2. Proiectarea schemei conceptuale 4.1.3. Proiectarea schemei externe 4.2. n crcarea datelor n baza de date 4.3. Exploatarea i ntreinerea bazei de date 4.4. Rspunsuri i comentarii la testele de autoevaluare 4.5. Lucrare de verificare a cunotinelor
58 58 59 61 66 67 68 70 71
Unitatea de nvare nr. 5. BAZE DE DATE RELAIONALE Modelul relaional al datelor Obiectivele unitii de nvare nr. 5 5.1. Modelul relaional al datelor 5.2. Structura relaional a datelor 5.2.1. Domeniu
75 75 78 78
ii
5.2.2. Relaie 5.2.3. Atribut 5.2.4. Schema unei relaii 5.3. Operatorii modelului relaional 5.4. Restriciile de integritate ale modelului relaional 5.5. Rspunsuri i comentarii la testele de autoevaluare 5.6. Lucrare de verificare a cunotinelor
78 79 81 82 89 93 94
Unitatea de nvare nr. 6. BAZE DE DATE RELAIONALE Proiectarea Bazelor de Date relaionale Obiectivele unitii de nvare nr. 1 6.1. Proiectarea bazelor de date relaionale 6.1.1. Proiectarea schemei conceptuale 6.1.2. Proiectarea schemei externe 6.2. Sisteme de gestiune a bazelor de date relaionale 6.3. Rspunsuri i comentarii la testele de autoevaluare 6.4. Lucrare de verificare a cunotinelor Unitatea de nvare nr. 7 Noiuni introductive privind Bazele de Date Orientate pe Obiecte Obiectivele unitii de nvare nr. 7 7.1. Modelul de date orientat pe obiecte. Concepte de baz 7.2. Baze de date orientate pe obiecte 7.3. Rspunsuri i comentarii la testele de autoevaluare 7.4. Lucrare de verificare a cunotinelor 118 122 123
111 112
iii
Unitatea de nvare nr. 8. Noiuni introductive privind Bazele de Date Distribuite Obiectivele unitii de nvare nr. 8 8.1. Baze de date distribuite 8.2. Sistemul de gestiune a bazelor de date distribuite 8.3. Rspunsuri i comentarii la testele de autoevaluare 8.4. Lucrare de verificare a cunotinelor Unitatea de nvare nr. 9. Protecia i securitatea bazelor de date Obiectivele unitii de nvare nr. 9 9.1. Protecia baze de date 9.1.1. Integritatea datelor 9.2. Securitatea bazei de date 9.3. Rspunsuri i comentarii la testele de autoevaluare 9.4. Lucrare de verificare a cunotinelor
Bibliografie
iv
I. Introducere
I.1. Locul cursului n cadrul programului de studiu Cursul de Baze de Date urmrete formarea la studeni a deprinderilor fundamentale pentru proiectarea de baze de date integrate n sisteme informatice. Ca mediu de dezvoltare de aplicaii a fost ales Sistemul de Gestiune a Bazelor de Date relaionale, MS-Access deoarece este un SGBD simplu, uor de asimilat de ctre studeni, i care include toate mecanismele fundamentale pentru crearea bazelor de date. Toate acestea permit dezvoltarea de aplicaii puternice, profesionale. Un alt aspect avut n vedere a fost dat de accesibilitatea uoar a SGDB-ului MS-Access, acesta fiind parte a pachetului MS-Office. Cursul introduce concepte de informatic de gestiune noi, alturi de cele achiziionate deja de ctre studeni i permite formarea unui mod de gndire algoritmic, util pentru nelegerea disciplinelor informatice ulterioare (Proiectarea Sistemelor Informatice, Sisteme informatice pentru asistarea deciziei sau Auditul sistemelor informatice).
I.2. Obiectivele cursului Obiectivele cursului de Baze de Date sunt urmtoarele: a. competene generale: nelegerea analizei sistemelor informaionale i a identificrii structurilor de date asociate acestora; nelegerea modului de organizare a datelor n colecii de date; nelegerea modelelor de date i a conceptului de baz de date; b. competene specifice: nelegerea modului de proiectare a unei baze de date; nsuirea cunotinelor necesare pentru utilizarea SGBD-ului relaional MS-Access; nsuirea etapelor de proiectare i realizare a aplicaiilor cu baze de date;
nsuirea principiilor de proiectare a interfeei aplicaiilor cu MS-Access (fromulare); nelegerea i implementarea interogrilor; dezvoltarea capacitii de analiz a problemelor i de elaborare de soluii funcionale; deprinderea lucrului n echip.
Structura cursului, exprimat sub forma unitilor de nvare, este prezentat mai jos: 1. ELEMENTE DE TEORIA BAZELOR DE DATE. Organizarea datelor. Structuri de date. Relaii ntre date 2. Baze de date. Sistem de Gestiune a Bazelor de Date. Funciile unui SGBD 3. Analiza sistemului informaional existent 4. Proiectarea structurii bazei de date. Implementarea i exploatarea BD 5. Modelul relaional al datelor 6. Proiectarea Bazelor de Date relaionale 7. Noiuni introductive privind bazele de date orientate pe obiecte 8. Noiuni introductive privind bazele de date distribuite 9. Protecia i securitatea bazelor de date
I.4. Resursele complementare n afar de suportul de curs se poate utiliza orice carte care prezint conceptele bazelor de date i informaii privind aplicaia MS-Access. I.5. Evaluarea Evaluarea studenilor se va realiza printr-o apreciere a activitii acestora desfurat la laborator (prezen, activitate, rezultate test de verificare), i printr-un examen oral care include o prob practic, la calculator.
Evaluarea la laborator se va realiza la sfritul perioadei destinate acestei activiti, iar examenul final va avea loc n sesiunea de var. Promovarea examenului este condiionat de asigurarea unei prezene bune la laborator i de cunoaterea SGBD-ului MS-Access astfel nct studentul s poat dezvolta o aplicaie simpl, care s fie funcional. Ponderea celor dou note, n nota final a examenului, este de 40% nota de la laborator i 60% nota la proba de examen final.
11
1.4. Modele de date 1.5. Rspunsuri i comentarii la testele de autoevaluare 1.6. Lucrare de verificare a cunotinelor
17
21
24
Rezumat
24
Bibliografie
24
Dup parcurgerea acestei uniti studentul va putea demonstra c are suficiente cunotine pentru a nelege: conceptul de dat; conceptul de informaie; modalitile de organizare a datelor simple n structuri complexe; relaiile care pot apare ntre date; conceptul de model de date.
crilor ntr-o bibliotec etc.), de la generarea acestora i pn la tergerea sau stocarea lor. Apariia calculatorului electronic a permis automatizarea acestor activiti conducnd la apariia sistemelor informatice. Sistemele informatice sunt sisteme de organizare, culegere, stocare, manevrare i exploatare a informaiilor (respectiv a datelor), specifice unui anumit domeniu de activitate, cu ajutorul calculatorului. Pentru a rezolva problemele legate de manevrarea informaiilor, reprezentate prin intermediul datelor, apare ca o necesitate existena unor modele i mecanisme de organizare a datelor deoarece, de modul n care sunt organizate datele depinde eficiena sistemului informatic. Bazele de date, ca principale componente ale sistemelor informatice, ofer tocmai aceste modele i mecanisme de organizare a datelor. Pentru nceput trebuiesc clarificate noiunile de informaie i date. Datele sunt reprezentri simbolice ale unor fenomene, procese, obiecte etc. susceptibile a fi stocate pe un suport de memorie extern, i care pot fi manevrate folosind diverse mijloace tehnice (exemple de date: cifre, iruri de caractere, imagini, culori etc.). Informaia reprezint sensul pe care oamenii l acord datelor (astfel c aceeai dat poate reprezenta diverse informaii, funcie de cei care o folosesc i de contextul n care este folosit). Organizarea datelor presupune efectuarea urmtoarele activiti: definirea, structurarea, ordonarea i gruparea datelor; stabilirea legturilor (relaiilor) ntre date, ntre elementele unei colecii de date i ntre colecii de date; stocarea datelor pe un suport de stocare electronic, accesibil unui sistem de calcul. Organizarea datelor se realizeaz pentru a permite regsirea lor automat dup anumite criterii i forme.
Obiectivele urmrite la organizarea datelor sunt: realizarea unui acces rapid la date stocate pe diferite suporturi de memorie; spaiul de memorie intern i extern ocupat s fie ct mai mic (economie de memorie); datele s apar o singur dat n sistem (unicitatea datelor); modul de organizare a datelor s reflecte, pe ct posibil, toate legturile dintre obiectele, fenomenele sau procesele pe care acestea le reprezint; schimbarea structurii datelor i a relaiilor dintre ele s se fac fr a fi necesar modificarea programelor ce le gestioneaz (flexibilitatea datelor). Conceptele de baz utilizate n activitatea de organizare a datelor sunt: entitate, atribut, valoare. Entitatea reprezint un obiect concret sau abstract, caracterizat de proprietile sale. O proprietate a unui obiect poate fi exprimat printr -o pereche (ATRIBUT, VALOARE). Spre exemplu: studentul X este n anul de studii II, unde anul de studii reprezint atributul, iar II reprezint valoarea. Deoarece o entitate este caracterizat de proprietile sale nseamn c ea se poate reprezenta prin mai multe perechi (ATRIBUT, VALOARE). De exemplu, o persoan X poate fi reprezentat prin mulimea de perechi: (NUME, IONESCU), (VRSTA, 25), (SEX, MASCULIN), (PROFESIE, INGINER). Se observ ns c mulimea atributelor NUME, VRSTA, SEX, PROFESIE poate fi asociat cu mai multe persoane care se individualizeaz prin valorile acestor atribute. Rezult c un atribut nu caracterizeaz doar o entitate, ci poate caracteriza o clas de entiti numit entitate grup. Atributele mai sunt cunoscute i sub numele de cmpuri sau caracteristici.
Un atribut este caracterizat de mulimea valorilor pe care le poate lua. Aceste valori pot fi numerice, alfanumerice (iruri de caractere) etc. n general atributele au valori elementare, dar pot exista i situaii de atribute compuse (formate prin nlnuirea mai multor atribute elementare). Atributele care identific n mod unic o anumit entitate se numesc atribute cheie, celelalte atribute numindu-se atribute non-cheie.
y"
Definiie. Fie A o colecie oarecare de date, nevid. Se numete relaie binar pe A o submulime R a produsului cartezian A x A care ndeplinete o proprietate (o legtur). Numim elemente asociate prin relaia R acele elemente x, y pentru care x, y
R.
Dac x, y
x este n relaia R cu y, fapt care se mai simbolizeaz prin x R y. Proprietile relaiei binare dintre date sunt: 1. Reflexivitate. Spunem c o relaie R, definit pe o mulime de date A, este reflexiv dac pentru Exemplu: x
R , avem x R x.
x, x
R.
2. Simetrie. O relaie R definit pe mulimea de date A spunem c este simetric dac pentru
x, y A, xRy implica yRx .
Exemplu: Fie A mulimea judeelor rii. Dac x este vecin cu y rezult c y este vecin cu x. 3. Asimetrie. Spunem c o relaie R definit pe o mulime de date A este antisimetric dac pentru i y R x, avem x=y. Exemplu: x
y i y x implic x y.
x, y
A cu proprietatea c x R y
4. Tranzitivitate. Fie A o mulime de date. Spunem c o relaie R pe mulimea A este tranzitiv dac pentru proprietatea c x R y i y R z, atunci x R z. Exemplu: Dac produsul x intr n componena lui y i y intr n componena lui z, atunci x intr n componena lui z. Definiie. O relaie binar R, definit pe mulimea de date A se numete relaie de echivalen dac este reflexiv, simetric i tranzitiv. Definiie. Fie A o colecie de date. Dac
x, y A , exist relaia
x, y, z
cu
x R y sau y R x, spunem c relaia dintre elementele coleciei este de ordine total. Definiie. O relaie binar R, definit pe o mulime de date A, care este reflexiv, asimetric i tranzitiv se numete relaie de ordine. Definiie. Relaia binar R, definit pe o mulime de date A, care este reflexiv i tranzitiv se numete relaie de preordine.
10
11
sortarea datelor (aranjarea elementelor unei structuri dup anumite criterii); ventilarea structurii (spargerea structurii n dou sau mai multe structuri); fuzionarea (formarea unei noi structuri din dou sau mai multe structuri); copierea; interclasarea etc. Structurile de date care au aceeai organizare i sunt supuse acelorai operaii formeaz un tip de structur de date. Un tip de structur de date este o mulime ordonat de date n tre care s-au stabilit anumite relaii i n care, pentru realizarea operaiilor specifice, se folosete un grup de operatori de baz cu o anumit semantic.
Clasificarea structurilor de date Clasificarea structurilor de date se poate realiza dup mai mul te criterii. Dup tipul componentelor, structurile de date se clasific n: structuri omogene, n care componentele sunt toate de acelai tip; structuri eterogene, n care componentele sunt de tipuri diferite. Dac o structur se poate descompune n structuri de acelai tip atunci avem o structur recursiv. Dup posibilitatea de modificare a structurii, avem: structuri statice, care pe tot parcursul existenei lor au acelai numr de componente n aceeai ordine; structuri dinamice, care permit modificarea numrului de componente sau a poziiei acestora n structur, prin aplicarea operatorilor specifici structurii. Aceste structuri pot avea, teoretic, un numr nelimitat de componente i de aceea se mai numesc structuri cu cardinalitate infinit.
12
Asemntor, structurile statice se consider c sunt structuri cu cardinalitate finit. Din punct de vedere al nivelului de structurare al datelor avem: structura logic, care se refer la modul de ordonare al datelor i la operatorii folosii pentru tratarea datelor; structura fizic, ce se refer la modul de implementare, de reprezentare efectiv pe un suport de memorie; Principalele tipuri de structuri logice de date sunt: structura punctual; structura liniar; structura arborescent; structura reea; structura relaional. Structura punctual este reprezentat de o entitate grup izolat, care nu are legturi (relaii) cu alte entiti. Structura liniar (lista) este o structur care definete o relaie de ordine total ntre elementele unei colecii de date. Dup cum am vzut mai nainte, o relaie de ordine total este o relaie care exist ntre oricare dou elemente ale unei colecii de date. Structura liniar presupune c fiecare element al structurii conine, pe lng informaiile care trebuiesc manevrate, informaiile necesare pentru a realiza o legtur (relaie) cu alt element al aceleiai structuri. a1 a2 a3 aN
a1
a2
a3
aN
13
Acest tip de structur are urmtoarele caracteristici: are un singur element iniial i un singur element terminal; orice element care nu este iniial i nici terminal are un singur succesor imediat; primul element nu are predecesori; ultimul element nu are succesori; dac exist o relaie ntre ultimul i primul element atunci structura este inelar sau circular; relaiile stabilite ntre date sunt de tipul 1 la 1. O structur este arborescent sau ierarhic (descendent) dac ntre elementele sale exist o relaie de ordine. Aceasta nseamn c fiecare element (cu o singur excepie) provine din alt element aflat pe un nivel ierarhic superior.
Fig. 1.2. Structur de date arborescent Structura de date arborescent are urmtoarele caracterisitci: elementele structurii se numesc noduri; exist un element unic, numit rdcina arborelui, care nu are un predecesor; orice nod diferit de rdcin are un predecesor imediat unic; orice nod neterminal are un numr finit de succesori imediai;
14
noduri
(ai1,
ai2,
...,
ain)
care
pentru
ai , k , k
n, ai ,k
lungime maxim constituie nlimea arborelui. Un arbore n care fiecare nod are strict numai doi succesori se numete arbore binar. Structura de tip reea este o structur n care ntre elementele componente exist o relaie de preordine. n acest caz elementele sunt legate unele de altele prin legturi multiple. Caracteristicile acestui tip de structur de date sunt: o reea este un graf n care, ntre dou noduri, exist legturi bidirecionale; un nod are mai muli predecesori i el nsui poate fi predecesor pentru propriul su predecesor, caz n care apar cicluri n reea. Un ciclu este un drum n care nodul iniial este acelai cu nodul final. ntre elementele reelei se stabilesc legturi de tipul m la n. O reea n care exist doar legturi univoce ntre elemente se numete reea simpl. n caz contrar reeaua spunem c este o reea complex. ntr-o reea simpl nu exist cicluri. Exemple de reele simpl i complex sunt date n figura urmtoare.
b a
c e
e c
15
Structura relaional a datelor consider c acestea sunt organizate la nivel logic sub form de tabele (relaii, tablouri) de d ate elementare, ntre care nu sunt legturi explicite. Fiecare linie dintr -un asemenea tabel se numete nregistrare i fiecare element al unei nregistrri ce corespunde unei anumte coloane se numete cmp. Legturile ntre date sunt introduse indirect prin intermediul coloanelor comune la mai multe tabele de date (vezi figura).
16
17
relaia dintre locurile existente ntr-un cmin studenesc i studeni. Un loc poate fi ocupat de un singur student, iar un student are dreptul la un singur loc n cmin. legturi unu la muli. n acest caz un obiect poate avea legturi (relaii) cu mai multe obiecte. De exemplu, un student poate face parte dintr-o singur grup dar o grup poate avea mai muli studeni. legturi de tipul muli la muli. Acest tip de legtur presupune c fiecare obiect poate avea multiple legturi (relaii) cu alte obiecte. Spre exemplu, un produs este cumprat de mai muli clieni i un client poate achiziiona mai multe produse. Operatorii care acioneaz asupra structurilor de date constituie cel de-al doilea element al unui model de date. Aceti operatori pot fi de citire, memorare, modificare, jonciune etc. Regulile de integritate sunt restricii menite s asigure meninerea corectitudinii datelor. Ca exemple de astfel de restricii putem meniona: s nu se permit tergerea valorilor atributelor unui client dac acesta nu a achitat integral factura pentru cumprarea unui produs anume; s nu se permit memorarea valorilor asociate unui produs dac nu se cunoate valoarea unui anumit atribut caracteristic, numit atribut cheie etc. Modelele de date se mpart, n funcie de modul n care se definesc elementele amintite mai sus, n: modele ierarhice sau arborescente, modele reea, modele relaionale, modele orientate obiect etc.
18
Modelul ierarhic Folosete tipuri de nregistrri care grupeaz toate atributele unei entiti. Pentru a realiza asocierile dintre tipuri de nregistrri acest model folosete o structur de date arborescent (o ierarhie).
Fig. 1.5. Ierarhie de date O ierarhie are un tip de nregistrare definit ca rdcin i mai multe tipuri de nregistrri subordonate, legate sub form de arbore. Fiecare nod din arbore care nu este rdcin sau nod final are un singur nod superior i unul sau mai multe noduri inferioare. Legtura de la un nod superior la unul inferior este de tipul unu la muli, iar legtura de la un nod inferior la unul superior este de tipul unu la unu. Modelul reea n acest model, datele sunt reprezentate asemntor cu modelul ierarhic, cu deosebirea c fiecare inferior poate avea mai muli superiori. Toate structurile de date, inclusiv legturile de tipul m la n sunt definite natural, fr a recurge la artificii. n cadrul acestui model ntlnim dou tipuri de structuri: -tipul de nregistrare ( care asigur atributele unei entiti); -tipul de set (care asigur legturile ntre tipurile de nregistrri). 19
Modelul relaional Modelul relaional are la baz teoria matematic a relaiilor. El folosete o singur structur de date: relaia (tabelul) care este o submulime a produsului cartezian al unor domenii (un domeniu este reprezentat de o mulime de valori ale entitilor). Modelul relaional poate fi privit ca o mulime de tabele obinute prin metoda normalizrii. Normalizarea pleac de la o mulime de atribute (cmpuri de date) i o mulime de dependene funcionale dintre atribute i conduce la o schem conceptual a modelului relaional, ntr-o form normalizat, n care se vor elimina anomaliile de actualizri. La cele trei modele de date prezentate mai sus se adaug modelele orientat obiect, distribuit i modelul funcional.
20
21
obiect este dat de o pereche atribut-valoare. Un atribut este o proprietate abstract a unei entiti, care, pentru a fi complet, trebuie s primeasc o valoare. 5. Atributul cheie este atributul, sau combinaia minim de atribute, care identific n mod unic o entitate. Rezult c, atributul cheie trebuie s conin numai valori distincte i trebuie s aib totdeauna o valoare (nu poate fi NULL).
B. Dup comportarea n timpul funcionrii programului care le utilizeaz: structuri statice, a cror mrime i compunere nu se pot modifica n timpul executrii programului; structuri dinamice, care pot s i schimbe legturile interne ntre datele structurii, precum i numrul de componente ale structurii. 3. Operaiile care se pot efectua asupra structurilor de date se refer la valori i/sau la structur. Dintre acestea, cele mai frecvente sunt: crearea datelor (memorarea datelor n forma iniial pe suportul de memorie);
22
consultarea datelor (accesul la componentele structurii n vederea prelucrrii valorilor); actualizarea datelor (schimbarea strii structurii prin adugarea, tergerea unor elemente componente, modificarea valorii unor elemente, modificarea relaiilor dintre elemente); sortarea datelor (aranjarea elementelor unei structuri dup anumite criterii); ventilarea structurii (spargerea structurii n dou sau mai multe structuri); fuzionarea (formarea unei noi structuri din dou sau mai multe structuri); copierea; interclasarea etc.
23
1.
Rezumat
n aceast unitate de nvare au fost prezentate o serie de concepte privind sistemele informationale i sistemele informatice, aspecte caracteristice acestora i diferene existente ntre ele. Au fost prezentate conceptele de dat i informaie, precum i structurile de date utilizate frecvent n aplicaiile informatice i, n particular, n cele de baze de date. Au mai fost prezentate caracteristicile modelelor de date i o clasificare a acestora.
Bibliografie
1. Dumnescu Dorel, Baze de date, Editura Universitii PetrolGaze din Ploieti, 2005
24
2. Fotache M., Proiectarea bazelor de date. Normalizare i postnormalizare. Implementri SQl i Oracle, Editura Polirom, Iai, 2005 3. Fotache, Marin, SQL: Dialecte DB2, Oracle, PostgreSQL i SQL Server, ediia a II-a, Editura Polirom, Iai, 2009 4. Ionescu, Felicia, Baze de date relaionale i aplicaii, Editura Tehnic, 2004 5. Ptracu Aurelia, Tnsescu Ana, Dumnescu Dorel, Baze de date MS-Access. Teorie i aplicaii, Editura Universitii Petrol-Gaze din Ploieti, 2006 6. Thomas Connolly, Carolyn Begg, Anne Strachan, Baze de date. Proiectare. Gestiune. Implementare, Editura Teora, Bucureti, 2001
25
27
27
2.2. Sisteme de gestiune a bazelor de date 2.3. Funciile unui sistem de gestiune a bazelor de date 2.4. Rspunsuri i comentarii la testele de autoevaluare 2.5. Lucrare de verificare a cunotinelor
30
33
35
36
Rezumat
37
Bibliografie
37
26
Dup parcurgerea acestei uniti studentul va putea demonstra c are suficiente cunotine pentru a nelege: conceptul de model de date; conceptul de baz de date; rolul i funciile sistemului de gestiune a bazelor de date.
27
n esen, conceptul de baz de date poate fi definit ca fiind una sau mai multe colecii de date (Ki), aflate n interdependen, mpreun cu descrierea datelor i a relaiilor dintre ele, (B={K 1, K2, ...}) O baz de date astfel definit trebuie s ndeplineasc urmtoarele condiii: s asigure o independen complet a datelor fa de programe i invers; structura bazei de date trebuie astfel conceput nct s asigure informaiile necesare i suficiente pentru a satisface cerinele informaionale i de decizie ale utilizatorului; s asigure o redundan minim i controlat a datelor; s permit accesul rapid la informaiile stocate n baz.
Arhitectura general a bazelor de date a fost standardizat internaional i cuprinde urmtoarele elemente componente: baza de date propriu-zis n care se memoreaz colecia de date; sistemul de gestiune al bazei de date, care este un ansamblu de programe ce realizeaz gestiunea i prelucrarea complex a datelor; un set de proceduri manuale i automate, precum i reglementrile administrative, destinate bunei funcionri a ntregului sistem; un dicionar al bazei de date (metabaza de date), ce conine informaii despre date, structura acestora, elemente de descriere a semanticii, statistici, documentaie etc. echipamentele de calcul (hardware) utilizate (comune sau specializate); personalul implicat (categorii de utilizatori: finali sau de specialitate, analiti-programatori, gestionari, operatori).
28
Bazele de date sunt extrem de variate, n funcie de criteriile de apreciere considerate. n continuare sunt prezentate cteva criterii de clasificare: dup orientare: generalizate, specializate; dup modelul de date folosit: ierarhice, n reea, relaionale, orientate obiect; dup amploarea geografic: locale, distribuite; dup limbajele utilizate: autonome (cu limbaje proprii), cu limbaj gazd, mixte. Componentele bazei de date pot fi structurate pe trei nivele, n funcie de clasa utilizatorilor implicai: nivelul logic. Este dat de viziunea programatorului de aplicaii, care realizeaz programele de aplicaii pentru manipularea datelor i structura logic (subschema) corespunzroare descrierii datelor aplicaiei; nivelul conceptual (global). Este dat de viziunea administratorului bazei de date, care realizeaz structura conceptual (schema) corespunztoare descrierii bazei de date i administreaz componentele bazei de date pentru manipularea datelor; nivelul fizic. Este date de viziunea inginerului de sistem care realizeaz structura fizic corespunzroare descrierii datelor pe suportul fizic.
29
ntr-un alt sens, sistemul de gestiune al bazei de date se constituie ntr-o interfa ntre utilizator i baza de date, reprezentnd mecanismul prin intermediul cruia acesta are acces la date. Pentru a-i putea ndeplini funciunile prevzute, unui sistem de gestiune al bazei de date modern i revin o serie de obiective de ndeplinit, cum sunt: 1. Asigurarea independenei datelor. Aceasta presupune c modificarea strategiei de memorare a datelor sau a strategiei de acces la date nu trebuie s afecteze aplicaia care prelucreaz aceste date. Independena datelor fa de aplicaie este necesar deoarece diferite aplicaii au nevoie de viziuni diferite ale acelorai date; administratorul bazei de date trebuie s aib libertatea de a schimba structura de memorare sau strategia de acces, ca rspuns la cerine (schimbri de standarde, prioritile aplicaiilor, schimbarea
30
unitilor fizice de memorare etc.), fr a modifica aplicaiile existente; iar baza de date existent, precum i programele de exploatare a ei reprezint o investiie important la care nu trebuie s se renune prea uor. Independena datelor trebuie privit din dou puncte de vedere: independena fizic i independena logic a datelor. Independena fizic a datelor implic modificarea tehnicilor fizice de memorare a datelor fr a necesita rescrierea programelor de aplicaie. Independena logic a datelor se refer la posibilitatea adugrii de noi articole de date sau extinderea structurii conceptuale (globale), fr ca aceasta s impun rescrierea programelor existente. 2. Asigurarea unei redundane minime i controlate a datelor din baza de date. Redundana se refer la numrul de apariii n baza de date a unei date. n general, stocarea datelor n baze de date ar trebui s se fac astfel nct fiecare dat s apar o singur dat. Totui, exist cazuri n care, pentru a reduce timpul de cutare al unei date i implicit timpul de rspuns la solicitrile utilizatorilor, se accept o anumit redundan a datelor. Aceast redundan trebuie controlat automat, prin program, pentru a se asigura coerena datelor din baz. 3. Asigurarea unor faciliti sporite de utilizare a datelor. Aceasta presupune: folosirea datelor de ctre mai muli utilizatori n diferite aplicaii; accesul ct mai simplu al utilizatorilor la date, fr ca acetia s fie nevoii s cunoasc structura ntregii baze de date, acest lucru rmnnd n sarcina administratorului bazei de date; existena unor limbaje performante de regsire a datelor, care permit exprimarea sub forma unei conversaii, a unor criterii de selecie a datelor i indicarea unor reguli ct mai generale pentru editarea informaiilor solicitate;
31
utilizarea unui limbaj ct mai apropiat de limbajul natural, cu posibilitatea exploatrii bazei de date n regim conversaional, lucru care ar oferi posibilitatea exploatrii bazei de date i de ctre utilizatori neinformaticieni.
4. Sporirea gradului de securitate a datelor mpotriva accesului neautorizat la ele. n condiiile bazelor de date, administratorul bazei de date poate prevedea ca acesul la baza de date s se fac numai prin canalele corespunztoare, i poate, totodat, defini verificri de autorizare, realizate oricnd se ncearc accesul neautorizat la anumite date. 5. Asigurarea integritii datelor mpotriva unor tergeri intenionate sau neintenionate, 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 partajabilitii datelor. Partajabilitatea datelor trebuie neleas nu numai sub aspectul asigurrii accesului mai multor utilizatori la aceleai date, cii acela al posibilitii dezvoltrii unor aplicaii fr a se modifica structura bazei de date.
32
33
3. Funcia de utilizare asigur mulimea interfeelor necesare pentru comunicarea tuturor utilizatorilor cu baza de date. n cadrul realizrii acestei funcii apar mai multe categorii de utilizatori: utilizatori liberi sau conversaionali. Acetia reprezint categoriea beneficiarilor de informaii (utilizatori finali) care utilizeaz limbajele de interogare a bazei de date ntr -o form simplist. Ei apar ca utilizatori neinformaticieni. utilizatori programatori, care utilizeaz limbaje de manipulare, realiznd proceduri complexe de exploatare a bazei de date; administratorul bazei de date, care este un utilizator special avnd un rol hotrtor n ceea ce privete funcionarea optim a ntregului ansamblu. 4. Funcia de administrare a bazei de date. Aceasta apare ca o funcie complex i este de competena administratorului bazei de date. Prin intermediul acestei funcii, SGBD-ul ofer administratorului bazei de date instrumentele necesare pentru asigurarea accesului controlat la date (pe baz de user i parol), pentru realizarea operaiilor de back-up, diverse statistici privind utilizarea bazei de date i altele.
34
Testul de autoevaluare nr. 2 Asigurarea independenei datelor presupune c modificarea strategiei de memorare a datelor sau a strategiei de acces la date nu trebuie s afecteze aplicaia care prelucreaz aceste date. Independena datelor fa de aplicaie este necesar deoarece diferite aplicaii au nevoie de viziuni diferite ale acelorai date; administratorul bazei de date trebuie s aib libertatea de a schimba structura de memorare sau strategia de acces, ca rspuns la cerine (schimbri de standarde, prioritile aplicaiilor, schimbarea unitilor fizice de memorare etc.), fr a modifica aplicaiile existente; iar baza
35
de date existent, precum i programele de exploatare a ei reprezint o investiie important la care nu trebuie s se renune prea uor. Independena datelor trebuie privit din dou puncte de vedere: independena fizic i independena logic a datelor. Independena fizic a datelor implic modificarea tehnicilor fizice de memorare a datelor fr a necesita rescrierea programelor de aplicaie. Independena logic a datelor se refer la posibilitatea adugrii de noi articole de date sau extinderea structurii conceptuale (globale), fr ca aceasta s impun rescrierea programelor existente.
Testul de autoevaluare nr. 3 Funcia de descriere a datelor permite definirea structurii bazei de date cu ajutorul unui limbaj de definire. La nivelul acestei funcii se descriu multitudinea atributelor (cmpurilor) din cadrul structurii bazei de date, legturile dintre entitile bazei de date sau dintre atributele aceleiai entiti, se definesc eventualele criterii de validare a datelor, metodele de acces la date, aspectele referitoare la asigurarea integritii i confidenialitii datelor etc.
36
Rezumat
n cadrul acestei uniti de nvare a fost definit conceptul de baz de date, mpreun cu cel de Sistem de Gestiune a Bazelor de Date, ca aplicaie software care permite crearea i exploatarea bazelor de date. Au fost prezentate principalele activiti pe care trebuie s le execute un SGBD precum i funciile de baz ale unui SGBD.
Bibliografie
1. Crstoiu, Dorin, Baze de date relaionale, Editura Printech, Bucureti, 1999 2. Dumnescu Dorel, Baze de date, Editura Universitii PetrolGaze din Ploieti, 2005 3. Fotache M., Proiectarea bazelor de date. Normalizare i postnormalizare. Implementri SQl i Oracle, Editura Polirom, Iai, 2005 4. Fotache, Marin, SQL: Dialecte DB2, Oracle, PostgreSQL i SQL Server, ediia a II-a, Editura Polirom, Iai, 2009 5. Ionescu, Felicia, Baze de date relaionale i aplicaii, Editura Tehnic, 2004 6. Ptracu Aurelia, Tnsescu Ana, Dumnescu Dorel, Baze de date MS-Access. Teorie i aplicaii, Editura Universitii Petrol-Gaze din Ploieti, 2006 7. Thomas Connolly, Carolyn Begg, Anne Strachan, Baze de date. Proiectare. Gestiune. Implementare, Editura Teora, Bucureti, 2001
37
Cuprins
Pagina
Obiectivele unitii de nvare nr. 1 3.1. Etapele de realizare a bazelor de date 3.2. Analiza sistemului informaional 3.2.1. Analiza structural a sistemului informaional Tehnica diagramelor entitate-asociere 3.2.2. Analiza dinamic (de comportament) a sistemului informaional 3.2.3. Analiza cerinelor informaionale (analiza funcional a sistemului) 3.2.4. Integrarea modelelor sistemului informatic analizat 3.3. Rspunsuri i comentarii la testele de autoevaluare 3.4. Lucrare de verificare a cunotinelor Rezumat Bibliografie
39 39 8 41
49
51
52
53 55 55 55
38
Coninutul acestor etape, respectiv activitile implicate i modul lor de desfurare depind, n general, de tipul bazei de date precum i de domeniul de activitate pentru care se construiete baza de date. Exist ns o serie de aspecte cu caracter general care nu sunt
39
influenate de specificul unui anumit domeniu de activitate sau de caracteristicile unui anumit tip de baze de date. n continuare vor fi prezentate aceste aspecte generale, aspectele specifice urmnd a fi tratate atunci cnd vor fi tratate diferite tipuri de baze de date. Realizarea unei baze de date presupune i folosirea unor metode i tehnici de analiz (tehnica normalizrii relaiilor, 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.) specifice.
40
numita analiz temporal (comportamental), prin care se obine modelul dinamic (sau temporal) al sistemului; analiza cerinelor informaionale, respectiv a transformrilor de date (a tranzaciilor) din cadrul sistemului prin care sunt satisfcute cerinele informaionale asociate sistemului. n urma acestei activiti se obine modelul funcional al sistemului informatic analizat; integrarea modelelor sistemului informatic (structural, dinamic i funcional) n scopul corelrii i completrii lor.
Testul de autoevaluare nr. 1 1. Care sunt etapele realizrii unei baze de date? 2. Care sunt obiectivele analizei structurale?
3.2.1. Analiza structural a sistemului informaional. Tehnica diagramelor entitate-asociere Analiza structural a sistemului informatic are ca obiectiv evidenierea componentelor (obiectelor) din cadrul sistemului, pentru care urmeaz s se colecteze i s se memoreze date n cadrul bazei de date, precum i evidenierea legturilor dintre aceste componente. Exist astzi mai multe tehnici de analiz structural, cea mai utilizat dintre acestea fiind tehnica entitate -asociere. Aceast
41
tehnic permite constituirea modelului structural sub forma unei diagrame entitate-asociere prin parcurgerea urmtorilor pai: - identificarea componentelor (entitilor) din cadrul sistemului informatic analizat; - identificarea asocierilor dintre entiti i calificarea acestora; - identificarea atributelor aferente entitilor i asocierilor dintre entiti; - stabilirea atributelor de identificare a entitilor. Tehnica diagramelor entitate-asociere a cunoscut ma multe forme de reprezentare. n continuare vom prezenta diagramele DER n forma definit de Chen. Aceasta este mai sugestiv n ceea ce privete nelegerea structurii entitilor care compun un sistem dar este mai greu de utilizat practic. Ulterior se va prezenta o form a diagramelor entitate-relaie care sunt mai uor de folosit n aplicaii practice dar pentru nelegerea crora trebuie ceva mai mult efort.
Identificarea componentelor sistemului informatic Componentele sistemului informatic sunt entiti (obiecte ) care au anumite proprieti i care fac schimb de informaii cu alte entiti ale sistemului. Ele sunt reprezentate n cadrul diagramei entitateasociere prin blocuri dreptunghiulare. Considernd activitatea dintr-o instituie de nvmnt superior se pot identifica urmtoarele entiti: - cadre didactice - studeni - personal didactic auxiliar - personal administrativ - serviciul administrativ - serviciul personal - serviciul contabilitate - serviciul social (CADRE_DIDACTICE); (STUDENI); (PERS.DID.AUX.); (PERS.ADMIN.); (SERV.ADMIN.); (SERV.PERS.); (SERV.CONTAB.); (SERV.SOCIAL).
42
Fiecare entitate poate prezenta n cadrul sistemului mai multe instane (realizri). n urma acestei etape se elaboreaz o prim form a diagramei entitate-asociere, form prezentat n figura urmtoare.
Fig. 3.1. Reprezentarea entitilor n diagrama entitate-asociere Identificarea asocierilor dintre entiti i calificarea acestora
Componentele unui sistem nu sunt dect arareori izolate, ntre acestea stabilindu-se legturi (asocieri). Spre exemplu, ntre entitile STUDENI i SERV.SOCIAL exist o asociere, n sensul c serviciul social pune la dispoziia studenilor locuri de cazare n cmin. Legturile dintre entiti sunt reprezentate prin arce neorientate, care fac legtura ntre nodurile ce reprezint entitile participante la asociere. Semnificaia legturii se exprim printr-un nume acordat legturii i se reprezint cu ajutorul unui nod etichet n form de romb, plasat ca nod intermediar ntre entiti. Tipul (forma) legturii se exprim cu ajutorul cardinalitii. Cardinalitatea unei legturi reprezint numrul minim i numrul maxim de realizri (instane) de entitate care pot fi asoci ate cu o realizare a partenerului de asociere. Cardinalitatea se exprim prin
43
perechi de numere, cte o pereche pentru fiecare entitate din cadrul legturii.
Fig. 3.2. Reprezentarea unei legturi (asocieri) ntre dou entiti cu menionarea semnificaiei i a cardinalitii
n figura de mai sus este prezentat modul de reprezentare al unei legturi cu menionarea semnificaiei legturii i a cardinalitii acesteia. Cardinalitatea legturii de mai sus se poate interpreta astfel: Serviciul social este obligat s asigure, n limita locurilor disponibile n cmine, locuri de cazare pentru toi studenii care solicit acest lucru chiar dac este vorba doar de un singur student; Pot solicita locuri de cazare n cmine un numr de studeni pn la numrul maxim de studeni care locuiesc n alte localiti, fiind posibil i situaia n care nici un student nu solicit cazare n cmin. Legturile (asocierile) ntre entiti pot fi de mai multe tipuri i anume: 1. Dup cardinalitatea asocierii putem avea dou situaii, funcie de gradul asocierii, respectiv obligativitatea participrii entitilor la asociere. Dup gradul asocierii (valorile maxime ale cardinaliti) avem: asocieri de tipul unu la unu. Aceasta nseamn c cel puin o realizare a fiecrei entiti trebuie s participe la asociere.
44
asocieri de tipul unu la muli. n acest caz o realizare a unei entiti are legturi cu mai multe realizri ale celeilalte entiti care particip la asociere. asocieri de tipul muli la muli, caz n care mai multe realizri ale unei entiti participante la legtur se asociez cu mai multe realizri ale celeilalte entiti.
Dup obligativitatea participrii entitilor la asociere (minimele cardinalitii) avem: asocieri pariale; la care entitile nu sunt obligate s participe (deci pot avea valoarea minim a cardinalitii zero); asocieri totale sau complete; cnd cel puin o realizare a fiecrei entiti trebuie s participe la sociere. 2. Dup numrul de entiti distincte care particip la asociere avem: asocieri binare; care se realizeaz ntre dou entiti distincte; asocieri recursive; asocieri ale entitilor cu ele nsele; asocieri complexe; asocieri realizate ntre mai mult de dou entiti distincte. 3. Dup semnificaia lor asocierile se pot clasifica ntr-o multitudine de categorii datorit semnificaiilor extrem de variate n cadrul unui anumit sistem informatic. n cadrul analizei structurale este necesar s fie identificate i analizate asocierile dintre entitile aflate pe nivele de abstractizare diferite, mai precis asocierile de tipul este un i este coninut n. Asocierile de tipul este un Entitile puse n eviden n cadrul primei etape de analiz structural pot prezenta diferite grade de abstractizare, deci se pot plasa pe diferite nivele n cadrul schemei de clasificare a entitilor. n acest sens exist entiti generice (clase), obinute printr-un
45
proces de generalizare a entitilor cu anumite caracteristici comune, numite subclase. De exemplu, membrii unei universiti reprezint o entitate clas, care genereaz entitile STUDENI i ANGAJAI, ultima genernd, la rndul ei, entitile CADRE DIDACTICE, PERS.DID.AUXILIAR i PERS.ADMINISTRATIV. Asocierea de tip este un se prezint ntotdeauna ca o asociere parial de tip unu la unu. Asocierile de tipul este coninut n Asocierile de tipul este coninut n exprim un proces de agregare, de grupare a mai multor entiti ntr-o entitate de nivel superior. Spre deosebire de tipul este un, asocierea este coninut n este calificat, dup cardinalitate drept asociere de tip unu la muli sau muli la muli, total sau parial. Identificarea atributelor aferente entitilor i asocierilor dintre entiti Atributele exprim caracteristici, proprieti ale compo nentelor sistemului informatic analizat sau ale asocierilor (legturilor) dintre aceste componente. n cadrul diagramei entitate-asociere, atributele sunt figurate prin blocuri ovale, legate de entitatea, respectiv asocierea pe care o descriu ntr-un mod specific, n funcie de tipul atributelor. Ex.:
46
1.
Atribut compus (bloc). Acesta este un atribut format din cel puin dou alte atribute. Valoarea sa este reprezentat de valorile atributelor componente. Ex.:
2. Atribut calculat (dedus). Acesta reprezint un atribut a crui valoare nu este cunoscut direct, ci se calculeaz pe baza valorilor altor atribute (de exemplu, atributul VALOARE, calculat ca produs ntre CANTITATE i PRE). 3. Atribut simplu; atribut care nu este nici compus i nici calculat. Valorile sale sunt valori atomice, adic nu mai pot fi descompuse n elemente componente. 4. Atribut repetitiv multivaloare. Acesta este un atribut format din mai multe valori care se repet de mai multe ori pentru aceeai entitate. De exemplu : entitatea STUDENT poate fi caracterizat de atributele simple NUME i GRUP precum i de atributul repetitiv DISCIPLIN, NOT care este identic pentru toate disciplinele audiate de un student. 5. Atribut de identificare (cheie). Reprezint un atribut care se caracterizeaz prin unicitatea valorii sale pentru fiecare instan a entitii creia i aparine. Atributele de identificare au un rol aparte n organizarea i manipularea informaiilor din baza de date. Stabilirea atributelor de identificare pentru entitile din cadrul sistemului informatic analizat
47
necesit examinarea mai nti a capacitii fiecrui atribut de a se constitui drept atribut de identificare (cheie). Un atribut poate fi atribut de identificare dac ndeplinete o serie de cerine i anume: ofer o identificare unic a realizrilor (instanelor) de entitate; posed o semnificaie clar; este uor de utilizat; este scurt.
Pentru o aceeai entitate pot exista mai multe atribute care pot servi drept atribute de identificare, adic pot exista mai multe chei candidate. Selectarea unuia dintre candidaii cheie drept atribut de identificare a entitii (cheie) se realizeaz astfel: 1. Se determin atributele care potenial pot constitui atribute de identificare a entitii, deci care respect cerinele menionate anterior i care poart numele de candidai cheie. Dac nu exist astfel de atribute se introduce un nou atribut (sau grup de atribute) drept candidat cheie. 2. Dac exist un singur candidat cheie, se va selecta acesta drept atribut de identificare a entitii. 3. Dac exist mai muli candidai cheie, se selecteaz unul, cu ajutorul unor euristici, precum: - se prefer atributele ale cror valori sunt mai puin volatile; - se prefer atributele ale cror valori sunt mai scurte.
48
3.2.2. Analiza dinamic (de comportament) a sistemului informaional Analiza dinamic are drept scop explicarea comportamentului elementelor componente ale sistemului informatic analizat. n urma acestei analize se obine modelul dinamic al sistemului analizat. Construirea modelului dinamic presupune urmtoarele etape: identificarea strilor n care se pot afla componentele sistemului; identificarea evenimentelor care determin trecerea unei componente dintr-o stare n alta; stabilirea succesiunii (fluxului) de evenimente i construirea unei diagrame care s reflecte tranziiile de stare pentru componentele sistemului (diagram de flux a evenimentelor). La realizare diagramei de flux a evenimentelor este necesar s se in cont de restriciile dinamice ale sistemului care servesc la identificarea tranziiilor admisibile ntre dou stri.
Fig. 3.3. Strile unei resurse de producie (utilaj, secie etc.) i tranziiile ntre aceste stri n figura de mai sus sunt prezentate strile posibile ale unei resurse de producie generice. Particularizarea acestui model pentru un depozit de materii prime este prezentat n figura urmtoare.
49
Fig. 3.4. Modelul dinamic al unui depozit de materii prime privit ca resurs de producie
3.2.3. Analiza cerinelor informaionale (analiza funcional a sistemului) Analiza cerinelor informaionale are drept scop determinarea transformrilor de date care se produc n cadrul sistemului informatic analizat, n scopul satisfacerii cerinelor informaionale aferente acestuia. Transformrile de date (tranzaciile) se vor reprezenta sub
50
forme unei diagrame de flux a prelucrrilor (modelul funcional), n care nodurile reflect procesele de prelucrare informaional, iar arcele reflect fluxurile informaionale. n cadrul analizei funcionale accentul se deplaseaz de la realitatea analizat ctre cerinele informaionale ale utilizatorilor, cerine a cror satisfacere constituie obiectivul realizrii bazei de date. Construirea modelului funcional presupune parcurgerea urmtoarelor etape: identificarea datelor de intrare i a datelor de ieire din sistem; construirea diagramelor de flux, prin care sunt reflectate legturile procedurale dintre intrri i ieiri; identificarea restriciilor;
precizarea criteriilor de optimizare. n figura urmtoare sunt prezentate dou modele funcionale pariale, primul se refer la cutarea preului unui articol dintr -un nomenclator de articole, iar al doilea la tranzaciile (transformrile de date) care se fac pentru a opera o modificare ntr-un cont bancar al unui client.
51
3.2.4. Integrarea modelelor sistemului informaional analizat Analiza sistemului informatic se finalizeaz prin integrarea modelelor structural, dinamic i a celui funcional. Modelul structural i cel dinamic sunt obinute prin investigarea sistemului real a proprietilor intrinseci, statice i dinamice ale componentelor acestui sistem, proprieti care sunt independente de aplicaiile care opereaz asupra lor. Modelul funcional este rezultatul analizei cerinelor informaionale ale utilizatorilor, mai precis a tranzaciilor (aplicaiilor) prin care pot fi satisfcute aceste cerine. Perspectiva diferit din care este realizat analiza explic de ce rezultatele obinute pot s difere fiind necesar o coordonare, deci o integrare a lor. n cadrul etapei de integrare a modelelor sistemului se stabilete n ce msur modelul structural i cel dinamic satisfac necesitile diferitelor aplicaii, verificndu-se completitudinea (existena
52
elementelor informaionale solicitate) i consistena lor (n ce msur componentele modelelor sunt necesare i suficiente n raport cu procesele de prelucrare). Se verific dac relaiile dintre componentele sistemului sunt stabilite n mod corespunztor, pentru a face posibil regsirea informaiilor din mai multe entiti. Se determin, de asemenea, dac legturile dintre entiti asigur coerena informaiilor, posibilitatea efecturii de actualizri
concomitente asupra datelor redundante. Se urmrete ca toate elementele informaionale participante la diferitele tranzacii s fie asignate, ca atribute ale diferitelor entiti. Pe baza acestei analize integrate se efectueaz adugrile i/sau corelrile necesare ntre modelele sistemului. n final se ajunge ca modelul structural i cel dinamic s nu mai fie complet independente de aplicaii, iar modelul funcional s nu mai fie orientat exclusiv pe aplicaii.
2.
53
Testul de autoevaluare nr. 2 Atributele pot fi : 1. Atribut compus (bloc). Acesta este un atribut format din cel puin dou alte atribute. Valoarea sa este reprezentat de valorile atributelor componente. Ex.: 2. Atribut calculat (dedus). Acesta reprezint un atribut a crui valoare nu este cunoscut direct, ci se calculeaz pe baza valorilor altor atribute (de exemplu, atributul VALOARE, calculat ca produs ntre CANTITATE i PRE). 3. Atribut simplu; atribut care nu este nici compus i nici calculat. Valorile sale sunt valori atomice, adic nu mai pot fi descompuse n elemente componente. 4. Atribut repetitiv multivaloare. Acesta este un atribut format din mai multe valori care se repet de mai multe ori pentru aceeai entitate. De exemplu : entitatea STUDENT poate fi caracterizat de atributele simple NUME i GRUP precum i de atributul repetitiv DISCIPLIN, NOT care este identic pentru toate disciplinele audiate de un student. 5. Atribut de identificare (cheie). Reprezint un atribut care se caracterizeaz prin unicitatea valorii sale pentru fiecare instan a entitii creia i aparine.
Testul de autoevaluare nr. 3 Analiza dinamic are drept scop explicarea comportamentului elementelor componente ale sistemului informatic analizat. n urma acestei analize se obine modelul dinamic al sistemului analizat.
54
Testul de autoevaluare nr. 4 Analiza funcional are drept scop determinarea transformrilor de date care se produc n cadrul sistemului informatic analizat, n scopul satisfacerii cerinelor informaionale aferente acestuia. Transformrile de date (tranzaciile) se vor reprezenta sub forme unei diagrame de flux a prelucrrilor (modelul funcional), n care nodurile reflect procesele de prelucrare informaional, iar arcele reflect fluxurile informaionale.
Rezumat
n aceast unitate de nvare au fost prezentate etapele de analiz a sistemelor informaionale mpreun cu tehnica diagramelor entitate-asociere.
Bibliografie
1. Crstoiu, Dorin, Baze de date relaionale, Editura Printech, Bucureti, 1999 2. Dumnescu Dorel, Baze de date, Editura Universitii PetrolGaze din Ploieti, 2005
55
3. Fotache M., Proiectarea bazelor de date. Normalizare i postnormalizare. Implementri SQl i Oracle, Editura Polirom, Iai, 2005 4. Fotache, Marin, SQL: Dialecte DB2, Oracle, PostgreSQL i SQL Server, ediia a II-a, Editura Polirom, Iai, 2009 5. Ionescu, Felicia, Baze de date relaionale i aplicaii, Editura Tehnic, 2004 6. Ptracu Aurelia, Tnsescu Ana, Dumnescu Dorel, Baze de date MS-Access. Teorie i aplicaii, Editura Universitii Petrol-Gaze din Ploieti, 2006 7. Thomas Connolly, Carolyn Begg, Anne Strachan, Baze de date. Proiectare. Gestiune. Implementare, Editura Teora, Bucureti, 2001
56
Pagina
58
58
61
4.1.3. Proiectarea schemei externe 4.2. n crcarea datelor n baza de date 4.3. Exploatarea i ntreinerea bazei de date 4.4. Rspunsuri i comentarii la testele de autoevaluare 4.5. Lucrare de verificare a cunotinelor
66
67
68
70
71
Rezumat
72
Bibliografie
73
57
Dup parcurgerea acestei uniti studentul va putea demonstra c are suficiente cunotine pentru a nelege: modul de proiectare a structurii unei baze de date; un set minim de principii care se folosesc la proiectarea unei baze de date.
dezavantaje cum sunt: schimbarea SGBD-ului impune reproiectarea Bazei de Date; conceptele tehnice ale SGBD-ului pot influena negativ activitatea de analiz i modelare, prin restricii impuse de acesta, care pot ncuraja sau descuraja anumite reprezentri;
58
fixnd ca punct de plecare facilitile unui SGBD, utilizatorul neinformatician care nu stpnete acest SGBD nu i poate exprima cerinele n deplin cunotin de cauz. Trecerea la proiectarea structurii bazei de date impune luarea n considerare a SGBD-ului cu ajutorul cruia va fi implementat i exploatat baza de date. Acesta deoarece baza de date reprezint un model al datelor exprimat cu ajutorul conceptelor specifice unui anumit SGBD, ceea ce face ca proiectarea structurii bazei de date s reprezinte transpunerea modelelor conceptuale n termenii unui model al datelor suportat de un anumit tip de SGBD (model ierarhic, reea, relaional, orientat obiect etc.). Etapa de proiectare a structurii bazei de date const n urmtoarele activiti: alegerea SGBD-ului care va fi utilizat pentru implementarea i exploatarea bazei de date; proiectarea schemei conceptuale a bazei de date; proiectarea schemei externe (subschemei) a bazei de date; proiectarea schemei interne (de memorare) a bazei de date. Deoarece aceste activiti sunt puternic influenate de tipul bazei de date care se proiecteaz, n continuare sunt prezentate aspectele generale, valabile indiferent de tipul bazei de date proiectate. Aspectele particulare urmeaz a fi prezentate atunci cnd vor fi prezentate diferite tipuri de baze de date.
4.1.1. Alegerea sistemului de gestiune al bazei de date Alegerea unui SGBD presupune realizarea urmtoarelor activiti: 1. Stabilirea cerinelor utilizatorilor, sub aspectul: tipurilor de aplicaii dorite; timpului de rspuns; confidenialitii datelor;
59
securitii datelor; uurinei de utilizare i altele. 2. Stabilirea cerinelor de ordin tehnic privind realizarea bazei de date, cum sunt: portabilitatea SGBD-ului, adic posibilitatea folosirii SGBD-ului pe diferite sisteme de calcul; portabilitatea coleciilor de date i a programelor. Aceasta nseamn c datele pregtite cu ajutorul unui calculator s poat fi transferate direct pe alt tip de calculator, mpreun cu programele aferente, fr alte operaii auxiliare; facilitile de ncrcare, exploatare i ntreinere a bazei de date care trebuiesc asigurate (modalitile de descriere a datelor, tehnicile de organizare i regsire a datelor etc.) i altele. 3. Stabilirea cerinelor de ordin economic, privind: ncadrarea n bugetul alocat pentru realizarea bazei de date; timpul necesar pentru pregtire utilizatorilor i trecerea la exploatarea curent a bazei de date. 4. Ierarhizarea cerinelor de la punctele anterioare, n funcie de importana (prioritatea) acordat fiecrei cerine n parte. 5. Analiza comparativ a SGBD-urilor disponibile i/sau posibil de achiziionat, n funcie de caracteristicile pe care le prezint aceste SGBD-uri. 6. Stabilirea corespondenei ntre cerinele formulate la punctele 13 i caracteristicile diferitelor SGBD-uri analizate, pentru a determina msura n care diferitele SGBD-uri analizate permit satisfacerea cerinelor formulate. 7. Alegerea propriu-zis a SGBD-ului care va fi folosit la realizarea bazei de date.
60
Proiectarea schemei conceptuale a bazei de date presupune urmtoarele activiti: stabilirea coleciilor de date i definirea detaliat a coninutului acestora; determinarea legturilor dintre coleciile de date i a modului de reprezentare a acestora n cadrul schemei conceptuale; testarea schemei obinute i revizuirea acesteia, dac este cazul; descrierea schemei conceptuale n limbajul de descriere a datelor de care dispune SGBD-ul i ncrcarea acestei descrieri n baza de date. La realizarea acestor activiti sunt utilizate, n principal, modelul structural i cel dinamic al sistemului analizat.
61
Stabilirea coleciilor de date i a coninutului acestora La stabilirea coleciilor de date (a componentelor schemei conceptuale) se pleac de la entitile identificate n etapa de analiz a sistemului. Fiecrei entiti i corespunde, de obicei, o colecie de date n cadrul schemei conceptuale. n aceste colecii vor figu ra atributele specifice entitilor plus eventual o serie de atribute pentru exprimarea legturilor cu celelalte componente ale sistemului real, atribute cunoscute sub numele de chei externe. Deoarece nu ntotdeauna exist o coresponden strict ntre entitile din modele semantice i coleciile de date din schema conceptual a bazei de date i din considerente de ameliorare a lucrului pe aceste colecii de date se poate decide <spargerea> unei entiti n dou sau mai multe colecii de date. Acest lucru duce la o cretere a flexibilitii de operare cu coleciile de date respective. Spargerea unei entiti n dou sau mai multe colecii de date se realizeaz innd seama de cerinele informaionale ale sistemului i de durata de existen a datelor n cadrul sistemului. Astfel, datele care sunt solicitate mai des de ctre utilizatori, cele care se modific la intervale reduse de timp sau cele care, dei nu se modific prea des, sunt solicitate frecvent de ctre programe pentru a genera alte date (prin calcul sau n alt mod), pot constitui colecii separate de date pentru a reduce timpul necesar regsirii informaiilor cutate. De exemplu, s considerm entitatea UTILAJE aparinnd unui model al unei uniti de producie. Un utilaj este caracterizat de urmtoarele: denumire, tip, numr de inventar, valoare de achiziionare, data achiziiei, durata normat de funcionare, totalul orelor de funcionare, datele reparaiilor curente planificate etc. Dar nu toate aceste informaii prezint importan pentru utilizatori la un moment dat. Acetia pot fi interesai, de exemplu, de caracteristicile generale ale utilajului sau de caracteristicile legate de funcionarea sau
62
ntreinerea utilajului. Din acest motiv, n cadrul schemei conceptuale a bazei de date pot apare dou sau mai multe colecii de date referitoare la utilajele de producie i anume: un nomenclator de utilaje, o colecie de date referitoare la funcionarea utilajelor, o colecie privind reparaiile efectuate sau planificate. Un alt motiv pentru care apare necesar descompunerea unei colecii de date n dou sau mai multe colecii deriv din legturile care apar ntre atributele unei entiti. Aceste legturi conduc la dependene ntre date datorit crora, la momentul exploatrii bazei de date pot apare o serie de disfuncionaliti, aa numitele anomalii de actualizare. Se impune deci reducerea la minimum a dependenelor (condiionrilor) dintre atributele unei colecii de date, lucru realizat, de obicei, prin descompunerea coleciei n dou sau mai multe colecii de date cu un numr mai mic de atribute. Cu toate acestea, mbuntirea performanelor n manipularea entitilor nu presupune obligatoriu mrirea numrului coleciilor de date folosite n cadrul schemei conceptuale. Aceasta deoarece nu se poate admite o cretere nelimitat a numrului de colecii de date, lucru care determin creterea dificultilor de localizare i accesare a datelor. Legturile ntre un numr mare de colecii de date impune i creterea redundanei datelor n cadrul bazei de date i deci o utilizare ineficient a suportului de memorare. Rezultatele obinute prin prelucrri costisitoare efectuate asupra datelor din baza de date pot fi memorate folosind colecii de date special introduse, astfel nct aceste rezultate s nu fie recalculate ori de cte ori sunt solicitate de utilizatori. Este vorba, bineneles de informaii solicitate frecvent de ctre utilizatori. Prin memorarea acestor rezultate crete redundana datelor, dar se evit efectuarea repetat a unor calcule complicate. Pentru scurtarea cilor de acces la date se mai admite un tip de redundan, i anume cea care apare datorit includerii unor atribute, simultan n mai multe colecii ale bazei de date.
63
n continuare este prezentat un exemplu referitor la drepturile profesorilor care lucreaz ntr-un liceu. Se pot forma dou colecii de date, una cu informaiile privind: numele angajatului; salariul de baz; vechimea; numrul de ore suplimentare; numrul de ore de dirigenie etc. informaii care au un grad ridicat de stabilitate, i alta cu informaii privind: numele angajatului; salariul de baz; sporul de vechime; numrul de zile lucrate; numrul zilelor de concediu medical i de odihn; numrul de ore suplinite; suma pentru orele suplinite; restane de plat; suma dedus pentru pensie suplimentar i omaj; impozitul pe salariu; chirii; alte reineri; avans; restul de plat la lichidare; informaii care trebuiesc adugate n baza de date lunar, fie din exterior, fie prin calculul acestora prin program. Determinarea legturilor dintre coleciile de date i a modului de reprezentare a acestora Aceasta se realizeaz, n principiu, pe baza legturilor dintre entitile identificate n cadrul etapei de analiz a sistemului i a
64
cerinelor informaionale. Este necesar s se determine, de asemenea i legturile dintre coleciile care nu au un corespondent direct n entitile care compun sistemul, dar care la rndul lor se afl n asociere, unele cu altele. Modul de reprezentare a legturilor dintre coleciile de date depinde de modelul datelor suportatde SGBD. Astfel, modelul ierarhic i cel reea utilizeaz pointeri (adrese de legtur) pentru nlnuirea datelor n cadrul diferitelor colecii. Modelul relaional reprezint legturile dintre coleciile de date (relaii) cu ajutorul cheilor externe sau cu ajutorul unor coleci de date distincte. Aceast reprezentare uniform a datelor i a asocierilor ntre date prin intermediul relaiilor constituie o caracteristic a modelului relaional, care confer acestuia o mare simplitate i flexibilitate.
schemei i gradului
conceptuale n care
presupune conine
consistenei
schemei schema
conceptuale,
informaionale necesare satisfacerii cerinelor informaionale ale diferiilor utilizatori i msura n care legturile stabilite ntre aceste elemente informaionale reflect raporturile naturale dintre
componentele sistemului real. De asemenea, prin testarea schemei conceptuale trebuie s se verifice dac redundana datelor este la un nivel minim i poate fi controlat. Testarea schemei conceptuale permite identificarea unor eventuale erori de proiectare care fac necesar revizuirea schemei. n acest caz se va relua etapa de proiectare a structurii bazei de date, i, uneori, chiar i etapa de analiz a sistemului i a cerinelor informaionale.
65
Descrierea schemei conceptuale n limbajul de descriere a datelor i ncrcarea sa n baza de date Descrierea schemei conceptuale a bazei de date se realizeaz n limbajul de descriere a datelor de care dispune SGBD-ul folosit. Rezultatul acestei descrieri l constituie proiectul bazei de date sau schema bazei de date. Compilatorul limbajului de descriere a datelor permite aducerea schemei bazei de date n forma la care aceasta s poat fi memorat n baza de date.
4.1.3. Proiectarea schemei externe Schema extern a bazei de date reprezint forma sub care apare schema conceptual pentru utilizatori. Ea este format din multitudinea viziunilor (vederilor) utilizator. O vedere utilizator
66
reprezint acea parte din schema conceptual pe care o poate vedea un anumit utilizator. Programele de aplicaie opereaz asupra schemei conceptuale prin intermediul schemei externe, avnd acces doar la acele elemente care sunt incluse n schema extern. Folosirea vederilor reprezint mecanismul prin care sunt satisfcute cererile de informaii ale utilizatorilor (deoarece un utilizator nu este interesat de toate informaiile stocate n baza de date) asigurnd totodat i protecia datelor contra accesului neautorizat la date (folosind vederile se limiteaz accesul fiecrui utilizator doar la acele date care i sunt necesare).
4.1.4. Proiectarea schemei interne Schema intern reprezint modul n care sunt memorate datele pe suport fizic. Schema conceptual folosete diferite structuri de date: liniar, arborescent, reea, relaional n timp ce memorarea datelor pe suport fizic se poate face numai sub forma unei structuri linare. Din aceast cauz, la proiectarea schemei interne a bazei de date se pune problema modului n care s fie liniarizat schema conceptual. Metoda de liniarizare a schemei conceptuale depinde de SGBD-ul folosit. Exist astfel SGBD-uri care fac apel la metodele de memorare ale datelor pe suportul fizic de memorare pe care le folosesc i sistemele de operare gazd i SGBD-uri care utilizeaz metode proprii de stocare a datelor pe suportul fizic. Aceste SGBDuri depind mai puin de sistemul de operare gazd, ceea ce le ofer o portabilitate sporit, comparativ cu SGBD-urile din prima categorie.
67
68
Fig. 4.1. Fazele ncrcrii datelor n baza de date Dup cum se vede n figura de mai sus, sursele de alimentare cu date a bazei pot fi: documente primare (facturi, bonuri, chitane etc.); colecii de date, gestionate prin diverse instrumente informatice, de exemplu preluarea datelor dintr-o baz de date creat anterior, folosind un SGBD cu care nu se mai lucreaz n continuare. Indiferent de sursa datelor, se recomand ca, n scopul ncrcrii bazei de date, s se constituie colecii temporare de date (fiiere). n situaia n care datele se preiau din documente primare este necesar utilizarea unor colecii temporare pentru a se deplasa activitatea de validare a datelor ct mai devreme n procesul de ncrcare a datelor n baza de date. Programele de ncrcare a bazei de date, scrise n limbajul de manipulare a datelor de care dispune SGBD-ul trebuie s conin ct mai puine validri deoarece aceste validri ncetinesc mult execuia programelor i determin apariia
69
unor puncte albe n baza de date, de exemplu, legturi neconstituite datorit inexistenei datelor corespunztoare. Pe de alt parte, n situaia n care datele se preiau din colecii gestionate prin alte instrumente informatice, este necesar utilizarea coleciilor temporare pentru a se putea adapta ct mai bine structura acestor colecii la modul de organizare a datelor n baza de date. Programele de ncrcare vor fi n acest caz mai simple i mai robuste, asigurnd un transfer mai rapid al datelor n baza de date.
70
informaionale necesare satisfacerii cerinelor informaionale ale diferiilor utilizatori i msura n care legturile stabilite ntre aceste elemente informaionale reflect raporturile naturale dintre
71
conceptuale trebuie s se verifice dac redundana datelor este la un nivel minim i poate fi controlat. Testarea schemei conceptuale permite i identificarea unor eventuale erori de proiectare care fac necesar revizuirea schemei.
72
Rezumat
n cadrul acestei uniti de nvare au fost prezentate etapele realizrii unei baze de date. Au fost prezentate activitile specifice proiectrii schemelor bazelor de date (conceptual, extern i intern) precum i cele specifice ncrcrii datelor n baza de date i aspectele care in de exploatarea bazelor de date.
Bibliografie
1. Crstoiu, Dorin, Baze de date relaionale, Editura Printech, Bucureti, 1999 2. Dumnescu Dorel, Baze de date, Editura Universitii PetrolGaze din Ploieti, 2005 3. Fotache M., Proiectarea bazelor de date. Normalizare i postnormalizare. Implementri SQl i Oracle, Editura Polirom, Iai, 2005 4. Fotache, Marin, SQL: Dialecte DB2, Oracle, PostgreSQL i SQL Server, ediia a II-a, Editura Polirom, Iai, 2009 5. Ionescu, Felicia, Baze de date relaionale i aplicaii, Editura Tehnic, 2004 6. Ptracu Aurelia, Tnsescu Ana, Dumnescu Dorel, Baze de date MS-Access. Teorie i aplicaii, Editura Universitii Petrol-Gaze din Ploieti, 2006 7. Thomas Connolly, Carolyn Begg, Anne Strachan, Baze de date. Proiectare. Gestiune. Implementare, Editura Teora, Bucureti, 2001
73
75
75
78 78 78 79 81
82
89
93
94
Rezumat
94
Bibliografie
95
74
Dup parcurgerea acestei uniti studentul va putea demonstra c are suficiente cunotine pentru a nelege: modelul relaional al datelor ; operaiile care se pot efectua asupra bazelor de date relaionale ; restriciile specifice modelului relaional al datelor.
Ideea bazelor de date relaionale a fost lansat pentru prima dat de ctre D. F. Childs care a subliniat faptul c orice structur de date poate fi reprezentat printr-una sau mai multe tabele de date, n cadrul crora este necesar s existe i informaii de legtur, pentru a se asigura legturile ntre tabele. Bazele modelului de date relaional au fost puse de ctre Codd E.F., n 1970 . Acesta are meritul de a fi articulat i dezvoltat ideile cu privire la utilizarea teoriei apartenenei la ansambluri sub forma unui model coerent d e structurare a datelor - modelul relaional.
75
dintre relaii se reprezint explicit prin atribute de legtur. Aceste atribute figureaz ntr-una din relaiile implicate n asociere (de regul, n cazul legturilor de tip unu la muli) sau sunt plasate ntr-o relaie distinct, construit special pentru exprimarea legturilor ntre relaii (n cazul legturilor de tip muli la muli). O baz de date relaional (BDR) reprezint un ansamblu de relaii, prin care se reprezint att datele ct i legturile dintre date. 2. Operatorii modelului relaional. Acetia definesc operaiile care se pot executa asupra relaiilor, n scopul realizrii funciilor de prelucrare asupra bazei de date, respectiv consultarea, inserarea, modificarea i tergerea datelor. 3. Restriciile de integritate ale modelului relaional. Permit definirea strilor coerente ale bazei de date. n comparaie cu modelele ierarhice i n reea, modelul relaional prezint o serie de avantaje, precum: Asigurarea unui grad sporit de independen a programelor de aplicaie fa de modul de reprezentare intern a datelor i metodele de acces la date. n precizarea prelucrrilor asupra datelor, programele de aplicaie nu fac apel la pointeri, fiiere inverse sau alte elemente ale schemei interne a bazei de date. n ceea ce privete independena logic, aceasta nu este complet rezolvat nici cu ajutorul modelului relaional. O deficien a modelului relaional este aceea c nu permite modelarea comportamentului dinamic al datelor, ceea ce face ca o mare parte din semantica aplicaiilor s fie codificat n programe i nu n schema conceptual a bazei de date. Furnizarea unor metode i tehnici eficiente de control a coerenei redundanei datelor, cu o bun fundamentare teoretic. Modificrile pe care le sufer n timp datele ridic
76
probleme serioase la ntreinerea bazei de date, n ceea ce privete controlul actualizrilor, reflectarea modificrilor din structura mediului economic real n structura datelor etc. Modelul relaional, prin tehnica normalizrii relaiilor permite definirea unei structuri conceptuale optime a datelor, prin care se minimizeaz riscurile de eroare la actualizare, reducndu-se redundana datelor. Oferirea unor faciliti multiple de definire i manipulare a datelor. n primul rnd, modelul relaional ofer posibilitatea utilizrii unor limbaje procedurale, bazate pe algebra relaional, precum i a unor limbaje neprocedurale avnd la baz calculul relaional. Limbajele neprocedurale (declarative) contribuie la mbuntirea semnificativ a comunicrii dintre sistem i utilizatorii neinformaticieni. n al doilea rnd, manipularea datelor se realizeaz la nivel de ansamblu (relaie), fiind posibil utilizarea paralelismului n prelucrarea datelor. Ameliorarea integritii i confidenialitii datelor. Modelul relaional realizeaz acest lucru prin mecanisme flexibile i eficace de specificare i utilizare a restriciilor de integritate i a relaiilor virtuale.
77
5.2.1. Domeniu Domeniul reprezint un ansamblu de valori, caracterizat printr-un nume. Un domeniu se poate defini explicit, prin enumerarea tuturor valorilor aparinnd acestuia sau implicit, prin precizarea proprietilor pe care le au valorile domeniului respectiv. Spre exemplu s consider urmtoarele domenii D1, D2, D3, definite astfel: D1 : {F,M} D2 : { x | x
N, x 0,100 }
D3 : {s | s = ir de caractere } Domeniul D1 este definit explicit n timp ce domeniile D2 i D3 sunt definite implicit. Pentru un ansamblu de domenii D1, D2, ..., Dn produsul cartezian al acestora reprezint ansamblul tuplurilor <v1, v2, ..., vn>, unde vi este o valoare aparinnd domeniului Di. De exemplu, tuplurile <Maria, F, 45>, <Vasile, M, 24> aparin produsului cartezian: D3xD1xD2. 5.2.2. Relaie Relaia reprezint un subansamblu al produsului cartezian al mai multor domenii, subansamblu caracterizat printr-un nume i care conine doar tupluri cu semnificaie. Considernd, de exemplu c pentru produsul cartezian definit mai sus se cunosc doar dou
78
persoane, definim relaia R prin tuplurile care descriu aceste persoane: R : {<Maria, F, 20>, <Vasile, M, 22>} ntr-o relaie, tuplurile trebuie s fie distincte ( nu se admit duplicri ale tuplurilor ). O reprezentare comod a relaiei este tabelul bidimensional (tabela de date), n care liniile reprezint tuplurile, iar coloanele corespund domeniilor (vezi figura).
R: D3 Maria Vasile D1 F M D2 20 22
n prezentarea conceptului de relaie se poate recurge la analogii cu alte concepte, extrem de bine cunoscute n domeniul prelucrrii automate a datelor, precum este conceptul de fiier. Relaia poate avea semnificaia unui fiier, tuplul poate fi considerat drept o nregistrare, iar valorile din cadrul tuplului pot fi interpretate drept valori ale cmpurilor nregistrrii. n cadrul modelului relaional nu intereseaz dect relaiile finite, chiar dac la construirea relaiilor se admit domenii infinite. Numrul tuplurilor dintr-o relaie reprezint cardinalul relaiei, n timp ce numrul valorilor dintr-un tuplu definete gradul relaiei.
5.2.3. Atribut Atributul reprezint coloana unei tabele de date, caracterizat printr-un nume. Numele coloanei (atributului) exprim de obicei semnificaia valorilor din cadrul coloanei respective. Atributele se folosesc pentru a conferi flexibilitate datelor. Pentru a nelege aceast problem vom considera urmtorul exemplu. S
79
presupunem c pentru o persoan dispunem de urmtoarele date: nume, sex, vrst i numele soului/soiei. O posibilitate de organizare a acestor date este reprezentat de relaia din figura urmtoare. PERS: D3 Maria Vasile D1 F M D2 30 32 D3 Vasile Maria
Relaia PERS reprezint un subansamblu al produsului cartezian: D3 x D1 x D2 x D3. Semnificaia valorilor din cadrul unui tuplu se stabilete n acest caz nu numai pe baza domeniului de care aparin valorile, ci i n funcie de poziia ocupat n cadrul tuplului. Dependena fa de ordine a datelor nseamn o reducere a flexibilitii organizrii datelor. ntr-o organizare eficient, flexibil, ordinea liniilor i a coloanelor din cadrul tabelei de date nu trebuie s prezinte nici o importan. Pentru a diferenia coloanele care conin valori ale aceluiai domeniu i a elimina astfel dependena de poziie n cadrul tabelei se asociaz fiecrei coloane un nume distinct, lucru care a dus la apariia noiunii de atribut. Prin folosirea atributelor, relaia PERS poate fi prezentat ntr -unul din modurile menionate mai jos.
PERS: Nume (D3) Maria Vasile Sex (D1) F M PERS:
Vrsta (D2)
30 32
Sot (D3)
Vasile Maria
Sot (D3)
Vasile Maria
Sex
(D1)
F M
Vrsta (D2) 30 32
80
5.2.4. Schema unei relaii Prin schema unei relaii se nelege numele relaiei, urmat de lista atributelor, pentru fiecare atribut precizndu-se domeniul asociat. Astfel, pentru o relaie R, cu atributele A1, A2, ..., An i domeniile D1, D2, ..., Dm, schema relaiei R poate fi reprezentat ntr-una din formele prezentate n figura de mai jos.
Schema unei relaii se mai numete i intensia relaiei, ca expresie a proprietilor comune i invariante ale tuplurilor care compun relaia. Spre deosebire de intensie, extensia unei relaii reprezint ansamblul tuplurilor care compun la un moment dat relaia, ansamblu care este variabil n timp. De obicei, extensia unei relaii este stocat fizic n spaiul asociat bazei de date, caz n care relaia poart numele de relaie de baz. Exist ns i situaii n care extensia nu este memorat n baza de date. Este cazul aa-numitelor relaii virtuale, cunoscute i sub numele de relaii derivate sau viziuni. Relaia virtual nu este definit explicit ca relaie de baz, prin ansamblul tuplurilor componente, ci implicit, pe baza altor relaii, prin intermediul unei expresii relaionale. Stabilirea efectiv a tuplurilor care compun relaia virtual se realizeaz prin evaluarea expresiei, ori de cte ori utilizatorul invoc aceast relaie.
81
82
proiecia, selecia i jonciunea precum i din dou operaii derivate: intersecia i diviziunea. Ulterior, la operaiile AR standard au fost adugate i alte operaii, aa numitele operaii adiionale sau extensii ale AR standard, precum: complementarea unei relaii, splitarea (spargerea) unei relaii, nchiderea tranzitiv etc. n general, operaiile AR pot fi grupate n: operaii tradiionale pe mulimi (reuniunea, intersecia, diferena, produsul cartezian); operaii relaionale speciale (selecia, proiecia, jonciunea etc.). n continuare sunt prezentate principalele operaii ale algebrei relaionale, precum i modul lor de utilizare. 1. Reuniunea. Reprezint o operaie a algebrei relaionale definit pe dou relaii: R1 i R2, ambele cu aceeai schem, operaie care const din construirea unei noi relaii R3, cu o schem identic cu R1 i R2 i avnd drept extensie tuplurile din R1 i R2, luate mpreun o singur dat. Reuniunea se noteaz uzual cu: OR (R1,R2) APPEND (R1,R2) UNION (R1,R2) n figura urmtoare este prezentat un exemplu de reuniune a dou relaii ORAE i MUNICIPII, formnd astfel o a treia relaie, LOCALITI.
83
2. Diferena. Reprezint o operaie a algebrei relauionale construit pe dou relaii: R1 i R2, ambele cu o aceeai schem, operaie care const din construirea unei noi relaii R3, cu schema identic cu a operanzilor i cu extensia format din acele tupluri ale relaiei R1 care nu se regsesc i n relaia R2. Notaiile uzuale pentru operaia de diferen a dou relaii sunt: R1-R2 REMOVE (R1,R2) MINUS (R1,R2) Un exemplu de diferen a dou relaii este dat n continuare.
3. Produs cartezian. Reprezint o operaie a algebrei relaionale definit pe dou relaii: R1 i R2, operaie care const din construirea unei noi relaii R3, a crei schem se obine prin concatenarea
84
schemelor relaiilor R1 i R2 i a crei extensie cuprinde toate combinaiile tuplurilor din R1 cu cele din R3. Notaiile uzuale pentru desemnarea operaiei sunt: R1 x R2 PRODUCT (R1,R2) TIMES (R1,R2) n continuare este prezentat un exemplu de produs cartezian a dou relaii.
4. Proiecia. Reprezint o operaie din algebra relaional definit asupra unei relaii R, operaie care const din construirea unei noi relaii P, n care se regsesc numai acele atribute din R specificate explicit n cadrul operaiei. Suprimarea unor atribute din R nseamn
85
efectuarea unor tieturi verticale asupra lui R, care pot avea ca efect apariia unor tupluri duplicate ce se cer a fi eliminate. Prin proiecie se trece de la o relaie de grad n la o relaie de grad p, mai mic dect cel iniial, adic de la un spaiu cu n dimensiuni la un spaiu cu mai puine dimensiuni, ceea ce explic i numele de proiecie atribuit operaiei. Notaiile uzuale pentru operaia de proiecie:
Ai , A j ,..., Am
( R)
n figura de mai sus este prezentat proiecia relaiei ORAE pe atributul JUDE. 5. Selecia reprezint o operaie din algebra relaional definit asupra unei relaii R, operaie care const din construirea unei relaii S, a crei schem este identic cu cea a relaiei R i a crei extensie este constituit din acele tupluri din R care satisfac o condiie menionat explicit n cadrul operaiei. ntruct cel mai adesea, nu toate tuplurile din R satisfac aceast condiie, selecia nseamn efectuarea unor tieturi orizontale asupra relaiei R, adic eliminarea de tupluri.
86
Condiia precizat n cadrul operaiei de selecie este n general de forma: operator de comparaie valoare
atribut
unde: <operator de comparaie> poate fi: <, <=, >=, > sau #. Notaiile folosite pentru desemnarea operaiei de selecie sunt urmtoarele:
conditie
( R)
R [condiie] RESTRICT(R, condiie). 6. Jonciunea (Joinul) reprezint o operaie din algebra relaional definit pe dou relaii: R1 i R2, operaie care const din construirea unei noi relaii R3, prin concatenarea unor tupluri din R1 cu tupluri din R2. Se concateneaz acele tupluri din R1 i R2 care satisfac o anumit condiie, specificat explicit n cadrul operaiei. Extensia relaiei R3 va conine deci combinaiile acelor tupluri care satisfac condiia de concatenare. Notaiile uzuale pentru desemnarea operaiei de jonciune sunt:
R1 condiie
R2
87
7. Intersecia reprezint o operaie din AR definit pe dou relaii: R1 i R2, ambele cu aceeai schem, operaie care const din construirea unei noi relaii R3, cu schema identic cu a relaiilor R1 i R2 i cu extensia format din tuplurile comune lui R1 i R2. Notaiile uzuale pentru operaia de intersecie sunt:
R1
R2
INTERSECT (R1, R2) AND (R1, R2). 8. Diviziunea reprezint o operaie din AR definit asupra unei relaii R din care se obine, cu ajutorul altei relaii P, relaia Q a crei extensie este format din atributele din R care rmn dup eliminarea atributelor relaiei P. Notaiile folosite pentru operaia de diviziune sunt:
DIVISION(R,r).
88
89
2. Alte restricii de integritate, din care fac parte: dependenele ntre date; restriciile de comportament. Restriciile de integritate minimale sunt definite n raport cu noiunea de cheie a unei relaii. Cheia unei relaii, R, reprezint ansamblul minimal de atribute prin care se poate identifica n mod unic orice tuplu din R. Orice relaie posed cel puin o cheie. La limit, cheia este constituit fie dintr-un singur atribut, fie din totalitatea atributelor din schema relaiei respective. Cnd cheia este constituit dintr-un singur atribut poart numele de cheie simpl, iar atunci cnd este format din mai multe atribute este denumit cheie compus. ntr-o relaie pot exista mai multe combinaii de atribute cu proprietatea de identificare unic a tuplurilor. Se spune n acest caz c relaia posed mai muli candidai cheie (sau mai multe chei candidate). n aceast situaie, administratorul bazei de date va alege dintre cheile candidate una care s serveasc n mod efectiv la identificarea tuplurilor i care va primi numele de cheie primar. Restul cheilor candidate vor purta numele de chei alternate. Cheia unei relaii trebuie s fie minimal, adic nici o parte a sa nu trebuie s fie la rndul ei cheie. Un grup de atribute din cadrul unei relaii care conine o cheie a relaiei poart numele de supercheie. Modelarea asocierilor dintre entiti impune recurgerea la conceptul de cheie extern. O cheie extern reprezint un atribut/grup de atribute dintr-o relaie R1 ale crui/cror valori sunt definite pe acelai/aceleai domeniu/domenii ca i cheia primar a unei relaii, R2 i care are rolul de a modela asocierea ntre entitile reprezentate prin relaiile R1 i R2. n acest context, R1 este denumit relaie care refer, n timp ce R2 poart numele de relaie referit. Restricia de unicitate a cheii reprezint restricia de integritate care impune ca ntr-o relaie, R care are cheia K, oricare ar fi tuplurile
90
t1 i t2 s fie satisfcut inegalitatea: t1 (K) # t2 (K). Aceast inegalitate semnific faptul c ntr-o relaie nu pot exista dou tupluri cu aceeai valoare pentru atributele cheie. Restricia referenial (integritatea referirii) reprezint restricia de integritate care impune ca ntr-o relaie R1 care refer o relaie R2, valorile cheii externe s figureze printre valorile cheii primare din relaia R2 sau s fie valori nedefinite (null). R1 i R2 nu trebuie s fie neaprat distincte. Semnificaia restriciei de integritate a referirii este urmtoarea : o asociere nu poate exista dect ntre entiti deja definite. Atunci cnd, ntr-o anumit situaie, asocierea nu este aplicabil, unul din parteneri va fi desemnat prin valoarea null, cu semnificaia de partener inexistent. Restricia entitii (integritatea entitii) reprezint restricia de integritate care impune ca ntr-o relaie atributele cheii primare s fie nenule. Unicitatea cheii impune ca la ncrcarea unui tuplu, valoarea cheii s fie cunoscut, pentru a se putea verifica faptul c aceast valoare nu exist deja ncrcat (tuplul nu figureaz deja n baza de date). Cu valori <null>, cheia i pierde rolul de identificator de tuplu. Restricia de integritate a entitii nu se aplic cheilor externe dintr-o relaie, dac acestea nu aparin cheii primare. Restriciile referitoare la dependena datelor semnific modul n care datele depind unele de altele. Aceast dependen ntre date poate fi de mai multe tipuri i anume: dependen funcional; reprezint dependena ntre date prin care se poate identifica un atribut/grup de atribute prin intermediul altui atribut/grup de atribute. Fiind dat o relaie R, un atribut Y din R este dependent funcional de un alt atribut X din R, dac i numai dac fiecare valoare a lui X are asociat o valoare precis a lui Y. dependen multivaloare; reprezint acel tip de dependen ntre date n care un atribut/grup de atribute poate prezenta mai multe valori pentru o singur valoare a
91
unui alt atribut/grup de atribute. Fie o relaie R, n care apar atributele/grupurile de atribute:X, Y i Z. n cadrul relaiei R exist o dependen multivaloare dac i numai dac mulimea valorilor lui Y corespunztoare unei perechi: (valoare X, valoare Z) depinde numai de valoarea lui X, nu i de valoarea lui Z; dependen jociune; aceast restricie exprim o dependen ntre date mai general dect dependena funcional sau dependena multivaloare. Restriciile de comportament se pot defini de ctre utilizator n funcie de realitatea descris n baza de date i pot fii: restricii de domeniu; care impun ca valorile unui atribut dintr-o relaie s se ncadreze n anumite limite; restricii temporale etc.
92
93
Rezumat
n aceast unitate de nvare a fost prezentat modelul relaional de organizare a datelor n baze de date. Au fost prezentate conceptele de domeniu i atribut. S-au prezentat, de asemenea, operaiile algebrei relaionale i restriciile de integritate a datelor, restricii specifice modelului relaional al datelor.
94
Bibliografie
1. Crstoiu, Dorin, Baze de date relaionale, Editura Printech, Bucureti, 1999 2. Dumnescu Dorel, Baze de date, Editura Universitii PetrolGaze din Ploieti, 2005 3. Fotache M., Proiectarea bazelor de date. Normalizare i postnormalizare. Implementri SQl i Oracle, Editura Polirom, Iai, 2005 4. Fotache, Marin, SQL: Dialecte DB2, Oracle, PostgreSQL i SQL Server, ediia a II-a, Editura Polirom, Iai, 2009 5. Ionescu, Felicia, Baze de date relaionale i aplicaii, Editura Tehnic, 2004 6. Ptracu Aurelia, Tnsescu Ana, Dumnescu Dorel, Baze de date MS-Access. Teorie i aplicaii, Editura Universitii Petrol-Gaze din Ploieti, 2006 7. Thomas Connolly, Carolyn Begg, Anne Strachan, Baze de date. Proiectare. Gestiune. Implementare, Editura Teora, Bucureti, 2001
95
Unitatea de nvare nr. 6. BAZE DE DATE RELAIONALE Proiectarea Bazelor de Date relaionale
Cuprins Obiectivele unitii de nvare nr. 6 6.1. Proiectarea bazelor de date relaionale Pagina
97
97
97
6.1.2. Proiectarea schemei externe 6.2. Sisteme de gestiune a bazelor de date relaionale 6.3. Rspunsuri i comentarii la testele de autoevaluare 6.4. Lucrare de verificare a cunotinelor
101
103
105
108
Rezumat
108
Bibliografie
109
96
6.1.1. Proiectarea schemei conceptuale La proiectarea bazelor de date relaionale se folosete frecvent termenul de schem conceptual optim, prin care se nelege acea schem conceptual care nltur posibilitile apariiei de anomalii n lucrul cu baza de date, asigurnd totodat faciliti i performane sporite la ncrcarea, exploatarea i ntreinerea bazei de date.
97
Anomaliile care apar la lucrul cu baze de date se manifest ndeosebi la ntreinerea bazei de date, fiind cunoscute i sub numele de anomalii de actualizare a datelor. Ele se manifest nu numai n cazul bazelor de date relaionale, ci i la celelalte tipuri de baze de date. n cadrul teoriei relaionale a bazelor de date, anomaliile de actualizare sunt puse n legtur cu dependenele care se manifest ntre date. Abordarea anomaliilor de actualizare a permis, pe de o parte caracterizarea riguroas a relaiilor dup gradul de perfeciune pe care l prezint (aa numitele forme normale ale relaiilor) i pe de alt parte a fcut posibil definirea unor tehnici formale pentru nlturarea anomaliilor de actualizare. Formele normale ale relaiilor Anomaliile care apar n lucrul cu baze de date relaionale se produc datorit dependenelor nedorite care se manifest ntre datele din cadrul relaiilor bazei de date. Aceste dependene determin creterea redundanei datelor i reducerea flexibilitii structurii bazei de date, efect manifestat prin: limitarea posibilitilor de inserare a datelor; apare cnd anumite date despre o entitate nu pot fi introduse n baza de date datorit lipsei altor date, relative la aceeai entitate, i fr de care, datele noi nu pot fi introduse datorit dependenelor dintre aceste date; pierderi de date la tergere; apar atunci cnd, n urma unei tergeri din baza de date sunt terse i altele, care nu mai pot fi obinute (reconstituite) din baza de date; apariia unor inconsistene la modificarea datelor; adic meninerea, pentru unele atribute, a unor valori neactualizate alturi de valorile actualizate.
98
Dependena datelor semnific modul n care datele depind unele de altele. Aceste dependene ntre date pot fi de mai multe tipuri, i anume: dependen funcional; reprezint dependena ntre date prin care se poate identifica un atribut/grup de atribute prin intermediul altui atribut/grup de atribute. Fiind dat o relaie R, un atribut Y din R este dependent funcional de un alt atribut X din R, dac i numai dac fiecare valoare a lui X are asociat o valoare precis a lui Y. dependen parial; apare atunci cnd avem o relaie cu cheie compus i un atribut X depinde funcional de cheia (complet) relaiei, dar depinde i de o parte component a cheii; dependena tranzitiv; apare atunci cnd un atribut X depinde funcional direct de cheia relaiei dar depinde i de un alt atribut Y, non-cheie. Rezult astfel o dependen indirect ntre atributul X i cheia relaiei prin intermediul atributului Y (Y depinde de cheia relaiei iar X depinde de Y). dependen multivaloare; reprezint acel tip de dependen ntre date n care un atribut/grup de atribute poate prezenta mai multe valori pentru o singur valoare a unui alt atribut/grup de atribute. dependen jociune; aceast dependen apare atunci cnd o relaie poate fi obinut prin aplicarea operaiei de JOIN pe alte dou relaii. n afar de dependena funcional, care este considerat natural i acceptat, restul dependenelor genereaz anomalii n exploatarea bazelor de date. Formele normale ale relaiilor dintr-o baz de date relaional sunt definite n raport de anomaliile care pot apare n lucrul cu aceste
99
relaii, deci n funcie de dependenele nedorite care se manifest n cadrul acestor relaii. La proiectarea bazelor de date relaionale se pot defini cinci forme normale, formnd cinci nivele de normalizare a relaiilor. O relaie R este n forma normal unu, FN1, dac domeniile pe care sunt definite atributele relaiei sunt constituite numai din valori atomice (elementare). n plus, un tuplu nu trebuie s conin atribute sau grupuri de atribute repetitive. O relaie R este n forma normal doi, FN2, dac este n FN1 i oricare dintre atributele noncheie este dependent funcional complet de cheia primar a relaiei (nu exist dependene pariale). Dac relaia are cheie simpl atunci automat se gsete n FN2. O relaie R este n forma normal trei, FN3, dac este n FN2 i atributele noncheie nu sunt dependente tranzitiv de cheia primar a relaiei. Relaia R este n forma normal patru, FN4, dac este n FN3 i n cadrul ei nu exist dependene multivaloare. Spunem c relaia R este n forma normal cinci, FN5, dac au fost eliminate dependenele jonciune.
Etapele procesului de proiectare a schemei conceptuale Proiectare schemei conceptuale a unei baze de date relaionale presupune parcurgerea urmtoarelor etape: 1. Determinarea formei normale n care trebuie s se afle relaiile din baza de date (a nivelului de perfeciune impus schemei conceptuale). Relaiile aflate n forme normale superioare determin apariia unui numr redus de anomali n lucrul cu baza de date, comparativ cu relaiile nenormalizat e sau aflate n primele forme normale, dar conduc todat la creterea timpului de acces la date. Aceasta deoarece relaiile aflate n forme normale superioare conin, de regul, un numr mai mic
100
de atribute, lucru care impune creterea numrului de relaii din baza de date, deci interogarea simultan a mai multor relaii pentru a gsi anumite informaii. n determinarea formei normale la care trebuiesc aduse relaiile din bazele de date relaionale se vor avea n vedere urmtoarele: ponderea operaiilor de interogare i a celor de actualizare n lucrul cu bazele de date relaionale; exigenele de performa i flexibilitate impuse de utilizatorii finali la interogarea i, respectiv la actualizarea bazelor de date relaionale. 2. Stabilirea relaiilor care s fac parte din baza de date, n forma normal stabilit anterior. Aceasta presupune definirea relaiilor i a restriciilor de integritate asociate, lucru realizat pe baza modelelor conceptuale ale sistemului, modele obinute n etapa de analiz a sistemului i a cerinelor informaionale asociate. n cadrul acestei etape se pot aplica mai multe tehnici de proiectare (tehnica normalizrii, tehnica diagramelor de dependen riguroas etc.). 3. Testarea schemei conceptuale obinute i revizuirea acesteia, dac este cazul; 4. Descrierea schemei conceptuale n limbajul de descriere a datelor utilizat de SGBD-ul relaional folosit i ncrcarea acestei descrieri n baza de date relaional.
6.1.2. Proiectarea schemei externe Schema extern a unei baze de date relaionale reprezint ansamblul relaiilor (tabelelor de date) la care are acces un utilizator (un program de aplicaie). Dei mai muli utilizatori pot lucra cu o aceeai schem extern, n general, se consider pentru o baz de date relaional attea scheme externe ci utilizatori exist la un
101
moment dat, scheme care trebuiesc proiectate i apoi fcute operaionale. Schema extern reprezint modul de organizare, structurare, a datelor de care are nevoie un anumit utilizator pentru a-i satisface toate cerinele informaionale. Deoarece, de cele mai multe ori, un utilizator nu are nevoie de ansamblul datelor memorate n cadrul bazei de date ci numai de o parte a acestor date, se consider schema extern drept o partiie logic a schemei conceptuale a bazei de date. Din aceast cauz, schema extern a unei baze de date mai este cunoscut i sub numele de subschem a bazei de date. Modul de structurare a datelor n cadrul schemei externe poate fi cel din cadrul schemei conceptuale sau poate s fie diferit. Acest lucru se explic prin faptul c structurarea datelor n cadrul schemei conceptuale are ca obiectiv optimizarea structurii de ansamblu a bazei de date relaionale, n raport de ansamblul cerinelor informaionale ale tuturor utilizatorilor, n timp ce structurarea datelor n cadrul schemei externe urmrete facilitarea satisfacerii cerinelor informaionale pentru un anumit utilizator. Deoarece aceste dou criterii nu sunt echivalente se obin rezultate, deci structuri ale datelor diferite. La proiectarea unei scheme externe a unei baze de date relaionale se parcurg urmtoarele etape: 1. Determinarea zonei (ariei) de interes pentru un anumit utilizator din cadrul sistemului informatic reflectat informaional cu ajutorul bazei de date; 2. Analiza structural, dinamic i funcional a acestei zone din domeniul activitii economice reprezentate prin sistemul informatic pentru care se realizeaz baza de date; 3. Proiectarea schemei externe, pe baza analizei anterioare, n modul de lucru descris la proiectarea schemei conceptuale a bazei de date relaionale, innd cont de faptul c aceeai schem poate apare drept o schem conceptual, dac
102
sistemul de referin este ntregul domeniu economic analizat, sau drept o schem extern, dac sistemul de referin este o parte din domeniul economic analizat; 4. Testarea schemei externe i modificarea acesteia, dac este cazul; 5. Aducerea schemei externe n forma operaional. Acest lucru se realizeaz n mod diferit fa de schema conceptual a bazelor de date, pentru care operaionalizarea presupune descrierea sa cu ajutorul limbajului de descriere a datelor utilizat de SGBDR, compilarea acestei descrieri i ncrcarea acestei descrieri compilate n cadrul bazei de date. Pentru ca o schem extern s devin operaional, s poat fi aplicat, utilizatorul cruia i este destinat trebuie s primeasc drepturi de acces asupra tabelelor de date care compun schema extern.
103
104
4. Sistemul suport toate operaiile de baz ale algebrei relaionale, fr limitri impuse din considerente interne. 5. Sistemul suport dou dintre restriciile de integritate de baz ale modelului relaional i anume unicitatea cheii unei relaii i restricia referenial. Un SGBD este pseudorelaional dac satisface numai condiiile 1 i 3. Dintre instrumentele i mecanismele de lucru de care dispune un SGBD relaional se pot meniona: un limbaj relaional pentru descrierea datelor la nivel fizic, logic i conceptual; un limbaj relaional pentru manipularea datelor (interogare i actualizare); mecanisme pentru controlul integritii semantice a datelor; mecanisme pentru asigurarea coerenei datelor n condiiile accesului concurent la date i apariiei unor avarii; mecanisme pentru optimizarea cererilor de date; utilitare pentru prezentarea rezultatelor, de tipul
generatoarelor de rapoarte, utilitare pentru generarea de aplicaii, pentru generarea de statistici despre starea i activitatea bazei de date. Dintre SGBD-urile relaionale mai cunoscute putem meniona: INGRES, ORACLE, DB2, FOCUS, SQL\DS .a. care lucreaz sub sistemele de operare VMS i UNIX. Pentru calculatoarele compatibile IBM-PC avem dBase IV, FoxPro, Paradox .a.
105
106
107
Rezumat
n cadrul acestei uniti de nvare au fost prezentate aspecte specifice proiectrii bazelor de date relaionale. S -a introdus conceptul de schem conceptual optim, obinut prin normalizarea relaiilor care compun baza de date. S-au definit primele cinci forme normale.
108
Bibliografie
1. Crstoiu, Dorin, Baze de date relaionale, Editura Printech, Bucureti, 1999 2. Dumnescu Dorel, Baze de date, Editura Universitii PetrolGaze din Ploieti, 2005 3. Fotache M., Proiectarea bazelor de date. Normalizare i postnormalizare. Implementri SQl i Oracle, Editura Polirom, Iai, 2005 4. Fotache, Marin, SQL: Dialecte DB2, Oracle, PostgreSQL i SQL Server, ediia a II-a, Editura Polirom, Iai, 2009 5. Ionescu, Felicia, Baze de date relaionale i aplicaii, Editura Tehnic, 2004 6. Ptracu Aurelia, Tnsescu Ana, Dumnescu Dorel, Baze de date MS-Access. Teorie i aplicaii, Editura Universitii Petrol-Gaze din Ploieti, 2006 7. Thomas Connolly, Carolyn Begg, Anne Strachan, Baze de date. Proiectare. Gestiune. Implementare, Editura Teora, Bucureti, 2001
109
Unitatea de nvare nr. 7 Noiuni introductive privind Bazele de Date Orientate pe Obiecte
Cuprins Obiectivele unitii de nvare nr. 7 Pagina
111
112
7.2. Baze de date orientate pe obiecte 7.3. Rspunsuri i comentarii la testele de autoevaluare 7.4. Lucrare de verificare a cunotinelor
118
122
123
Rezumat
123
Bibliografie
123
110
Dezvoltarea tehnologiei sistemelor de calcul n ultimii ani a condus la ptrunderea acestora n tot mai multe domenii de activitate, avnd de rezolvat probleme din cele mai diverse i mai complexe. Pen tru aceasta, structurile clasice de date bazate pe text i valori numerice fie se dovedesc insuficiente, fie complexitatea lor depete posibilitile de prelucrare oferite de tehnologiile clasice. Aplicaiile specifice anumitor domenii cum ar fi: proiectarea asistat de calculator, sisteme informatice geografice, sisteme bazate pe cunotine etc., presupun stocarea unor cantiti mari de informaii cu o structur complex. De exemplu, aplicaiile de proiectare asistat de calculator necesit stocarea i m anevrarea unor desene formate din grupuri de elemente complexe, alturi de acestea fiind necesar stocarea i a altor informaii privind materialele folosite, maini i utilaje disponibile, rezultate ale verificrilor efectuate asupra proiectului etc. Un alt domeniu al informaticii care necesit structuri de date complexe este multimedia. Acest domeniu, spre care exist o orientare tot mai puternic, presupune integrarea imaginilor reale sau
111
sintetizate cu sunet i muzic, integrare ce nu mai permite folosi rea datelor numerice sau de tip ir de caractere. O modalitate de rezolvare a acestor probleme este dat i de tehnologia aplicaiilor orientate pe obiecte. Bazele de date orientate pe obiecte permit crearea de obiecte complexe din componente mai simple, fiecare avnd propriile atribute i propriul comportament. Domeniile care se preteaz n mod deosebit la o tratare orientat pe obiecte sunt: proiectare (CAD), fabricare (CAM) i inginerie (CAE) asistate de calculator; simulare i modelare; sisteme informaionale spaiale (GIS); administrarea documentelor i automatizarea muncii de birou; multimedia; ingineria cunoaterii: baze de cunotine, sisteme expert; controlul proceselor n timp real, pe baz de evenimente. Obiectivele principale ale sistemelor de gestiune orientate pe obiecte sunt: Puterea de modelare superioar a datelor. Posibiliti motenire); Ameliorarea interfeei cu utilizatorul; Luarea n considerare a aspectelor dinamice, integrarea descrierii structurale i comportamentale a obiectelor. de deducie superioar (ierarhie de clase,
112
care descriu entitatea. Principalele concepte care stau la baza unui model orientat pe obiecte sunt: obiectul, ncapsularea, persistena, clasa, tipul, motenirea, polimorfismul, identitatea i domeniul. Obiectul Conceptual, un obiect reprezint o unitate identificabil i cu coninut propriu, care se deosebete de ceea ce o nconjoar. Obiectele sunt abstractizri ale entitilor lumii reale i se caracterizeaz prin stare i comportament. Starea unui obiect este exprimat prin valorile atributelor sale. Colecia de atribute aleas pentru un obiect trebuie s fie suficient pentru a descrie entitatea, adic trebuie s includ acele atribute pe care le cunosc utilizatorii. Comportamentul unui obiect reprezint un set de metode sau operaii care acioneaz asupra atributelor sale. Considernd, de exemplu obiectul AVION acesta poate avea ca atribute: viteza, anvergura, greutatea, culoarea, nlimea de zbor etc. Un obiect nglobeaz urmtoarele elemente: structura de date; specificarea operaiilor; implementarea operaiilor. Structura unui obiect i operaiile (metodele) permise pentru acel obiect sunt definite mpreun. O metod reprezint o procedur ce manipuleaz obiectul sau indic starea sa i este totdeauna asociat unei clase. Metodele i atributele nu sunt vizibile din exteriorul obiectului. Un obiect comunic cu exteriorul prin intermediul mesajelor . Mesajele reprezint cereri adresate obiectului pentru a returna o valoare sau pentru a-i schimba starea.
113
Obiectele pot fi simple sau compuse din alte obiecte. Un obiect compus poate avea ca atribute alte obiecte, formnd astfel o structur ierarhic.
ncapsularea Structura obiectului i modul de aciune al metodelor sale nu pot fi accesate i actualizate direct de ctre un agent extern, dar pot fi modificate indirect prin intermediul mesajelor. Aceast caracteristic ascuns a strii obiectului este cunoscut sub numele de ncapsulare. Un obiect este astfel divizat n dou pri: o parte de interfa reprezentat de mesaje i o parte ascuns, de implementare, reprezentat de starea intern i de metodele obiectului. ncapsularea ascunde utilizatorului complexitatea unui obiect, oferindu-i n schimb o imagine funcional simplificat a acestuia, imagine care i permite s modeleze i s rezolve cu mai mult uurin problemele complexe. Persistena Aceasta este o proprietate a datelor sau a obiectelor care implic existena mai ndelungat a acestora fa de procesul care le -a creat. Este proprietatea prin care starea bazei de date asigur pstrarea unui proces pentru a fi refolosit ulterior n alt proces. Codul aferent metodelor, fiind parte integrant din obiect, este stocat, ca i starea obiectului, n baza de date. Aceasta nseamn c, odat ce a fost descris, o metod devine permanent, decongestionnd astfel aplicaia i asigurndu-i independena fa de date. O modificare adus unei metode devine imediat operant i persist pn la o nou modificare.
114
Tipuri i clase Obiectele care au acelai fel de atribute i acelai comportament pot fi categorisite ca fcnd parte din acelai tip sau din aceeai clas. ntr-un sistem orientat pe obiecte, tipul sintetizeaz elementele comune ale unui set de obiecte cu aceleai caracteristici. Corespunde noiunii de tip abstract de date i are dou componente: interfaa; implementarea. Noiunea de clas, dei are aceeai specificaie cu cea de tip, este diferit de acesta, fiind mai mult asociat cu faza de execuie i presupune dou aspecte: generarea de obiecte; stocarea setului de obiecte care reprezint instanele clasei. O clas are o descriere ce const dintr-un set de structuri de date comune, cunoscute ca variabile de instan, un protocol comun ce const dintr-un set de mesaje, la care instanele clasei vor rspunde i un set de metode pentru implementarea de operaii comune. Clasele sunt referite uneori ca tip de date abstracte. Descrierea clasei servete ca ablon dup care vor fi create noile obiecte. O clas este deci un tip abstract de date care definete att structura obiectelor din clasa respectiv, ct i mulimea metodelor existente pentru aceste obiecte. Ca urmare, obiectele din aceeai clas au aceleai atribute i aceleai metode i rspund la aceleai mesaje. Clasele sunt organizate ierarhic fiecare clas nou creat trebuind s fie obinut din alt clas deja existent. Dac nu exist nici o clas potrivit pentru definirea unei noi clase, aceasta va fi identificat ca o subclas a clasei generale sistem (metaclas).
115
Orice subclas motenete structurile i metodele superclasei din care face parte. O clas poate crea noi instane ale obiectelor. Motenire ntr-o baz de date orientate pe obiecte, clasele sunt aranjate ntr o ierarhie n care fiecare clas motenete toate atributele i metodele superclasei din care face parte. Motenirea este un concept puternic, care conduce la posibilitatea de reutilizare a codului. Prin motenire, o clas preia toate atributele i metodele clasei din care deriv adugnd la ele atributele i metodele proprii. Este de asemenea posibil ca o clas s aib mai mult dect o superclas. Acest lucru este cunoscut ca motenire multipl.
Polimorfism Polimorfismul se refer la faptul c, la primirea unui mesaj, stabilirea metodei care se aplic se face n mod dinamic, n funcie de clasa obiectului n cauz. Astfel, instane ale unor clase diferite pot fi adresate uniform (primesc aceleai mesaje), dar manifest comportamente diferite. Acest fapt asigur manipularea simpl i coerent a seturilor eterogene de obiecte. Un alt tip de comportament polimorfic este asociat cu motenirea. Rspunsul unui obiect la un mesaj poate fi determinat de metodele motenite de la superclas. Motenirea multipl permite definirea unor forme complexe de comportament polimorfic care pot antrena uneori combinarea metodelor de la dou sau mai multe supercla se.
116
Identitatea
Identitatea este un mijloc de a distinge un obiect de altul. Prin identitate se asigur i persistena datelor. Oricare din obiectele unei baze de date orientate pe obiecte are identitate care este independent de valorile atributelor sale. Spre deosebire de modelul relaional, care utilizeaz unicitatea cheii primare pentru a identifica obiectul, tehnologia orientat pe obiecte permite modificarea valorilor oricrui atribut fr a-i afecta identitatea. Mai mult chiar, obiectele au contiina de sine, adic se pot referi pe ele nsele prin intermediul pointerului SELF. Fiecare instan sau realizare a obiectului are un identificator de obiect intern, repartizat lui i cunoscut ca ID obiect sau pointer. Acesta este independent de valorile atributelor sale. Fiind generat de sistem, identificatorul este unic i nu este accesibil utilizatorului. Restricii de integritate ale modelului de date orientat pe obiecte n cazul modelului de date orientat pe obiecte, restriciile de integritate cunt o consecin a structurii modelului i a operaiilor. Urmtoarele reguli sunt important de reinut: toate obiectele trebuie s respecte protocolul specificat prin definirile lor de clas; obiectele sunt ncapsulate. Aceasta presupune accesul la obiect numai prin folosirea protocolului de mesaje definit pentru clasa obiectului; identificatorul obiectului trebuie s asigure integritatea referirii la un obiect. Astfel, un obiect nu exist fr s aib asignat un identificator.
117
Dac un obiect este ters sau mutat atunci trebuie s fie terse sau mutate toate obiectele derivate din acesta.
118
structurale dintre clase (analog cu relaiile din modelul entitaterelaie-atribut). O schem complet de baz de date poate consta din una sau mai multe ierarhii de clas mpreun cu relaiile structurale. Descrierile individuale ale schemei se refer la variabile de instan ale claselor individuale. Schema bazei de date poate fi modificat dinamic, n funcie de necesitile utilizatorilor. Pot fi identificate dou tipuri de schimbare a schemei unei baze de date orientate pe obiecte: 1. Schimbri referitoare la modul de definire al unei clase. Acestea includ schimbrile atributelor i metodelor definite pentru o clas, cum ar fi schimbarea numelui sau domeniului unui atribut, adugarea, tergerea unui atribut sau metode; 2. Schimbri referitoare la structura ierarhiei de clase care includ adugarea sau tergerea unei clase i schimbarea relaiilor superclasa/subclasa dintre o pereche de clase.
Proiectarea bazelor de date orientate pe obiecte Modul clasic de proiectare se bazeaz pe tehnica top -down. Se identific mai nti componentele majore, se stabilesc corelaiile ntre ele, iar apoi se trece la rafinri succesive, n cascad, a componentelor. Proiectarea orientat pe obiecte se bazeaz mai mult pe tehnica bottom-up. Se identific mai nti componentele funcionale pe baza crora se va construi apoi ntregul edificiu. Se identific n coleciile existente obiectele care pot fi reutilizate pentru noul proiect. Acestea vor fi preluate ca atare sau, dac este cazul, vor fi ajustate. Cele care nu exist vor fi create, uneori din temelii, dar de cele mai multe ori ca subclase ale unor clase existente. Odat creat ierarhia de clase potrivit, se testeaz componentele specifice, se pune la punct documentaia i se poate ncepe aciunea de implementare.
119
Aceast metodologie modific n mod substanial planificarea lucrrilor i etapelor. Partea cea mai minuioas a proiectrii se mut la nceputul proiectului. Dac exist deja biblioteci de obiecte utilizate n alte aplicaii, realizarea uni prototip se poate face foarte rapid . Pe baza lui se stabilesc aspectele funcionale i de interfa ale aplicaiei, dup care se trce la etapa de identificare a obiectelor, a claselor, a ierarhiei, a modului de comunicare ntre obiecte. Etapa final a proiectului const n asamblarea acestor elemente.
Sistemele de gestiune a bazelor de date orientate pe obiecte trebuie s pstreze funciunile oferite de SGBD-urile dezvoltate anterior, folosind totodat structuri de date i reguli o rientate spre lucrul cu obiecte. Un SGBD orientat pe obiecte trebuie s satisfac dou criterii: s fie un sistem orientat pe obiecte, deci bazat pe modelul orientat pe obiecte; s ndeplineasc cerinele unui sistem de gestiune a bazelor de date. Arhitectura unui SGBD se refer la o descriere abstract a organizrii unui sistem n scopul de a prezenta componentele funcinale i interfeele dintre ele. Arhitectura unui SGBD-OO cuprinde trei componente majore: Gestionarul de obiecte (Object Manager) care asigur interfaa dintre procese (prelucrrile) externe i SGBD-OO; Server-ul de obiecte care este responsabil cu asigurarea serviciilor de baz ale SGBD-urilor, cum ar fi: gestiunea tranzaciilor i gestiunea stocului de obiecte; Stocul rezident de obiecte sau chiar baza de date obiect. Procesele externe pot fi generate de ctre diveri utilizatori prin accesarea SGBD-OO. Utilizatorii finali externi i cei care dezvolt
120
aplicaii pot folosi diverse instrumente soft, cum ar fi: editoare de texte, browseri de obiecte i clase, accesorii de proiectare automat de baze de date i interfee pentru sisteme de proiectare CAD/CAM. Aceste sisteme pot servi ca instrumente (kits) front_end ce realizeaz interfaa cu gestionarul de obiecte. n prezent, SGBD-OO comerciale sunt accesate n primul rnd prin limbajele de programare orientate obiect, cum ar fi: Smalltalk, Common Lisp i C++. Interfaa dintre limbajele de programare orientate pe obiecte i SGBD-OO o reprezint limbajul pentru baza de date. Un SGBD trebuie s asigure un limbaj pentru baze de date pentru a permite definirea i manipularea schemei bazei de date i a datelor. Exemple de SGBD-OO sunt: GemStone, ObjectStore, Ontos, Raima Object Manager, Versant etc.
121
122
Rezumat
n aceast unitate de nvare sunt prezentate aspectele caracteristice modelului de date orientat pe obiecte i elementele care definesc bazele de date orientate obiect.
Bibliografie
1. Dumnescu Dorel, Baze de date, Editura Universitii PetrolGaze din Ploieti, 2005 2. Fotache, Marin, SQL: Dialecte DB2, Oracle, PostgreSQL i SQL Server, ediia a II-a, Editura Polirom, Iai, 2009 3. Thomas Connolly, Carolyn Begg, Anne Strachan, Baze de date. Proiectare. Gestiune. Implementare, Editura Teora, Bucureti, 2001
123
125
125
8.2. Sistemul de gestiune a bazelor de date distribuite 8.3. Rspunsuri i comentarii la testele de autoevaluare 8.4. Lucrare de verificare a cunotinelor
129
132
133
Rezumat
133
Bibliografie
133
124
125
distribuit i a unor administratori locali, crora le revin responsabilitile legate de bazele de date locale.
Administratorii locali pot avea un grad nalt de autonomie care poate merge pn la realizarea coordonrii ntre staii. Independena datelor. n cazul bazelor de date distribuite asigurarea independenei datelor fa de programele de aplicaii are aceeai importan ca i n cazul bazelor de date locale, dar apare un nou aspect legat de transparena distribuiei. Prin transparena distribuiei programele pot fi scrise fcnd abstracie de distribuirea fizic a datelor. Mutarea datelor dintr-o staie n alta trebuie s afecteze numai viteza de execuie, nu i corectitudinea programului. Asigurarea unei redundane minime i controlate. n cadrul bazelor de date distribuite exist mai multe motive pentru a considera redundana datelor o caracteristic acceptabil, i anume: localizarea este mai rapid atunci cnd datele sunt replicate la toate staiile unde sunt cerute de aplicaii; disponibilitatea, sigurana sistemului crete atunci cnd datele sunt replicate. n cazul cderii unei staii, aplicaiile pot fi dirijate la staiile unde datele sunt replicate. Redundana datelor reduce efortul de regsire a datelor dar crete efortul de actualizare. Evaluarea unui grad optim al redundanei trebuie s in seama de raportul ntre accesele de regsire i accesele de actualizare a datelor. Integritatea, restaurarea datelor i controlul concurenei. n cazul bazelor de date distribuite soluiile privind integritatea, restaurarea datelor i controlul concurenei (cererea simultan a acelorai date) sunt legate de modul de realizare a tranzaciilor. O tranzacie este o unitate atomic de execuie, o secven de operaii care fie sunt realizate n ntregime fie nu
126
sunt realizate. n cadrul bazelor de date distribuite problema atomicitii tranzaciilor capt un aspect particular legat de modul n care trebuie s se comporte sistemul atunci cnd una din staii nu este operaional: s abandoneze ntreaga tranzacie sau s ncerce s execute corect tranzacia chiar dac ambele staii nu sunt simultan operaionale. Sigurana i securitatea datelor. n bazele de date tradiionale, administratorul bazei de date care are controlul centralizat permite numai un aces autorizat la date. n bazele de date distribuite, administratorii se confrunt cu aceleai probleme ca administratorii bazelor de date tradiionale. Sunt de menionat dou aspecte particulare: n bazele de date distribuite, cu un grad ridicat de autonomie a staiilor, bazele de date locale sunt mai protejate deoarece administratorii locali i realizeaz propria protecie fr s depind de un administrator centralizat; problemele securitii sunt intrinseci sistemelor distribuite deoarece comunicaia n reea poate reprezenta un punct slab n realizare proteciei. Fa de bazele de date centralizate, bazele de date distribuite au urmtoarele avantaje: Creterea adaptabilitii sistemului. n orice moment baza de date poate fi extins prin adugarea de noi structuri de baze de date, cu un impact minim asupra structurii bazei de date distribuite i fr a afecta aplicaiile existente. n cazul sistemelor centralizate, dimensiunile iniiale ale sistemului trebuie s prevad viitoarele expansiuni, lucru greu de realizat i costisitor de implementat. Sporirea performanelor sistemului deoarece partajarea i replicarea datelor ca i existena mai multor procesoare
127
au ca rezultat creterea gradului de paralelism n executarea aplicaiilor. Creterea siguranei sistemului. Sistemul distribuit este proiectat astfel nct cderea unei staii nu afecteaz ntregul sistem. Disponibilitatea sporit a datelor asigurat de replicarea lor. Chiar dac o staie cade, datele sunt nc disponibile prin copiile memorate pe alte staii.
128
129
2. Localizarea datelor. Dup primirea unei cereri de date, SGBDD consult dicionarul de date global pentru a localiza nodul n care sunt memorate datele. Cererile de date pot fi mprite n cereri locale, la distan i compuse. Dac cererea poate fi satisfcut n ntregime local este preluat de SGBD-ul local. O cerere la distan este o cerere care poate fi prelucrat n ntregime ntr-un alt nod dect cel care a emis cererea. n acest caz SGBDD transfer crerea SGBD-ului de la nodul respectiv. O cerere compus este o cerere care necesit informaii din mai multe noduri. Pentru a prelucra o cerere compus este necesar mai nti descompunerea acesteia n cereri locale i cereri la distan. n urma prelucrrii, rezultatele sunt transferate SGBDD care le transfer la rndul lui utilizatorului. Pentru a superviza execuia cererilor, un nod trebuie s-i asume rolul de coordonator. Celelalte noduri care concur la realizarea unei cereri se numesc noduri cooperante. Un nod poate fi n acelai timp nod i coordonator (pentru crerile lansate din acest nod) i cooperant (pentru cererile lansate din celelalte noduri care solicit acces la acest nod). 3. Asigurarea controlului concurenei i restaurarea datelor la nivelul ntregului sistem. Fiecare SGBD rspunde de actualizarea i restaurarea datelor din propria baz de date. n caz de incident, SGBD local poate restaura datele la starea anterioar producerii incidentului dar numai SGBDD poate pstra i aplica modificrile care au intervenit dup producerea incidentului. Controlul concurenei la nivelul sistemelor este necesar pentru a asigura sincronizarea proceselor. 4. Realizarea administrrii bazei de date distribuite i controlul acesteia. SGBDD dispune de instrumente pentru monitorizarea bazei de date distribuite, colectarea informaiilor despre modul de utilizare a acesteia i, pe baza acestora, realizeaz viziunea global asupra ei.
130
O caracteristic important a SGBDD este omogenitatea sau eterogenitatea. Un SGBDD este omogen atunci cnd toate SGBDurile locale sunt de acelai fel. Un SGBDD eterogen implic cel puin dou SGBD-uri locale diferite. Astzi exist SGBDD omogene cum sunt: SDD-1, R*, DDM .a. i SGBDD eterogene cum ar fi: MULTIBASE, DDTS .a. De un interes crescnd se bucur sistemele eterogene de baze de date distribuite.
131
132
dicionarul de date global (DDG); sistemul de gestiune al bazei de date distribuite (SGBDD).
Rezumat
n aceast unitate de nvare sunt prezentate aspectele caracteristice bazelor de date distribuite precum i caracteristicile SGBD-urilor distribuite.
Bibliografie
1. Dumnescu Dorel, Baze de date, Editura Universitii PetrolGaze din Ploieti, 2005 2. Ionescu, Felicia, Baze de date relaionale i aplicaii, Editura Tehnic, 2004 3. Thomas Connolly, Carolyn Begg, Anne Strachan, Baze de date. Proiectare. Gestiune. Implementare, Editura Teora, Bucureti, 2001
133
135
135
136
9.2. Securitatea bazei de date 9.3. Rspunsuri i comentarii la testele de autoevaluare 9.4. Lucrare de verificare a cunotinelor
139
143
145
Rezumat
145
Bibliografie
145
134
135
proteciei bazelor de date ce vor fi prezentate mai jos se bazeaz pe presupunerea c, la nivelul sistemului de operare, protecia informaiilor din bazele de date este asigurat.
9.1.1. Integritatea datelor Corespunztor situaiilor care pot genera apariia unor date incorecte n baza de date, se disting trei aspecte ale asigurrii integritii datelor: 1. Asigurarea integritii semantice a datelor - presupune prevenirea introducerii unor date incorecte i a efecturii unor prelucrri greite. Dac acest lucru nu va fi mpiedicat sau semnalat imediat, datele vor fi utilizate n alte prelucrri, declanndu-se astfel un proces necontrolat de alterare a bazei de date. Cu ct sesizarea unei erori are loc dup o perioad mai mare, cu att efectele ei vor fi mai greu de controlat. 2. Controlul accesului concurent la date presupune prevenirea obinerii unor rezultate incorecte din execuia concurent (simultan) a unor prelucrri n regim multiutilizator. O alt problem care poate apare la prelucrarea concurent este dat de interblocare. Aceasta nseamn c dou tranzacii blocheaz anumite resurse, apoi solicit fiecare resursele blocate de cealalt. 3. Salvarea i restaurarea bazei de date. Au ca scop readucerea datelor la o form consistent n urma unor evenimente care au alterat corectitudinea lor precum: funcionarea anormal sau o cdere a SGBD sau a sistemului de operare; defeciune fizic a suportului fizic pe care este memorat baza de date.
136
n primul caz, prin ntreruperea tranzaciilor active n momentul respectiv, baza de date va rmne ntr-o stare de inconsisten. n cel de-al doilea caz, suportul pe care rezid baza de date va fi inutilizabil, deci toate datele se vor pierde. Pentru restaurarea bazei de date este necesar existena unor informaii despre derularea tranzaciilor pn n momentul ntreruperii lucrului i aplicarea, dup caz a uneia din urmtoarele tehnici de restaurare de baz: derularea napoi a tranzaciilor (ROLLBACK) - care presupune anularea modificrilor efectuate de acestea asupra bazei de date; derularea nainte a tranzaciilor completate dar nereflectate n baza de date (ROLLFORWARD) - care presupune efectuarea acelor transformri prin care baza de date restaurat s conin rezultatele acestora. Se observ deci c tranzacia poate fi considerat unitatea de restaurare, n sensul c baza de date restaurat trebuie , fie s reflecte rezultatele finale ale tranzaciilor, fie s nu fie afectat de acestea. Procesul de restaurare utilizeaz o serie de infromaii obinute prin aplicarea unei anumite strategii de salvare. Datele salvate pot fi diferite combinaii ntre: - copii ale bazei de date i copii ale jurnalelor acesteia; - jurnale ale tranzaciilor; - jurnale ale imaginii nregistrrilor din baza de date. Copiile bazei de date pot fi realizate automat de ctre sistem la anumite intervale de timp, sau la comanda administratorului bazei de date, ori de cte ori este nevoie, de preferat pe suporturi magnetice diferite de cele pe care este stocat baza de date. n cazul unei deteriorri a suportului magnetic care pstreaz baza de date, acesta este singura posibilitate de recuperare a bazei de date.
137
Jurnalul tranzaciilor este un fiier special, ntreinut de SGBD, n care sunt memorate informaii despre tranzaciile efectuate asupra bazei de date, cum sunt: identificatorul sau codul tranzaciei; momentul nceperii execuiei tranzaciei; numrul terminalului sau identificatorul utilizatorului care a iniiat tranzacia; datele introduse; nregistrrile modificate i tipul modificrii. Pe baza lui va putea fi stabilit ulterior succesiunea corect i natura prelucrrilor efectuate n intervalul de timp pentru care trebuie s se sigure restaurarea bazei de date. Jurnalul imaginilor se deosebete de jurnalul tranzaciilor prin aceea c el nu conine descrierea operaiilor efectuate asupra bazei de date ci efectul acestora. Poate mbrca una din urm roarele forme: jurnalul cu imaginea nregistrrilor dup modificare (after image) - va conine copia fiecrei nregistrri ce este modificat, n forma rezultat dup modificare; jurnalul cu imaginea nregistrrilor naintea unei modificri (before image) - va conine copia fiecrei nregistrri ce este modificat, n forma iniial, anterioar efecturii modificrii; jurnalul care conine att imaginea nregistrrilor inainte ct i dup modificare. Restaurarea bazei de date se poate face automat sau manual.
138
139
Pentru cererile de intrare/ieire transmise sistemului de operare de ctre SGBD sunt posibile verificri suplimentare referitoare la utilizarea corect a fiierelor sau a funciilor sistemului de operare. Hardware-ul poate s ofere o protecie 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 continuare vor fi prezentate urmtoarele mecanisme de asigurare a securitii datelor din baza de date: 1. Autorizarea i controlul accesului la date presupune identificarea utilizatorilor, restricionarea accesului acestora la date precum i restricionarea operaiilor ce pot fi executate asupra datelor accesate. Cea mai mare parte a SGBD-urilor actuale folosesc pentru identificarea utilizatorilor parole. Fiecare parol va fi asociat cu anumite drepturi de acces la date, ea nefind dect un prim obstacol pentru cei care ncearc s violeze securitatea bazei de date . Astfel, pentru fiecare utilizator identificat prin parol, SGBD menine o list a privilegiilor acestuia. De asemenea, utilizatorii pot fi asociai unor grupuri de utilizatori, la drepturile fiecruie dugndu -se drepturile stabilite pentru grupul respectiv. Privilegiile unui utilizator depind astfel de clasa de utilizatori creia i aparine. Din acest punct de vedere, utilizatorii se mpart n: administratorul bazei de date care are toate drepturile asupra acesteia, utilizatori proprietari de obiecte (tabele, viziuni, proceduri), un obiect fiind ntotdeauna n proprietatea celui care-l creeaz, i utilizatorii obinuii, care nu au n proprietate obecte i nu au alte privilegii dect cele motenite ca membrii ai unui grup sau menionate explicit de admin istratorul bazei de date. 2. Definirea i utilizarea viziunilor. Viziunile (schemele externe) sunt partiii logice ale bazei de date. Ele sunt definite pentru diferii
140
utilizatori n raport cu necesitile acestora de a avea acces la date, putnd fi utilizate pentru a restriciona accesul la date. Privilegiile pentru o viziune sunt specificate independent de cele pentru obiectele pe baza creia este definit. Securitatea datelor este asigurat prin definirea tuturor drepturilor necesare unui utilizator pentru o viziune i revocarea drepturilor pentru obiectele iniiale. Aceast modalitate este suficient n cazul n care asupra datelor viziunii este permis doar operaia de citire. Pentru operaia de modificare trebuiesc avute n vedere efectele laterale pe care aceasta le poate produce asupra obiectelor iniiale. Utilizatorului nu trebuie s i se permit s efectueze asupra viziunii acele operaii care pot afecta obiectele iniiale. n caz contrar, pot s apar erori sau inconsistene n baza de date. 3. Realizarea de proceduri speciale. Unele SGBD ofer facilitatea definirii unor proceduri ce vor fi pstrate la nivelul sistemului ntr-o form precompilat. n cadrul acestor proceduri vor fi specificate explicit operaiile ce trebuie efectuate asupra datelor. Utilizatorului i se va acorda dreptul de execuie a acestor proceduri i i se va interzice accesul direct la obiectele bazei de date gestionate de procedur. 4. Criptarea datelor este operaia de codifcare a datelor n timpul stocrii sau al transportului, astfel nct descifrarea lor s poat fi fcut numai de posesorii de cod. La nivelul SGBD aceast facilitate poate mbrca dou forme: existena unor rutine speciale care realizeaz criptarea datelor la cerere sau automat; existena unor instrumente de criptare care permit utilizatorului s-i realizeze propriile rutine de criptare. Procesul efectiv de criptare presupune folosirea unui sistem de cifrare, ale crui componente sunt:
141
1. Algoritmul de criptare - realizeaz transformarea datelor din forma iniial n forma criptat (cifrat). 2. Cheia de criptare - valoare ce constituie o intrare a algoritmului de criptare, aleas dintr-o mulime de chei posibile. 3. Algoritmul de decriptare - realizeaz transformarea datelor din forma criptat n forma iniial. 4. Cheia de decriptare - valoare ce constituie o intrare n algoritmul de decriptare, dependent de cheia de criptare.
142
143
144
Rezumat
n aceast unitate de nvare sunt prezentate aspectele caracteristice bazelor de date distribuite precum i caracteristicile SGBD-urilor distribuite.
Bibliografie
1. Dumnescu Dorel, Baze de date, Editura Universitii PetrolGaze din Ploieti, 2005 2. Fotache M., Proiectarea bazelor de date. Normalizare i postnormalizare. Implementri SQl i Oracle, Editura Polirom, Iai, 2005 3. Fotache, Marin, SQL: Dialecte DB2, Oracle, PostgreSQL i SQL Server, ediia a II-a, Editura Polirom, Iai, 2009
145
Bibliografie
Bibliografie
1. Dumnescu Dorel, Baze de date, Editura Universitii PetrolGaze din Ploieti, 2005 2. Fotache M., Proiectarea bazelor de date. Normalizare i postnormalizare. Implementri SQl i Oracle, Editura Polirom, Iai, 2005 3. Fotache, Marin, SQL: Dialecte DB2, Oracle, PostgreSQL i SQL Server, ediia a II-a, Editura Polirom, Iai, 2009 4. Ionescu, Felicia, Baze de date relaionale i aplicaii, Editura Tehnic, 2004 5. Ptracu Aurelia, Tnsescu Ana, Dumnescu Dorel, Baze de date MS-Access. Teorie i aplicaii, Editura Universitii Petrol-Gaze din Ploieti, 2006 6. Thomas Connolly, Carolyn Begg, Anne Strachan, Baze de date. Proiectare. Gestiune. Implementare, Editura Teora, Bucureti, 2001 7. Velicanu Manole, Sisteme de gestiune a bazelor de date prin exemple, Editura ASE, Bucureti, 2013 8. Ion Lungu, Adela Bara, Constanta Bodea, Iuliana Botha, Vlad Diaconita, Alexandra Florea, Anda Velicanu, Tratat de baze de date, Editura ASE, Bucureti, 2011 9. Velicanu Manole, Baze de date prin exemple, Editura ASE, Bucureti, 2007
146