Sunteți pe pagina 1din 103

UNIVERSITATEA VASILE ALECSANDRI DIN BACU FACULTATEA DE TIINE ECONOMICE SPECIALIZAREA CONTABILITATE I INFORMATIC DE GESTIUNE

NVAMNT CU FRECVEN REDUS

BAZE DE DATE
NOTE DE CURS

AUTOR: CONF. UNIV. DR. ELENA NECHITA

2012

Refereni tiinifici: Prof. univ. dr. Mihai Talmaciu Universitatea Vasile Alecsandri din Bacu Lector univ. dr. Gloria-Cerasela Crian Universitatea Vasile Alecsandri din Bacu

Descrierea CIP a Bibliotecii Naionale a Romniei NECHITA, ELENA Baze de date: note de curs / Nechita Elena; refereni tiinifici: prof. univ. dr. Mihai Talmaciu, lector univ. dr. Gloria Cerasela Crian Bacu: Alma Mater, 2012 Bibliogr. ISBN 978-606-527-236-1 I. Talmaciu MIhai II. Crian, Gloria Cerasela 004(075.8)

Prezentarea cursului
Acest curs are drept scop prezentarea elementelor fundamentale despre baze de date, a conceptelor cu care se lucreaz n acest domeniu i a modalitilor de prelucrare a datelor organizate n baze de date. Materialul a fost structurat astfel nct s faciliteze nvarea pentru studenii specializrii Contabilitate i Informatic de Gestiune, forma de nvmnt Frecven Redus, n sensul c ofer sinteze i exemple adecvate, specifice domeniului economic. n plus, sunt indicate resurse suplimentare, pentru aceia dintre studeni care doresc s aprofundeze temele abordate. Informaiile din lumea ce ne nconjoar sunt structurate n diverse moduri. Adesea structura o impunem sau chiar o inventm noi n procesul de memorare, n ncercarea de a transforma informaiile n cunotine. Sistemul de structurare a datelor care intervine cel mai frecvent este tabelul, iar n cazul volumelor mari vorbim despre baze de date. Procesul de instruire n societatea noastr tot mai informatizat, n aa numita Societate Informaional, impune tot mai mult structurarea cunotinelor acumulate, capacitatea de a le organiza, clasifica, regsi i mai ales completa. Vorbim despre managementul cunotinelor, un capitol important att al ontologiei, ct i al informaticii. n acest context, putem spune c disciplina "Baze de Date" , care se ocup cu mecanismele de gestiune a informaiilor i a cunotinelor, devine indispensabil unui specialist n economie. Din aceast perspectiv a fost gndit acest suport de curs, pe care l dedic studenilor mei, crora le doresc un mediu economic favorabil, n care s i utilizeze cunotinele, creativitatea i spiritul inovator.

Obiectivele cursului

Principalele obiective ale cursului sunt: 1. nsuirea cunotinelor de baz referitoare la modul de proiectare i de programare a bazelor de date. 2. 3. Familiarizarea cu Modelul Entitate-Asociere i cu Modelul Relaional. Studiul algebrei relaionale, ca suport pentru prelucrile realizate n baze de date relaionale. 4. Studiul dependenelor funcionale i al formelor normale, n scopul optimizrii stocrii datelor n bazele de date. 5. Prezentarea unor noiuni referitoare la limbajele utilizate n domeniul bazelor de date. 6. 7. Prezentarea unor aplicaii concrete care folosesc baze de date. Prezentarea unor direcii de studiu conexe, care ofer o perspectiv larg asupra necesitii i utilitii bazelor de date.

Cerine pentru examinare


Pentru evaluare se vor realiza urmtoarele activiti: 1. 2. 3. 4. 5. nsuirea cunotinelor teoretice din suportul de curs. Participarea activ la orele de laborator. Se va realiza un proiect, individual sau n echip. Examenul va consta ntr-un test de verificare a cunotinelor teoretice. Nota acordat va fi media notelor obinute la proiect i la test.

CUPRINS
Prezentarea cursului Obiectivele cursului. Cerine pentru examinare Unitatea de curs 1. Introducere n domeniul bazelor de date 1.1 Informaii. Date. Colecii de date 1.2 Organizri ale datelor 1.2.1 Organizarea datelor n fiiere 1.2.2 Organizarea datelor n baze de date 1.3 Conceptul de baz de date 1.4 Sisteme de gestiune a bazelor de date 1.5 Studiu individual i teme Unitatea de curs 2. Niveluri de reprezentare a unei baze de date 2.1 Modelarea conceptual 2.1.1 Modelul Entitate - Asociere 2.1.2 Diagrama Entitate - Asociere 2.2. Modele de date 2.2.1 Modelul ierarhic 2.2.2 Modelul reea 2.3 Studiu individual i teme Unitatea de curs 3. Modelul relaional 3.1 Conceptele modelului relaional 3.2 Sisteme de gestiune a bazelor de date relaionale 3.3 Studiu individual i teme Unitatea de curs 4. Noi funcionaliti ale bazelor de date 4.1 Partajarea bazelor de date 4.2 Baze de date distribuite 4.3 Baze de date deductive 4.4 Baze de date multidimensionale 4.5 Baze de date orientate obiecte 4.6 Alte tipuri de baze de date 4.7 Sisteme Client / Server 4.8 Bazele de date i sistemele informaionale din organizaii 4.9 Studiu individual i teme Unitatea de curs 5. Forme normale. Normalizare 5.1 Dependene funcionale 5.1.1 Descompunerea 5.1.2 Asocierile i proiectarea schemelor 5.2 Dependene multivaloare 5.3 Forme normale ale bazelor de date 5.3.1 Date ne-normalizate 5.3.2 Prima form normal (FN1) 5.3.3 A doua form normal (FN2) 5.3.4 A treia form normal (FN3) 5.3.5 Forma normal Boyce-Codd (FNBC) 5.3.6 A patra form normal (FN4) 5.3.7 A cincea form normal (FN5) 5.3.8 Procesul normalizrii relaiilor 5.4 Studiu individual i teme 3 4 7 7 9 10 11 12 13 14 15 15 15 17 18 18 19

21 22 23 24 25 25 27 27 28 28 30 30 30 31 33 33 34 34 35 36 36 36 37 38 39 39 40 40 41

Unitatea de curs 6. Limbaje utilizate n lucrul cu baze de date 6.1 Limbajul de definire a datelor pentru modelul relaional 6.2 Limbajul de manipulare a datelor pentru modelul relaional 6.2.1 Algebra Relaional 6.2.2 SQL 6.2.3 Calculul Relaional orientat pe tupluri 6.2.4 Calculul Relaional orientat pe domenii 6.3 Studiu individual i teme Unitatea de curs 7. Restriciile de integritate ale modelului relaional 7.1 Restricii de integritate minimale 7.2 Alte restricii de integritate 7.3 Aspecte privind integritatea 7.4 Studiu individual i teme Unitatea de curs 8. Depozite de date. Baze de cunotine 8.1. Concepte de baz n data warehouse 8.2. Diferene nte bazele de date i depozitele de date 8.3. Arhitectura depozitelor de date 8.4 Baze de cunotine 8.5 Studiu individual i teme Unitatea de curs 9. Aplicaii rezolvate 9.1 Propunerea unui modul pentru sistemul informatic al Universitii Vasile Alecsandri din Bacu 9.1.1 Analiza sistemului informatic existent 9.1.2 GeCa Soft modul de gestiune a stocurilor n cantin 9.2 Baz de date pentru contabilitatea TVA 9.3 Studiu individual i teme 10. Teste 10.1 Testul 1 10.2 Testul 2 10.3 Testul 3 10.4 Testul 4 10.5 Testul 5 10.6 Testul 6 10.7 Testul 7 11. Colecie de resurse digitale Bibliografie

43 43 44 44 48 48 49 50 53 53 55 55 55 57 58 58 60 64 66 67 67 67 69 74 86 89 89 91 93 94 97 98 100 101 103

Order is not sufficient. What is required, is something much more complex. It is order entering upon novelty; so that the massiveness of order does not degenerate into mere repetition; and so that the novelty is always reflected upon a background of system.'' (Alfred North Whitehead)

UNITATEA DE CURS 1 INTRODUCERE N DOMENIUL BAZELOR DE DATE


Cuprinsul unitii de curs: 1.1 Informaii. Date. Colecii de date 1.2 Organizri ale datelor 1.2.1 Organizarea datelor n fiiere 1.2.2 Organizarea datelor n baze de date 1.3 Conceptul de baz de date 1.4 Sisteme de gestiune a bazelor de date 1.5 Studiu individual i teme Obiectivul unitii de curs: Prezentarea conceptelor de baz din domeniul bazelor de date.

1.1 Informaii. Date. Colecii de date


Informaiile i cunotinele au o mare importan, att pentru dezvoltarea personalitii umane, ct i pentru evoluia vieii i societii. Nici societatea i nici indivizii ei nu pot progresa satisfctor n lips de informaii. Prin intermediul informaiilor se asigur transferul cunotinelor de la o generaie la alta, se asigur accesul la cele mai avansa te realizri ale omenirii. Conceptul de informaie reprezint o noiune de maxim generalitate care semnific o comunicare, o veste, o tire, un mesaj, un semnal etc. despre evenimente, fapte, stri, obiecte, despre forme de manifestare a realitii care ne inconjoar. Informaia reprezint cantitatea de noutate adus de un mesaj din lumea real. Informaia, energia i materia sunt cei mai importani factori ai economiei moderne pe lng pmnt, capital i fora de munc. Fa de materie, informaia prezint caracteristici distincte: Se poate combina aproape nelimitat. Este puternic condensabil. Se percepe ca o anumit msur a ordinii, ntruct ea anihileaz incertitudinea i nedeterminarea. O msur a ordonrii este entropia negativ, tremen care a luat natere prin analogie cu entropia, care este, n termodinamic, o msur (exprimabil matematic) a neordonrii. Calitatea unei informaii const n gradul de probabilitate cu care creeaz utilizatorului certitudinea unei afirmaii.

Oamenii ajung la informaii direct, prin intermediul altor oameni sau prin purttori de informaie, precum ziare, cri, imagini, videocasete, CD-uri, discuri sau echipamente de comunicaie (radio, televizor, fax, telefon sau calculator). Deci informaia reprezint o component esenial a lumii reale, ce face posibil caracterizarea diferitelor elemente ale naturii (fiine, obiecte, stri, fenomene) i permite comunicarea. Din punct de vedere conceptual, informaia reprezint o reflectare n planul gndirii umane a legturilor de cauzalitate, privind aspecte din realitatea ce ne nconjoar. Informaia are deci sens de noutate pentru cel cruia i se adreseaz, indiferent de forma pe care o ia (tire, semnal, comunicare). Putem spune deci c informaia este un mesaj, dar cu preciza rea c nu orice mesaj este o informaie. Dac mesajul nu transmite o noutate i nu are suport real, atunci nu prezint interes pentru receptor i deci nu are caracter de informaie. Informaia primete totdeauna atributul domeniului pe care l reprezint. De exemplu, realitile din domeniul economic se reflect n informaii economice. Procesul de sesizare, nelegere i nsuire a informaiilor dintr -un anumit domeniu reprezint un proces de informare. Informaiile dobndite n urma unui proces de infor mare ntr-un anumit domeniu formeaz cunotinele despre acel domeniu, iar mulimea acestora reprezint baza de cunotine. Cunotinele reprezint deci o nsumare a tuturor informaiilor dobndite ntr -un anumit domeniu, sau care se refer la un anumit obiect. n sintez, putem aprecia cunotinele c sunt elemente abstracte i individuale despre obiectele i domeniile lumii reale, nsuite i/sau dobndite. Aproape orice activitate are i o latur informaional. De exemplu, n paralel cu procesul de producere de bunuri i servicii se desfoar i un proces informaional, constnd din fluxuri de documente prin care se ine evidena activitii desfurate. Atunci cnd informaia este gestionat cu ajutorul tehnicii de calcul, ea devine dat. Data este forma de reprezentare accesibil a informaiei prelucrate. Ea reprezint suportul formal al informaiei, care se concretizeaz n: cifre, litere, simboluri, coduri i alte nsemne. Exist o coresponden determinat ntre informaie, simbol i dat astfel c, foarte adesea, n practic, termenul de informaie este utilizat pentru a desemna date, iar expresia prelucrarea informaiilor nlocuiete expresia prelucrarea datelor. Putem considera c datele prelucrate, n msura n care afecteaz n sens pozitiv comportamentul receptorilor (oameni sau maini), au calitatea de informaii. n procesul prelucrrii i utilizrii informaiilor, acestea sunt privite din patru puncte de vedere: Din punct de vedere sintactic, atunci cnd se urmrete aspectul admisibil al acestora, n sensul c informaiile trebuie s capete anumite forme de reprezentare, ce respect riguros anumite reguli. Din punct de vedere semantic, urmrindu-se semnificaia, nelesul informaiei (coninutul real al informaiei) ce deriv din datele prelucrate. Din punct de vedere pragmatic, urmrindu-se utilitatea pentru receptori, efectul asupra acestora (msura n care acestea satisfac cerinele utilizatorului). Din punct de vedere sigmatic, se trateaz raportul dintre semne i obiecte, caz n care se poate vorbi despre cunotine obiective. n locuri publice, semnalizarea i direcionarea cu ajutorul indicatoarelor trebuie s fie att sugestiv, compact, ct i independent de limb sau cultur. Pictogramele pentru indicarea cabinelor telefonic e, zonelor de fumtori, ghieelor de informaii sau punctelor medicale reprezint cunotine obiective. Datele reprezint aadar informaii care fac obiectul prelucrrii pe sistemele de calcul i pot fi: Elementare (numite i simple sau scalare) atunci cnd sunt indivizibile n raport cu prelucrrile la care pot fi supuse. Compuse (numite i complexe) atunci cnd sunt alctuite din mai multe date elementare, deci sunt la rndul lor divizibile n date mai simple. Exemplu. n cazul unei persoane: vrsta, nlimea, greutatea, codul numeric personal sunt date elementare. Domiciliul (format din ora, strad, numr) este o dat compus. Observaie. O dat poate fi considerat elementar dintr-un punct de vedere i compus din altul, aceasta n funcie de prelucrrile necesare. Unei date i se atribuie un nume identificatorul su, prin intermediul creia ea se distinge de celelalte i prin care poate fi adresat. O caracteristic de baz a unei date este

tipul su. Acesta determin modul n care data respectiv va fi memorat pe suporturi de memorare i modul n care ea va fi prelucrat (adic operatorii i funciile ce i se pot aplica). n cadrul unui limbaj de programare, de exemplu, exist o serie de tipuri de date de baz (elementare), prestabilite de ctre proiectanii limbajului i, de cele mai multe ori, exist posibilitatea definirii de noi tipuri, prin combinarea celor elementare. Marea majoritate a limbajelor permit manipularea datelor numerice (ntregi i reale), a caracterelor i irurilor de caractere, a tablourilor uni- i multi-dimensionale. O colecie de date reunete date despre o anume clas de obiecte (reale sau conceptuale). Exemplu. Colecia de date prezentat mai jos reunete date cu privire la clasa de obiecte denumit CONTURI: Cod_cont 101 104 105 106 933 Denumire_cont Capital social Prime legate de capital Diferene din reevaluare Rezerve Costul produciei n curs de execuie

Fiecare obiect de acest tip are o existena proprie i este bine definit de aceleai caracteristici, respectiv codul contului i denumirea contului. Contul cu codul 101 i denumirea Capital social constituie o realizare sau o instan a obiectului tip CONTURI, pentru care caracteristicile Cod_cont, Denumire_cont iau valorile 101 i respectiv Capital social. Alte exemple. Datele referitoare la materialele dintr-un depozit. Datele referitoare la crile dintr-o bibliotec. Datele referitoare la pacienii unui spital. Datele ce descriu situaia contabil a unei firme. Omogenitatea datelor dintr-o colecie de date trebuie neleas n sens larg, sub forma unei proprieti comune sau a unui obiectiv urmrit. Noiunile de informaie i dat sunt, prin urmare, diferite. Informaiile sunt nelese de o persoan, n timp ce datele sunt modele stocate pe un mediu pasiv, ca de exemplu discul hard al unui calculator. Scopul unui sistem care gestioneaz o colecie de date este s reduc distana ntre informaii i date astfel, datele stocate n memoria sau pe discurile unui calculator s fie convertite n informaii utilizabile la momentul dorit.

1.2 Organizri ale datelor


Organizarea datelor n vederea prelucrrii lor cu calculatorul este o activitate tot att de important ca i cea de realizare a programelor. Datele i programele se gsesc ntr-o strns corelaie. Un program, orict de complex ar fi, nu va furniza rezultate satisfctoare dac structura datelor cu care lucreaz nu este bine gndit. Invers, o structur de date bine pus la punct nu va fi suficient, dac programul care o prelucreaz n u este corect conceput i realizat. Din punct de vedere informatic ne putem referi la dou tipuri de organizare a datelor: Organizarea in memoria intern a calculatorului i Organizarea n memoria extern. Organizarea n memoria extern a cunoscut, de-a lungul timpului, mai multe stadii: Fiiere i Baze de date.

1.2.1 Organizarea datelor n fiiere Un fiier este un ansamblu de nregistrri fizice, omogene din punct de vedere al coninutului i al prelucrrii. O nregistrare fizic este format din una sau mai multe nregistrri logice, o nregistrare logic fiind un ansamblu de cmpuri care conin date referitoare la un obiect, proces sau fenomen din lumea real. Exemplu. Fiierul de date STOCURI conine date privind stocurile de produse. Pentru fiecar e produs se memoreaz: codul, denumirea, unitatea de msur, preul de referin i cantitatea aflat n stoc. Iat (schematic reprezentat) o nregistrare logic pentru un produs aflat n stoc: 401 TV PANASONIC BUC 1000 20

nregistrrile privind produsele aflate n stoc sunt memorate pe suporturi tehnice i formeaz, mpreun, fiierul STOCURI_PRODUSE. Exist dou metode de organizare a datelor n fiiere: Organizare secvenial nregistrrile sunt memorate pe suport tehnic n ordinea introducerii datelor i sunt accesate n ordinea n care ele sunt memorate. Organizarea indexat la memorarea nregistrrilor pe suport tehnic, Sistemul de Gestiune a Fiierelor creeaz, separat, un tabel n care, pentru fiecare nregistrare de date, sunt memorate dou elemente: cheia de identificare a nregistrarii i adresa la care nregistrarea este memorat pe suport tehnic. Exemplu.
Tabel cu indeci nregistrri de date

350 401 420

A1 A2 A3

A2 A1 A3

401 350 420

TV PANASONIC RADIO SAMSUNG VIDEO SAMSUNG

BUC BUC BUC

1000 100 900

20 30 10

A1 reprezint adresa (care face referire, n cazul HD, la cilindru, pist i sector) la care este memorat nregistrarea cu valoarea din cmpul de indexare (aici codul produsului) cu valoarea 350, .a.m.d. Tabelul cu indeci permite astfel localizarea rapid a nregistrrilor pe suportul tehnic. Aceast metod presupune existena unui atribut ale crui valori s permit identificarea nregistrrilor. Acest atribut are rolul de cheie de identificare (indexare). Deci, un fiier de date este bine definit cnd se precizeaz identificatorul de fiier, structura nregistrrii i modul de organizare. Exemplu. Fiierul: STOCURI Structura nregistrrii: CodMat, numeric DenMat, Text UM, Text PretRef, Numeric CantStoc, Numeric Organizare: indexat Cheie identificare: CodMat Limite ale organizrii datelor n fiiere Descrierea datelor se afce n fiecare program n care ele sunt utilizate; spunem c datele sunt dependente de programe. Lipsa unui formalism riguros de definire i validare a datelor. Performane sczute pentru procesarea datelor, ndeosebi cnd este necesar s se fac asocieri ntre date memorate n fiiere distincte.

10

Meninerea unei redundane ridicate n cadrul coleciilor de date memorate pe suporturi tehnice.

Deci abordarea tradiional asocia fiecrei aplicaii informatice propriile fiiere. n mod evident, anumite date se regseau n fiierele asociate mai multor aplicaii. Schematic, aceast metod poate fi reprezentat astfel:

P1

P2

Pn

Aceast abordare ducea la memorarea repetat a unor date i implicit la un volum mare de memorie extern ocupat. De exemplu, dac ntr-o fabric se folosesc materiale pentru realizarea unor produse, atunci datele necesar a fi memorate pentru fiecare material s unt (cel puin) cele meninate n cazul fiierului STOCURI: Cod un cod asociat fiecrui material, necesar identificrii acestuia i altfel dect prin nume (de exemplu: 5289); Denumire denumirea materialului (de exemplu: lemn de brad); Um unitatea de msur (de exemplu: mc, aici, metru cub); Pre este vorba de preul unitar (preul pentru un metru cub de lemn de brad); Cantitate cantitatea existent la un moment dat n fabric. Aceste date i altele, specifice, vor fi prelucrate pentru diferite com partimente: aprovizionare (pentru recepia materialului), gestiune (pstrarea ntr -o magazie), producie (consumul materialului respectiv n procesul de producie), contabilitate (pentru calculaia costului produselor finite). Deci cel puin patru programe ar utiliza aceste date i ar fi prin urmare dezavantajoas memorarea lor pe un suport fizic (n diferite fiiere) de tot attea ori. Cu toate aceste limite, organizarea datelor n fiiere mai este utilizat i astzi, ndeosebi pentru aplicaii dezvoltate folosind limbajele clasice de programare. Progresele n domeniul tehnologiilor informaionale au marcat o cretere considerabil a capacitii de memorare a suporturilor tehnice de date i a vitezei de procesare a datelor. La acestea se adaug i posibilitatea stocrii i procesrii datelor netradiionale cum ar fi, de exemplu, imaginea i sunetul (a se vedea [Tod04]).

1.2.2 Organizarea datelor n baze de date Limitele organizrii datelor n fiiere i posibilitile oferite de noile tehnologii informaionale au dus la promovarea metodei de organizare a datelor n baze de date. Ideea a fost de a colecta toate datele, a le organiza ntr-un mod convenabil (specific realitii pe care acele date le modeleaz) i a proiecta programe care s consulte i s ac tualizeze aceast colecie de date. Schematic, aceast abordare se poate reprezenta astfel: P2 Baz de date

P1

Pn

11

Prin urmare, o baz de date se definete ca fiind un ansamblu de date elementare sau structurate, accesibile unei comuniti de utilizatori. O definiie mai apropiat de reprezentarea fizic ar fi cea conform creia o baz de date este un ansamblu de fiiere intercorelate, care conin nucleul de date necesare unei aplicaii informatice complexe. Astfel, n figura precedent, legturile desenate ntre fiiere reprezint aceste intercorelri (adic, fiierele corelate modeleaz o legtur logic ntre datele pe care le conin) iar aplicaiile ce acceseaz datele pot fi privite ca aparinnd la diferii utilizatori sau grupuri de utilizatori, care vd baza de date ntr-un mod propriu (cu alte cuvinte, acceseaz din toat colecia de date ceea ce le este necesar).

1.3 Conceptul de baz de date


n lucrarea Bases de donnes et systmes relationnels, Dunod Informatique, Paris, 1982, C. Delobel i M. Adiba definesc baza de date astfel: Baza de date este un ansamblu structurat de date nregistrate pe suporturi accesibile de ctre calculator pentru a satisface, chiar simultan, mai muli utilizatori, de o manier selectiv i n timp oportun. ntr-o baz de date sunt nregistrate date despre obiecte reale sau abstracte, dar i asocierile (relaiile) care se pot stabili ntre acestea. Spunem c ntre datele unei baze de date exist o interdependen logic. Considerarea interdependenelor ce se pot stabili ntre coleciile de date memorate ntr-o baz de date contribuie la asigurarea integritii funcionale a bazei de date. O baz de date este un model al unui sistem real. Coninutul unei baze de date (numit uneori i extensie) reprezint, la un moment dat, o stare a sistemului care se modeleaz. Schimbrile n baza de date reprezint evenimente care au loc n mediu i care schimb starea sistemului modelat. Este evident c este de dorit s structurm o baz de date astfel nct aceasta s oglindeasc sistemul care se dorete modelat.

Obiective fundamentale ale unei baze de date Centralizarea datelor. Permite controlul centralizat al datelor i eliminarea repetrilor (numite redundane). O eliminare total a redundanelor nu este posibil, dar controlul asupra lor duce la o utilizare eficient a spaiului de memorie extern. Independena ntre date i prelucrri. Baza de date, fiind un model al unei realiti, se schimb mereu (de exemplu, ntr-o banc au loc: numeroase tranzacii financiare, schimbri de personal, schimbri de parteneri de afaceri etc.). Acest lucru nu trebuie s afecteze programele de prelucrare a datelor i invers, dac este necesar operarea de schimbri n anumite programe, datele nu trebuie s fie afectate. Realizarea de legturi ntre date. Datele ce reprezint modelul unui sistem nu sunt disparate, ntre ele exist legturi logice. Aceste legturi vor fi surprinse n baza de date. Integritatea datelor. Asigur fiabilitatea i coerena bazei de date. Securitatea datelor. Baza de date trebuie s fie protejat mpotriva distrugerilor logice (greeli la actualizare) i/sau fizice (deteriorri ale suporilor fizici, pierderi de date datorate unor accidente naturale (calamiti, incendii etc.). Confidenialitatea datelor. Se refer la caracterul secret al datelor, ce pot fi accesate doar de ctre cei autorizai. Partajarea datelor. Permite deservirea utilizatorilor care acceseaz simultan aceleai date din baz.

12

1.4 Sisteme de gestiune a bazelor de date


Sistemul de programe care permite construirea unei baze de date, introducerea informaiilor n baza de date i dezvoltarea de aplicaii se numete sistem de gestiune a bazei de date (pe scurt, SGBD). Un SGBD d utilizatorului posibilitatea s aib acces la date folosind un limbaj de nivel nalt, adic apropiat de modul obinuit de exprimare, pentru a obine informaii. Nu este necesar ca utilizatorul s cunoasc modul n care sunt selectate datele pe care le dorete, ori modul de memorare al lor. Spunem de aceea c SGBD -ul este o interfa ntre utilizatori i baza de date, un instrument de asamblare, codificare, aranjare, protecie i regsire a datelor n baza de date. Principalele funcii ale unui SGBD Memorarea datelor pe suportul extern (prin intermediul sistemului de gestiune a fiierelor); Gestiunea datelor i a legturilor dintre acestea, n vederea unei regsiri rapide prin intermediul sistemului de acces; Introducerea i extragerea datelor din/spre exterior, n forma cerut de utilizator. SGBD-ul poate prelucra mai multe cereri, provenind de la mai multe programe de aplicaii. Totodat, majoritatea SGBD-urilor asigur i controlul transmisiei datelor la i de la terminale. SGBD-ul pune la dispoziia utilizatorilor limbaje distincte pentru: Descrierea bazei de date: Limbajul de Descriere a Datelor (LDD). Utilizarea (manipularea) bazei de date: Limbajul de Manipulare a Datelor (LMD). Limbajele de manipulare (interogare) a bazelor de date pot fi: Declarative permit utilizatorului s declare de CE informaii are nevoie. Procedurale care oblig utilizatorul s descrie CUM obine informaiile. Realizarea pe plan mondial a unor reele de calculatoare care permit conectarea mai multor baze de date a condus la apariia bazelor de date distribuite i, implicit, la apariia SGBD pentru astfel de baze. Bazele de date distribuite reprezint un salt calitativ superior n acest domeniu, oferind noi perspective pentru realizarea sistemelor informatice. Un sistem de baze de date distribuite este o colecie de baze de date locale, amplasate geog rafic n puncte diferite i legate logic prin relaii funcionale, astfel nct apar, la nivel global, ca o singur baz de date. n funcie de modul n care exploateaz baza de date, utilizatorii pot fi mprii n urmtoarele clase: Utilizatorii obinuii, care pot s obin informaiile dorite fr s aib cunotine de programare, prin comenzi cunoscute i eventual rspunznd la diferitele opiuni pe care le indic sistemul la un moment dat. Programatorii de aplicaii, care realizeaz programele ce vor fi memorate i ulterior lansate n execuie de utilizatori prin invocarea numelui asociat lor. Administratorul bazei de date, care stabilete structura iniial a bazei de date i modul de memorare a datelor la nivel fizic, acord utilizatorilor drepturi de acces la baz sau la pri ale ei, stabilete condiiile pentru asigurarea securitii i integritii datelor, modific structura bazei atunci cnd este nevoie, asigur ntreinerea bazei fcnd periodic copii i reconstruind baza de date n cazul n care au aprut erori datorate componentelor soft, hard sau utilizrii i rspunde, n general, de modul de utilizare al bazei de date. Cele mai multe SGBD-uri conin i o colecie de utilitare folosite n diferite aplicaii: procesoare pentru limbaje de cereri, editoare de rapoarte, sisteme de reprezentri grafice, posibiliti de lucru cu tabele, programe statistice, de copiere, generatoare de aplicaii i alte posibiliti de dezvoltare a unor aplicaii de tip CASE (computer-aided software engineering). Pentru a facilita munca administratorului de sistem, un SGBD conine o serie de componente care permit: crearea unei versiuni iniiale a bazei, salvarea i rencrcarea (efectuarea de copii periodice i posibilitatea refacerii bazei plecnd de la aceste co pii), reorganizarea (rearanjarea datelor n scopul mbuntirii unor performane), statistici i analize asupra exploatrii bazei de date. Evoluia tehnologiilor informaionale face ca n prezent majoritatea SGBD -urilor: S gestioneze date tradiionale, dar i date netradiionale (video, foto, sunet etc.).

13

S permit lucrul n reea de calculatoare. Sa pun la dispoziia utilizatorului att limbaje declarative, ct i limbaje procedurale.

1.5 Studiu individual i teme


Studiai: Capitolul 1 (Concepte i problematic) din lucrarea accesibil la adresa http://bdfr.cs.pub.ro/ Un curs introductiv de baze de date prezentat de Stanford InfoLab: http://infolab.stanford.edu/~ullman/fcdb.html Cursuri de baze de date i aplicaii de pe platforma Massachusetts Institute of Technology (http://ocw.mit.edu). Pentru aceast unitate de curs: Sisteme de baze de date: http://ocw.mit.edu/courses/electrical-engineering-andcomputer-science/6-830-database-systems-fall-2010/ Particularizai obiectivele unei baze de date pentru baza de date a Universitii Vasile Alecsandri din Bacu. Explicai ce semnificaie au, n acest caz : integritatea, securitatea, confidenialitatea i partajarea datelor. Identificai categoriile de utilizatori pentru baza de date a unei bnci comerciale. Care sunt, n aceast situaie, responsabilitile administratorului bazei de date ? Explicai n ce const interdependena datelor n baza de date a unei firme de construcii. Fie urmtoarea pictogram:

Mai multe despre BD

Teme

S se analizeze informaia asociat din punct de vedere: sintactic, semantic, pragmatic, sigmatic.

14

Functions delay binding; data structures induce binding. Moral: Structure data late in the programming process. (Alan J. Perlis)

UNITATEA DE CURS 2 NIVELURI DE REPREZENTARE A UNEI BAZE DE DATE

Cuprinsul unitii de curs: 2.1 Modelarea conceptual 2.1.1 Modelul Entitate - Asociere 2.1.2 Diagrama Entitate - Asociere 2.2. Modele de date 2.2.1 Modelul ierarhic 2.2.2 Modelul reea 2.3 Studiu individual i teme Obiectivul unitii de curs: Prezentarea importanei modelrii conceptuale i a principalelor modele de date.

Bazele de date pot fi analizate pe diferite nivele: Nivelul conceptual ce corespunde modelelor semantice de date este un model de nivel nalt, specific omului i nu sistemelor de calcul. Nivelul aplicaie ce poate fi privit, la rndul su, din dou puncte de vedere: Logic referitor la organizarea datelor, organizare prin care se implementeaz o anumit cantitate de informaie i Fizic referitor la stocarea efectiv a informaiei (grupare, partiionare, indexare, etc.)

2.1 Modelarea conceptual


Nivelul conceptual ne permite s modelm aplicaiile n termeni independeni de orice model de date particular. Este un instrument convenabil care ne permite s structurm o baz de date astfel nct aceasta s evolueze n timp odat cu mediul modelat, cu necesitile utilizatorilor i cu schimbrile care apar privind cererile de informaie. Modelele conceptuale furnizeaz un mediu pentru dezvoltarea structurii unei baze de date ntr -o manier de sus n jos (top-down). Cel mai utilizat model conceptual este Modelul Entitate Asociere.

2.1.1 Modelul Entitate - Asociere Modelul entitate-asociere este un instrument pentru analiza acelor aspecte semantice ale unei aplicaii, care sunt independente de evenimente. Modelul entitate -asociere reduce redundana datelor. Aceasta abordare utilizeaz urmytoarele notaii grafice: dreptunghiuri pentru entiti, romburi pentru asocieri (relaii) i cercuri sau elipse pentru atribute. Pentru situaii complexe, o diagram entitate-asociere parial (care nu include detalii depre atribute) poate fi utilizat pentru a prezenta o sintez a entitilor i relaiilor. Diagrama entitate-asociere furnizeaz o metod eficient pentru vizualizarea legturilor ntre entiti, pentru o aplicaie dat. Aceast instrument s -a dovedit util pentru a face tranziia de la desrierea unei aplicaii la o schem formal a bazei de date. Modelul

15

entitate-asociere este astfel realizat fr a fi necesar atenia asupra proiectrii fizice a bazei de date. Diagramele entitate-asociere sunt ulterior transformate ntr-o schem conceptual n unul din modelele n care baza de date se va implementa efectiv. n continuare sunt prezentate definiiile unor termeni de baz utilizai pentru descrierea conceptelor importante ale modelului entitate-asociere. Entitate - O entitate este un obiect concret sau abstract care poate fi clar delimitat n mediu. o Instan de entitate - O instan este o apariie particular a unei entitti. De exemplu, fiecare persoan n parte poate fi o instan a unei entiti PERSOANE, fiecare main n parte poate fi o instan a unei entiti MAINI, etc. o Tip de entitate Un grup de entiti similare poart numele de clas de entiti sau tip de entitate. O clas de entiti are proprieti comune.

Atribute Atributele descriu proprietile entitilor i relaiilor i pot fi: o Simple (scalare) sunt cele mai mici uniti semantice de date, atomice (fr structur intern), de exemplu: oraul. o Compuse reprezint grupuri de atribute privite unitar, de exemplu: adresa (strad, numr, ora, cod potal ). o Multivaluate (liste) - reprezint valori multiple, de exemplu: note, cursuri, etc. Domeniile sunt mulimile de definiie ale atributelor: mulimi precizate de valori scalare de acelai tip sau mulimi de valori posibile.

Relaiile O relaie este o legtur ntre dou clase de entitate. De examplu, o relaie ntre entitile PERSOANE i MAINI poate fi cea de proprietate (automobilele sunt n proprietatea oamenilor). o Gradul unei relaii indic numrul de entiti implicate n relaie. o Cardinalitatea unei relaii indic numrul de instane din clasa de entiti E1 care poate sau trebuie asociat cu instane din clasa de entiti E2: Relaii 1-1 (One to One relationship) Pentru fiecare entitate dintro clas exist cel mult o entitate asociat n cealalt clas. De exemplu, fiecare persoan are un card de identitate (i exist copii, care nc nu au). Relaii 1-n (One to Many relationships) O entitate din clasa E2 este asociat cu zero sau mai multe entiti din clasa E1, dar fiecrei entiti din E1 i se asociaz cel mult o entitate n E2. De exemplu, o femeie poate avea m ai muli copii dar orice copil are o singur mam. Relaii m-n (Many to Many relationships) Nu exist restricii asupra numrului de entiti dintr-o clas, ce pot fi asociate cu o entitate din cealalt clas. De exemplu, relaia ntre studeni i cursuri. Fiecare student merge la mai multe cursuri i fiecare curs are mai muli studeni. Poate fi obligatorie, opional sau fixat. o Ierarhiile Isa (Is a) reprezint un tip special de relaie ce permite motenirea atributelor. De exemplu, a spune c un camion este un automobil i un automobil are un fabricant, un model i un numr de serie implic faptul c un camion are, de asemenea, un fabricant, un model i un numr de serie. Cheile Cheile identific n mod unic o entitate de alta, ntr-o clas de entiti. o Cheia primar Identificator utilizat pentru a identifica n mod unic o instan particular a unei entiti. Poate fi reprezentat de unul sau mai multe atribute.

16

o o o

Trebuie s fie unic n domeniul su (i nu doar n setul de date curent). Valorile sale nu se schimb n timp. Trebuie s aib totdeauna o valoare. Poate fi creat cnd nu este evident nici un atribut. Fiecrei instane i se asociaz o valoare. Cheie candidat Cnd exist mai multe chei primare posibile, fiecare este o cheie candidat. Cheie concatenat Este o cheie realizat din componente care, atunci cnd sunt considerate mpreun, identific n mod unic entitatea. Cheile atribute multiple sunt chei concatenate. Atribute cheie mprumutate dac exist o relaie isa, cheia clasei mai generale este, de asemenea, o cheie pentru subclas. De exemplu, dac numrul de serie pentru automobile este cheie, va fi cheie i pentru camioane. Chei secundare Refer un tabel aflat n relaie, prin cheia primar a acelui tabel. Restricia de integritate referenial Pentru fiecare valoare a unei chei secundare, exist o cheie primar cu acea valoare n tabelul referit. De exemplu, dac un numr de cont se utilizeaz ntr -un tabel pentru intrri, atunci numrul de cont trebuie s existe tabelul cu numerele de cont.

Evenimente Evenimentele schimb entitile i/sau relaiile.

2.1.2 Diagrama Entitate - Asociere Simbolurile utilizate n diagrama entitate asociere includ: Dreptunghiuri Reprezint clasele (tipurile) de entitate. Cercuri reprezint atributele. Romburi reprezint relaiile. Arce Au rolul de a conecta entitile prin relaii i, de asemenea, de a conecta atributele la entiti. Unele modele de diagram entitate asociere utilizeaz sgei sau sgei duble pentru a indica diferitele tipuri de relaii. Sublinierea Atributele cheie ale entitilor sunt subliniate.

Iat un fragment dintr-o diagram entitate asociere:

Tip de entitate

Relaie 1 Primesc N

Tip de entitate

CLIENI

FACTURI

Cod

Nume

Adr.

Codf

Data

Val.

17

2.2. Modele de date


Principalele clase de modele logice utilizate n gestiunea bazelor de date sunt urmtoarele: Modelul ierarhic Modelul reea Modelul relaional. Un alt model care trebuie menionat este modelul punctual. O baz de date cu un singur fiier (tabel) reprezint o structur punctual. O astfel de structur este util d oar n cazuri extrem de simple, pentru cele mai multe aplicaii din domeniul economic fiind insuficient. Multe procesoare de tabele includ faciliti de baze de date, cum ar fi sortarea, numrarea sau filtrarea datelor care satisfac anumite criterii. Toate facilitile de baze de date incluse n procesoarele de tabele se refer la structura punctual. n cele ce urmeaz se vor prezenta pe scurt primele dou modele, detaliind ntr -un capitol separat modelul relaional care este, n prezent, cel mai utilizat .

2.2.1 Modelul ierarhic Modelul de date ierarhic este o colecie de structuri arborescente, fiind fondat pe reprezentarea arborescent a schemei conceptuale a bazei de date, n care nodurile reprezint clasele de obiecte, iar arcele legturile ntre acestea. Modelul ierarhic este, prin urmare, un arbore de nregistrri n care fiecare nregistrare conine dou elemente rdcin sau un cmp master (o cheie), care identific tipul, locaia sau ordinea nregistrrilor cmpurile subordonate, ce reprezint restul datelor dintr-o nregistrare Toate cmpurile au numai un nod printe, fiecare nod printe putnd avea mai muli fii. Operaiile din bazele de date de tip ierarhic se traduc n procese de parcurgere a arborilor. Avantaje: vitez i eficien pentru anumite tipuri de aplicaii. Modelul ierarhic este o alegere bun atunci cnd datele au o structur natural de arbore. Astfel de aplicaii pot fi, de exemplu, inventarele, sistemele de documentare bibliografice, unele sisteme de luare a deciziilor i de gestionare de tip ierarhic, sistemele de informare i operare bazate pe lucrul cu meniuri i altele asemntoare. Probleme: modul de definire a datelor este predefinit; fiecare asociere trebuie s fie definit explicit, la crearea bazei de date. Modelul ierarhic este un caz special al modelului reea. Cel mai cunoscut SGBD de tip ierarhic este IMS (Information Management System) de la IBM. A fost construit n 1968 n scopul prelucrrii datelor din industria aerospaial. Iniial a fost un sistem pur ierarhic, dar a cptat unele trsturi non-ierarhice, ca rezultat al necesitilor practice. Exemplu. Structura arborescent prezentat n continuare se refer la o baz de date a unei agenii de vnzri de locuine: JUDETE (NUMER) OFICII (ORAS, ADROF) AGENTI (NUMEA, VANZARI) ANGAJAT (NR_AN, NUMEAN, ADRAN, SALARIU) OFERTE (ADROF, PRET) CLIENTI (NUMEC, ADRC) i poate fi descris prin urmtoarea succesiune de instruciuni n SGBD IMS: TREE AGENTIE RECORD JUDETE ROOT NUMER CHAR(20) RECORD OFICII PARENT=JUDETE ORAS CHAR(20) ADROF CHAR(30) RECORD AGENTI PARENT=OFICII 18

NUMEA CHAR(20) VANZARI INTEGER RECORD ANGAJAT PARENT=OFICII NR_AN INTEGER NUMEAN CHAR(20) ADRAN CHAR(30) SALARIU INTEGER RECORD OFERTE PARENT=OFICII ADROF CHAR(30) PRET INTEGER RECORD CLIENTI PARENT=AGENTI NUMEC CHAR(20) ADRC CHAR(30) 2.2.2 Modelul reea Modelul de date reea este cel mai apropiat de forma de reprezentare a bazelor de date sub forma diagramelor entitate-asociere. Deosebirea const doar n faptul c toate relaiile ce apar pot fi numai binare i de tipul 1-1 sau 1-n. Aceast restricie permite reprezentarea grafic a unei baze de tip reea sub forma unui orientat numit reea. n acest graf, nodurile corespund entitilor iar relaiile sunt reprezentate prin sgei de la tat la fiu i anume: sgei simple dac relaia este de tip 1-1 i sgei duble dac relaia este de tip 1-n. Iat cteva caracteristici ale modelului reea: Creaz asocieri ntre date printr-o list de legturi n care nregistrrile subordonate (membre) pot fi legate la mai mult de un element (proprietar). Un element poate fi parte a mai multor asocieri. Pointer legtur explicit, pstrnd adrese ce conin locaia nregistrrii asociate. Complexitate pentru fiecare mulime de elemente asociate trebuie pstrat o pereche de pointeri. Utiliznd acest model, este dificil s se structureze, din punct de vedere conceptual, structuri de date complexe. Vitez legturile directe conduc la viteze de lucru mari ale sistemelor care implementeaz modelul reea. Exemplu. SGBD SOCRATE este de tip reea, fiind totodat i unul din primele sisteme de gestiune a bazelor de date. A fost realizat de firma CII n colaborare cu ECA-Automation pentru sisteme de tip IRIS, fiind folosit i n ara noastr pe vechile sisteme de tip Felix. Sistemul conine un limbaj de descriere pentru date (identificarea datelor, a proprietilor lor i eventual a criteriilor de validare), un limbaj de cereri, un macrogenerator (pentru generarea unor macrocomenzi care permit utilizarea produsului i de ctre nespecialiti), un modul de metode de acces (care permite utilizarea unor programe de accesare a datelor scrise n diverse limbaje de programare), un editor de texte (pentru gestionarea textelor programelor i a celor din baza de date), componente pentru asigurarea securitii i confidenialitii datelor din baz, pentru reorganizarea bazei i alte programe utilitare. Poate lucra att autonom, coninnd toate elementele necesare funcionrii sale, ct i ca metod de acces, fiind deschis prin interfee pentru a putea funciona mpreun cu alte programe. Poate opera att programabil ct i conversaional. n al doilea caz, poate lucra n regim multiutilizator.

19

2.3 Studiu individual i teme


Studiai: Capitolul 2 (Modelarea datelor) din lucrarea accesibil la adresa http://bdfr.cs.pub.ro/ O prezentare despre diferite soluii privind modelarea datelor de la The University of Texas at Austin: http://www.cs.utexas.edu/~ctlight/teaching/cs347/2datamod el.pdf Mai multe despre BD Despre diferite modele de baze de date: http://unixspace.com/context/databases.html Identificai enitile i asocierile ntre datele gestionate n cadrul unei competiii sportive. Precizai o structur pentru care este adecvat modelarea ierarhic a datelor. Oferii o soluie i observai care sunt dificultile de actualizare. Teme Realizai diagrama Entitate-Asociere pentru datele colectate n cadrul unei campanii de marketing. Particularizai domeniul campaniei i detaliai diagrama. Se consider entitile Gen i Specie (cutai definiiile acestor termeni din Biologie pe un site dedicat). Precizai semnificaia restricie de integritate referenial asociat cheilor corespunztoare celor dou entiti. Citii urmtoarea diagram relaional:

20

Simplicity is prerequisite for reliability. (Edsger W. Dijkstra)

UNITATEA DE CURS 3 MODELUL RELAIONAL


Cuprinsul unitii de curs: 3. Modelul relaional 3.1 Conceptele modelului relaional 3.2 Sisteme de gestiune a bazelor de date relaionale 3.3 Studiu individual i teme Obiectivul unitii de curs: Prezentarea conceptuale de baz ale modelului relaional.

n modelul relaional, baza de date este reprezentat de un grup de tabele corelate. Modelul relaional a fost propus n 1970 de ctre cercettorul american E.F. Codd, n lucrarea A relational model of large shared data banks i este, n prezent, cel mai popular model. Simplitatea matematic i uurina vizualizrii modelului relaional au contribuit la succesul acestuia. n plus, modelul relaional de date nu este legat de un tip anume de structur de date (cum este, de exemplu, modelul ierarhic). Modelul relaional se bazeaz pe teoria matematic a relaiilor. Formal, o relaie n-ar R pe domeniile X1, X2, ,Xn este o submulime a produsului cartezian X1xX2x xXn i se noteaz R(X1,X2, ,Xn). X1, X2, ,Xn se mai numesc constitueni. Exemplu. Fie o ntreprindere i clasa de obiecte autoturisme fabricate n ntreprindere. Fiecare produs are ca atribute: codul produsului, denumirea produsului i preul de referin. S considerm datele ce caracterizeaz mpreun un anume produs: 1555, OPEL VECTRA, 15000 1555 reprezint codul, OPEL VECTRA reprezint numele iar 15000, preul. Datele reprezint valori ale atributelor, valori ce se plaseaz ntr-un domeniu de definiie corespunztor. Domeniul de definiie se poate preciza implicit sau explicit. n acest caz, atributului pre de referin i se atribuie valori n mulimea numerelor ntregi. Dac preurile autoturismelor fabricate au valori cuprinse ntre 10000 i 30000, atunci domeniul de definiie se poate preciza ca fiind secvena numerelor ntre 10000 i 30000. Este important ca pentru fiecare atribut s se cunoasc domeniul de definiie, deoarece la introducerea datelor n baza de date nu vor fi acceptate dect datele care reprezint valori plasate n domeniile de definiie ale atributelor. Validarea datelor la introducere poate fi foarte complex, avnd ca obiectiv asigurarea integritii datelor. Ansamblul valorilor afectate atributelor pentru un obiect real sau abstract din domeniul supus studiului formeaz un tuplu (sau o realizare, sau o nregistrare de date). Tuplurile unei relaii trebuie s fie unice. Se observ c datele pot fi organizate, n mod eficient, ntr-un tabel. Dealtfel, organizarea tabelar este foarte mult folosit n practic. Tuplurile vor fi liniile tabelului, n timp ce atributele sunt regsite pe coloane. Ordinea liniilor i coloanelor nu prezint nici o importan. Validarea datelor la nivelul realizrii unei relaii nseamn, n plus, respectarea regulilor de integritate stabilite la nivel de relaie. Exemplu. Pentru relaia SALARIAT, cu atributele: Maca, Nume, Data_angajarii. La nivelul acestei relaii se poate stabili regula de integritate: An(Data_angajarii)>=An(Data_nasterii)+18. Data_nasterii,

21

Regulile pentru asigurarea integritii datelor pot viza i asocieri ce se stabilesc ntre realizri ale relaiilor din baza de date. Exemplu. O relizare a relaiei facturi de la furnizori se asociaz cu o realizare a relaiei furnizori. Nu se pot nregistra datele dintr-o factur, dac anterior nu s-a inregistrat, n baza de date, furnizorul. Acesta este un exemplu de regul de integritate referenial a bazei de date. Dintre cele trei modele de baze de date prezentate, modelul relaional se impune prin: simplitate, structuri de date simple, operatori simpli (fr mari diferene ntre sisteme), mecanismul vederilor, o baz teoretic solid, un numr mic de concepte, aplicarea principiului dualitii accesului (prin program i interactiv), independena fizic a datelor, independena logic a datelor, uurina dezvoltrii aplicaiilor, a instalrii i operrii, simplificarea proiectrii bazelor de date, integrarea dicionarelor, posibilitatea dezvoltrii bazelor de date distribuite, performane i posibiliti de extindere.

3.1 Conceptele modelului relaional


Conceptele modelului relaional sunt prezentate n urmtoarea sintez: Relaie - Un tabel (bidimensional). Relaia nsi corespunde noiunii noastre obinuite de tabel. O relaie este deci o colecie de tuple (termenul vine de la tuplu, notaie folosit i n matematic, adic o succesiune de t elemente), fiecare coninnd valori ale unui numr fix de atribute. Relaiile mai sunt uneori referite i ca fiiere, din cauza asemanrii lor cu o secven nestructurat de articole. Fie care tuplu al unei relaii trebuie s fie unic (deci, nu exist duplicate). Atribut Este o coloan a tabelului. Ali termeni utilizai n mod obinuit pentru atribut sunt proprietate i cmp. Mulimea valorilor permise pentru fiecare atribut se numete domeniul acelui atribut. Tuplu Este un rnd al tabelului. Un tuplu este o instan a unei entiti sau asocieri. Cheie Un singur atribut sau o combinaie de atribute ale cror valori identific n mod unic tuplurile relaiei. Deci, fiecare rnd are o valoare diferit pentru atributul cheie. Modelul relaional cere ca fiecare relaie s aib o cheie astfel nct: o o Oricare dou tupluri nu pot avea aceiai valoare a cheii Fiecare tuplu trebuie s aib o valoare pentru atributul cheie (cmpurile cheie nu pot avea valori nenule).

Exist dou restricii ale modelului relaional care, n practic, sunt uneori nerespectate: 1. Nu sunt permise tupluri duplicate. Dac sunt introduse dou tuple cu aceeai valoare pentru fiecare din atribute, ele de fapt sunt considerate a fi acelai tuplu. Aceast restricie este uneori rezolvat prin asignarea unui numr de linie (sau de tuplu) unic pentru fiecare intrare, ceea ce asigur unicitatea. 2. Nu se presupune nici o ordine a tuplurilor n cadrul relaiei . n practic, totui, se folosete desori o metod de ordonare a tuplurilor. Exemplu de extensie a unei relaii:

22

Atribut sau cmp sau coloan Numele atributelor sunt parte a schemei COD_CLIENT 19283 Tuplu sau nregistrare sau rnd 35231 NUME ELBAC S.A. SUBEX S.A. ADRES os. Oituz 34 os. Iaului 12 CREDIT_LIMIT 300000000 500000000

34567

MICROSISTEM os. Alba 23 S.A.

250000000

Exist urmtoarea distincie ntre schema unei relaii i extensia unei relaii. Schema este cadrul pentru relaie. Ea definete relaia, adic: Numrul atributelor Numele atributelor i domeniile acestora Atributul cheie primar Extensia relaiei este coninutul relaiei, adic mulimea tuplurilor care formeaz relaia. Extensia unei relaii poate varia foarte mult n timp, dar schema este stabil. Antetele coloanelor din figura de mai sus pot fi privite ca o parte a schemei, iar tuplurile de sub antete, ca fiind extensia. n termeni conceptuali, o relaie este o structur care pstreaz valori ale atributelor unei clase particulare de entiti, sau ale unei clase particulare de asocieri. Exemplul reprezint o relaie ce descrie membrii unei clase de entitate numit CLIENI. Relaiile pot, de asemenea, s descrie asocieri. Observaie. A nu se confunda, din cauza omonimiei, relaia, care este o construcie la nivel de date a modelului relaional, cu asocierea (pentru care se folosete i termenul de relaie), care este o noiune la nivel conceptual. n relaia CLIENI, cheia pentru fiecare realizare de entitate este pstrat n atributul COD_CLIENT. Cheile compuse sunt folosite, de obicei, n cazul asocierilor. De exemplu, dac am crea o relaie care s reprezinte asocierea dintre studeni i cursuri am avea nevoie de o cheie, care ar putea fi combinaia dintre cheia pentru studeni i cheia pentru cursuri. Urmtoarele reguli permit (n cele mai multe cazuri) conversia unei diagrame entitate asociere ntr-o schem relaional: Este necesar cte o relaie (tabel) pentru fiecare clas de entiti i fiecare relaie de tip m-n; Nu sunt necesare relaii pentru a reprezenta relataiile de tip 1-1 sau 1-n; Cnd se construiete o relaie (tabel) pentru reprezentarea unei asocieri m -n, cheia trebuie s conin toate atributele cheie ale relaiilor implicate.

3.2 Sisteme de gestiune a bazelor de date relaionale


Bazele de date la organizarea crora se utilizeaz modelul relaional se numesc baze de date relaionale (BDR). SGBD-urile care permit gestiune bazelor de date relaionale se numesc sisteme de gestiune a bazelor de date relaionale (SGBDR). Dintre sistemele de gestiune a bazelor de date relaionale menionm: Visual Fox, Access, Db2, Oracle, Informix. Unele dintre aceste SGBDR-uri au interfee proprii pentru interogarea bazelor de date relaionale, toate implementnd limbaj ul standard SQL. Multe SGBDR-uri fac obiectul unor extinderi, pentru a fi adaptate noilor cerine, cum ar fi: orientarea obiect, analiza multidimensional, sisteme expert, sisteme multimedia, sisteme client -server. Pentru gestiunea bazelor de date de dimensiuni mari (cu nregistrri ce depesc ordinul sutelor de mii) se recomand utilizarea unor sisteme de gestiune a bazelor de date performante, cum ar fi Oracle, SQL Server i Informix. Avnd in vedere performanele oferite

23

pentru gestiunea bazelor de date relaionale dar i necesitile didactice, n cadrul acestui curs vom prezenta aplicaii realizate n Access.

3.3 Studiu individual i teme


Studiai: Capitolele 3 (Modelul relaional) i 4 (Proiectarea bezelor de date) din lucrarea accesibil la adresa: http://bdfr.cs.pub.ro/ Capitolul 8 (The Relational Data Model) din cartea Foundations of Computer Science, accesibil la adresa: http://i.stanford.edu/~ullman/focs/ch08.pdf Mai multe despre BD Tutorialul (disponibil i n format video) la adresa: http://www.cramerz.com/database_concepts/database_relati onal_model Despre modelul relaional, din ghidul pentru Data Warehousing and Business Intelligence: http://data-warehouses.net/glossary/relationalmodel.html Regulile lui Codd privind modelul relaional : http://www.i-programmer.info/babbages-bag/292-codd-andhis-rules.html Pentru datele gestionate n cadrul unei competiii sportive, propunei un model relaional. Realizai n Access aplicaia descris la adresa : http://infolab.stanford.edu/~ullman/fcdb/silverberg/home.html Descriei un model relaional pentru gestiunea datelor unei firme de construcii civile. Inainte de a ncepe proiectarea, realizai o analiz preliminar pentru a determina cerinele utilizatorului, precum i obiectivele pe care baza de date pe care o proiectai i le propune spre rezolvare. Se consider urmtorul scenariu: O firm are mai multe sedii. n fiecare sediu se afl mai multe departamente. Un departament aparine unui singur sediu. ntr-un departament lucreaz mai muli angaji. Un angajat poate lucra ntr-un singur departament. Fiecare angajat are o singur fi a postului, unde sunt menionate atribuiile din timpul serviciului. Firma gestioneaz mai multe tipuri de produse i exist mai multe tipuri de componente; un produs este format din una sau mai multe componente. Un tip de componenta poate s apar n structura mai multor produse. Propunei un model relaional pentru aceast situaie.

Teme

Descompunei relaia ilustrat n diagrama urmtoare: TRANSLATOR # id * nume * prenume * data naterii * adres * telefon * studii * experien LIMB # id * nume * tip cerine

vorbete

este vorbit de

24

The purpose of computing is insight, not numbers. (Richard Hamming)

UNITATEA DE CURS 4 NOI FUNCIONALITI ALE BAZELOR DE DATE


Cuprinsul unitii de curs: 4.1 Partajarea bazelor de date 4.2 Baze de date distribuite 4.3 Baze de date deductive 4.4 Baze de date multidimensionale 4.5 Baze de date orientate obiecte 4.6 Alte tipuri de baze de date 4.7 Sisteme Client / Server 4.8 Bazele de date i sistemele informaionale din organizaii 4.9 Studiu individual i teme Obiectivul unitii de curs: Prezentarea funcionalitilor moderne ale bazelor de date, n contextul dezvoltrii tehnologiilor de comunicaie i a metodelor i limbajelor de programare.

4.1 Partajarea bazelor de date


n condiiile lucrului n reea, este posibil s se stocheze baza de date pe un calculator ce are rol de server. Toi utilizatorii de la posturile de lucru pot accede simultan la baza de date; ei partajeaz baza de date. Lucrul n sistem multiutilizator impune rezolvarea unor probleme care vizeaz: asigurarea integritii datelor (ndeosebi n cazul n care doi sau mai muli utilizatori vor s realizeze n acelai timp operaii de actualizare a bazei de date); asigurarea confidenialitii datelor; prevederea unor mecanisme de protecie mpotriva unor operaii neautorizate, care vizeaz ndeosebi modificarea structurii unor componente ale bazei de date; Administratorul bazei de date are sarcini privind: modelarea datelor implementarea bazei de date definirea utilizatorilor i a drepturilor de acces ntreinerea bazei de date. Drepturile de acces la nivel de utilizator vizeaz operaiile pe care acetia le pot realiza. Se poate merge pn la detalii, preciznd chiar tabelele la care un anume utilizator va avea acces. n practica dezvoltrii sistemelor cu baze de date se poate opta pentru dezvoltarea unor interfee de acces la baze de date partajate la nivel de utilizator / grup de utilizatori (fiecare interfa utilizeaz, de regul, numai tabele ale bazei de date ce este stocat pe server).

4.2 Baze de date distribuite


n numeroase situaii bazele de date sunt dispersate geografic se spune c sunt distribuite (BDD). O baz de date distribuit permite ca o colecie arbitrar de relaii, dintr -o colecie arbitrar de baze de date, , aflate pe o mare varietate de maini ce lucreaz sub

25

diverse sisteme de operare i sunt legate prin diferite reele de comunicaie, s poat fi utilizate ca i cum ar fi o singur baz de date pe o singur main. Principalele cerine pe care trebuie s le asigure un sistem de baze distribuite sunt: autonomia local n organizarea i prelucrarea datelor, pos ibilitatea de lucru continuu al nodurilor, independent de schimbrile n configuraiile de lucru (adugri sau eliminri de noduri), independena localizrii i fragmentrii datelor (transparena fizic), posibiliti de replicare (copiere) i independena copiilor, prelucrarea distribuit a cererilor, administrarea distribuit a tranzaciilor, independena de hardware, de sistem de operare, de reea i de SGBD. Exemplu. Considerm o banc ce are filiale n 20 de localiti. Fiecare agenie posed un sistem de calcul propriu i propria baz de date (baz de date local). Banca central posed, de asemenea, un sistem de calcul pentru prelucrarea ansamblului datelor de la toate filialele. Tranzaciile efectuate in conturi pot fi locale sau globale. S presupu nem c de la filiala din Constanaa bncii se face o depunere de 20 000 lei n contul cu numrul 456 al persoanei X. Dac persoana X a deschis contul la filiala din Constana, tranzacia este local. Dac persoana X are contul deschis la filiala din Bucureti, tranzacia este considerat global. Fiecare filial are acces la baza de date a unei alte filiale pentru realizarea unui set finit de operaii. Lucrul n reele de calculatoare permite distribuirea unei baze de date, din punct de vedere fizic, pe mai multe site-uri. Fiecare site gzduiete un sistem local de gestiune a bazelor de date. Utilizatorii unui site au acces la baza de date local i, n plus, la bazele de date distribuite n celelalte site-uri. Conexiunile ntre site-uri pot fi stabilite n diverse maniere. Topologiile de racordare (stea, inel, combinate) se prezint sub form de grafuri, ale cror noduri corespund site-urilor. Un utilizator particular va folosi baza de date fr s fac referiri concrete i fr s se preocupe de locul unde aceasta este memorat fizic. Figura urmtoare prezint o posibil arhitectur pentru baza de date distribuit a unei bnci:
Centru regional 1 Centru regional 2

Centru regional N

Centre regionale cu Mainframe

LAN Agenia 1

LAN Agenia 2

LAN Agenia M

n cazul unei ntreprinderi s-ar putea opta pentru soluia unei baze de date distribuite pe funcii, ca n figura urmtoare:
Gestiunea resurselor umane i a salariilor
Infrastructur pentru comunicaie

Gestiunea resurselor materiale

Gestiunea produciei

Contabilitate i control de gestiune

Exist mai multe arhitecturi pentru baze de date distribuite: Cu replicare diversele site-uri stocheaz o copie a bazei de date.

26

Cu fragmentare baza de date este fragmentat, iar fiecare fragment este gzduit de ctre un site. Fragmentarea poate fi: orizontal, vertical sau mixt. Cu replicare i fragmentare.

Sistemele cu baze de date distribuite comport dou subsisteme: Gestionarul de tranzacii - a crui funcie este de a gestiona tranzaciile relative la datele site-ului; fiecare tranzacie poate fi local (executabil integral n cadrul siteului) sau poate s fac parte dintr-o tranzacie global (interesnd mai multe site-uri); Coordonatorul tranzaciilor al crui rol este de a coordona executarea diverselor tranzacii (locale sau globale); el trebuie s execute un protocol da validare a tranzaciei. Avantaje. Avantajele repartizrii bazelor de date sunt: partajarea datelor i gestiunea distribuit a acestora; fiabilitatea i disponibilitatea; prelucrarea accelerat a cererilor. Principala dificultate n dezvoltarea sistemelor cu baze de date distributive provine din necesitatea de a coordona ansamblul site-urilor. Un sistem cu baza de date distribuit ridic problemele specifice sistemelor multiutilizator, la care se adaug cele ale distribuirii bazelor de date.

4.3 Baze de date deductive


Bazele de date deductive se fundamenteaz pe cuplarea unei baze de date relaionale cu un procesor din clasa sistemelor expert. n figura urmtoare se prezint o arhitectur simplificat a unei baze de date deductive. INTERFAA

Interpretor PROLOG Se vor prezenta detalii n capitolul 9.

SGBDR

4.4 Baze de date multidimensionale


Bazele de date multidimensionale au aprut ca urmare a necesitilor crescnde de procesare multidimensional a datelor. Aplicaiile care se bazeaz pe analiza multidimensional a datelor sunt cunoscute sub numele de OLAP (On Line Analytical Processing). Se face astfel distincie ntre: OLTP (On Line Transactional Processing) - care privilegiaz: integritatea i securitatea datelor i tratarea cererilor informaionale simple de ctre servicii operaionale (producie, comercial, resurse umane etc.) i OLAP care privilegiaz: analiza i manipularea datelor folosind cereri complexe, n vederea elaborrii strategiei i sunt destinate ndeosebi conducerii i controlului de gestiune. Conceptul de baz este cel de hipercub, ilustrat n figura urmtoare:

27

Datele se regsesc la intersecia liniilor marcate pe hipercub i au pentru coordonate atributele ce definesc dimensiunile hipercubului. Hipercubul din figura de mai sus poate fi utilizat, de exemplu, pentru a reprezenta date despre vnzri pe trei dimensiuni: dimensiunea localitate; dimensiunea produs; dimensiunea timp (lunile anului).

4.5 Baze de date orientate pe obiecte


Dei succesul SGBDR-urilor n dezvoltarea aplicaiilor economice este nc destul de mare, ele prezint i anumite limite. Este vorba, n primul rnd, de faptul c pentru orice aplicaie informatic se delimiteaz net trei domenii: interfaa; datele; prelucrrile. Tehnologia orientat pe obiecte reduce cele trei formalisme la unul singur: obiectul. Aplicarea tehnologiei orientate obiect n domeniul bazelor de date a determinat apariia bazelor de date orientate pe obiecte. Primele baze de date orie ntate pe obiecte au aprut la sfritul anilor '80, dar nu au atins un nivel de dezvoltare prea ridicat, datorit: lipsei produselor CASE, care s permit o proiectare corect; limbajelor de interogare, care erau deficitare; faptului c nu existau standarde acceptate. O baz de date orientat pe obiecte trebuie s ndeplineasc dou cerine fundamentale: s ndeplineasc cerinele unei baze de date; s fie un sistem care s aib la baz tehnologia orientat obiect. Un obiect poate fi definit ca reuniune ntr-o aceeai capsul a unui ansamblu de date i a prelucrrilor (standard) asociate (urmtoarea figur). ncapsularea este reuniunea definiiei statice a unui obiect prin atributele sale i definirea dinamic a acestui obiect (cu ajutorul regulilor de comportament). Aceste reguli sunt traduse cu ajutorul metodelor, care reprezint prelucrrile asociate obiectelor. Obiectele sunt caracterizate printr -o structur i o interfa. Structura obiectului este reperat printr-un identificator intern unic i posed o stare care regrupeaz n general atribute cu datele de tratat. Interfaa unui obiect este compus din selectorul de metode (partea vizibil a obiectului). Structura este cunoscut numai de ctre obiect. Un obiect nu poate fi manipulat dect via metodele asociate. Obiect
Descrierea dinamic (modele de prelucrare) Descrierea static (modele de date)

Date

28

Multe dintre obiectele manipulate posed n comun aceeai structur i acelai comportament. O clas descrie obiectele care au caracteristici statice i dinamice comune. Exemple. Super-Clasa Persoana Atribute Nume Adresa DataNasterii Metode Nume Returneaza(Self.Nume) Adresa Returneaza(Self.Adresa) DataNasterii Returneaza(Self.DataNasterii)

Clasa Salariat Atribute SalariuIncadrare LocMunca Responsabil Metode SalariuIncadrare Returneaza(Self.SalariuIncadrare) NumeResponsabil Returneaza(Self.NumeResponsabil) O clas (clas derivat) poate moteni de la o alt clas (clasa de baz) atribute i metode. n exemplul de mai sus, clasa Salariat motenete atributele i metodele clasei Persoana. Tehnica motenirii permite mprirea eficace a anumitor cunotine despre obiecte pentru a obine o reprezentare mai bogat n semantic. Datele cele mai generale se grupeaz n clase care sunt n continuare specializate n subclase ce comport atribute i comportamente din ce n c e mai particulare. La nivelul cel mai nalt va exista o superclas obiect de la care toate celelalte motenesc (atribute, metode). Clasa Salariat motenete atributele, selectorii i metodele superclasei Persoana. Ea posed n plus atribute i metode proprii. Realizrile clasei Salariat pot fi utilizate ca realizri ale clasei Persoana i pot poseda proprieti suplimentare. Obiectele definite se integreaz n sistem i prezint conexiuni cu alte obiecte. Aceste conexiuni sunt materializate prin mesaje pe care obiectele le schimb ntre ele. Aplicarea unei metode la un obiect corespunde cu trimiterea unui mesaj. Receptorul mesajului se numete Self. Bazele de date orientate pe obiecte (BDOO) sunt gestionate folosind sisteme de gestiune orientate pe obiecte (SGOO). Principala caracteristic a BDOO este viteza de acces la date (n comparaie cu celelalte tipuri de Baze de date). Acest acces este asigurat prin intermediul unei hri a ierarhiilor i relaiilor claselor de obiecte, pe care BDOO o stocheaz. D e asemenea, permit gruparea sau partiionarea fizic a datelor, tehnic numit clustering. BDOO asigur accesarea eficient a obiectelor necesare la un moment dat unei cereri utilizator, minimiznd traficul prin reea. Domeniile n care este eficient utilizarea BDOO sunt: - simularea si modelarea diferitelor fenomene i procese - administrarea documentelor - proiectele CASE (Computer Aided Software Engineering), CAD (Computer Aided Design), CAM (Computer Aided Manufacturing), CAE (Computer Aided Engineering) - multimedia - ingineria cunoaterii.

29

4.6 Alte tipuri de baze de date


Bazele de date textuale gestioneaz documente electronice. Principalele operaii asigurate sunt: stocarea, cutarea, modificarea i asamblarea de documente i alte informaii stocate cu titlu de date textuale n aceste baze de date. Bazele de date multimedia extind aria de gestiune incluznd ndeosebi imagini, sunete, etc.

4.7 Sisteme Client / Server


Sistemele Client/Server se fondeaz pe partajarea sarcinilor ntre dou entiti: serve r i client. Tehnologia client/server presupune dou aplicaii (urmtoarea figur): serverul, care furnizeaz diverse servicii; clientul, care este beneficiarul serviciilor oferite de server.
Cerere Rspuns

Aplicaie client

Aplicaie server

Cele mai rspndite aplicaii client/server sunt cele cu baze de date; soft-ul pentru baza de date este executat pe calculatorul server, iar programul care acceseaz baza de date pe un calculator client.

4.8 Bazele de date i sistemele informaionale din organizaii


Bazele de date constituie componenta central a sistemelor informaionale din ntreprinderi, n cadrul reprezentat n figura urmtoare:

SLIC

SISE

SIT

B D

SIM
SIAD SIR

SIIO

unde notaiile reprezint: SIT sisteme informaionale tranzacionale (sisteme informaionale operaionale); SLIC - sisteme de lucru bazate pe informaie i cuntine; SIIO - sisteme informaionale interorganizaionale (multe dintre aceste sisteme sunt de tip tranzacional); SISE - sisteme informaionale suport pentru executiv SIM - sisteme informaionale pentru management, care includ: o SIAD - sisteme informaionale de asistare a deciziei i o SIR sistemele imformaionale de raportare.

30

Bazele de date sunt alimentate n principal de sistemele operaionale i sistemele interorganizaionale (sisteme de comer electronic, sisteme de pli electronice etc.) i sunt accesate de sistemele de management i de sistemele suport pentru executiv. Ele pot fi, de asemenea, accesate de sistemele de lucru bazate pe informaie i cunotine (cum ar fi, spre exemplu, sistemele expert). Structurile funcionale i de conducere din ntreprinderi impun organizarea de sisteme de baze de date care comunic ntre ele. n figura urmtoare prezentm o viziune (conform J. OBrien, Les systmes dinformation de gestion, 1995) a principalelor tipuri de baze de date utilizate de ctre organizaii i utilizatori.

BD distribuit

Post de lucru al utilizatorului

Server de Baze de date

BD externe

BD individual

BD operaionale Depozite de date

4.9 Studiu individual i teme


Studiai despre: Tendine i aplicaii n domeniul bazelor de date: http://www.dbta.com/ Gestiunea datelor in domeniul proteciei mediului: http://water.epa.gov/scitech/datait/index.cfm Baze de date, Internet i tehnologii de integrare a sistemelor: http://ocw.mit.edu/courses/civil-and-environmental-engineering/1-264jdatabase-internet-and-systems-integration-technologies-fall-2006/, de pe platforma Massachusetts Institute of Technology (http://ocw.mit.edu). Bazele de date client-server, din tutorialul http://www.extropia.com/tutorials/sql/toc.html destinat dezvoltatorilor de aplicaii web. Bazele de date orientate obiect, la adesa: http://www.service-architecture.com/object-oriented-databases/ Analizai baza de date macro-ecomomic anual a Direciei Generale Afaceri Economice i Financiare (DG ECFIN) a Comsiei Europene: http://ec.europa.eu/economy_finance/ameco/user/serie/SelectSerie.cfm Realizai o aplicaie Access pentru urmtorul scenariu: Se dorete informatizarea activitii la o firm ce are ca obiect de activitate transportul de mrfuri i persoane. Firma dispune de un parc auto cu vehicule de mai multe tipuri (microbuze, camioane, cisterne, etc). Pentru fiecare vehicul se cunosc: marca, an fabricaie, numr de locuri (sau capacitate maxim pentru cele de transport mrfuri), numr de nmatriculare, seria motor, consum mediu

Mai multe despre BD

Teme

31

la 100 km, etc. Angajaii firmei sunt oferi profesioniti crora li se ntocmesc n momentul angajrii contracte n care sunt specificate data angajrii, salariul de ncadrare i informaiile necesare preluate din buletinele de identitate (nume, adresa, etc.). Clienii firmei pot fi persoane fizice sau juridice crora li se rein toate informaiile necesare pentru identificare. n momentul efectuarii unui transport pentru un client se ntocmete o foaie de parcurs pe care se specific data i ora plecrii, destinaia, numrul de Km de pacurs, tariful pe km perceput i la ntoarcere se specific data i ora ncheierii cltoriei. Firma dispune de un nomenclator cu tarifele/km percepute pentru fiecare categorie de vehicule.Trebuie avut n vedere c la transporturile spre destinaii ndeprtate pot participa mai muli oferi care s conduc cu schimbul specificndu-se pe foaia de parcurs cte ore a condus fiecare. Cerine minimale pe care trebuie s le urmreasc proiectul: a. Aplicaia trebuie s permit evidena a parcului auto. b. Se vor putea informa clienii dac sunt disponibile autovehicule dintr-o anumit categorie sau, dac nu sunt, cnd se vor ntoarce din curs. Programul trebuie sa permita efectuarea de rezervari pentru clien ii ce au nevoie de un vehicul la o anumit dat, n viitor. c. Pe baza foilor de parcus se vor realiza situaii cu sumele de ncasat de la clieni i cu cantitile de carburant consumate (eventual se va calcula profitul realizat dup fiecare transport, dar se va lua n considerare i sporul de salariu al oferilor). d. Se vor realiza state de plat pentru oferi. Salariile oferilor se vor calcula adugnd la salariul de ncadrare cte un spor pentru fiecare 100 de km parcuri i sczndu-se, evident, reinerile legale (CAS, impozit, etc).

32

"The Key, The Whole Key, and Nothing but the Key, so help me Codd" (E.F. Codd)

UNITATEA DE CURS 5 FORME NORMALE. NORMALIZARE


Cuprinsul unitii de curs: 5.1 Dependene funcionale 5.1.1 Descompunerea 5.1.2 Asocierile i proiectarea schemelor 5.2 Dependene multivaloare 5.3 Forme normale ale bazelor de date 5.3.1. Date ne-normalizate 5.3.2 Prima form normal (FN1) 5.3.3 A doua form normal (FN2) 5.3.4 A treia form normal (FN3) 5.3.5 Forma normal Boyce-Codd (FNBC) 5.3.6 A patra form normal (FN4) 5.3.7 A cincea form normal (FN5) 5.3.8. Procesul normalizrii relaiilor 5.4 Studiu individual i teme Obiectivul unitii de curs: Prezentarea modalitilor de optimizare a proiectrii bazelor de date.

5.1 Dependene funcionale


Atributul Y este dependent funcional de atributul X dac i numai dac fiecare valoare a atributului X este asociat cu exact o valoare a atributului Y. Se spune c X este determinant al lui Y, sau c X determin pe Y i se noteaz XY. Asocierile 1-1 prezint dou dependene funcionale. De exemplu, ntre numele unei persoane i codul su numeric personal exist o dependen 1 -1, cele dou atribute determinndu-se reciproc. Asocierile 1-n prezint o dependen funcional. De exemplu, ntre numele unui student i numrul su matricol: un numr matricol se asociaz exact unui student; dar mai muli studeni pot avea acelai nume, astfel c un nume poate avea mai multe numere matricole asociate. Asocierile m-n nu prezint dependene funcionale. De exemplu, ntre studeni i cursuri exist o coresponden de acest tip: fiecare student poate urma mai multe cursuri i fiecare curs poate avea mai multi studeni, fr a se observa vreo corelaie ntre valori, n sensul definiiei dependenei funcionale.

Utilizatorul care proiecteaz o aplicaie determin dependenele funcionale examinnd mediul real. Deseori dependenele nglobeaz anumite restricii referitoare la aplicaia respectiv. Este o problem de convenie, de exemplu, ca un student s poat urma mai multe cursuri, dar nu dintre cele care au loc n acel ai interval de timp. Sau, ca un student s aib un singur numr matricol i ca un numr matricol s poat fi asociat unui singur student.

33

5.1.1 Descompunerea Termenul descompunere se refer la faptul c informaia inclus ntr-o relaie poate fi splitat n dou sau mai multe relaii separate, fiecare dintre acestea avnd mai puine atribute dect relaia original. Cu alte cuvinte, atributele sunt plasate n tabele diferite. Tuplele din noile relaii vor fi determinate de atributele incluse. Scopurile descompunerii unei relaii sunt: S reduc redundana datelor. S pstreze capacitatea de a recrea relaia original, fr a pierde tupluri sau a aduga noi tupluri. Procesul recrerii tabelului original se numete uniune sau jonciune (join). A se vedea 6.2.1. Exemplu. n exemplul de mai jos sunt prezentate tabelele iniiale, precum i rezultatul operaiei join pe atributul Profesie. Persoane Nume Profesie Andrei inginer Carmen profesor Silvia inginer Traian pilot Caliti Profesie inginer profesor pilot Rezultatul operaiei join Nume Profesie Calitate Andrei inginer pragmatism Carmen profesor tact Silvia inginer pragmatism Traian pilot curaj

Calitate pragmatism tact curaj

Este important ca descompunerile ce se realizeaz ntr -o baz de date s aib loc fr pierderi de informaie, cci n caz contrar, informaia trebuie restaurat.

5.1.2 Asocierile i proiectarea schemelor Elegana matematic a modelului relaional suport o teorie a proiectrii schemelor. Teoria indic, ntr-o anumit msur, ce structuri au probleme poteniale i ar trebui evitate. Teoria normalizrii ofer multe elemente foarte utile n procesul de proiectare a bazelor de date. Dup cum am observat deja, asocierile ntre datele aparinnd la dou domenii, fie acestea A i B, se pot clasifica n trei categorii: asocieri 1-1 asocieri n-1 asocieri n-m Vom ilustra fiecare tip de asociere n contextul unui exemplu. Asocierile 1-1 sunt acelea n care fiecrui element din A i se pune n coresponden un unic element din B i reciproc. De exemplu, fiecare student are un numr matricol i fiecare numr matricol se asigneaz unui singur student. Tabelul urmtor prezint o astfel de asociere: Numr matricol 21350 21351 21576 21577 Nume student Ionescu Alina Mircea Diana Traian Alexandru Miron Vladimir

Vom nota sintetic: Numr matricol (1-1) Nume student ntr-o asociere n-1, fiecrui element din B i se asociaz un unic element din A, dar fiecrui element din A i se pot asocia mai multe elemente din B. De exemplu, dac plecm de

34

la ipoteza c un student nu poate urma dect o specializare, atunci: un student urmeaz o specializare, dar o specializare are mai muli studeni. Aceasta este o relaie n -1 ntre studeni i specializri (sau 1-n ntre specializri i studeni). Tabelul urmtor prezint o astfel de asociere: Numr matricol 21350 21351 21576 21577 Specializare Informatic Informatic Biologie Biologie

Vom nota sintetic: Numr matricol (n-1) Specializare Asocierile n-m sunt acelea n care nici unui element nu i se asociaz un singur partener. O astfel de relaie este cea ntre studeni i cursuri. Fiecare student urmeaz mai multe cursuri, iar fiecare curs are mai muli studeni. Nu exist limite n ceea ce privete numrul partenerilor de asociere. Vom nota sintetic: Numr matricol (n-m) Cursuri

5.2 Dependene multivaloare


Fie R o schem relaional, X i Y submulimi ale lui R. Spunem c exist o dependen multivaloare a lui Y de X sau c X determin multivaloare pe Y i notm XY dac, pentru orice valoare a atributelor lui X sunt asociate valori pentru atributele lui Y care nu sunt corelate n nici un fel cu atributele din R-X-Y. Exemplu. Fie relaia ORAR CURS Algebr Algebr Programare Programare Englez Englez Englez

PROFESOR Ionescu T. Ionescu T. Dinu A. Dinu A. Bonta E. Bonta E. Bonta E.

ORA 10 10 8 8 16 16 18

LOCATIE A45 A45 C9 C9 C22 C22 C22

STUDENT Miron Clin Matei Ruxandra Gruia Alina Traian Maria Miron Clin Matei Ruxandra Horia Anca

AN-STUDIU 1 1 2 2 1 1 3

Se manifest urmtoarele dependene funcionale: CURS PROFESOR (fiecare curs are un singur profesor) ORA, LOCATIE CURS (la o or dat, ntr-o anumit sal se poate ine un singur curs) ORA, PROFESOR LOCATIE (la o anumit or, un profesor se poate afla n cel mult o sal) CURS, STUDENT AN-STUDIU (fiecare student urmeaz un curs ntr-un anumit an de studiu) ORA, STUDENT LOCATIE (fiecare student se poate afla n cel mult o sal, la un moment dat). Au loc dependenele multivaloare CURS ORA, LOCATIE care semnific faptul c fiecrui curs i se asociaz o mulime de perechi de ore i sli care nu depind n nici un fel de celelalte informaii. n schimb nu au loc, n general, dependenele multivaloare CURS ORA sau CURS LOCATIE.

35

5.3 Forme normale ale bazelor de date


O form normal se refer la o clas de scheme relaionale care se supun unui set de reguli. O schem care satisface regulile corespunztoare unui set se spune c este n forma normal respectiv. De obicei, proiectantul unei baze dorete ca relaiile s se afle n ct mai multe forme normale posibil.

5.3.1. Date ne-normalizate Urmtorul tabel conine date ne-normalizate. Coloanele 2, 3 i 4 conin liste de valori, iar coloana 5 conine un atribut compus. List
Legitimaie Cod Calificri

List
Categorie Calificri

List
Profil

Valori compuse
Nume Vrst Birou nr. Ora Superior

21 35

113 113 170 200 170 150 200

Sisteme Sisteme Taxe Audit Taxe Consultan Audit

3 5 7 4 3 5 8

Mare Ana Ionescu Dan Mircea Clin Traian Raluca

29 33

1 2

Iai Bucureti Bucureti Iai

Ion Damian

50 77

35 28

2 1

Damian Ion

5.3.2 Prima form normal (FN1) O relaie se prezint n FN1 dac valorile fiecrui cmp sunt ne -decompozabile (atomice) i fiecare tuplu este unic. Atributele care se pot partiiona n sub-atribute sau grupurile repetitive, care sunt foarte comune n bazele de date, nu sunt permise. De exemplu, o persoan poate avea mai multe calificri. Dac acestea sunt listate n acelai cmp (ca n tableul de mai sus), atunci relaia nu se afl n prima form normal. La fel, dac un cmp este comus, n genul unei adrese, formate din ora, strad, numr, cod potal. Dac un cmp este considerat structurat sau nu, aceasta depinde n mare msur de aplicaie. Dac prelucrrile nu necesit acces dup ora, sau strad, sau cod potal atunci este potrivit sa pstrm aceste date ntr-un singur cmp, dar dac este necesar s sortm dup unul din aceste elemente, de exemplu dup cod potal, atunci aceast abordare nu mai este potrivit. Utilitatea FN1 este evident. Grupurile repetitive stric natura tabelar a relatie. Este dificil s se refere un element anume din grupul repetitiv, cci ar trebui specificat o informatie cu privire la poziia sa n grup. Mai mult, diferite pri ale atri butului se pot comporta foarte diferit din punct de vedere al dependenelor. Regula FN1 surprinde cerina natural ca fiecare atribut s aib propriul su nume. Urmtorul tabel prezint datele tabelului anterior, structurate n FN1. n toate relaiile ce vor fi prezentate, cheia primar este subliniat.

Legiti maie

Cod Califi cri

Categorie Calificri

Pro fil

Nume

Prenu me

Vr st

Bi rou nr.

Ora

Superior

21 35 35 35 50

113 113 170 200 170

Sisteme Sisteme Taxe Audit Taxe

3 5 7 4 3

Mare Ionescu Ionescu Ionescu Mircea

Ana Dan Dan Dan Clin

29 33 33 33 35

1 2 2 2 2

Iai Bucureti Bucureti Bucureti Bucureti

Ion Damian Damian Damian Damian

36

77 77

150 200

Consultana Audit

5 8

Traian Traian

Raluca Raluca

28 28

1 1

Iai Iai

Ion Ion

Informaiile aflate doar n FN1 prezint un nalt grad de redundan. Pentru a reduce redundana vom converti datele la a doua form normal. Formele normale mai mari dect FN1 au fost motivate de descoperirea anomaliilor, deci a operaiilor pe relaii din care rezult inconsistene sau pierderi nedorite ale adtelor. nlturarea anomaliilor necesit trecerea progresiv prin diferite nivele ale formelor normale. Aceast transformare urmrete un ideal: fiecare informaie care presupune asocieri ntre date s apar o singur dat n baz i s nu depind de prezena altor asocieri. 5.3.3 A doua form normal (FN2) O relaie este n FN2 dac este n FN1 i toate atributele sale sunt dependente de ntreaga cheie (adic, nici unul din atributele non-cheie nu este relaionat doar cu o parte a cheii). Tehnica de descompunere pentru obinerea FN2 este foarte simpl: presupune construirea unei relaii separate care sa inglobeze dependenele pariale i s nlture atributele dependente din relaia original. Pentru exemplul considerat, n urma eliminrii dependenelor pariale s -au obinut urmtoarele trei relaii. Relaia CADRE:
Legiti maie Nume Prenu me Vr st Bi rou nr. Ora Superior

21 35 50 77

Mare Ionescu Mircea Traian

Ana Dan Clin Raluca

29 33 35 28

1 2 2 1

Iai Bucureti Bucureti Iai

Ion Damian Damian Ion

Se observ c numele i prenumele, vrsta i informaiile referitoare la grupul din care persona face parte (numrul biroului, orasul, eful direct) sunt corelate direct cu numrul de legitimaie (am putea spune c depind de numrul de legitimaie) i nu depind de calificare. Relaia CALIFICRI:
Cod Calificri Categorie Calificri

113 170 200 150

Sisteme Taxe Audit Consultana

n acest caz, categoria calificrii este determinat de codul calificrii i nu depinde de numerele de legitimaie ale cadrelor. Relaia COMPETENE:
Legiti matie Cod Calificri Competene

21 35 35 35 50 77 77

113 113 170 200 170 150 170

3 5 7 4 3 5 8

n acest caz, competena este determinat de combinaia celor dou chei (legitimaie i cod calificare).

37

5.3.4 A treia form normal (FN3) O relaie este n FN3 dac este n FN2 i nu exist nici un fel de dependene tranzitive (adic, nici unul din atributele non-cheie nu este dependent de alt atribut, care la rndul su este dependent de cheia relaiei). Aceasta nseamn c nu exist nici o pereche (sau o pereche de mulimi de atribute) X i Y pentru care s apar succesiunea: Cheie X X Y unde X este o cheie non-candidat. O alt modalitate de a privi a treia form normal este dat de faptul c ea rezult din relaii ce reprezint entiti i relaii ce reprezint asocieri ntre entiti. O descompunere corespunztoare, prin care o schem se poate converti la a treia form normal, este aceea prin care acele atribute care nu sunt direct (sau, sunt doar tranzitiv) dependente de cheie sunt plasate ntr-o relaie separat. Aceast descompunere prezint dou caracteristici importante: Fiecare dependen este concretizat printr-o relaie (deci descompunerea pstreaz dependenele). Dac o extensie a relaiei originale este descompus, ea poate fi reconstruit prin intermediul unui JOIN, din componente (fr pierderi). n general, orice schem poate fi adus la a treia form normal, cu pstrarea dependenelor i cu operaii join fr pierderi de date. Pentru exemplul considerat, datele n FN3 se prezint dup cum urmeaz. Relaia CADRE:
Legiti maie Nume Prenu me Vr st Bi rou nr. Ora Superior

21 35 50 77

Mare Ionescu Mircea Traian

Ana Dan Clin Raluca

29 33 35 28

1 2 2 1

Iai Bucureti Bucureti Iai

Ion Damian Damian Ion

Relaia BIROURI:
Bi rou nr. Ora Superior

1 2

Iai Bucureti

Ion Damian

Relaia CALIFICRI:
Cod Califi cri Categorie Calificri

113 170 200 150

Sisteme Taxe Audit Consultana

Relaia COMPETENE:
Legiti matie Cod Calificri Competene

21 35 35 35 50 77 77

113 113 170 200 170 150 170

3 5 7 4 3 5 8

38

5.3.5 Forma normal Boyce-Codd (FNBC) Spunem c o relaie R cu dependenele F se afl n forma normal Boyce -Codd (FNBC) dac, oricare ar fi dependena XA cu A atribut neconinut n X, exist o cheie a lui R coninut n X. Orice relaie n forma normal Boyce-Codd este n FN3, dar reciproca nu este adevrat. Exemplu. Relaia R cu schema R(A, B, C), cu cheile AC i BC i cu dependenele funcionale F={ABC, CA}. R este n a treia form normal, dar nu este n forma normal Boyce-Codd deoarece cheile acestei relaii sunt AC i BC, iar pentru dependena CA partea stng nu conine nici una din cele dou chei. Pentru problema de a determina dac o relaie este n FNBC nu exist (n general) algoritmi eficieni de rezolvare. 5.3.6 A patra form normal (FN4) Fie R o schem relaional i D o mulime de dependene funcionale i multivaloare pe R. Spunem c R este n FN4 dac, pentru orice dependen multivaloare XY cu Y neinclus n X i XY inclus n R, exist cheie a lui R inclus n X. Cu alte cuvinte, o relaie R este n FN4 dac este n FNBC i orice dependen multivaloare este, de fapt, o dependen funcional. Dac D conine numai dependene funcionale i R este n FN4, atunci R este n FNBC. Exemplu. Fie relaia ORAR prezentat n 5.2. Singura cheie a relaiei este format din atributele STUDENT i ORA. Dependena CURS ORA, LOCATIE nu respect condiia din FN4 deoarece CURS nu conine o cheie. Vom descompune relaia n: CURSURI CURS Algebr Programare Englez

ORA 10 8 16

LOCATIE A45 C9 C22

care are cheia ORA, LOCATIE i este n FN4 i ORAR1 CURS Algebr Algebr Programare Programare Englez Englez Englez

PROFESOR Ionescu T. Ionescu T. Dinu A. Dinu A. Bonta E. Bonta E. Bonta E.

STUDENT Miron Clin Matei Ruxandra Gruia Alina Traian Maria Miron Clin Matei Ruxandra Horia Anca

AN-STUDIU 1 1 2 2 1 1 3

care are cheia CURS, STUDENT dar nu este n FN4 deoarece prezint dependena CURS PROFESOR care rezult din CURS PROFESOR i CURS nu conine o cheie. Descompunem ORAR1 n: PROFESORI CURS Algebr Programare Englez i

PROFESOR Ionescu T. Dinu A. Bonta E.

39

STUDENTI CURS Algebr Algebr Programare Programare Englez Englez Englez

STUDENT Miron Clin Matei Ruxandra Gruia Alina Traian Maria Miron Clin Matei Ruxandra Horia Anca

AN-STUDIU 1 1 2 2 1 1 3

care sunt ambele n FN4. Deci, descompunerea relaiei ORAR n {CURSURI, PROFESORI, STUDENTI} se afl n FN4 i este fr pierderi la uniune. 5.3.7 A cincea form normal (FN5) Se spune c o relaie R satisface dependena de uniune (join dependency) i se noteaz cu *(X,Y,,Z) dac i numai dac R este egal cu uniunea proieciilor lui R pe X,Y,,Z, acestea fiind submulimi ale lui R. O relaie R este n FN5 (numit i forma normal proiecie-uniune) dac i numai dac orice dependen de uniune a lui R este o consecin a unei chei candidat a lui R. Orice relaie care este n FN5 este i n FN4, deoarece fiecare dependen multivaloare poate fi privit ca un caz particular de dependen de uniune. Orice relaie poate fi descompus fr pierderi la uniune ntr-o mulime de relaii care sunt n FN5. Pentru a preciza dac o relaie este n FN5, este suficient s cunoatem cheile candidate i toate dependenele de uniune din R. 5.3.8. Procesul normalizrii relaiilor Procesul de normalizare a relaiilor se poate descrie n felul urmtor: 1. Se proiecteaz relaia iniial, aflat n FN1, pe alte relaii, pentru a elimina dependenele funcionale care nu sunt complete. Se obine o mulime de relaii n FN2. 2. Se proiecteaz relaiiile obinute n pasul 1 pe alte relaii, pentru a elimina dependenele funcionale tranzitive. Se obine o mulime de relaii n FN3. 3. Se proiecteaz relaiiile obinute n pasul 2 pe alte relaii, pentru a elimina dependenele n care partea din stnga nu este o supracheie. Se obine o mulime de relaii n FNBC. 4. Se proiecteaz relaiiile obinute n pasul 3 pe alte relaii, pentru a elimina toate dependenele multivaloare care nu sunt i dependene funcionale. Se obine o mulime de relaii n FN4. 5. Se proiecteaz relaiiile obinute n pasul 4 pe alte relaii, pentru a elimina orice dependen de uniune care nu este implicat de o cheie. Se obine o mulime de relaii n FN5. De obieci, forma normal FN3 este suficient, iar alteori chiar FN2 este suficient.

40

5.4 Studiu individual i teme


Studiai despre: Extragerea datelor relevante pentru decizii manageriale, din cantiti mari de date: http://ocw.mit.edu/courses/sloan-school-ofmanagement/15-062-data-mining-spring-2003/ Baza de date a Afacerilor i Consumatorilor (Business and Consumer Surveys): http://ec.europa.eu/economy_finance/db_indicators/surveys/i ndex_en.htm n realizarea acestei baze de date se utilizeaz NACE Nomenclatorul Activitilor Economice, ce reprezint clasificarea statistic European a activitilor economice. Aceasta furnizeaz un cadru pentru realizarea i diseminarea statisticilor legate de activitti economice. Statisticile produse pe baza NACE sunt comparabile la nivel European i, n general, la nivel mondial sunt acordate cu ISIC (United Nations' International Standard Industrial Classification of all Economic Activities). Aceast baz de date conine: serii temporale, metadate, instituii partenere, documente ale workshop-urilor, documente de lucru, documente de studiu. Baza de date a rilor candidate i n faz de pre-aderare (EU Candidate and Pre-Accession Countries Economies Quarterly): http://ec.europa.eu/economy_finance/db_indicators/cpaceq/i ndex_en.htm Citii urmtorul articol tiinific despre normalizarea datelor: Normalization Is a Nice Theory, autori David Adams i Dan Beckett, disponibil la adresa: http://www.island-data.com/downloads/papers/normalization.pdf Realizai o aplicaie Access pentru urmtorul scenariu: O firm cu activitate de producie dispune de mai multe magazii de depozitare a materiilor prime i de mai multe secii de producie. n momentul sosirii unui transport de materii prime se ntocmesc note de intrare-receptie (NIR) pe care sunt consemnate: Numar NIR, data NIR, proveniena produselor (datele de identificare ale furnizorului) i materiile prime aprovizionate. Pe o not de intrare recepie pot figura mai multe produse n diferite cantiti i la diferite preuri de aprovizionare calculndu-se valoarea total i valoarea cu TVA. Fiecare magazie este administrat de un magazioner cruia i se rein datele necesare din buletinul de identitate. Magazionerul semneaz NIR-urile i n momentul ieirii materiilor prime din depozit pentru a fi utilizate in procesul de productie ntocmete bonuri de consum. Aceste bonuri de consum sunt datate i numerotate specificndu-se materiile prime date n consum cu cantitile i preurile de ieire aferente (pe un bon pot figura mai multe materiale). Cerine minimale pe care trebuie s le urmreasc proiectul: a. Aplicaia trebuie s permit evidena permanent a stocurilor existente din fiecare materie prim n fiecare magazie i pe ansamblul firmei ncercndu-se s se semnaleze cazurile cnd stocurile scad sub un anumit prag critic . Se vor putea efectua cutri rapide pentru a determina stocurile pentru anumite materiale.

Mai multe despre BD

Teme

41

b. Se va realiza o gestiune a consumurilor lunare pe centre de consum (secii). c. Se va realiza o eviden cantitativ i valoric a aprovizionrilor lunare pe materii prime, pe magazii. d. Se va ntocmi o balan lunar a stocurilor de materii prime pentru a evidenia intrrile, ieirile i stocurile rmase n fiecare depozit pe fiecare tip de produs.

42

A language that doesnt have everything is actually easier to program in than some that do. (Dennis M. Ritchie)

UNITATEA DE CURS 6 LIMBAJE UTILIZATE N LUCRUL CU BAZE DE DATE


Cuprinsul unitii de curs: 6.1 Limbajul de definire a datelor pentru modelul relaional 6.2 Limbajul de manipulare a datelor pentru modelul relaional 6.2.1 Algebra Relaional 6.2.2 SQL 6.2.3 Calculul Relaional orientat pe tupluri 6.2.4 Calculul Relaional orientat pe domenii 6.3 Studiu individual i teme Obiectivul unitii de curs: Prezentarea modului de lucru cu limabele specifice bazelor de date.

6.1 Limbajul de definire a datelor pentru modelul relaional


Schema unei baze de date relaionale este declarat utiliznd un limbaj de definire a datelor (LDD). Un LDD relaional este simplu. Fiecare relaie trebuie s fie declarat: atributele sale s fie definite, trebuie s fie specificat un domeniu pentru fiecare atribut i trebuie aleas o cheie. O abordare simpl, valabil pentru multe baze de date relaionale, este aceea prin care fiecrei relaii i se asociaz un fiier. Sunt posibile i alte abordri, dar necesit implementri mult mai complexe. Imaginile urmtoare prezint modalitatea de definire a atributelor unei noi relaii n ACCESS, precum i adugarea relaiei la baz.

43

6.2 Limbajul de manipulare a datelor pentru modelul relaional


Se cunosc foarte multe abordri n ceea ce privete limbajele de manipulare a datelor (LMD) organizate relaional. Cele mai multe dintre acestea sunt interactive, proiectate pentru folosirea conversaional de ctre un utilizator care ateapt un rspuns imediat. Exist patru sarcini de baz pe care trebuie s le realizeze un limbaj de manipulare a datelor: Inserarea datelor noi. tergerea datelor vechi. Actualizarea datelor. Consultarea datelor. Aceste funcii se regsesc ntr-o form sau alta n orice limbaj de manipulare a datelor. Complexitatea cea mai mare a operaiilor unui limbaj de manipulare a datelor se refer la ultima categorie de prelucrri: consultarea datelor. Inserarea, tergerea i actualizarea sunt, de obicei, operaii clare i sunt realizate de un utilizator experimentat (sau de un program de aplicaie), cunoscndu-se exact ce trebuie modificat i unde. Operaiile de consultare sau cerere de date (query), pe de alt parte, sunt deseori realizate de utilizatori care fie nu tiu de la nceput ce caut, fie i exprim cerinele ntr -un mod foarte complicat. Din aceast cauz, limbajele de manipulare a datelor sunt uneori numite limbaje de cereri (query languages). n cele ce urmeaz vom prezenta, prin intermediul unor exemple, trei abordri ale limbajului de cereri n modelul relaional: Algebra relaional. Calculul pe tupluri. Calculul pe domenii. Aceste trei limbaje s-au dovedit a fi echivalente, n sensul c orice cerere ce poate fi exprimat n unul din limbaje poate fi exprimat i n celelalte dou. Diferena const n facilitatea scrierii cererii respective. 6.2.1 Algebra Relaional Algebra Relaional furnizeaz instrumente pentru exprimarea procedural a cererilor de date. Const dintr-o colecie de operaii pe relaii, fiecare operaie avnd drept operanzi una sau mai multe relaii i producnd ca rezultat o alt relaie. E.F. Codd a introdus Algebra Relaional Standard, constituit din: 5 operaii de baz: o Reuniunea o Diferena o Produsul cartezian o Proiecia o Selecia 3 operaii derivate:

44

o Jonciunea o Intersecia o Diviziunea. Ulterior, la Algebra Relaional Standard au fost adugate i alte operaii, aa -numitele operaii adiionale sau extensii ale Algebrei Relaionale Standard, cum ar fi: o Complementara o Splitarea o nchiderea tranzitiv. n cele ce urmeaz presupunem c relaia R are gradul r iar S are gradul s. Reuniunea. Pentru dou relaii R i S se poate nota: RUS, UNION(R,S), ADD(R,S). Reuniunea relaiilor R i S este mulimea tuplurilor care se gsesc n cel puin una din relaiile R sau S. Aceast operaie se poate aplica numai n cazul n care R i S au aceeai schem. Dac atributele au nume se cere ca, n plus, cele dou liste de nume s coincid i rezultatul va avea aceeai list de nume pentru atribute. Diferena. Pentru dou relaii R i S se poate nota: R -S, MINUS(R,S), REMOVE(R,S). Diferena relaiilor R i S este mulimea tuplurilor din R care nu sunt n S. Este necesar s fie ndeplinite aceleai condiii ca pentru reuniune. Produsul cartezian. Pentru dou relaii R i S se poate nota: RS, PRODUCT(R,S), TIMES(R,S). Produsul cartezian al relaiilor R i S este mulimea tuplurilor cu r+s componente, n care primele r componente reprezint un tuplu n R iar ultimele s componente reprezint un tuplu n S. Dac atributele au nume, lista numelor atributelor din rezultat este reuniunea disjunct a celor dou liste (folosind calificri sau redenumiri pentru atributele cu aceleai nume n cele dou relaii). Proiecia. Fie relaia R de grad r. Proiecia relaiei R dup atributele c 1, c2,, ck (k<=r) se noteaz c1, c2,, ck(R), PROJECT(R; c1, c2,, ck) i este mulimea tuplurilor de aritate k n care se pstreaz doar valorile corespunztoare atributelor menionate explicit n proiecie. Dac relaia R are asociate nume pentru atribute, acestea se pot pstra n relaia rezultat. Se observ c acesast operaie corespunde unor tieturi verticale n R. Selecia. Fie F o formul logic format din operanzi care sunt constante sau nume de componente n tupluri i operatori aritmetici i/sau logici. Selecia relaiei R n raport cu formula F se noteaz F(R), SELECT(R; F) i reprezint mulimea tuplurilor din R pentru care formula F devine adevrat. Relaia rezultat are pentru atribute aceleai nume ca i relaia R. Toate constantele care apar n F sunt incluse ntre apostrofuri.

Operaiile derivate se pot exprima n funcie de operaiile de baz. Utilizarea acestora permite o exprimare mai simpl a cererilor i, dac sunt bine implementate, obinerea unui rspuns mai rapid. Jonciunea. Este numit i uniune sau join. O -uniune a relaiilor R i S dup coloanele i i j, unde este un operator de comparaie este notat UNION(R,S; ij), JOIN(R,S; ij) sau R Xij S este constituit din mulimea tuplurilor produsului cartezian dintre R i S, pentru care a i-a component a lui R se afl n relaia cu a j -a component a lui S. Dac R i S au nume pentru atribute, n loc de i i j se pot folosi numele atributelor corespunztoare. Jonciunea este o operaie derivat deoarece se poate exprima cu ajutorul operaiilor de baz prin formula: R X ij S= i(r+j) (RS). Dac este operatorul =, operaia se numete echiuniune sau echijoin. Un caz particular de jonciune este jonciunea natural. Uniunea natural a relaiilor R i S, notat R X S, se aplic dac cele dou relaii au nume asociate atributelor i, n acest caz, se selecteaz din produsul cartezian al relaiilor R i S acele tupluri ce conin valori comune pentru cmpurile cu aceleai nume din cele dou relaii i apoi se elimin valorile din cmpurile lui S comune cu cele din R. Intersecia. Intersecia relaiilor R i S, notat RS, INTERSECT(R,S), AND(R,S), este constituit din mulimea tuplurilor care se gsesc n ambele relaii. Se aplic n condiiile specificate la reuniune. Intersecia se poate exprima prin operaiile de baz cu formula: RS=R-(R-S). Diviziunea. Fie relaiile R de aritate r i S de aritate s, cu r >s i S. Diviziunea sau ctul lui R prin S, notat RS, este mulimea tuplurilor a de aritate r-s astfel nct,

45

pentru orice tuplu b al lui S, tuplul ab este n R. Dac atributele celor dou relaii au nume, atunci lista atributelor lui S trebuie s fie o submulime a listei atributelor lui R iar rezultatul are ca list de atribute diferena celor dou liste. Ctul se poate exprima prin operaiile de baz cu formula: RS= 1, 2,, r-s(R)- 1, 2,, r-s(1, 2,, r-s(R)S)-R). Exemplul 1. Fie relaiile R i S, cu schemele i extensiile prezentate mai jos: R A a d c B b a b C c f d S D b d E g a F a f

n acest caz, rezultatele aplicrii operatorilor: reuniune, diferen, produs cartezian, proiecie, selecie i intersecie asupra relaiilor R i S (cu precizrile indicate pentru proiecie i selecie) sunt: RUS a d c b RS a a d d c c R-S a c

b a b g

c f d a

b b

c d

A,C(R),
b b a a b b c c f f d d b d b d b d RS d g a g a g a a a f a f a f f a d c c f d

B=b (R),
a c b b c d

Exemplul 2. Fie relaiile R i S, cu schemele i extensiile urmtoare: R A a a b e e a B b b c d d b C c e e c e d D d f f d f e S E c e F d f

n acest caz, ctul lui R prin S este: RS a e

b d

Exemplul 3. Fie relaiile R i S, cu schemele i extensiile de mai jos:

46

R A 1 4 7 B 2 5 8 C 3 6 9

S D 3 6 E 1 2

n acest caz, jonciunea lui R cu S cu B<D este: R XB<D S A 1 1 4

B 2 2 5

C 3 3 6

D 3 6 6

E 1 2 2

Exemplul 4. Fie relaiile R i S, cu schemele i extensiile actuale: R A a d b c B b b b a C c c f d S B b b a C c c d D d e b

n acest caz, jonciunea natural a lui R cu S este: R XS A B C D a b c d a b c e d b c d d b c e c a d b Exemplul 5. Fie urmtoarea schem: Relaia ANGAJATI Nume cmp Marca Nume Prenume Initiala_tatalui Data_angajarii Relaia CHITANTE Nume cmp Numar_chitanta Data Total Avans Numar_cont Credit_card Tip_card Marca

Tip Numr Text 20 Text 20 Text 1 Dat

Cheie Da

Tip Numr Dat Numr Numr Text 9 Numr Text 2 Numr

Cheie Da

S se scrie o cerere prin care s se obin un tabel cu urmtoarele date: Numar_chitanta, Data, Total, Marca, Nume, Prenume pentru toate chitanele exprimnd pli salariale efectuate nainte de luna martie 2005.

47

n cazul acestei cereri, sunt necesari operatorii: Selecie, Proiecie i Jonciune. Cererea formulat se poate exprima, n limbajul algebrei relaionale, prin secvena: LIST JOIN(CHITANTE, ANGAJATI ) SELECT(Date&<3/1/05) PROJECT(Numar_chitanta, Data, Total_chitanta, Marca, Nume, Prenume)

6.2.2 SQL Unul dintre cele mai puternice limbaje structurate pentru interogarea bazelor de date relaionale l constituie SQL (Structured Query Language). Pe lng manipularea i regsirea datelor, limbajul permite efectuarea de operaii complexe privind actualizarea i administrarea bazelor de date. SQL este un limbaj neprocedural sau declarativ, deoarece utilizatorul lui descrie numai informaiile pe care vrea s le obin n urma interogrii, fr a fi nevoie s stabileasc modalitile de a ajunge la rezultatele dorite. n acelai timp, SQL nu poate fi considerat un limbaj de programare sau unul de sistem ci, mai curnd, face parte din categoria limbajelor de aplicaii, fiind orientat pe mulimi. Foarte frecvent, limbajul SQL este utilizat n administrarea bazelor de date client/server, aplicaia client fiind aceea care genereaz instruciunile SQL. Exist un anumit grad de standardizare a limbajului SQL, mai multe sisteme de gestiune a bazelor de date recunoscnd principalele instruciuni ale acestuia (de exemplu: Oracle, Access, Sybase etc.). Pe plan mondial, standardul n domeniu este considerat ANSI (American National Standards Institute) SQL care are n vedere att aspectele de definire, interogare, manipulare a datelor, procesare a tranzaciilor, ct i caracteristicile complexe privind integritatea informaiilor. Muli productori de sisteme de gestiune a bazelor de date furnizeaz propriile extensii ale limbajului SQL, asigurndu-i astfel exclusivitatea. Se cunosc n literatura de specialitate trei metode de baz privind implementarea limbajului SQL i anume: cea prin apelare direct (Direct Invocation) - const n introducerea instruciunilor SQL de la prompter; cea modular (Modul Language) - folosete anumite proceduri apelate de programele aplicaiei; cea de tip ncapsulat (Embedded SQL) - are n vedere instruciunile ncapsulate n codul de program, fiind de tip static i dinamic. n cazul exemplului 5 considerat mai sus, cererea SQL are forma: SELECT Numar_chitanta, Data, Total_chitanta, CHITANTE.Marca, Nume, Prenume FROM CHITANTE, ANGAJATI WHERE Date&<3/1/05 AND CHITANTE.Marca# ="ANGAJATI.Marca#" n Access, cererea SQL are forma:

6.2.3 Calculul Relaional orientat pe tupluri O expresie de calcul pe tupluri este, n esen, o definiie non -procedural a unei relaii, n termenii unei mulimi de relaii date. O astfel de expresie este constituit din variabile tuplu, condiii i formule bine formate. 48

n cazul exemplului 5: Cererea n QUEL, limbajul de cereri al SGBD INGRES, are forma: range of c is CHITANTE range of a is ANGAJATI retrieve (c.Numar_chitanta, c.Data, c.Total, c.Marca, a.Nume, a.Prenume) where c.Data < 3/1/05 and c.Marca=a.Marca Cererea n Access are forma:

6.2.4 Calculul Relaional orientat pe domenii Calculul pe domenii difer de calculul pe tupluri prin aceea c variab ilele sunt, n acest caz, comenii i nu relaii. i aici, o expresie de calcul orientat pe domenii este alctuit din variabile domeniu, condiii i formule bine formate. n cazul exemplului 5, cererea n Borland Paradox are forma: CHITANTE Numar_chitanta ANGAJATI Marca Nume pers

Data =3/1/05

Total

Avans

Numar_cont

Credit_card

Tip_card

Marca pers

Prenume

Initiala_tatalui

Data_angajarii

49

6.3 Studiu individual i teme


Studiai capitolele: 5. Limbajul SQL: Regsirea datelor, Funcii statistice i grupuri, Subcereri; 6. Tranzacii i acces concurent i 7. Limbajul SQL: Gestiunea schemelor, actualizare date, limbajul PL/SQL, din lucrarea accesibil la adresa http://bdfr.cs.pub.ro/ Parcurgei elementele teoretice i exemplele furnizate la adresa www.cs.rochester.edu/users/faculty/nelson/courses/csc_1 73/relations/algebra.html referitor la algebra relaional. Studiai limbajele PHP i MySQL cu ajutorul tutorialelor disponibile la adresa: www.freewebmasterhelp.com/tutorials/phpmysql/1 i SQL cu ajutorul tutorialului accesibil la: http://www.w3schools.com/sql/default.asp Investigai modul de lucru cu browser-ul EVA (Eurostat Visual Application), cu ajutorl cruia pot fi vizualizate online datele din bazele de date Eurostat: http://www.eui.eu/Documents/Research/Library/ResearchG uides/Economics/Statistics/PDF/eva.pdf). Datele sunt disponibile n tabele multidimensionale, iar dimensiunile tabelelor acoper: ri, regiuni, orae, uniti, variabile, periodicitate etc. Parcurgei prezentarea de la adresa http://telecom.etc.tuiasi.ro/telecom/staff/lscripca/discipline%20p redate/master/Teoria%20bazelor%20de%20date%204_20 10.pdf urmrind exemplele referitoare la normalizare. Fie urmtoarea fraz CREATE: CREATE TABLE animals ( animal_id number(6), name varchar(25), license_tag_number number(10), admit_date date animals_admit_nn not null, adoption_id number(5), vaccination_date date animals_vacc_nn not null, CONSTRAINT animal_id_pk (animal_id), CONSTRAINT lic_tag_num_uk (license_tag_number)); Completai spaiile subliniate. Corectai urmtoarea interogare: SELECT manager_id FROM employees WHERE AVG(salary) <1600 GROUP BY manager_id;

Mai multe despre BD

Teme

Realizai o aplicaie Access pentru urmtorul scenariu: Se dorete realizarea unei aplicaii pentru evidena pacienilor, consultaiilor, ncasrilor i plilor la un cabinet stomatologic particular. La cabinet lucreaz mai muli medici crora li s-au ntocmit contracte n care sunt specificate toate datele personale 50

necesare (preluate din actele de identitate), salariile de ncadrare i data angajrii. Pentru fiecare pacient se ntocmete o fi n care se consemneaz numrul fiei, data ntocmirii, numele, data naterii, adresa i telefonul pacientului. Pentru a se prezenta la o consultaie un pacient trebuie s-i fac o programare specificnd data, ora i medicul solicitat. n momentul prezentrii la consultaie se ntocmete o foaie de consultaie n care completeaz data consultaiei i toate interveniile pe care medicul le-a efectuat adugnd eventuale observaii. Firma dispune de un catalog cu toate interveniile ce se pot realiza n cabinet (de ex: extracie, plomb, fixare aparat dentar, etc.) specificndu-se pentru fiecare costul materialelor i tariful pentru prestaia medicului. La o consultaie un medic poate realiza mai multe intervenii ce se vor consemna pe aceeai fi, calculndu-se costul total. n momentul n care pltesc contravaloarea consultaiilor pacienilor li se elibereaz chitane pe care figureaz suma pe care au achitat-o. Exist situaii n care pacienii nu pltesc toat suma n aceeai zi, caz n care li se vor elibera mai multe chitane n contul aceleiai consultaii. Pentru simplificarea problemei se consider c la o consultaie particip un singur medic. Se va calcula in fiecare luna numarul de consultatii acordate de fiecare medic si se vor acorda sporuri la salariul de incadrare functie de numarul de conslutatii (de exemplu 5% din salariu daca depasesc 10 consultaii. Cerine minimale pe care trebuie s le urmreasc proiectul: a. Aplicaia trebuie s permit informatizarea activitii curente la cabinet (nregistrarea de programri, fie de consultaii, tiprirea de chitane, tiprirea fielor pacienilor, etc.) Se vor putea efectua cutri rapide n baza de date pentru aflarea informaiilor privind pacienii i consultaiile. b. Se vor putea obine situaii cu ncasrile zilnice i lunare a le cabinetului. c. Se vor putea obine la orice moment situaii cu pacienii care mai au de achitat sume n contul consultaiilor. d. Se vor realiza tate lunare de plat pentru medici (se va reine impozit pe salarii i CAS) i se vor putea lista fluturai de salarii pentru fiecare angajat. Urmrii s aducei baza de date la Forma Normal 3. n tabelul urmtor, determinai dependenele ntre atribute, explicai ce anomalii de actualizare pot s apar i prezentai o nou form, optimizat, a datelor.
Nr Cli en t Nr Propri etate Nume Client Adresa Proprietate nceput nchir Sfrit nchir Chiria Nr Prop rietar Nume Proprie tar

76 76 56 56 56

4 16 4 36 16

Ion Buflea Ion Buflea Alina Dan Alina Dan Alina Dan

Rozelor 25 Braov Stejri 19 Braov Rozelor 25 Braov Erorilor 21 Braov Stejri 19 Braov

01.iul.94 01.sep.96 01.sep.92 10.oct.94 01.ian.96

31.aug.96 01.sep.98 10.iun.94 01.dec.95 10.aug.96

350 450 350 375 450

40 93 40 93 93

Ana Ispas Ina Pascu Ana Ispas Ina Pascu Ina Pascu

51

Identificai probleme specifice domeniului bazelor de date pe site-ul Asociaiei Naionale a Informaticienilor din Administraia Public: www.aniap.ro

52

Controlling complexity is the essence of computer programming. (Brian W. Kernighan)

UNITATEA DE CURS 7 RESTRICIILE DE INTEGRITATE ALE MODELULUI RELAIONAL


Cuprinsul unitii de curs: 7.1 Restricii de integritate minimale 7.2 Alte restricii de integritate 7.3 Aspecte privind integritatea 7.4 Studiu individual i teme Obiectivul unitii de curs: Prezentarea condiiilor impuse datelor n scopul gestionrii corecte a acestora, n cadrul modelului relaional.

Integritatea bazelor de date este dat, n principiu, de corectitudinea informaiilor coninute n acestea i presupune detectarea, corectarea i prevenirea diferitelor erori neintenionate privind informaiile introduse n bazele de date. Restriciile de integritate (RI), denumite i reguli de integritate, definesc cerinele pe care trebuie s le satisfac datele din cadrul bazei de date relaionale pentru a putea fi considerate corecte i coerente n raport cu sistemul real pe care l reflect. n bazele de date relaionale, relaiile sunt toate la acelai nivel iar setul de operatori este relativ restrns, neputnd exprima semantica operaional a obiectelor complexe. Acest aspect ramne n sarcina programatorilor de aplicaie. Totui, sistemele relaionale dein o serie de mecanisme pentru tratatrea aspectelor de ordin semantic. Restriciile de integritate ale modelului relaional sunt de dou tipuri: RI structurale, care se definesc prinegalitatea sau inegalitatea unor valori din cadrul relaiilor. Din aceast cattegorie fac parte: o Restriiile de unicitate a cheii o Restricia referenial o Restricia entitii o Dependena ntre date. RI de comportament, proprii unei anumite baze de date relaionale, ce in cont de semnificaia valorilor din cadrul bazei respective. Se pot defini RI de comportament foarte diverse: temporale, de domeniu, etc. De exemplu, faptul c vrsta unei persoane trebuie s se plaseze ntre anumite limite constituie o restricie de domeniu.

Utilizarea modelului relaional nu impune definirea i verificarea tuturor acestor tipuri de restricii. Din acest punct de vedere, putem considera c exist: RI minimale obligatoriu de definit i de respectat. Din aceast categorie fac parte restricia de integritate a cheii, restricia referenial, restricia entitii. Alte RI categorie din care fac parte dependenele ntre date, restriciile de comportament.

7.1 Restricii de integritate minimale


Cheia unei relaii R reprezint un ansamblu 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

53

este constituit fie dintr-un singur atribut, fie din totalitatea atributelor din schema relaiei respective. Cnd cheia este constiituit dintr-un singur atribut ea poart numele de cheie simpl iar cnd este format din mai multe atribute este denumit cheie compus. Exemplu. n relaia R1 atributul A este din atributele A i B: R1: R2: A B A a1 b1 a1 a2 b3 a1 a3 b2 a2 a4 b3 a3 cheie, n timp ce n relaia R2 cheia trebuie format

B b1 b2 b3 b2

ntr-o relaie pot exista mai multe combinaii de atribute cu proprietatea de identificare unic a tuplurilor. Se spune n acest caz caz c relaia posed mai multe chei candidate. n aceast situaie, administratorul bazei va alege dintre cheile candidate una care s serveasc efectiv la identificarea tuplurilor i care se va numi cheie primar. Restul cheilor candidate se vor numi chei alternate. Cheia unei relaii trebuie sa fie minimal, n sensul c nici o parte a sa nu trebuie s posede proprietatea de identificare unic a tuplurilor relaie. O cheie extern reprezint un atribut sau un grup de atribute dintr-o relaie R1 ale crui/cror valori sunt deinite pe acelai/aceleai domeniu/domenii ca i cheia primar a unei alte relaii R2 i care are rolul de a modela asocierea ntre entitile reprezentate prin relaiile R1 i R2. n acest context, R1 este numit relaie care refer, n timp ce R2 poart numele de relaie referit. Exemplu. n relaia ANGAJATI atributul Marca este cheie primar, n tim p ce atributul Cod_departament este cheie extern, servind la modelarea asocierii ntre angajai i departamente. n relaia DEPARTAMENTE, cheia Departament este cheie primar. ANGAJATI: Marca Nume 11 N1 22 N2 33 N3 44 N4 55 N5 66 N6 77 N7 DEPARTAMENTE: Cod_departament 1 2 1 3 3 2 1 Departament 1 2 3 Denumire Tehnic Personal Administrativ

Modelul relaional prezint urmtoarele restricii de integritate minimale: Restricia de unicitate a cheii. Reprezint restricia care impune ca ntr-o relaie R cu cheia K, oricare ar fi tuplurile t1 i t2 s fie satisfcut inegalitatea t1(K) t2(K). Restricia referenial (integritatea referirii). Reprezint restricia 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 null (nedefinite). R1 i R2 nu trebuie s fie neaprat distincte. Semnificaia restriciei de integritate a referirii este urmtoarea: o asociere nu poate exista dect ntre parteneri cunoscui, adic deja definii. Atunci cnd, ntr-o anumit situaie, asocierea nu este aplicabil, unul dintre parteneri va fi desemnat prin valoarea null, cu semnificaia de partener inexistent. Exemplul anterior respect restricia de integritate a referirii. Restricia entitii (integritatea entitii). Reprezint restricia 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 este deja ncrcat. Cu valori de null, cheia i pierde rolul de identificator de tuplu.

54

Restricia de integritatea a entitii nu se aplic cheilor externe, ceea ce confer o anumit suplee modelului relaional. Uneori, se consider drept restricii de integritate minimale numai ultimele dou, restricia de unicitate a cheii fiind considerat implicit.

7.2 Alte restricii de integritate


n aceast categorie intr constrngerile de domeniu. Aceste constrngeri se pot referi la tipul de date al unui atribut, la o list de valori posibile, la un ordin de mrime, la un format sau o form, la o condiie exprimat cu o formul logic sau la o procedur care este apelat ori de cte ori are loc o modificare pentru domeniul specificat. Exemple. Pentru relaia CUMPARATORI (Cod, Nume, Adresa, Debit) se poate impune condiia ca nici un cumprtor s nu aib mai mult de 100.000.000 lei datorii. Pentru relaia MAGAZINE (Numemag, Adresamag, Codmarfa, Marfa, Pret) se poate impune ca noile preuri s nu creasc cu mai mult de 20% faa de preurile vechi.

7.3 Aspecte privind integritatea


De integritatea datelor este legat i protecia datelor mpotriva diferitelor evenimente de avarie cum ar fi: cderea sistemului, cauzat de defectarea unor componente hardware sau software, executarea incomplet a unor programe din cauza apariiei unor erori sau din necesitatea de ntrerupere a lor n urma unor interblocri sau prin intervenia utilizatorilor, programarea eronat a unor activiti prin strategiile folosite de sistem i altele. Pentru reconstituirea bazelor de date n eventualitatea apariiei unor inconsistene n general, majoritatea bazelor de date se copiaz periodic pe medii magnetice ce se pstreaz n locuri sigure. De asemenea, se ine o eviden a tuturor transformrilor efectuate n baza de date de cnd s-a efectuat ultima copie. Fiierul care conine aceste modificri se numete jurnal. Fiecare nregistrare din jurnal conine un identificator al programului care a fcut modificarea, fosta valoare i noua valoare introdus pentru un element. Tot n jurnal se mai pstreaz diferite momente importante din desfurarea programelor (nceput, sfrit, terminarea unor operaii). Se spune despre o tranzacie c este comis dac au fost terminate toate calculele produse de ea n aria de lucru i s-a realizat o copie a rezultatelor ei n jurnal. Apariia unor cderi dup ce o tranzacie a fost comis nu afecteaz coninutul bazei de date, deoarece acestea se pot reconstitui cu ajutorul ultimei copii i a jurnalului n care se gsesc toate rezultatele tranzaciilor comise. Modificrile tranzaciilor abandonate sau necomise nu sunt luate n considerare la parcurgerea jurnalului pentru restaurarea bazei de date. Se definete strategia de comitere n dou faze astfel: o tranzacie poate s scrie ntr-o baz de date numai dup ce a fost comis i o tranzacie poate fi comis numai dup ce a nregistrat n jurnal toate schimbrile de elemente produse de ea.

7.4 Studiu individual i teme


Citii despre informaie: public/non-public, intern, confidenial sau secret la adresa: www.boran.com/security/IT1x-4.html Citii despre vulnerablitile care pot s apar ntr-un sistem informatic n revista ComputerWorld Romania, disponibil online la adresa http://www.computerworld.ro/2012/09/11/top-10vulnerabilitati-care-pot-aparea-intr-un-sistem-informatic/ Aflai despre restricii de integritate n sistemele financiar monetare, n cursul Sisteme informatice financiar-

Mai multe despre BD

55

monetare, disponibil n biblioteca digital a ASE Bucureti, la adresa: http://www.bibliotecadigitala.ase.ro/biblioteca/carte2.asp?id=350&idb= Citii despre restricii, n tutorialul: http://michaelmclaughlin.info/db1/lesson-2-creatingtables/database-constraints/ Realizai o aplicaie Access pentru urmtorul scenariu: Se dorete informatizarea activitii la o universitate ce organizeaz cursuri postuniversitare cu durata de un an pltite de cursani. Cursurile sunt grupate pe specializri (de ex: Informatica managerial, Contabilitate aprofundat, etc.) Pentru fiecare disciplin este prevzut n planul de nvmnt un anumit numr de ore de curs si un numar de credite. In momentul nscrierii fiecarui student i se ntocmete o fi de nscriere n care se consemneaz: numr fi, data nscrierii i sunt preluate toate informaiile necesare din actele de identitate ale studenilor. Cursantii pot plati taxa de scolarizare in mai multe trane, pentru fiecare tran achitata eliberandu-se o chitan cu suma pltit. Cursurile sunt susinute de profesori angajai pe baza de contracte n care sunt specificate: gradul didactic (lector, confereniar, profesor) i datele de identificare preluate din buletin. La un curs pot colabora unul sau mai multe cadre didactice, fiecare un anumit numr de ore, urmnd s fie pltii n sistemul de plata cu ora. n acest sens, universitatea are stabilit un plan tarifar n care se specific suma brut/or pentru fiecare grad didactic. Studenii susin, la fiecare disciplin, examene la care primesc note ntre 1 i 10. Sunt considerai absolveni acei cursani ce reuesc s promoveze toate examenele pe parcursul anului. Cerine minimale pe care trebuie s le urmreasc proiectul: a. Evidena operativ a studenilor pe specializri. Se vor putea efectua cutri rapide pentru informaii privind studenii i rezultatele acestora. b. Evidena rezultatelor la examene (cataloage, liste cu note pe specializri i pe discipline, calculul mediilor). c. Se vor putea tipri foi matricole i diplome de absolvire. d. Se vor ntocmi state de plat lunare pentru cadrele didactice. e. Se vor ntocmi situaii cu ncasrile, pe diferite perioade de timp, ale universitii i cu sumele rmase de ncasat de la studeni. f. Se vor ntocmi situaii cu studenii restanieri. Explicai toate restriciile de integritate pe care le implic aplicaia.

Teme

56

The data represent an abstraction of reality in the sense that certain properties and characteristics of the real objects are ignored because they are peripheral and irrelevant to the particular problem. An abstraction is thereby also a simplification of the facts. Niklaus Wirth

UNITATEA DE CURS 8 DEPOZITE DE DATE. BAZE DE CUNOTINE


Cuprinsul unitii de curs: 8.1. Concepte de baz n data warehouse 8.2. Diferene nte bazele de date i depozitele de date 8.3. Arhitectura depozitelor de date 8.4 Baze de cunotine 8.5 Studiu individual i teme Obiectivul unitii de curs: Prezentarea dezvoltrilor moderne ale bazelor de date.

Depozitele de date (n limba englez, termenul pentru depozit de date este data warehouse) au devenit, la sfritul anilor '90, una dintre cele mai importante dezvoltri n domeniul sistemelor informaionale. Industria de data warehouse s -a dezvoltat continuu n termeni de investiii, produse disponibile i proiecte elaborate. Se apreciaz c aproximativ 90% dintre companiile multinaionale au implementate depozite de date sau lucreaz la dezvoltarea unor astfel de proiecte. Depozitele de date sunt produsul mediului economic i al tehnologiilor avansate. Pe de o parte, mediule conomic este tot mai competitiv, global i complex i solicit informaii elaborate pentru sprijinirea deciziilor strategice iar, pe de alt parte, evoluia tehnologiilor informaionale ofer soluii eficiente de gestionare a unor volume mari de date integrate (de ordinul Tera bytes) asigurnd niveluri de sintez / detaliere adecvate. Astfel, evoluiile hardware performante precum i sistemele de procesri paralele masive, sistemele de multiprocesare simetric, sistemele tip baze de date paralele fac posibile ncrcarea, ntreinerea i accesul la baze de date de dimensiuni uriae. Aplicaiile data warehouse sunt n msur s asigure i un timp mediu de rspuns extrem de scurt pentru categorii extinse de utilizatori. Primele domenii care au adoptat tehnologia depozitelor de date au fost telecomunicaiile, bncile i comerul cu amnuntul. Ulterior, depozitele de date au ptruns i n alte domenii cum ar fi industria farmaceutic, sistemul sanitar, asigurrile, transporturile. Studiile statistice arat c telecomunicaiile i sistemul bancar se menin n top ntruct aloc cel puin 15% din bugetul lor IT pentru proiecte referitoare la depozite de date. Un proiect de data warehouse reprezint o investiie major. Costurile tipice pentru dezvoltarea unui depozit de date ntr-un interval de 3-6 luni se situeaz ntre 0,8 i 2 milioane USD. Ponderea echipamentelor se situeaz ntre 1/2 i 2/3 din costul total. Uneori, investiiile n depozite de date nu se finalizeaz cu succes (politici organizaionale defectuoase, insuficiente fonduri sau insuficient susinere din partea conducerii.

57

8.1. Concepte de baz n data warehouse


Depozitele de date au fost definite n foarte multe moduri, astfel nct o definiie riguroas este greu de formulat. n sens larg, un depozit de date (data warehouse) reprezint un sistem de baze de date: ce acoper un orizont temporal mai mare (fundamental este perspectiva pe termen lung); ce conine date interne i externe; optimizat pentru a rspunde interogrilor complexe. Datele din sistemele surs sunt extrase, curate, transformate i stocate n depozite speciale n scopul sprijinirii proceselor decizionale, furniznd o platform solid de consolidare a datelor istorice pentru analiz. Caracteristicile majore ale depozitelor de date sunt urmtoarele: Orientarea pe subiecte. Un depozit de date este organizat n sensul unor subiecte majore cum ar fi: clieni, furnizori, producie, vnzri. Mai curnd dect a concentra procesarea operaiilor i tranzaciilor tipice ntr-o organizaie, un depozit de date se focalizeaz pe modelarea i analiza datelor pentru luarea deciziilor. Se ofer o viziune simpl i concis relativ la un subiect particular, excluznd datele care nu sunt utile n procesul de decizie. Integrarea. Un depozit de date este, n mod uzual, construit prin integrarea a multiple surse eterogene: baze de date relaionale, fiiere, nregistrri privind tranzacii online. Tehnicile de curare (data cleaning) i de integrare sunt aplicate pentru a asigura concordana n conveniile de atribuire a numelor, de codificare a structurilor i atribuire a valorilor. Caracterul istoric. Datele sunt stocate pentru a furniza informaii n perspectiv istoric (de la 5 pn la 10 ani n urm). Astfel, decidenii pot consulta valorile succesive ale acelorai date, pentru a determina evoluia n timp i a calcula tendinele anumitor indicatori. Persistena datelor. Datele dintr-un depozit sunt permanente i nu pot fi modificate. O actualizare a depozitului de date, ca urmare a modificrilor efectuate n datele surs, nseamn adugare de date noi, fr a modifica sau terge datele existente . Un depozit de date este ntotdeauna memorat separat, din punct de vedere fizic, de datele transformate din alte aplicaii. Datorit acestei separri, un depozit de date nu necesit mecanisme de procesare a concurenei. n mod uzual, solicit numai dou operaiuni: ncrcarea iniial a datelor i accesul la date. Sintagma data warehousing desemneaz procesul de construire i utilizare a depozitelor de date (data warehouse). Construirea necesit integrarea, curarea i consolidarea datelor. Utilizarea necesit o colecie de tehnologii de asistare a deciziilor. Acestea permit specialitilor (manageri, analiti, executivi) s obin rapid i convenabil datele necesare i s ia decizii bazate pe informaiile din depozit.

8.2. Diferene nte bazele de date i depozitele de date


Att bazele de date ct i depozitele de date conin mari cantiti de date structurate care pot fi accesate rapid datorit structurilor de acces optimizate i se bazeaz, n majoritatea cazurilor, pe tehnologii relaioanle. Totui ele nu au fost proiectate pornind de la aceleai obiective i se difereniaz prin numeroase aspecte. Sistemele de gestiune ale bazelor de adte sunt adecavte aplicaiilor curente de gestiune i servesc la crearea i ntreinerea sistemelor de date operaionale. Aceste sisteme sunt cunoscute sub denumirea de sisteme OLTP (OnLine Transaction Processing) i au ca obiectiv execuia online a tranzaciilor i proceselor de interogare. Ele ncorporeaz to ate operaiile zilnice dintr-o organizaie, cum ar fi: aprovizionri, stocuri, producie, decontri, pli, contabilitate.

58

Sistemele depozite de date, pe de alt parte, servesc specialitii n domeniul analizei datelor i lurii deciziilor i sunt cunoscute sub numele de sisteme OLAP (OnLine Analytical Processing). Deosebirile majore ntre OLTP i OLAP sunt sintetizate n tabelul urmtor i iau n considerare urmtoarele trsturi: utilizatorii i orientarea sistemului, caracterul datelor coninute, nivelul de sintez, unitatea de lucru, schemele de acces, numrul de nregistrri accesate, mrimea bazelor de date, sistemul de evaluare.

Nr. Crt. 1 2 3 4

Trsturi Destinaia Orientarea sistemului Utilizatori Funcii

OLTP Procese operaionale Tranzacii Funcionari, administratori BD, profesioniti n BD Operaii zilnice

OLAP Procese informaionale Analize Cerine informaionale pe termen lung, asistarea deciziei Star / snowflake Istorice, precizie meninut n timp Sintetizare, consolidare Interogri complexe Aproape totdeauna Read Furnizare informaii Milioane Sute 100 Gb - TB Flexibilitate ridicat, autonomie utilizatori finali Interogri culese, timp de rspuns

5 6 7 8 9 10 11 12 13 14 15

Instrumente folosite n proiectare Caracterul datelor Nivelul de sintez Unitatea de lucru Scheme de acces Focalizare Numr de nregistrri accesate Numr de utilizatori Mrimea bazelor de date Prioriti Sistem de evaluare

Diagrame E-A Curente, noutate garantat Primitive, detaliere ridicat Scurt, tranzacii simple Read, Write Culegere date Zeci Mii 100 MB - GB Performane ridicate, disponibilitatea ridicat Tranzacii culese

Un sistem OLTP este orientat pe client (customer oriented) i este utilizat pentru procesarea tranzaciilor i a interogrilor. Un sistem OLAP este orientat spre pia (market oriented) i este utilizat de manageri, analiti i specialiti. Exist i conceptul de magazine de date (Operational Data Stores ODS), care se refer la o colecie de date proiectate pentru sprijinirea controlului operaional. La prim avedere nu par deosebite de depozitele de date, dar dei ambele tehnologii sprijin decidenii sunt diferite deoarece au scopul de a acoperi anumite tipuri de cerine informaionale. Magazinele de date conin date orientate pe subiecte din ntreprinderile mari i, spre deosebire de depozitele de date, conin date volatile i detaliate.

59

8.3. Arhitectura depozitelor de date


Arhitectura simplificat a unui depozit de date este prezentat n figura urmtoa re.

Baze de date operaionale

Instrumente pentru Accesare i Utilizare

Achiziie (extragere)

DEPOZIT DE DATE (DATE AGREGATE + METADATE)

TERGERE ARHIVARE AGREGARE

Prelucrare (data mining)

n depozitul de date ntlnim mai multe tipuri de date care corespund diferitelor cerine informaionale ale utilizatorilor: Date detaliate Date uor agregate Date puternic agregate Metadate. Metadatele descriu datele coninute n depozitul de date i modul n care ele sunt obinute i stocate. Prin metadate se precizez structura datelor, proveniena lor, regulile de transformare, de agregare i de calcul. Metadatele joac un rol esenial n alimentarea depozitului cu date. Ele sunt utilizate n toate etapele de ncrcare adatelor i sunt consultate i actualizate pe parcursul ntregului ciclu de via ale depozitului. Agregarea datelor se refer la realizarea de: totaluri precalculate, subtotaluri, valori medii, etc., ce se preconizeaz c vor fi cerute i folosite de ctre utilizatori. Aceste agregri, dei determin o cretere a redundanei datelor, sunt necesare deoarece n acest fel se poate asigura un timp de rspuns ct mai redus. Sunt stocate n depozitul de date mpreun cu datele importante din surse interne i externe. Data Mining reprezint un proces de prelucrare bazat pe modele performante de selectare i agregare a datelor din depozitele de date. Cele dou scopuri principale ale procesului de data mining sunt, din punct de vedere practic: Predicia implic utilizarea unor cmputi sau variabile din baza de date, n scopul estimrii unor valori viitoare sau necunoscute, pentru alte variabile de interes i Descrierea se orienteaz ctre gsirea unor modele ce descriu datele, interpretabile din perspectiva utilizatorului. Procesul, numit i Knowledge Data Discovery (KDD), este realizat prin intermediul urmtoarelor sarcini: Clasificarea este vorba de o funcie care mapeaz (clasific) un element de dat n una sau mai multe clase predefinite. Regresia o funcie asociaz un element de dat unei variabile cu rol de predicie. Partiionarea (clustering) este o funcie descriptiv prin care se urmrete identificarea unui numr (finit) de categorii sau mulimi care descriu datele. Str ns 60

legat de aceast funcie este funcia de estimare a densitilor de probabilitate ale variabilelor aleatoare constituite de cmpurile de date. Sumarizarea implic metode pentru gsirea unei descrieri compacte a unei submulimi de date. Modelarea dependenelor const din gsirea unor modele care descriu n mod compact diferite dependene ntre subseturi de date. Modelele de dependen exist la dou nivele: structural (ce variabile sunt dependente unele de altele) i cantitativ (specific msuri ale acestor dependene utiliznd o scar numeric). Detectarea schimbrilor i deviaiilor se focalizeaz pe descoperirea celor mai semnificative schimbri ale datelor, utiliznd valori anterior msurate.

Cele mai populare metode de data-mining utilizeaz: o Reguli i arbori de decizie o Regresie neliniar i metode de clasificare o Metode bazate pe exemple o Modele Probabilistice de dependen o Modele de nvare relaional Exist dou metode de data mining: Data mining direct, care presupune: o O abordare top-down o S tim (cu aproximaie) ce cutm sau ce vrem s prezicem o Un model predictiv, care s permit evaluarea alternativelor o Modelul este vzut ca o cutie neagr, cci ne intereseaz numai predicia i nu cum se realizaez aceasta o Scopul construirii unui model predictiv este de a aplica cunotinele dobndite n trecut, pentru viitor. o Exemplu: S se gseasc rspunsul la ntrebarea: Ce clieni se presupune c vor cumpra un anumit tip de main? Data mining indirect, care presupune: o O abordare bottom-up o S gsim modele n coleciile de date i s lsm utilizatorii s determine dac acestea sunt sau nu importante o Vrem s tim cum lucreaz un model i cum ofer rspunsul o Este necesar interaciunea uman pentru c numai oamenii pot determina ce semnificaie (dac exist una) au modelele o Este utilizat deseori n procesul de explorare a datelor Literatura de specialitate face referire la trei soluii practice de organizare a depozitelor de date: Depozit la nivelul ntreprinderii - Enterprise Warehouse. Colecteaz toate informaiile despre subiecte care privesc ntreaga organizaie i furnizeaz un volum extins de date. Depozite la nivelul unei uniti de gestiune (filial, departament, serviciu), cunoscute sub numele de data marts. Un data mart conine un subset al volumului de date din organizaie, specific unui grup de utilizatori. Domeniul este limitat la subiecte specifice. De exemplu, un data mart pentru marketing limiteaz subiectele la clieni, articole, vnzri. Datele implementate n data mart sunt, de obicei, agregate. Un data mart poate fi considerat un subansamblu al unui depozit de date, mai uor de construit i mai puin scump. Depozite virtuale Virtual Warehouse. Un depozit virtual este un set de viziuni asupra bazelor de date operaionale. Este uor de construit dar necesit capaciti suplimentare pe serverele de baze de date. Din punct de vedere al modelelor de date specifice data warehouse, cele mai populare sunt: Reprezentarea stea (Star Schema). Este cel mai comun model de date, n care depozitul conine un tabel central voluminos (tabel de fapte) care cuprinde cea mai mare parte a datelor fr redundane i un set de tabele nsoitoare (tabele -dimensiune) pentru fiecare 61

dimensiune. Graful asociat seamn cu o stea n care tabelele -dimensiune apar radial, n jurul tabelului de fapte central, ca n figura urmtoare. Timp
Tabel-dimensiune 1

Cheie-timp Zi Zi-din-sptmn Lun Trimestru An Vnzri Tabel de fapte Cheie-timp Cheie-articol Cheie-ramur Cheie-zon Vnzri-lei Cantitate-vndut

Articol
Tabel-dimensiune 3

Cheie-articol Nume-articol Marca Tip Tip-furnizor

Zon
Tabel-dimensiune 4

Cheie-zon Strad Localitate Ramur Jude Tabel-dimensiune 2 Cod-potal Cheie-ramur ara Nume-ramur Tip-ramur n acest exemplu, vnzrile sunt considerate cu patru dimensiuni: timp, articol, ramur i zon. Schema fulg de zpad (Snowflake). Este o variant a modelului stea, unde anumite tabele sunt normalizate, astfel nct apar tabele suplimentare. Rezult o schem de o form grafic similar unui fulg de zpad. Diferena major ntre stea i fulg de zpad este c tabelele dimensiune din acest ultim model pot fi pstrate n form normalizat, ceea ce determin o redundan redus. Asemenea tabele sunt uor de ntreinut i se economisete spaiu de stocare, deoarece dimensiunile unui tabel mare pot crete foarte mult. Un exemplu este schema anterioar, unde tabelele-dimensiune 3 i 4 se modific astfel: Articol
Tabel-dimensiune 3

Furnizor
Tabel-dimensiune 3-1

Cheie-articol Nume-articol Marca Tip Cheie-furnizor Zon


Tabel-dimensiune 4

Cheie-furnizor Tip-furnizor

Ora
Tabel-dimensiune 4-1

Cheie-ora Ora Jude Regiune Constelaie de fapte aplicaiile complexe pot solicita tabele multiple de fapte, care partajeaz tabelele-dimensiune. Acest gen de schem poate fi vzut ca o colecie de stele, de unde denumirea de constelaie de fapte (fact constellation). Cnd se justific un proiect de data warehouse? Exist mai multe situaii n care un depozit de date este oportun pentru rezolvarea unor probleme: Insuficienta partajare a informaiilor (de exemplu, cnd servicii sau departamente cu aceiai clieni nu comunic ntre ele). 62

Cheie-zon Stard Cheie-ora

Grupuri diferite produc rapoarte contradictorii (datorit folosirii inconsistente a unor termeni). Procesul de creare a rapoartelor este foarte anevoios (necesit mult timp pentru a fi produse i nu rmne timp pentru analiza efectiv a datelor). Rapoartele nu sunt dinamice i nu favorizeaz stilul de interogare ad-hoc (nu se pot obine rapoarte concludente n situaii speciale). Rapoartele care necesit date istorice sunt dificil de realizat (astfel de date nu sunt stocate n sistemele operaionale, iar ncorporarea datelor vechi n rapoarte poate fi dificil din cauza nepotrivirii structurilor).

Majoritatea firmelor productoare de software pentru baze de date s -au orientat ctre implementarea unui modul specific depozitelor de date. n topul preferinelor se afl: SQL Analysis Manager produs de Microsoft Corporation i Oracle Warehouse Builder produs de Oracle. Aceste dou instrumente beneficiaz de experiena i puterea finaciar a companiilor productoare i au reuit s se impun pe pia ca soluii viabile. Industria depozitelor de date este ns n continu expansiune. Instrumentele data-mining vor continua s se maturizeze i din ce n ce mai multe organizaii vor adopta acest gen de tehnologie. Iniiativele data mining provin c el ami adesea din zona departamentelor de marketing i de vnzri cu amnuntul i se preteaz foarte bine n organizaiile care dein baze de date cu volume foarte mari. Datorit faptului c aceste instrumente dau cele mai bune rezultate cu date la un nive l ridicat de detaliere, evoluia instrumentelor data mining va coincide de fapt cu dezvoltarea depozitelor de date cu dimensiuni de ordinul TB. Proiectele de data mining vor accentua i ami mult importana calitii datelor din depozitele de date. Tehnologiile data warehouse continu s fie influenate de poularitatea soluiilor bazate pe Intranet i Internet. Ca urmare, din ce n ce mai multe instrumente de acces la date vor putea suporta facilitile oferite de web. Unele organizaii au nceput deja s foloseasc infrastructura Internetului pentru a oferi utilizatorilor posibilitatea de a utiliza depozitul de adte de la distan, ns n acest caz este trebuie avut n vedere problema securitii acestui mediu. Exemplul 1. NAWQA Water Quality Data Warehouse este un depozit unde se colecteaz date despre calitile chimice, biologice i fizice ale apei din 42 de bazine din SUA. Se msoar zilnic: concentraiile n ap, sedimente i esuturi organice pentru aproximativ 600 de constitueni chimici. De asemenea, se pstreaz date privind nivelul apelor n aceste bazine hidrografice. Exemplul 2. Departamentul SUA pentru Sntate i Servicii Umane a dezvoltat depozitul de date geospaiale HRSA (Health Resources and Services Administration). Acest depozit i aplicaiile sale asociate furnizeaz informaii despre programele HRSA, resurse despre sntate i date demografice foarte utile pentru planificare i domeniului politic. Acest depozit conine date despre granturi, burse i mprumuturi, destinate serviciilor subsumate, precum i programe demonstrative. Fiind sursa central de informaii utilizat pentru raportrile activitilor HRSA, ofer un instrument de raportare pentru generarea i utilizarea tabelelor. Un instrument de tip hart este disponibil pentru cei ce vor s plaseze date ntr-un context geografic. Datele depozitului sunt actualizate cu regularitate i se adug noi surse de informaii. n continuare este prezentat seciune de arii ale site -ului (http://datawarehouse.hrsa.gov/). What's New Data Refresh Dates Program Information Grants Information Health Systems Interactive Maps Map Tool Reporting Report Tool Metadata Data Sources 63 Data Dictionary Spatial Metadata Data Access PCSA Help Resources Technical Support Map Tool Help Report Tool Help Grant Activity Listing List of Data Sources Resources

8.4. Baze de cunotine


Bazele de cunotine sunt ntlnite n literatura de specialitate sub diferite denumiri cum ar fi: baze de date logice, baze de date infereniale, sisteme expert, sisteme deductive, prelucrare recurent, baze de date inteligente. Prin aceste sisteme se ncearc o ct mai apropiat funcionare a bazelor de date de sistemul obinuit de operare cu date. Astfel, n aceste sisteme diferitele tupluri ale relaiilor sunt interpretate ca axiome iar cererile sunt interpretate ca teoreme, rspunsul la cerere fiind interpretat ca o demonstraie. Aceast interpretare permite: uniformitate de reprezentare - bazele de date, axiomele, cererile i constrngerile de identitate sunt reprezentate toate la fel; uniformitate de operare rspunsul la cereri optimizaea cererilor, proiectarea bazelor de date, demonstrarea corectitudinii programelor sunt privite la fel; modelare semantic prin evenimente, tipuri de ierarhii i combinaii de entiti; aplicaii extinse. Bazele de cunotine permit interpretarea unor cereri formulate n limbaj natural. Printre altele, conin copii ale unor tabele din catalogul bazei de date, tabele ce conin v alorile datelor utilizate frecvent, o mulime de reguli de transformare a frazelor (unele permind substituirea automat a unor sub-expresii) i un lexicon coninnd un tabel care definete cuvinte din limba natural ce pot fi utilizate n cereri sau cuvinte generale. Baza de cunotine este iniiat prin construirea lexiconului i a altor pri componente i se completeaz n timp cu noi cunotine sau elemente, de ctre utilizatori sau automat, pe baza informaiilor obinute n exploatare. n bazele de cunotine sunt aplicate rezultatele din calculul propoziiilor i calculul predicatelor. Pe baza transformrilor logice se urmrete demonstrarea unor aseriuni innd seama de axiomele logicii matematice i de informaiile coninute n sistem. Prin axiom deductiv sau regul de inferen se nelege o regul care permite deducerea unor fapte plecnd de la o mulime de fapte date. Pentru a demonstra o aseriune de forma: f1, f2, ,fn g unde f1, f2, ,fn sunt premisele iar g este concluzia, de obicei se folosete metoda reducerii la absurd, demostrnd c formula: f1 & f2 & & fn & not g este fals. Pentru aceasta se transform formula precedent ntr -o formul echivalent normal conjunctiv, de forma: u1 & u2 & & um n care fiecare ui, i=1,,m este o disjuncie de atomi, eventual precedai de negaie. Se deriveaz n continuare ali termeni, aplicnd legea rezoluiei n forma: ((f g) & (not g h) (f h) Dac printre termenii derivai apare mulimea vid (neleas ca fals i notat []) atunci aseriunea iniial este adevrat, altfel (cnd nu mai pot fi generai ali termeni) aseriunea este considerat fals. Exemplu. Pentru a demonstra aseriunea: A (B C), NOT D OR A, B D C Unde A, B, C i D sunt formule, se pleac de la formulele: A (B C) NOT D OR A B NOT(D C) care, aduse la forma normal conjunctiv, conduc la: (1) NOT A OR NOT B OR C (2) NOT D OR A (3) B (4) D (5) NOT C Aplicnd rezoluia pentru formulele (1) i (2) n raport cu A se obine (6) NOT D OR NOT B OR C Aplicnd din nou rezoluia pentru formulele (6) i (3) n raport cu B se obine

64

(7) NOT D OR C Aplicnd din nou rezoluia pentru formulele (7) i (4) n raport cu D se obine (8) C i din (8) i (5) unde rezoluia se aplic n raport cu C se obine clauza vid, ceea ce demonstreaz c aseriunea iniial este adevrat. Cererile pentru baza de cunotine pot fi exprimate sub urmtoarea form general: A1 AND A2 AND AND Am B1 OR B2 OR OR Bn (*) unde A1, A2, , Am i B1, B2, , Bn sunt de forma r(x1, x2, ,xt) cu r predicat avnd argumentele x1, x2, ,xt. Dac toate argumentele sunt constante, predicatul reprezint o axiom de baz i este o propoziie adevrat. n termenii bazelor de date, (x 1, x2, ,xt) este unul din tuplurile existente n baza de date. n acest sens, predicatul r afirm ceva n concordan cu nelesul pe care l are relaia R. Pentru m>0 i n=1, (*) devine clauza: A1 AND A2 AND AND Am B care poate fi privit ca o axiom deductiv. Aceast axiom deductiv d o definiie parial a predicatului din partea dreapt a implicaiei, n funcie de predicatele din partea stng. Poate fi privit i ca o constrngere de integritate. Vederile unei baze de date pot fi privite ca modele teoretice. n aceste modele, domeniile de baz conin valori sau constante ce pot s descrie anumi te obiecte ale lumii reale, acestea formnd contextul (ce poate fi privit ca un univers). Relaiile de baz reprezint o mulime de predicate sau formule deschise (cu variabile) ce urmeaz s fie interpretate n acel context. Fiecare tuplu al unei relaii reprezint o particularizare a predicatului corespunztor (adic o formul nchis, fr variabile) care are valoarea adevrat pentru universul respectiv. Constrngerile (restriciile) de integritate sunt tot formule nchise, interpretabile n contextul respectiv. Prin urmare, tuplurile i constrngerile de integritate pot fi privite ca formnd mulimea axiomelor ce definesc o anumit teorie logic. Baza de date poate fi privit ca mulimea tuturor teoremelor ce se pot demonstra pornind de la axiome. Evaluarea cererilor se face analog cu demonstrarea teoremelor. Ca axiome ale unei baze de date pot fi considerate urmtoarele: 1. Axiomele de baz corespund tuplurilor relaiilor de baz, ele definind aa-numita baz de date extins (extensional database). 2. Cte o axiom de completitudine pentru fiecare relaie, prin care se afirm c nu exist alte tupluri dect cele care apar efectiv n relaia respectiv. Aceasta se mai numete presupunerea de nchidere (Closed World Assumption), prin care se consider false aseriunile pentru tuplurile ce nu apar n relaie. 3. Axioma numelui unic prin care se afirm c fiecare constant se distinge de toate celelalte constante (are nume unic). 4. Axioma nchiderii domeniului prin care se afirm c nu exist alte constante n afar de cele existente n domeniul bazei de date. 5. O mulime de axiome standard, prin care se definete predicatul =. Un sistem deductiv de baze de date este un SGBD care permite construirea vederilor cu demonstrare teoretic i care este capabil, n particular, s deduc fapte suplimentare din baza de date existent aplicnd axiome deductive sau reguli de inferen. Axiomele deductive mpreun cu constrngerile de integritate formeaz ceea ce se numete coninutul intern al bazei de date (intensional database) i aceasta, mpreun cu extinderea bazei de date (care conine informaiile) formeaz baza de date deductiv (deductive database).

65

8.5 Studiu individual i teme


Studiai prezentarea i materialele oferite de The Datawarehousing Information Center. Acest site este o colecie de eseuri ale practicienilor depozitelor de date. Prezint definiii, argumente pro i contra dezvoltrii depozitelor de date, evaluri ale unor instrumente software pentru depozite de date, inform aii despre afaceri inteligente, politici pentru decizie i ale domeniului depozitelor de date. Adesa: www.dwinfocenter.org. Mai multe despre BD Citii despre Business Analytics vs Business Intelligence, la adresa http://dbms.knowledgehills.com/Business-Analyticsvs-Business-Intelligence/a49p3 Aflai despre aplicaiile depozitelor de date din lucrarea Data Warehouse Applications by Industry, disponibil online la adresa: http://www.tdan.com/view-articles/5070 Citii despre inteligen n afaceri, Knowledge Discovery i Data Mining la adresa http://www.kmining.com/ Prezentai unul din studiile de caz descrise la http://www.nag.co.uk/Market/casestudies.asp The Numerical algorithms Group Ltd, Oxford, ofer componente i tehnologii data mining i vizualizare, pentru mai mult de 10000 de organizaii din ntreaga lume, software i servicii de dezvoltare de aplicaii (n bio-informatic, e-business, detecia fraudelor, analiz web). Teme Citii cursul disponibil la adresa http://www.feaa.uvt.ro/bi/wpcontent/uploads/2010/12/Abordari-de-tip-DataWarehousing-Implementare-in-MS-SQL-Server-2005.pdf despre depozite de date.

66

Simplicity does not precede complexity, but follows it. (Alan J. Perlis)

UNITATEA DE CURS 9 APLICAII REZOLVATE

Cuprinsul unitii de curs: 9.1 Propunerea unui modul pentru sistemul informatic al Universitii Vasile Alecsandri din Bacu 9.1.1 Analiza sistemului informatic existent 9.1.2 GeCa Soft modul de gestiune a stocurilor n cantin 9.2 Baz de date pentru contabilitatea TVA 9.3 Studiu individual i teme Obiectivul unitii de curs: Prezentarea detaliat a dou aplicaii de baze de date. Primul paragraf adreseaz n special modul n care este abordat dezvoltarea unei aplicaii de baze de date. Vor fi prezentate i comentate: analiza sistemului informatic existent, implementarea, automatizarea i extinderea unor caracteristici/ funcionaliti ale sistemului. A doua aplicaie urmeaz etapele implementrii n Microsoft Access.

9.1. Propunerea unui modul pentru sistemul informatic al Universitii Vasile Alecsandri din Bacu
9.1.1. Analiza sistemului informatic existent Sistemul informatic al Universitii Vasile Alecsandri din Bacu, avnd drept scop asigurarea calitii privind procesele educaional i de cercetare, este format din 550 de calculatoare racordate la reeaua Internet. Aceast reea a fost modernizat complet n anul 2006, partea de hardware fiind schimbat n totalitate cu aparatur de ultim generaie. De asemenea, legtura ntre corpurile de cldiri ce aparin universitii a fost realizat cu fibr optic. n ceea ce privete partea software, au fost achiziionate programe specializate ce permit utilizarea n siguran a reelei Internet. Universitatea Vasile Alecsandri din Bacu implementeaz n prezent un sistem informatic integrat de eviden a studenilor: aplicaia University Management System (UMS). UMS este un sistem informatic integrat destinat instituiilor de nvmnt superior (de stat sau privat). Aceast aplicaie este utilizat n paralel cu vechiul sistem de eviden, pentru a realiza o trecere gradat, corect a datelor n noul sistem. Obiectivul acestui sistem const n gestionarea, asimilarea i armonizarea proceselor specifice managementului universitar. Sistemul UMS asigur gestionarea procesului de cola zare, a datelor privind studenii, cadrele didactice, taxele colare, admiterea, licena, bursele, cazrile n cmine, eliberarea diplomelor. Implementarea sistemului software integrat UMS permite accesul rapid la informaii, ndeplinirea obiectivelor strategice prin gestionarea optim a resurselor umane, financiare i tehnice. UMS cuprinde urmtoarea structur de module:

67

modulele ce alctuiesc componena standard a sistemului: universitate, organizare didactic, sesiuni, studeni, taxe, nomenclatoare, rapoarte, administrare. module opionale: admitere, cazare, burse, liceniai, diplome, web. Submodulele colaboreaz pentru a oferi funcionalitatea modulului din care fac parte. Sistemul informatic dezvoltat ofer astfel posibilitatea obinerii unor date i a unor informaii pe baza crora putem compara performanele proprii cu cele ale unor specializri similare din tar i din strintate. Sistemul University Management System a fost dezvoltat prin utilizarea celor mai noi tehnologii Java i este independent de sistemul de operare. Arhitectura este de tipul clientserver pe trei straturi: client (client normal sau browser web), server de aplica ie i server de baze de date. Avantajul utilizrii acestei arhitecturi const n eliminarea dependenei sistemului UMS fa de serverul de baze de date folosit de ctre client.

Arhitectura UMS (surs: www.ums.ro) Pentru dezvoltarea fiecrui strat al sistemului au fost utilizate tehno logii Java de ultim or: J2EE, SWING, JSP, Struts, JAAS, RMI-IIOP, Servlet, SRP, EJB. Serverul de baze de date oferit implicit cu sistemul UMS este MySQL i este gratuit. ntruct sistemul are o arhitectur client-server pe trei straturi, serverul de baze date poate fi schimbat n orice moment la cererea clientului, cu doar cteva configurri ale serverului de aplicaie fcute de ctre consultanii UMS. Comunicarea n sistemul integrat University Management System se face prin intermediul componentei intermediare, adic a serverului de aplicaie. Aceasta este componenta care face posibil legatura ntre clieni i serverul de baze de date, asigurnd n acelai timp i securitatea sistemului. La serverul de aplicaie Jboss se conecteaz att clienii UMS ct i componenta de acces web, destinat studenilor. n ceea ce privete gestionarea conexiunilor, aceasta este realizat automat tot de ctre serverul de aplicaie. Nu exist o limit de conexiuni care pot exista la un moment dat, ns numrul i viteza acestora depinde de limea de band a reelei i de caracteristicile hardware ale sistemului.

68

9.1.2. GeCa Soft modul de gestiune a stocurilor n cantin GeCa Soft este un modul-aplicaie personalizat, destinat cantinei universitii, ce permite obinerea i stocarea de informaii privind existentul n stoc, intrrile i ieirile de materii prime i materiale, cantitativ i valoric, nregistrarea n contabilitate a operaiilor respective. Obiectivele generale GeCa Soft sunt urmtoarele: Balana analitic a materialelor /lun; Situaia stocurilor la sfritul lunii; Registrul jurnal la data X; Situaia ieirilor de materiale /lun; Situaia intrrilor de materiale /lun; Generare automat de statistici, evoluia consumului, tendine lunare n raport cu meniul aferent; Generare automat a meniului zilei n funcie de cantitile de materii prime existente. Modulul permite utilizarea informaiilor respective n procesul de fundamentare a deciziilor privind conducerea activitii specificate. n rezolvarea practic s-a ales varianta de gestiune a evidenei cantitative i nu valorice. Astfel, valoarea stocurilor existente i a ieirilor pentru consum sau vnzare se va calcula la preul mediu ponderat, iar valoarea intrrilor la preul de aprovizionare efectiv. Aplicaia este structurat dup procedurile i metodologiile interne ale Universitii Vasile Alecsandri din Bacu, specifice serviciului social Cantin, din cadrul Direciei Generale Administrative. Acest modul este, n aceast propunere, un proof of concept, o implementare parial a unei soluii generale i de anvergur i conine funcionaliti de baz n contabilitatea primar, n raport cu obiectivele generale, precum: - intrri, recepii marf; - generare automat de NIR-uri; - eviden produse n funcie de furnizori i invers; - creare documente de ieire, transformare a bunurilor i/sau a materiilor prime; - eviden automat n fia de magazie; - balan analitic.

Meniul principal al modulului GeCa Soft

69

La deschiderea programului putem observa funcionalitile generale, descrise mai sus. n continuare vom explica succint fiecare funcionalitate, cu implementarea actual. NIR-ul este un document pentru recepia bunurilor aprovizionate i n acelai timp un document justificativ pentru ncrcarea n gestiune. Submeniul NIR faciliteaz eliberarea de Note de Intrare Recepie a mrfurilor/materiilor prime necesare cantinei. NIR-ul se ntocmete n dou exemplare: unul pentru locul de depozitare sau unitatea cu amnuntul, pe msura efecturii recepiei. n situaia n care la recepie se constat diferene, Nota de recepie i constatare de diferene se ntocmete n trei exemplare de ctre comisia de recepie legal constituit, la nivelul fiecrei instituii. Dac bunurile materiale, produsele sosesc n trane, se ntocmete cte un formular pentru fiecare tran, care se anexeaz apoi la factura sau la avizul de nsoire a mrfii. Coninut informaional minim: a) n cazul n care bunurile sunt ncrcate ntr-o gestiune tip depozit: - denumirea unitii; - denumirea, numrul i data ntocmirii formularului; - numrul i seria facturii/avizului de nsoire a mrfii recepionate; - denumirea bunurilor recepionate; - unitatea de msur; - cantitatea conform documentelor nsoitoare;

Meniul NIR, de introducere a materiei prime n gestiune 70

cantitatea recepionat; - preul unitar de achiziie fr TVA; - numele, prenumele i semnatura celor care fac recepia. b) n cazul n care bunurile sunt ncrcate ntr-o gestiune tip magazin: - informaiile mentionate la litera a), mai puin preul unitar i valoarea; - preul de achiziie al cantitii recepionate; - adaosul comercial unitar i total; - preul de achiziie unitar plus adaosul comercial; - valoarea la pre de vnzare, inclusiv TVA. n cazul de fa, gestiunea este de tip depozit, iar valoarea total a NIR-ului, precum i valoarea produsului cu TVA sunt calculate automat. De asemenea, exist suport pentru printare i previzualizare naintea printrii. Pentru o acuratee mai bun, mai clar, salvarea n baza de date se face abia dup ce sunt verificate datele n prealabil, eliminnd astfel eventuale corecii n baza de date, care de altfel sunt i inutile, nerecomandate.

Meniu List de Alimente, pentru operaiunile de ieire din gestiune LA (list de alimente) reprezint meniul pentru funcia de preluare a produselor din gestiune. Funciile de generare NIR i LA beneficiaz de multiple controale automate de validare la introducerea datelor, astfel nct ele s fie tot timpul conforme cu r ealitatea. Fia de magazie - reprezint evidena cantitativ a materialelor, care se realizeaz cu ajutorul fielor de magazie, care se in n ordinea fielor de cont analitic din contabilitate. n fiele de magazie, nregistrrile se fac zilnic, de ctre gestionar sau persoana desemnat, pe baza documentelor de intrare i de ieire a materialelor. Dup nregistrare, documentele respective se predau la contabilitate pe baz de borderou. n contabilitate, documentele se 71

nregistreaz n fiele de cont analitic pentru valori materiale i se stabilesc stocurile i soldurile, dup ce n prealabil s-a verificat modul de emitere i completare a documentelor privind micarea materialelor. De asemenea, pe baza acelorai documente se ntocmesc situaiile centralizatoare privind intrrile i ieirile de materiale pentru nregistrare n contabilitatea sintetic.

Meniu de informare asupra operaiunilor din gestiune, pentru conformitatea fielor scriptice cu cele electronice

Meniul de gestiune a materiilor prime, scriptic, la nivelul gestiunii curente 72

Acest modul reflect operaiunile efectuate asupra materiilor prime i are doar caracter informativ. Proces verbal pentru operaiunile de transformare a diverselor produse/materii prime, cu ajutorul altor materii prime, din interiorul gestiunii. n urma operaiunii de transformare, rezult 2 suboperaiuni la nivel de gestiune: intrarea noii materii prime, cu valoarea cantitativ aferent, rezultat din ce-a de-a doua operaiune i anume cea de ieire. De asemenea, procesul verbal de transformare se genereaz automat. Raport balan permite generarea balanei stocurilor, pentru o anumit perioad.

Meniul de generare balan

Rapoarte, statistici reprezint o funcie nou, ce genereaz rapoarte bazate pe frecvenele de intrare i ieire a materiilor prime, pe diferite perioade de timp (zile, sptmni, luni). De asemenea, genereaz rapoarte despre tendinele pieei, scderi ale preurilor n funcie de anotimp, etc.

Meniul statistic: raportul frecvenelor de ieire a produselor din gestiune ntr-o lun

73

9.2. Baz de date pentru contabilitatea TVA


Aplicaia Access prezentat n acest paragraf a fost realizat n scopul automatizrii contabilitii TVA din cadrul unei societti comerciale, pe care s o numim, fictiv, SC ADES SA. Aplicaia urmrete eficientizarea activitii contabile, a intrrilor i a ieirilor de mrfuri cu documentele aferente acestei activiti. Societatea comercial ADES SRL are ca obiect principal de activitate comerul cu ridicata al mrfurilor alimentare. Se dorete, ca n baza evidenelor corespunztoare facturilor de intrri i ieiri s se realizeze rapoartele jurnal de cumprare i vnzare pentru luna decembrie 2004; din acestea se extrag situaiile referitoare la TVA-ul deductibil i TVA-ul colectat, din care s rezulte TVA-ul de plat sau TVA-ul de recuperat de la bugetul de stat. Nivelul (modelul) conceptual Nivelul conceptual este nivelul central care reflect datele structurate astfel nct acestea s poat fi preluate i prelucrate cu ajutorul unui SGBD. Schema conceptual st la baza modelului conceptual care va permite definirea proprietilor elementare ale obiectelor care intereseaz n cadrul SC ADES SA, gruparea acestora, n funcie de criterii de omogenitate stabilite, n scopul descrierii obiectelor lumii reale i a relaiilor dintre ele. Sunt definite regulile de care trebuie s se in seama n manevrarea datelor existente. Pe baza regulilor de gestiune se stabilesc cardinaliti sau conectiviti ntre realizrile atributelor din entiti i cele ale proprietilor din asocieri (corespondene). Acestea exprim maniera de participare a valorilor atributelor din entiti la fiecare apariie de valori din asocieri. Putem vorbi despre o conectivitate minim (0 sau 1) i una maxim (1 sau n). Vom utiliza modelul entitate asociere. n urma analizei problemei rezult urmtoarele entiti, care sunt modelate de tabele: t_soc, t_furn, t_fact_furn, t_fact_furn_prod, t_client, t_fact_client, t_fact_client_prod . Identificarea corespondenelor ntre aceste entiti este urmtoarea: t_furn cu t_fact_furn - un furnizor poate emite de la 1 la n facturi, rezulta o coresponden EMITE; t_fact_furn cu t_fact_furn_prod - este o relaie de la 1 la n, unei facturi i corespund una sau mai multe nregistrri din tabela t_fact_furn_prod, rezult deci o coresponden LINIE FACTURA - PRODUSE FURNIZOR; t_client cu t_fact_client, se emite factura ctre clieni, este o relaie de 1 la n, corespondena este RECEPTIE; t_fact_client cu t_fact_client_prod, relaia este de 1 la n, corespondena este LINIE FACTURA - PRODUSE CLIENT.

Stabilirea cardinalitilor Corespondena EMITE a) dinspre entitatea furnizor (1, n) - un furnizor emite cel puin o factur (cardinalitate 1) - un furnizor poate emite mai multe facturi (cardinalitate n) b) dinspre entitatea factur (1, 1) - factura este emis de cel puin i de cel mult un furnizor (cardinalitate 1, 1) Corespondena LINIE FACTURA PRODUSE FURNIZOR a) dinspre entitatea factura (1, n) - factura conine cel puin un produs (cardinalitate 1) - factura poate conine mai multe produse (cardinalitate n) b) dinspre entitatea produse (1, n) - un produs este inclus n cel puin o factur (cardinalitate 1) - un produs poate fi inclus n mai multe facturi (cardinalitate n)

74

Corespondena RECEPTIE a) dinspre entitatea client (1, n) - un client primete cel puin o factur (cardinalitate 1) - un client poate primi mai multe facturi (cardinalitate n) b) dinspre entitatea factura (1, 1) - factura este recepionat de cel puin i de cel mult un client (cardinalitate 1,1) Corespondena LINIE FACTURA - PRODUSE CLIENT a) dinspre entitatea factur (1, n) - factura conine cel puin un produs (cardinalitate 1) - factura poate conine mai multe produse (cardinalitate n) b) dinspre entitatea produse (1, n) - un produs este inclus n cel puin o factur (cardinalitate 1) - un produs poate fi inclus n mai multe facturi (cardinalitate n). Nivelul logic sau modelul relaional al datelor Modelul logic al datelor este reprezentat de urmtoarea colecie de tabele: t_soc (id-soc, denumire, CUI, judet, localit, strada, cod_postal, sector, telefon, administrator, banca, cont_bancar) t_furnizor (id-furn, cui, denumire, sediu, telefon) t_fact_furn (id-fact, id_furn, nr_fact, data, cota_tva) t_fact_furn_prod (id-fact, nr_crt, explicatie, cant, pret_fara_tva) t_client (id-client, cui, denumire, sediu, telefon) t_fact_client (id-fact, id_client, nr_fact, data, cota_tva) t_fact_client_prod (id-fact, nr_crt, explicatie, cant, pret_fara_tva)

n reprezentarea de mai sus, atributele subliniate cu linie continu caracterizeaz n mod unic realizrile de entitate (un identificator de societate este specific unei societi i numai uneia, aceeai proprietate este valabil pentru identificatorul unui furnizor, fiecare furnizor are un identificator de furnizor). Cmpurile subliniate cu linie punctat au un rol de legtur, modeleaz relaiile ntre entitile identificate n faza de analiz. Aceste cmpuri sunt cheile secundare sau externe (de exemplu, id_furn pentru tabela t_fact_furn, id_client pentru tabela t_fact_client). Nivelul intern sau modelul fizic al datelor Nivelul intern (modelul fizic) este cel ce corespunde structurii n care sunt stocate datele n interiorul calculatorului. Sunt specificate tabelele (fiierele) care le conin (nume, organizare, localizare, etc.), componentele fiecrui fiier (lungime, cmpuri), cile de acces la componentele tabelelor (indeci, relaii, legturi ntre tabele). Relaii ntre tabele Pentru eficientizarea bazei de date este necesar separarea datelor n mai multe tabele, fiecare avnd o tem bine definit. Prin aceast separare se evit redundana. Tabelele astfel rezultate se relaioneaz, adic se leag prin relaii. n figura urmtoare se poate observa fereastra de relaii a bazei de date.

75

Primul pas n stabilirea relaiilor ntre tabelele bazei de date const n alegerea tipului de relaie folosit: n aceast aplicaie, toate cele patru relaii sunt de tipul 1 - n. Urmeaz realizarea acestor relaii: se deschide fereastra Relaii i se adaug toate tabelele; apoi se trage cu ajutorul mouse-ului cmpul din prima tabel ctre cmpul corespondent din cea de -a doua tabel; la deschiderea ferestrei Editare relaii se bifeaz opiunile Impunere integritate referenial, Actualizare n cascad cmpuri corelate, tergere n cascad cmpuri corelate .

76

Formulare Formularele acestei aplicaii ofer o interfa atractiv pentru vizualizarea sau introducerea datelor din tabele. Prin faptul c urmresc introducerea sau modificarea datelor din tabele, dup anumite reguli stricte, impuse de programator, permit eliminarea erorilor provocate de utilizatori la manevrarea datelor. n cadrul acestei aplicaii formularele ndeplinesc funcii de: introducere a datelor, formularele fiind create pentru fiecare tabel, n scopul introducerii datelor n alt form dect cea tabelar, crendu-se o interfa deosebit; afiare a datelor ntr-o form dorit de utilizator, n scopul consultrii acestora; editare a datelor, datele afiate n cadrul formularelor pot fi modificate sau terse. Aplicaia conine urmtoarele formulare : 1. Formularul principal, n care sunt evideniate funciile acestei aplicaii:

2. Formularul cu datele de identificare ale societii:

77

3. Formularul cu datele despre furnizorii de produse:

4. Formularul ce conine facturile emise de furnizorii societii ADES SA, cu produsele achiziionate de la acetia:

5. Formularul cu datele de identificare ale clienilor:

78

6. Formularul ce conine facturile emise clienilor de ctre SC ADES SA, cu produsele vndute acestora:

7. Subformular ce conine facturile emise de furnizori cu produsele aferente achiziionate de SC ADES SA :

79

8. Subformular ce conine facturile emise clienilor de societate:

Interogri Interogrile sunt realizate pentru extragerea datelor i afiarea organizat a acestora n diferite modaliti necesare utilizatorilor. Interogrile realizate n cadrul acestei aplicaii sunt complexe, utilizndu-se mai multe tabele, din care datele sunt extrase prin precizarea unor criterii. Pentru realizarea interogrilor s-a ales lucrul n modul Proiectare: - n fereastra Baz de date, clic pe Interogri i apoi pe Nou; - apare caseta de dialog Interogare nou, n care se alege Vizualizare proiect; - din caseta AfiareTabel am selectat tabelele i/sau cererile din care am extras date. Fereastra Interogare de selectare are dou zone: cea superioar, n care vedem tabelele i/sau cererile selectate, mpreun cu legturile dintre ele i cea inferioar, numit grila de proiectare, n care s-a proiectat efectiv cererea. Dintre interogrile construite, vom prezenta modul de realizare pentru q_fact_client_prod, care afieaz produsele facturate clienilor i valorile TVA aferente acestora. n caseta Afiare Tabel se aleg cele dou tabele care vor participa la interogare: t_fact_client_prod i t_fact_client. n gril se completeaz, pe coloane, cmpurile pe care le dorim afiate, mai nti cele preluate din tabele, iar ultimele dou sunt cmpuri calculate cu formulele: val_fara_tva = [pret_fara_tva] * [cant] i val_tva = [cant] * [pret_fara_tva] * [cota_tva] / 100.

80

La execuia cererii, se obin urmtoarele date:

Ce-a de a doua interogare pe care o vom prezenta folosete date din 2 tabele i dou interogri anterioare, pentru a rspunde la ntrebarea: Care este valoarea fr TVA i valoarea TVA pe fiecare factur? Interogarea q_jv_19 calculeaz, pentru fiecare factur, valoarea fr TVA i valoarea TVA, dac valoarea din cmpul cota_tva este 19, iar interogarea q_jv_9 calculeaz pentru fiecare factur valoarea fr TVA i valoarea TVA, dac valoarea din cmpul cota_tva este 9. Dup includerea n fereastr a celor patru obiecte care vor participa la interogare, se trece la completarea grilei. Cmpurile preluate se aleg din tabele sau din interogri, iar singurul cmp calculat se obine prin adunarea bazei de impozitare cu valoarea TVA.

81

Rapoarte Rapoartele sau situaiile finale permit extragerea datelor din tabele, constituind prezentri ale datelor pe suport de hrtie. Raportul este un obiect al bazei de date asemntor cu interogarea - din punct de vedere al structurii. Diferena fa de interogri const n aceea c raportul nu este destinat afirii pe ecran, ci tipririi la o imprimant. Din acest motiv, raportul nu poate fi deschis i afiat pe ecran (precum tabelele, formularele i interogrile). Este posibil numai o previzualizate a modului cum va arata raportul tiprit. Rapoartele acestei aplicaii sunt urmtoarele: 1. Decontul privind taxa pe valoarea adugat, este un document contabil, o declaraie financiar, ce se ntocmete de societate n cadrul compartimentului financiar contabil pentru fiecare lun. Documentul prezentat reflect activitatea de vnzare-cumprare a societii pentru luna decembrie 2004, valoarea facturilor emise de furnizori ctre SC ADES SA, precum i valoarea facturilor emise de SC ADES SA ctre clieni, cu procentul taxei pe valoare adugat. Cotele de impozitare prevzute de lege se aplic la baza de impozitare i astfel se determin T.V.A. Aceste cote de impozitare se regsesc n aceast aplicaie i sunt: - 19% pentru operaiunile referitoare la vnzarea-cumprarea de bunuri i prestri de servicii; - 9% pentru o serie de produse de strict necesitate cum sunt: carnea de animale i psri, vndute n stare proaspt, preparate i conserve, pete i produse din pete, etc. sau diverse formulare tipizate. 82

Exemplu de calcul a T.V.A. : n data de 08.12.2004 SC Ades SA vinde ctre SC Bio Sim SRL 100 de kg. gru Dobrogea la preul unitar de 7000 lei, conform facturii nr. 2584151. 100 kg. x 7000 lei / kg = 700000 lei, care este valoarea facturii fr T.V.A 700000 x 19% = 133000 lei, care este valoarea T.V.A 700000 + 133000 = 833000 lei, care este valoarea total a facturii (inclusiv T.V.A). Cu ocazia vnzrii produselor, ntreprinderea furnizoare percepe (factureaz i ncaseaz) i TVA de 19% sau 9% asupra livrrilor. Aceasta suma reprezint ceea ce numim TVA colectat. Cum fiecare ntreprindere n calitatea ei de client, n momentul aprovizionrii a pltit la rndu-i furnizorului su TVA, aceast TVA deductibil se va scdea din TVA colectat, rezultnd TVA de plat la buget. Daca TVA colectat este mai mic dect TVA deductibil, diferena reprezint TVA de recuperat. Raportul Decont vizualizat n modul proiect are urmtoarea imagine.

n partea de antet se observ valori preluate, dar n partea de detaliere se apeleaz funcia complex DLookUp, care afieaz valoarea cmpului care este primul su argument din tabela al crei nume este al doilea su argument. Raportul aa cum ar aprea la imprimat este prezentat n imaginea care urmeaz.

83

Din decontul SC ADES SA aferent lunii decembrie 2004 rezult urmtoarele: Valoarea total a facturilor recepionate de la furnizori cu cota de 19% este de 74.256.000 lei din care: - 62.400.000 lei este valoarea fr TVA , - 11.856.000 fiind valoarea TVA de 19%. Valoarea total a facturilor emise clienilor cu cota de 19% i 9% este de 89.3 01.120 lei din care: Vnzri de produse cu cota de 19% : - 71.500.000 lei este valoarea fr TVA, - 13.585.000 fiind valoarea TVA de 19%. Vnzri de produse cu cota de 9% : 3.868.000 lei este valoarea fr TVA, 348.120 lei fiind valoarea TVA de 9%. Din valoarea total a TVA aferent vnzrilor de 13.933.12 lei minus valoarea total a TVA aferent cumprrilor de 11.856.000 lei obinem TVA-ul de plat ctre bugetul de stat de 2.077.120 lei datorit faptului c societatea a nregistrat venituri din vnzarea mrf urilor. 2. Jurnalul pentru cumprri este un document contabil n care sunt reflectate achiziiile de produse, cumprrile efectuate de SC Ades SA. Jurnalul de cumprri al societii este:

84

Acest raport este obinut prin execuia raportului rpt_jc:

3. Jurnalul pentru vnzri este un document contabil care reflect vnzrile de bunuri ctre clieni. Jurnalul de vnzri al SC Ades SA se prezint astfel:

85

9.3 Studiu individual i teme


Studiai aplicaiile pentru iPhone i iPad, descrise la adresa http://appadvice.com/appguides/show/personal-database-apps Citii despre Academia Oracle (www.academia-oracle.ro). Compania Oracle ofer elevilor i studenilor din Romnia cursuri de baze de date structurate sub forma unor tutoriale, ca n figura urmtoare:

Mai multe despre BD

Dezvoltai aplicaii Access pentru urmtoarele teme: 1. Aplicaie pentru contabilitatea financiar a unei firme. Se dorete realizarea unei aplicaii care s permit nregistrarea operaiilor contabile i obinerea automat a principalelor situaii impuse de legislaia n vigoare. La analiza a activittii firmei se va avea n vedere pentru constituirea dictionarului de atribute al bazei de date existena unui plan de conturi n care, pentru fiecare cont se menioneaz: simbolul contului, denumirea, tipul contului i soldul initial (care poate fi creditor sau debitor). Operaiile contabile presupu n nregistrarea de sume n debitul i creditul diverselor conturi. O operaie este identificat printr-un numr unic, trebuie s i se rein data nregistrrii i poate implica mai multe conturi pe partea de debit i mai multe n partea de credit. Se va ca lcula totalul operaiei fiind obligatorie egalitatea ntre suma total nregistrat pe debit i cea de pe credit n formula contabil. Operaiile contabile sunt justificate pe baza unor diverse documente contabile (chitane, facturi, ordine de plat). Toate aceste documente sunt datate i sunt numerotate cunoscndu-se tipul documentului. Un document poate sta la baza mai multor operaii contabile. Cerine minimale pe care trebuie s le urmreasc proiectul: a. Aplicatia va urmri s realizeze o interfa uor de utilizat pentru introducerea formulelor contabile, adugarea de noi documente i de noi conturi n planul de conturi. b. Se vor putea efectua cutri rapide pentru a afia soldurile i rulajele diverselor conturi. c. Se vor ntocmi fie de cont. 86

Teme

d. Se va putea lista registrul jurnal. e. Se va putea genera automat balana de verificare. 2. Evidena contractelor, clienilor i salariilor la o agenie imobiliar. O firm are ca principal obiect de activitate intermedierea vnzrilor i nchirierilor de locuine. Societatea are drept angajai mai muli ageni imobiliari crora li s-au ntocmit fie de angajare n care sunt specificacte toate informaiile necesare preluate din actele de identitate. Clienii firmei sunt persoane fizice ce doresc s vnd, s cumpere sau s nchirieze imobile sau spaii comerciale. n momentul n care un proprietar se prezint la sediul firmei i se solicit numele, adresa i telefonul i apoi este preluat de un agent al firmei care i solicit s completeze un formular de oferte de vnzare sau de nchiriere, pe care specific tipul locuinei sau locuinelor pe care dorete s le vnd sau s le nchirieze. Pentru fiecare imobil sunt preluate datele ce i intereseaz pe potenialii clieni (localitate, adres, etaj, suprafa, dac are telefon, mbuntiri, pre soliciatat, etc.) In cazul nchirierilor se specific tariful/lun solicitat i numrul de luni maxim i minim pe care proprietarul e dispus s nchirieze. Angajatul firmei care preia un client este responsabil de g sirea unui cumparator i va ncasa o parte din comision. Presupunem c firma percepe un comision de 10% din valoarea vnzrilor iar pentru nchirieri ncaseaz o sum egal cu plata pe o lun de chirie. Agenii urmeaz s contacteze diveri clieni pe care i nregistrez n baza de date (se rein telefoanele i toate datele de identificare pe care acetia sunt dispui s le furnizeze.) n momentul gsirii unui client pentru un imobil se ntocmesc contracte care sunt numerotate i datate consemnndu-se valorea negociat pentru respectiva vnzare/nchiriere, comisionul calculat al firmei i toate celelalte informaii necesare. Angajaii firmei primesc un salariu de baz specificat n fia de angajare iar din comisioanele de pe contractele pe care le-au negociat agentii mai primesc un procent de 25%. Sunt stipulate i prime pentru angajaii care depesc un anumit numr de contracte pe lun. Cerine minimale pe care trebuie s le urmreasc proiectul: a. Aplicaia va urmri s realizeze o eviden operativ a ofertelor pentr u ca potenialii cumprtori s poat efectua cutri rapide n baza de date dup anumite criterii (numr camere, locaie, pre, etc). b. Se vor ntocmi situaii cu ncasrile lunare ale firmei, valorile tranzaciilor pe ageni i pe clieni. c. Se vor realiza state de plat i eventual se vor putea imprima fluturai de salarii pentru angajai. d. Se va putea lista n orice moment contracte, formulare de oferte, etc. e. Se va urmari calculul profitului lunar al ageniei imobiliare. Realizai aplicaiile pentru care modelele conceptuale sunt prezentate n urmtoarele diagrame:

87

Realizai o aplicaie Access pentru gestiunea datelor aferente activitii Ligii Studenilor din Universitatea Vasile Alecsandri din Bacu.

88

In man-machine symbiosis, it is man who must adjust: The machines cant. (Alan J. Perlis)

10. TESTE
Testele prezentate n acest capitol ofer posibilitatea autoevalurii, coninnd subiecte similare celor propuse la examenele de baze de date sau de licen (pentru specializrile profilului Economic). Fiecare din testele 11.1 11.5 conine cte 9 itemi, pentru fiecare acordndu-se cte 1 punct (1 punct se acord din oficiu). ntre cele 5 variante de rspuns, una singur este corect. Testele 11.6 i 11.7 sunt mai complexe i conin cte 8 itemi pentru care rspunsul trebuie dezvoltat, precum i o aplicaie care necesit parcurgerea tuturor etapelor de realizare a unei baze de date, fiind potrivite abordrii n colectiv.

10.1 Testul 1
1. Indicele de calitate a informaiei ce exprim necesitatea de a se dispune de ct mai multe informaii (dac este posibil, de toate informaiile) referitoare la un sistem economic analizat se numete: a. Precizie b. Oportunitate c. Completitudine d. Concizie e. Actualitate 2. Precizai care dintre variante indic alegerea corect a cheilor candidate i cea mai bun alegere a cheii primare, pentru relaia Curs (Cod-curs, Denumire-curs, Sala, Ora, Profesor) Cheia primar este cea subliniat. a. Cod-curs, Sala b. Cod-curs, Ora c. Cod-curs, Profesor d. Cod-curs, Denumire-curs e. Cod-curs, Denumire-curs 3. Fie relaia Personal, ce conine informaii despre angajaii unei fabrici de confecii: Marca 23 67 55 31 20 11 Nume Barbu Barbu Constantinescu Manoliu Parincea Semenov Prenume Andreea Codrin Mihai Adela Cristian Maria Monica Alexandru Sectia 1 2 1 2 3 1 Profesie Inginer confecii Economist Designer Economist Matematician Inginer maini Salariu 7000000 7000000 6000000 6000000 6000000 5000000

i urmtoarea fraz SELECT: SELECT Nume, Prenume, Salariu FROM Personal WHERE Sectia=1; Aceast interogare returneaz: a. b. c. d. e. Lista coninnd numele, prenumele i salariul tuturor angajailor Lista coninnd marca i profesia angajailor seciei 1 Lista coninnd numele, prenumele i salariul angajailor seciei 1 Totalul salariilor angajailor Toate informaiile coninute n tabela de date

89

4. Obiectele Microsoft ACCESS care permit accesul la date prin intermediul browserelor Internet sunt: a. Tabelele b. Formularele c. Cererile de interogare d. Paginile Web e. Modulele 5. Formatul corespunztor datei numerice $4,107.85 este: a. General Number b. Currency c. Fixed d. Standard e. Percent 6. Operaia care s-a realizat n cadrul schemei de mai jos este: Surs Iai Surs Iai Iai Iai Iai Iai a. b. c. d. e. Destinaie Bacu Bucureti Pacani Vaslui Cluj-Napoca Proiecia Intersecia Jonciunea Diviziunea Selecia Cost 100000 300000 40000 120000 400000 Destinaie Bacu Cost 100000 Destinaie Bacu Bacu Bacu Bacu Cost 250000 200000 300000 100000

Surs Bucureti Galai Constana Iai

7. Indicai tipul relaiei reprezentate conceptual prin diagrama de mai jos: CURSURI GRUPE

a. b. c. d. e.

1-1 1-n n-1 m-n 13

8. Redundana datelor este nul dac: a. Datele apar o singur dat n sistem b. Nu se realizeaz validri ale datelor c. Ansamblul datelor reflect fidel realitatea pe care o modeleaz d. Nu se admit date de intrare n format electronic e. Datele nu se arhiveaz 9. Conceptul de partajare a datelor ntr-o baz de date se refer la: a. Salvarea din timp n timp a unor copii coerente ale bazei de date

90

b. Identificarea utilizatorilor bazei de date prin nume sau cod c. Autentificarea utilizatorilor prin parole d. nlnuirea tranzaciilor solicitate simultan pe aceeai baz de date i deservirea ulterioar a acestora e. Gestiunea unui jurnal de tranzacii.

10.2 Testul 2
1. Atributul se definete ca fiind: a. O proprietate a unei entiti sau a unei asocieri b. Corespondentul unui obiect din lumea real c. O instaniere a unei entiti d. O legtur logic ntre dou realizri de entitate e. O colecie de instane de entitate de acelai tip 2. Formularul de analiz (utilizat n faza de analiz a sistemului informaional existent) care conine: volumul i periodicitatea documentelor, timpul es timat pentru completarea acestora, tipul lor (de intrare sau de ieire), forma documentelor (tipizate sau nu) precum i necesitatea documentelor se numete: a. Gril informaional b. Lista purttorilor de informaie c. Flux informaional d. Lista procedurilor existente e. Chestionar de opinie 3. Categoria de personal care se ocup cu asigurarea securitii datelor i a cererilor de informaie precum i refacerea bazei de date n cazuri de incoeren sau deteriorri accidentale se refer la: a. Analiti de sistem b. Programatori c. Ingineri de sistem d. Administrator e. Operatori 4. Fie relaia Contracte (Cod-contract, Tip, Client, Data) care stocheaz date despre contractele ncheiate de firma de leasing X cu clienii si i interogarea: SELECT COUNT(*) AS var_1 FROM Contracte WHERE Data BETWEEN #01/01/03# AND #06/30/03#; Aceast interogare are ca rezultat: Lista clienilor firmei X Lista contractelor cu cea mai mare valoare Lista contractelor ncheiate ntre 1 ianuarie 2003 i 30 iunie 2003 Numrul clienilor care au ncheiat contracte cu firma X ntre 1 ianuarie 2003 i 30 iunie 2003 e. Valoarea total a contractelor ncheiate ntre 1 ianuarie 2003 i 30 iunie 2003 a. b. c. d. 5. Care din urmtoarele afirmaii este fals? a. Datorit utilizrii pe scar larg a calculatoarelor i a echipamentelor el ectronice cuplate la acestea, majoritatea sistemelor informaionale au o component informatic.

91

b. c. d. e.

Sistemul informaional asigur legtura ntre sistemul de conducere i sistemul de execuie. Sistemul informaional are un rol de interfa ntre unitatea economic i mediul exterior. Un sistem informaional se creeaz i se dezvolt odat cu activitatea pe care o reflect, iar delimitarea lui se realizeaz prin acte normative. Sistemul informaional este un subsistem al celui informatic

6. O regul de validare are urmtorul rol: a. Realizeaz iniializarea cmpurilor unei tabele b. Testeaz, conform unui criteriu furnizat, valorile introduse ntr-un cmp c. Stabilete obligativitatea introducerii unei valori ntr-un cmp d. Realizeaz eliminarea unui index e. Stabilete tipul unui cmp 7. S se precizeze prin ce operaie a algebrei relaionale se poate obine lista cu localitile de domiciliu ale studenilor: Localitate Iai Bacu Constana pornind de la urmtoarea relaie STUDENT: Nume_student Secie Traian Marius CIG Ionescu Maria Biologie Dobre Raluca CIG Popovici Ioana Matematic Filipescu Alexandru Biologie Iordan Mihai CIG a. b. c. d. e. Reuniune. Proiecie. Selecie. Diviziune. Intersecie.

Localitate Iai Bacu Iai Constana Constana Bacu

8. Dac un cmp are definiia NOT NULL, atunci: a. Poate rmne necompletat b. Poate primi numai valori numerice, nenule c. Este obligatorie introducerea unei valori pentru acesta d. Poate primi numai valoarea 0 e. Nu poate fi modificat 9. Relaia CORESPONDENI, cu structura i coninutul: ara Frana Italia Spania Jurnaliti Marin Gabriel, Iurea Victor Pricop Adrian, Dan Irina Manoliu Alexandru

se afl n forma normal: a. b. c. d. e. FN1 FN2 FN3 FN4 Nici una dintre acestea.

92

10.3 Testul 3
1. Operaiile de: selectare, codificare, conversie de suport, validare sunt specifice, ntr-un sistem informatic, fazei de: a. Culegere i pregtire a datelor b. Pelucrare a datelor c. Memorare a datelor d. Ahivare a datelor e. Comunicare / raportare 2. SGBD Micrososft ACCESS este de tip: a. Ierarhic b. Reea c. Relaional d. Funcional e. Soft pentru gestiunea unui depozit de date 3. Fie relaia CATALOG(nr_matricol, nume, an, nota) care conine date despre studenii seciei Informatic (numrul matricol, numele, anul de studiu i nota la un concurs de baze de date) i urmtoarea fraz SQL ACCESS: SELECT nume, nota FROM Catalog WHERE an in (2,3) AND nota BETWEEN 8 AND 10 ORDER BY 2; Aceast interogare realizeaz: a. Lista studenilor cu note mai mari dect 8, din anii 2 i 3. b. Lista studenilor din anii 2 i 3 i nota lor la concurs, ordonat descresctor dup not. c. Lista numelor i notelor studenilor din anii 2 i 3, cu note ntre 8 i 10, sortat alfabetic (cresctor) dup nume. d. Lista numelor i notelor studenilor cu note ntre 8 i 10. e. Afiarea mediei notelor obinute la concurs de studenii din anii 2 i 3 4. Funcia totalizatoare COUNT, folosit ntr-o interogare de selecie SQL ACCESS, returneaz: a. Numrul de nregistrri care respect condiiile stabilite prin clauza WHERE b. Suma tuturor valorilor dintr-un cmp precizat c. Valoarea medie a unui cmp numeric precizat d. Valoarea cea mai mic dintr-un cmp precizat e. Valoarea cea mai mare dintr-un cmp precizat 5. Care dintre urmtoarele elemente nu reprezint obiecte ale unei baze de date ACCESS: a. Tabele b. Fiiere de parametri c. Formulare d. Rapoarte e. Cereri de interogare 6. Avnd n vedere c un furnizor poate avea mai muli clieni i un client se poate aproviziona de la mai muli furnizori, relaia ntre entitile FURNIZORI i CLIENI este de tip: a. 1-1 b. 1-n c. n-1 d. m-n e. nici unul din tipurile a,b,c,d

93

7. Una sau mai multe colecii de date aflate n interdependen, mpreun cu descrierea datelor i a relaiilor dintre acestea reprezint: a. un fiier b. un server c. o structur arborescent d. o baz de date e. o arhiv electronic 8. Pentru o baz de date, care dintre urmtoarele afirmaii este fals? a. Datele sunt independente de prelucrri b. Totdeauna, redundana datelor este nul c. Redundana datelor este controlat d. Este asigurat confidenialitatea datelor e. Pot fi utilizate tehnici de prelucrare pentru mbuntirea timpului de optimizare. 9. O comand Macro reprezint: a. Un obiect care conine proceduri definite de utilizator, scrise n Visual Basic b. Un obiect care conine o definiie structurat a uneia sau mai multor aciuni pe care ACCESS le realizeaz ca rspuns la un anumit eveniment c. Un obiect care permite vizualizarea informaiilor obinute prin prelucrarea datelor din una sau mai multe tabele i/sau cereri de interogare. d. Un obiect care include un fiier HTML i alte fiiere suport, n vederea furnizrii accesului la date prin intermediul browser-elor Internet e. Un obiect n care sunt stocate date primare.

10.4 Testul 4
1. Fie asocierea CLIENT FACTURA

de tip 1-n, unde relaiile au intensia: CLIENT(CodClient, Nume, Localitate) i FACTURA(NrFactura, Data, ValoareFacturata, CodClient) iar extensia relaiei CLIENT este: 10 20 30 Microsistem InfoData Flamingo Computers Bacu Bacu Iai

Precizai care dintre urmtoarele tupluri poate fi adugat n tabela FACTURA, astfel nct pentru atributul CodClient s fie satisfcut proprietatea de integritate referenial: a. b. c. d. e. 100 200 500 101 400 12/07/04 08/08/04 03/23/05 06/25/04 01/10/05 3000 500 1000 1000 700 40 80 50 10 40

2. S se precizeze care dintre urmtoarele colecii de date se prezint n a treia form normal. a. PRODUSE1 CodProductor Gr11 Sp20 Ro30 ara Grecia Spania Romnia

Caracteristici Varietatea1; Recolta2 Varietatea1; Recolta2 Varietatea2; Recolta1

94

b. PRODUSE2 CodProductor Gr11 Sp20 Ro30 Gr12 Sp22

ara Grecia Spania Romnia Grecia Spania

ConinutZahr z1000 z0800 z0450 z1000 z0800

Productor Alexis Jose Tudor Alexis Jose

c. PRODUSE3 CodProductor Gr11 Sp20 Ro30 Gr12 Sp22

ara Grecia Spania Romnia Grecia Spania

ConinutZahr z1000 z0800 z0450 z1000 z0800

Productor Alexis Jose Tudor Alexis Jose

TIP ConinutZahr z1000 z0800 z0450 d. PRODUSE4 ara Grecia Spania

Productor Alexis Jose Tudor

CantitateaImportat 1000000; 95000 50000; 70000; 20000

e. PRODUSE5 CodProductor Gr11 Gr11 Gr11 Gr11 Sp20

NrLot N0001 N0001 N0001 N0002 N0005

Data 09-04 12-04 01-05 11-04 02-05

Cantitate 10000 10000 10000 20000 25000

3. Precizai care dintre urmtoarele funcii (ce pot fi incluse n clauza Group By, pentru gruparea tuplurilor) furnizeaz valoarea medie pentru atributul specificat? a. Count b. StDev c. Max d. Min e. Avg 4. Care urmtoarele linii ale grilei Query Design permite inhibarea afirii realizrilor unui cmp? a. Table b. Sort c. Criteria d. Show e. Or 5. Proiectarea logic a unui sistem informatic trebuie s se realizeze avndu -se n vedere:

95

a. b. c. d. e.

O soluie hardware viitoare O tehnologie existent Funcie de cunotinele actuale ale programatorilor Independent de echipamente i software n conformitate cu un sistem deja existent

6. Care dintre urmtoarele aspecte este esenial pentru elegerea unui atribut drept cheie primar a unei tabele? a. Valorile atributului s fie de tip numeric b. Valorile atributului s fie de tip caracter c. Valorile atributului s fie unice d. Tabela s conin cel puin dou nregistrri e. Tabela s fie deja indexat dup atributul respectiv 7. Care dintre atributele de mai jos este adecvat pentru a deveni cheia primar a entitii CLIENI? a. Nume b. Cod fiscal c. Telefon d. Adresa e. Banca 8. Cte niveluri de imbricare a formularelor sunt admise n Access? a. Cel mult dou b. Maximum trei c. Maximum apte d. Nu sunt admise imbricri ale formularelor e. Oricte se dorete. 9. Dat tabela

PRODUSE CodProdus A201 A205 A700 X309 B285

DenumireProdus Carton Canson Vopsea acrilic Creion B3 Pnz pictur Crbune desen

Gestiune 1 1 2 3 2

alegei varianta care conduce la obinerea relaiei MAGAZII Gestiune 1 2 3 a. b. c. d. e. SELECTION (PRODUSE; Gestiune<=3) PROJECT (PRODUSE; Gestiune) PROJECT (PRODUSE; Cod Produs, Gestiune) SELECTION (PRODUSE, DenumireProdus=Creion B3) Nici una dintre variantele de mai sus.

96

10.5 Testul 5
1. Fie relaiile STUDENI NumeStudent Ionescu Mihai Popa Angela Zaharia Florin i NOTE1 NumrMatricol 101 103 107 Relaia LISTA NumeStudent Ionescu Mihai Popa Angela Zaharia Florin NumrMatricol 101 103 107 NumrMatricol 101 103 107

NotaProgramare 9 8 10

NotaProgramare 9 8 10

este rezultatul unei operaii: a. UNION (STUDENI, NOTE1) b. MINUS (STUDENI, NOTE1) c. SELECTION (STUDENI, NotaProgramare>=7) d. PROJECT (STUDENI, NotaProgramare) e. JOIN (STUDENI, NOTE1; STUDEN.NumrMatricol=NOTE1. NumrMatricol) 2. Dat relaia CARTE(Autor, Titlu, ISBN, Pre), precizai care dintre urmtoarele fraze SELECT va furniza titlurile crilor cu preul ntre 50000 i 200000: a. SELECT DISTINCTROW [Titlu], Pre FROM CARTE WHERE Pre<=200000; b. SELECT Titlu FROM CARTE WHERE Pre>=50000; c. SELECT DISTINCT Autor FROM CARTE; d. SELECT Titlu FROM CARTE WHERE Pre IN (50000, 100000, 200000); e. SELECT Titlu FROM CARTE WHERE Pre BETWEEN 50000 AND 200000; 3. Pentru tabela PRODUSE creat cu comanda CREATE TABLE PRODUSE (CodProdus TEXT(4), DenProdus TEXT(15), Um TEXT(4), Pre NUMBER, Calitatea NUMBER CONSTRAINT CodProdus PRIMARY KEY(CodProdus)); precizai care dintre urmtoarele comenzi de inserare este corect: a. INSERT INTO PRODUSE VALUES ("129, "AGENDA, "BUC, 50000, 1); b. INSERT INTO PRODUSE VALUES (129, AGENDA, "BUC, 50000, 1); c. INSERT INTO PRODUSE VALUES ("129, "AGENDA, 50000, "BUC, 1); d. INSERT INTO PRODUSE VALUES ("129, "AGENDA, "BUC, "50000", "1"); e. INSERT INTO PRODUSE VALUES (129, "AGENDA, BUC, 50000, 1); 4. ntr-o baz de date, alegerea arhitecturii de stocare a datelor nu trebuie s fie influenat de:

97

a. b. c. d. e.

Cantitatea de date ce urmeaz a fi memorat Numrul de utilizatori ce vor accesa datele Numrul de tranzacii pe unitate de timp Limbajul de programare cunoscut de ctre managerul unitii beneficiare Resursele financiare disponibile

5. Dac ntr-o baz de date s-ar proceda la tergerea unor date care fac parte din tupluri n care se gsesc i alte date care mai sunt nc necesare, aceast manevr ar reprezenta: a. O anomalie de modificare b. O anomalie de adugare c. O anomalie de tergere d. O violare a integritii entitii e. O violare a integritii referirii 6. Un obiect Access care conine o definiie structurat a uneia sau mai multor aciuni pe care Access le realizeaz ca rspuns la un anumit eveniment este: a. O cerere de interogare b. Un raport c. Un formular d. O comand macro e. Un modul 7. O valoare care este atribuit automat unui cmp, atunci cnd utilizatorul nu introduce nici o valoare n cmp, se numete: a. Etichet (Caption) b. Regul de validare (Validation Rule) c. Text de validare (Validation Text) d. Valoare iniial (Default Value) e. Cmp memo 8. Dac U este o mulime de atribute i se manifest dependena XY, atunci regula de inferen: {XY, ZU} XZYZ se numete: a. Reflexivitatea dependenelor funcionale b. Amplificarea dependenelor funcionale c. Tranzitivitatea dependenelor funcionale d. Complementarea dependenelor multivaloare e. Tranzitivitatea dependenelor multivaloare 9. Structura care conine informaii i metode de prelucrare a acestora se numete: a. Dicionar b. Obiect c. Clas d. Ierarhie e. Mesaj.

10.6 Testul 6
1. date: Precizai ordinea corect a etapelor ce trebuie urmate n proiectarea unei baze de a. b. c. d. e. f. alegerea SGBD-ului ncrcarea datelor proiectarea schemei interne proiectarea schemei externe proiectarea schemei conceptuale analiza structural 98

g. h. i. j.

analiza cerinelor informaionale analiza temporal integrarea modelelor exploatarea i ntreinerea

2. Restriciile de integritate de comportament: a. se definesc prin egalitatea sau inegalitatea unor valori din cadrul relaiilor b. sunt proprii unei anumite baze de date relaionale c. sunt obligatoriu de definit. Precizai o restricie de comportament pentru o baz de date n care figureaz relaia: PENSIONAR(Nume, Prenume, Vrsta, Adresa) 3. Fie relaia OLIMPIADA, ce conine informaii despre elevii participani la un concurs de informatic organizat la Bacu: Legitimaie 23 67 55 31 20 11 Numele Barbu Barbu Constantinescu Manoliu Parincea Semenov Prenumele Andreea Codrin Mihai Adela Cristian Maria Monica Alexandru Clasa 9 9 10 9 10 9 Liceul Ferdinand I Bacu Gh.Vrnceanu Bacu N. Comneci Oneti H. Coand Bacu Letea Bacu G. Apostu Bacu Punctajul 68 70 61 84 50 37

S se scrie o fraz SELECT ce permite afiarea numelor i punctajului elevilor din clasa a 9-a, care au obinut cel puin 50 de puncte, n ordinea descresctoare a punctajului. Cte tupluri conine rezultatul? S se scrie numerele de legitimaie corespunztoare acestor tupluri. 4. Transformai relaia de mai jos (de tip REVISTE AI Journal PC Magazine CD Forum ) n dou relaii de tip 1-n: CITITORI Ionu tefan Maria

5. Care sunt caracteristicile SGBD Access? Ce instrumente de ajutor ofer? Ce tipuri de obiecte pot fi incluse ntr-o baz de date Access? 6. Ce este un depozit de date? Indicai cteva elemente specifice unui depozit de date. 7. Cum se realizeaz protecia unei baze dae date la nivel utilizator? 8. Cum pot fi accesate bazele de date Access pe Internet? 9. Aplicaie. Catedra de Informatic organizeaz un simpozion cu participare internaional. Pentru aceasta, responsabilul cu activitatea tiinific decide implementarea unei baze de date relaionale. Se dorete ca, utiliznd datele incluse n baza de date, s se obin urmtoarele informaii: - Lista seciunilor simpozionului (codul i denumirea) - Lista lucrrilor iinifice prezentate pe seciuni

99

Lista lucrrilor tiinifice pe Institute de nvmnt Superior, n numele crora s -au nscris lucrrile la simpozion - Lista autorilor (nume, prenume, adresa profesional i adresa personal) c are vor susine lucrri pe seciuni. Se cere s se elaboreze modelul relaional al bazei de date. -

10.7 Testul 7
1. Ce nseamn modelarea datelor i de ce este necesar? 2. n ce const optimizarea unei baze de date? 3. Ce nseamn replicarea unei baze de date? 4. Ce nseamn normalizarea datelor i care este scopul normalizrii? 5. Care sunt implicaiile accesului concurent la o baz de date? 6. Care sunt caracteristicile bazelor de date distribuite? 7. Ce este o baz de cunotine? 8. Care sunt problemele actuale ale dezvoltrii de aplicaii cu baze de date? 9. Aplicaie. Se propune realizarea informatizrii bibliotecii unei Instituii de nvmnt Superior, folosind o baz de date relational. Se fac urmtoarele precizri: - n bibliotec se afl exemplare ale unor lucrri de mare interes; fiecare exemplar are un cod de identificare unic; - Fiecare lucrare are un titlu, un numr ISBN, o editur n care apare i unul sau mai muli autori; - Exemplarele pot fi imprumutate de catre cadrele didactice, doctoranzi sau studeni; - Exemplarele se mprumut n baza unui bon de mprumut, n care se pot trece mai multe cri imprumutate; - n momentul mprumutului se precizeaz data de mprumut i data returnrii crilor. Cititorilor le sunt utile urmtoarele informaii: - Lista lucrrilor existente n bibliotec; - Lista exemplarelor existente n bibliotec pentru fiecare lucrare; - Lista cititorilor care nu au returnat la termen exemplarele mprumutate; - Lista lucrrilor existente n bibliotec pe o anumit tem. Se cere s se elaboreze modelul relaional al bazei de date.

100

Digital reading will completely take over. It's lightweight and it's fantastic for sharing. Over time it will take over. (Bill Gates)

11. COLECIE DE RESURSE DIGITALE


Biblioteca digital este o bibliotec fr delimitari spaio-temporale, care integreaz ntr-un context unitar resurse electronice, tehnologii de informare i comunicare, precum i utilizatori fr o precis delimitare spaio-temporal. Putei studia alte informaii despre biblioteci la adresa http://www.infopeople.org/resources/librarylinks.html n colecia oferit aici putei gsi numeroase informaii, pe care s le utilizai n dezvoltarea proiectelor dumneavoastr sau n instruirea i dezvoltarea personal. 1. Proiectul Informedia (Carnegie Mellon University), la adresa http://www.informedia.cs.cmu.edu/ 2. Proiectul Oversized Color Images (Columbia University Libraries/Academic Information Systems), la adresa http://www.columbia.edu/dlc/nysmb/ 3. Proiectul Bartleby Great Books Online, la adresa http://www.bartleby.com/ 4. Seciunea expoziii a Library of Congress, la adresa http://www.loc.gov/exhibits/ 5. Colecia electronic a National Library of Canada, la adresa http://epe.lac-bac.gc.ca/e-coll-e/index-e.htm 6. Internet Public Library (University of Michigan), la adresa http://www.ipl.org/ 7. Lista de biblioteci i colecii a Yale University Library, la adresa http://www.library.yale.edu/libraries/ 8. Proiectul I: Intelligent Information Interfaces (Cordis, Europa), la adresa http://cordis.europa.eu/esprit/src/iii.htm 9. Proiectul Scoping the Future of Oxford's Digital Collections, la adresa http://www.bodley.ox.ac.uk/scoping/ 10. Platforma MITOpenCourseware (Massachusetts Institute of Technology), la adresa http://ocw.mit.edu/index.htm 11. Biblioteca digital a Academiei de Studii Economice din Bucureti: http://www.biblioteca-digitala.ase.ro/biblioteca/model/index2.asp 12. Biblioteca Online a Universitii din Bucureti: http://www.unibuc.ro/ro/biblioteca_virtuala 13. Biblioteca romneasc - un proiect al Asociaiei pentru iniiativ cultural n internet: http://biblior.net/ 14. Biblioteca Universitii din Craiova: http://biblio.central.ucv.ro/bib_web/Biblioteca%20Virtuala.php 15. Biblioteca Virtual Metropolitan Bucureti: http://www.bmb-on-line.ro/scripts/master.htm 16. Cri de la A la Z: http://www.cartiaz.ro/ 17. Institutul de Memorie Cultural: http://www.cimec.ro/a_carte.htm 18. Europeana o mega structur on-line care cuprinde bibliotec virtual, muzeu i arhiv: http://www.europeana.eu/ 19. e-Enciclopedia: http://www.litera.ro/e.enciclopedia/ 20. Encyclopedia Britannica: http://www.britannica.com/

101

Alte resurse utile 1. Wikieducator http://www.wikieducator.org/Main_Page - un portal wiki pentru dezvoltarea de proiecte colaborative n domeniul educaiei. 2. Wikispaces http://www.wikispaces.com/ o alternativ de gzduire a wiki-urilor. 3. VoiceThread http://voicethread.com/ o tehnologie care genereaz filme cu posibilitatea de a comenta mpreun cu ali utilizatori pe marginea lor. 4. Simile Timeline http://simile.mit.edu/timeline/ - este o resurs gratuit care genereaz reprezentri grafice temporale pentru evenimente introduse de utilizator. Nu este un software, ci funcioneaz sub forma unui element al unei pagini web, putnd fi creat n orice pagin de web dorii. Crearea unei linii temporale ntr-o pagin web este foarte simpl, documentaia disponibil pe site -ul dezvoltatorilor oferind toate detaliile necesare. O linie temporal poate conine i informaii suplimentare despre fiecare din punctele temporale create, trimind l a site-uri externe sau la alte pagini din site-ul respectiv. 5. CiteULike http://citeulike.org/ un portal de bookmarking colaborativ dar specializat pe articole academice. 6. FeedReader http://www.feedreader.com/ agregator RSS off-line 7. SharpReader http://www.sharpreader.com/ agregator RSS off-line 8. Bloglines http://www.bloglines.com/ agregator RSS on-line, util pentru lucru colaborativ 9. Weblog http://www.weblog.ro/ agregator RSS on-line, util pentru lucru colaborativ. 10. Slideshare http://www.slideshare.com/ - un portal care gzduiete gratuit prezentri sub form de fiiere PowerPoint sau OpenOffice Impress. 11. Scribd http://www.scribd.com/ un portal unde se pot publica i discuta documente proprii. 12. ZohoWriter - http://writer.zoho.com/ un portal care permite crearea de documente, editarea lor n regim colaborativ, partajarea documentelor fr a mai fi nevoie s trimitei documente ataate mesajelor de pot electronic, s importai aproape orice tip de document. 13. Flickr http://www.flickr.com/ portal pentru imagini i fiiere video, o foarte bun resurs de imagini. 14. YouTube http://www.youtube.com/ cel mai cunoscut portal care gzduiete fiiere audio-video.

RSS (Rich Site Summary) este o tehnologie web 2.0 care permite unei persoane care navigheaz pe Internet s urmreasc modificrile unui site n mod automat, fr a mai fi nevoie s acceseze site-ul cu pricina. Pentru a citi un RSS avei nevoie de un RSS reader, care este un program rezident pe calculatorul propriu. n acest caz, programul respectiv (care mai poart i denumirea de agregator) nu poate fi consultat dect de persoana care utilizeaz acel calculator. Dou exemple de astfel de programe sunt FeedReader (www.feedreader.com) i SharpReader (www.sharpreader.com). ns exist agregatoare de RSS care funcioneaz on-line, fr a mai fi nevoie s instalai vreun program pe calculatorul personal i la care au acces un numr foarte mare de utilizatori ai Internetului. Aceste agregatoare on-line funcioneaz pe principiul colaborrii ntre utilizatorii nregistrai. Printre asemenea agregatoare on-line le putem meniona pe cele enumerate mai sus: Bloglines (www.bloglines.com) i Weblog ( www.weblog.ro). Not. Toate adresele web indicate n curs au fost verificate la data publ icrii acestuia (decembrie 2012). Cum Internetul este un mediu extrem de dinamic, este posibil ca, accesnd o adres la o dat calendaristic ndepartat de momentul precizat, coninutul iniial s nu mai fie disponibil. n acest caz, dac nu sunt afiate informaii semnificative, utilizai un motor de cutare n care folosii drept ir de cutare chiar adresa. Dac aceast strategie nu conduce la depistarea coninutului urmrit, orientai cutarea ctre informaii similare.

102

BIBLIOGRAFIE
1. 2. 3. 4. [Bas97] Bsc O. Baze de date, Editura All, Bucureti, 1997 [Bro98] Browne A., Balter A. Bazele Access 95, Editura Teora, 1998 [Dim99] Dima G., Dima M. FoxPro 2.5, 2.6 sub DOS, Editura Teora, 1999 [Ede02] Edelhauer, E. Ionic, A. Sistemele de Gestiune a Bazelor de date Access, FoxPro. Manual de utilizare, Editura Universitas, Petroani, 2002 [Fel96] Felea, V. Baze de date relaionale. Dependene, Editura Universitii Al. I. Cuza, Iai, 1996 [Flo99] Florescu V., Stanciu V., Cozgarea G., Cozgarea A. Baze de date, Editura Economic, Bucureti, 1999 [Fot05] Fotache M. - Proiectarea bazelor de date. Normalizare i postnormalizare. Implementri SQL i Oracle, Editura Polirom, Iai, 2005 [Ion04] Ionescu F. - Baze de date relationale i aplicaii, Editura Tehnic, 2004 [Ipa07] Ipate F.E., Popescu M. Dezvoltarea aplicaiilor de baze de date n Oracle 8 i Oracle Forms 6, Editura All, Bucureti, 2007

5.

6.

7.

8. 9.

10. [Lue99] Luers T. Bazele Oracle 7, Editura Teora, 1999 11. [Lun95] Lungu I., Bodea C., Bdesc G., Ioni C. Baze de date. Organizare, proiectare i implementare, Editura All, Bucureti, 1995 12. [Lun96] Lungu I., Muat N., Velicaru M. Sistemul FoxPro 2.6. Prezentare i aplicaii, Editura All, 1996 13. [Nas00] Nstase P., Mihai F., Coscescu L., Brbulescu B., Stanciu A., ova R.A., Covrig L. Baze de date. Microsoft Access 2000, Editura Teora, Bucureti, 2000 14. [Opr02] Oprea D., Airinei D., Fotache M. Sisteme informaionale pentru afaceri, Editura Polirom, 2002 15. [Tod02] Todoroi D., Micua D., Clocotici V., Linga I., apcov V., Drucioc N., Calcatin A., Morari M. Data Bases and Communication Tools. MS Access 2000 , Editura ASEM, Chiinu, 2002 16. [Tod04] Todoroi D., Micua D., Sptaru S., Andronatiev V., Todoroi Z., Donici S. Databases and Multimedia Communications (Teaching Aids), Series IEEE2000, Chiinu, 2004

103