Sunteți pe pagina 1din 131

DUMITRU TODOROI ELENA NECHITA GLORIA-CERASELA CRIAN

BAZE DE DATE PENTRU ECONOMITI

DUMITRU TODOROI ELENA NECHITA GLORIA-CERASELA CRIAN

BAZE DE DATE
PENTRU ECONOMITI

EDITURA PERFORMANTICA 2005

Referent tiin ific: Prof. univ. dr. Dan Rotar

CUPRINS
Prefa 1. Introducere n domeniul bazelor de date 1.1 Informa ii. Date. Colec ii 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 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 re ea 3. Modelul rela ional 3.1 Conceptele modelului rela ional 3.2 Sisteme de gestiune a bazelor de date rela ionale 4. Noi func ionalit i 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 informa ionale din organiza ii 5. Forme normale. Normalizare 5.1 Dependen e func ionale 5.1.1 Descompunerea 5.1.2 Asocierile i proiectarea schemelor 9 11 11 13 13 15 15 16 18 18 18 20 20 20 21 23 24 25 26 26 26 28 28 28 30 30 31 33 33 33 34

5.2 Dependen e 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 rela iilor 6. Limbaje utilizate n lucrul cu baze de date 6.1 Limbajul de definire a datelor pentru modelul rela ional 6.2 Limbajul de manipulare a datelor pentru modelul rela ional 6.2.1 Algebra Rela ional 6.2.2 SQL 6.2.3 Calculul Rela ional orientat pe tupluri 6.2.4 Calculul Rela ional orientat pe domenii 7. Restric iile de integritate ale modelului rela ional 7.1 Restric ii de integritate minimale 7.2 Alte restric ii de integritate 7.3 Aspecte privind integritatea 8. Depozite de date 8.1. Concepte de baz n data warehouse 8.2. Diferen e ntre bazele de date i depozitele de date 8.3. Arhitectura depozitelor de date 9. Baze de cunotin e 10. Aplica ii Access 10.1. Baz de date pentru activit i colare 10.2. Baz de date pentru o activitate comercial 10.3. Baz de date pentru gestiunea unui parc auto 10.4. Baz de date pentru contabilitatea TVA 11. Teste 11.1 Testul 1

34 35 35 36 36 37 38 38 39 40 41 41 42 42 46 46 47 48 48 49 50 51 51 52 53 58 61 61 79 90 104 116 116

11.2 Testul 2 11.3 Testul 3 11.4 Testul 4 11.5 Testul 5 11.6 Testul 6 11.7 Testul 7 Bibliografie

118 120 122 125 127 129 131

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)

Prefa

Aceast carte are la baz cursurile de Baze de date sus inute de autori studen ilor ce urmeaz specializri din domeniu Economic, la Academia de Studii Economice a Moldovei i la Universitatea din Bacu. Este cunoscut faptul c domeniul bazelor de date este unul de mare interes pentru absolven ii domeniului Informatic, dar la fel de important devine i pentru economiti, crora transformrile din societate le impun adaptarea la instrumentele informatice moderne. Avnd n vedere c exist o vast bibliografie pentru domeniul bazelor de date, s-a realizat o prezentare succint a conceptelor clasice i s-au dezvoltat mai mult conceptele i orientrile moderne privind bazele de date. n afar de cr ile indicate n bibliografie, fiecare capitol con ine adresele unor resurse web. n acest sens, amintim cititorilor c Internetul este un mediu extrem de dinamic i prin urmare este posibil ca diverse transformri s nu mai permit, la un moment dat, accesul la resursele indicate. La data publicrii cr ii, toate adresele au fost verificate de autori. Partea de aplica ii este destinat familiarizrii cu SGBD Access. Exemplele considerate sunt descrise n detaliu, pentru a se constitui n modele ce pot fi studiate n ideea dezvoltrii unor noi aplica ii. Testele incluse n carte vin n sprijinul pregtirii examenelor la disciplina Baze de date, propunnd spre rezolvare att elemente teoretice ct i elemente practice. Ne propunem o continuare a acestei lucrri, n care s abordm un domeniu de mare actualitate, referitor la baze de date i Internet. Sugestiile i observa iile cititorilor referitor materialul de fa se vor reflecta n noul volum. Autorii Iai, aprilie 2005

10

1. Introducere n domeniul bazelor de date 1.1 Informa ii. Date. Colec ii de date
Informa iile i cunotin ele au o mare importan , att pentru dezvoltarea personalit ii umane, ct i pentru evolu ia vie ii i societ ii. Nici societatea i nici indivizii ei nu pot progresa satisfctor n lips de informa ii. Prin intermediul informa iilor se asigur transferul cunotin elor de la o genera ie la alta, se asigur accesul la cele mai avansate realizri ale omenirii. Conceptul de informa ie reprezint o no iune 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 realit ii care ne nconjoar. Informa ia reprezint cantitatea de noutate adus de un mesaj din lumea real. Informa ia, energia i materia sunt cei mai importan i factori ai economiei moderne pe lng pmnt, capital i for a de munc. Fa de materie, informa ia 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, termen care a luat natere prin analogie cu entropia, care este, n termodinamic, o msur (exprimabil matematic) a neordonrii. Calitatea unei informa ii const n gradul de probabilitate cu care creeaz utilizatorului certitudinea unei afirma ii. Oamenii ajung la informa ii direct, prin intermediul altor oameni sau prin purttori de informa ie, precum ziare, cr i, imagini, videocasete, CD-uri, discuri sau echipamente de comunica ie (radio, televizor, fax, telefon sau calculator). Deci informa ia reprezint o component esen ial a lumii reale, ce face posibil caracterizarea diferitelor elemente ale naturii (fiin e, obiecte, stri, fenomene) i permite comunicarea. Din punct de vedere conceptual, informa ia reprezint o reflectare n planul gndirii umane a legturilor de cauzalitate, privind aspecte din realitatea ce ne nconjoar. Informa ia 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 informa ia este un mesaj, dar cu precizarea c nu orice mesaj este o informa ie. Dac mesajul nu transmite o noutate i nu are suport real, atunci nu prezint interes pentru receptor i deci nu are caracter de informa ie. Informa ia primete totdeauna atributul domeniului pe care l reprezint. De exemplu, realit ile din domeniul economic se reflect n informa ii economice. Procesul de sesizare, n elegere i nsuire a informa iilor dintr-un anumit domeniu reprezint un proces de informare. Informa iile dobndite n urma unui proces de informare ntr-un anumit domeniu formeaz cunotin ele despre acel domeniu, iar mul imea acestora reprezint baza de cunotin e. Cunotin ele reprezint deci o nsumare a tuturor informa iilor dobndite ntr-un anumit domeniu, sau care se refer la un anumit obiect. n sintez, putem aprecia cunotin ele c sunt elemente abstracte i individuale despre obiectele i domeniile lumii reale, nsuite i/sau dobndite. Aproape orice activitate are i o latur informa ional. De exemplu, n paralel cu procesul de producere de bunuri i servicii se desfoar i un proces informa ional, constnd din fluxuri de documente prin care se ine eviden a activit ii desfurate. Atunci cnd informa ia este gestionat cu ajutorul tehnicii de calcul, ea devine dat. Data este forma de reprezentare accesibil a informa iei prelucrate. Ea reprezint suportul formal al informa iei, care se concretizeaz n: cifre, litere, simboluri, coduri i alte nsemne. Exist o coresponden determinat ntre informa ie, simbol i dat astfel c, foarte adesea, n practic, termenul de informa ie este utilizat pentru a desemna date, iar expresia prelucrarea informa iilor nlocuiete expresia prelucrarea datelor. Putem considera c

11

datele prelucrate, n msura n care afecteaz n sens pozitiv comportamentul receptorilor (oameni sau maini), au calitatea de informa ii. n procesul prelucrrii i utilizrii informa iilor, acestea sunt privite din patru puncte de vedere: Din punct de vedere sintactic, atunci cnd se urmrete aspectul admisibil al acestora, n sensul c informa iile trebuie s capete anumite forme de reprezentare, ce respect riguros anumite reguli. Din punct de vedere semantic, urmrindu-se semnifica ia, n elesul informa iei (con inutul real al informa iei) ce deriv din datele prelucrate. Din punct de vedere pragmatic, urmrindu-se utilitatea pentru receptori, efectul asupra acestora (msura n care acestea satisfac cerin ele utilizatorului). Din punct de vedere sigmatic, se trateaz raportul dintre semne i obiecte, caz n care se poate vorbi despre cunotin e obiective. n locuri publice, semnalizarea i direc ionarea cu ajutorul indicatoarelor trebuie s fie att sugestiv, compact, ct i independent de limb sau cultur. Pictogramele pentru indicarea cabinelor telefonice, zonelor de fumtori, ghieelor de informa ii sau punctelor medicale reprezint cunotin e obiective. Datele reprezint aadar informa ii 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, nl imea, greutatea, codul numeric personal sunt date elementare. Domiciliul (format din ora, strad, numr) este o dat compus. Observa ie. O dat poate fi considerat elementar dintr-un punct de vedere i compus din altul, aceasta n func ie 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 func iile 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 proiectan ii 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 colec ie de date reunete date despre o anume clas de obiecte (reale sau conceptuale). Exemplu. Colec ia 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 Diferen e din reevaluare Rezerve Costul produc iei n curs de execu ie

Fiecare obiect de acest tip are o existen a 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 cr ile dintr-o bibliotec. Datele referitoare la pacien ii unui spital.

12

Datele ce descriu situa ia contabil a unei firme. Omogenitatea datelor dintr-o colec ie de date trebuie n eleas n sens larg, sub forma unei propriet i comune sau a unui obiectiv urmrit. No iunile de informa ie i dat sunt, prin urmare, diferite. Informa iile sunt n elese 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 colec ie de date este s reduc distan a ntre informa ii i date astfel, datele stocate n memoria sau pe discurile unui calculator s fie convertite n informa ii 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 corela ie. 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 nu 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 con inutului i al prelucrrii. O nregistrare fizic este format din una sau mai multe nregistrri logice, o nregistrare logic fiind un ansamblu de cmpuri care con in date referitoare la un obiect, proces sau fenomen din lumea real. Exemplu. Fiierul de date STOCURI con ine date privind stocurile de produse. Pentru fiecare produs se memoreaz: codul, denumirea, unitatea de msur, pre ul 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 secven ial 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 nregistrrii 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

13

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 existen a 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 face 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. Performan e sczute pentru procesarea datelor, ndeosebi cnd este necesar s se fac asocieri ntre date memorate n fiiere distincte. Men inerea unei redundan e ridicate n cadrul colec iilor de date memorate pe suporturi tehnice. Deci abordarea tradi ional asocia fiecrei aplica ii informatice propriile fiiere. n mod evident, anumite date se regseau n fiierele asociate mai multor aplica ii. 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 sunt (cel pu in) cele men ionate 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 pre ul unitar (pre ul 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 compartimente: aprovizionare (pentru recep ia materialului), gestiune (pstrarea ntr-o magazie), produc ie (consumul materialului respectiv n procesul de produc ie), contabilitate (pentru calcula ia costului produselor finite). Deci cel pu in 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.

14

Cu toate aceste limite, organizarea datelor n fiiere mai este utilizat i astzi, ndeosebi pentru aplica ii dezvoltate folosind limbajele clasice de programare. Progresele n domeniul tehnologiilor informa ionale au marcat o cretere considerabil a capacit ii de memorare a suporturilor tehnice de date i a vitezei de procesare a datelor. La acestea se adaug i posibilitatea stocrii i procesrii datelor netradi ionale 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 posibilit ile oferite de noile tehnologii informa ionale 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 realit ii pe care acele date le modeleaz) i a proiecta programe care s consulte i s actualizeze aceast colec ie de date. Schematic, aceast abordare se poate reprezenta astfel: P2 Baz de date

P1

Pn

Prin urmare, o baz de date se definete ca fiind un ansamblu de date elementare sau structurate, accesibile unei comunit i de utilizatori. O defini ie mai apropiat de reprezentarea fizic ar fi cea conform creia o baz de date este un ansamblu de fiiere intercorelate, care con in nucleul de date necesare unei aplica ii 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 con in) iar aplica iile ce acceseaz datele pot fi privite ca apar innd la diferi i utilizatori sau grupuri de utilizatori, care vd baza de date ntr-un mod propriu (cu alte cuvinte, acceseaz din toat colec ia 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 mul i 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 (rela iile) care se pot stabili ntre acestea. Spunem c ntre datele unei baze de date exist o interdependen logic. Considerarea interdependen elor ce se pot stabili ntre colec iile de date memorate ntr-o baz de date contribuie la asigurarea integrit ii func ionale a bazei de date. O baz de date este un model al unui sistem real. Con inutul 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.

15

Obiective fundamentale ale unei baze de date Centralizarea datelor. Permite controlul centralizat al datelor i eliminarea repetrilor (numite redundan e). O eliminare total a redundan elor nu este posibil, dar controlul asupra lor duce la o utilizare eficient a spa iului de memorie extern. Independen a ntre date i prelucrri. Baza de date, fiind un model al unei realit i, se schimb mereu (de exemplu, ntr-o banc au loc: numeroase tranzac ii 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 coeren a bazei de date. Securitatea datelor. Baza de date trebuie s fie protejat mpotriva distrugerilor logice (greeli la actualizare) i/sau fizice (deteriorri ale supor ilor fizici, pierderi de date datorate unor accidente naturale (calamit i, incendii etc.). Confiden ialitatea datelor. Se refer la caracterul secret al datelor, ce pot fi accesate doar de ctre cei autoriza i. Partajarea datelor. Permite deservirea utilizatorilor care acceseaz simultan aceleai date din baz.

1.4 Sisteme de gestiune a bazelor de date


Sistemul de programe care permite construirea unei baze de date, introducerea informa iilor n baza de date i dezvoltarea de aplica ii 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 ob ine informa ii. 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, protec ie i regsire a datelor n baza de date. Principalele func ii 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 aplica ii. Totodat, majoritatea SGBD-urilor asigur i controlul transmisiei datelor la i de la terminale. SGBD-ul pune la dispozi ia 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 informa ii are nevoie. Procedurale care oblig utilizatorul s descrie CUM ob ine informa iile. Realizarea pe plan mondial a unor re ele de calculatoare care permit conectarea mai multor baze de date a condus la apari ia bazelor de date distribuite i, implicit, la apari ia 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 colec ie de baze de date locale, amplasate geografic n puncte diferite i legate logic prin rela ii func ionale, astfel nct apar, la nivel global, ca o singur baz de date. n func ie de modul n care exploateaz baza de date, utilizatorii pot fi mpr i i n urmtoarele clase: Utilizatorii obinui i, care pot s ob in informa iile dorite fr s aib cunotin e de programare, prin comenzi cunoscute i eventual rspunznd la diferitele op iuni pe care le indic sistemul la un moment dat.

16

Programatorii de aplica ii, care realizeaz programele ce vor fi memorate i ulterior lansate n execu ie de utilizatori prin invocarea numelui asociat lor. Administratorul bazei de date, care stabilete structura ini ial a bazei de date i modul de memorare a datelor la nivel fizic, acord utilizatorilor drepturi de acces la baz sau la pr i ale ei, stabilete condi iile pentru asigurarea securit ii i integrit ii datelor, modific structura bazei atunci cnd este nevoie, asigur ntre inerea 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 con in i o colec ie de utilitare folosite n diferite aplica ii: procesoare pentru limbaje de cereri, editoare de rapoarte, sisteme de reprezentri grafice, posibilit i de lucru cu tabele, programe statistice, de copiere, generatoare de aplica ii i alte posibilit i de dezvoltare a unor aplica ii de tip CASE (computer-aided software engineering). Pentru a facilita munca administratorului de sistem, un SGBD con ine o serie de componente care permit: crearea unei versiuni ini iale a bazei, salvarea i rencrcarea (efectuarea de copii periodice i posibilitatea refacerii bazei plecnd de la aceste copii), reorganizarea (rearanjarea datelor n scopul mbunt irii unor performan e), statistici i analize asupra exploatrii bazei de date. Evolu ia tehnologiilor informa ionale face ca n prezent majoritatea SGBD-urilor: S gestioneze date tradi ionale, dar i date netradi ionale (video, foto, sunet etc.). S permit lucrul n re ea de calculatoare. Sa pun la dispozi ia utilizatorului att limbaje declarative, ct i limbaje procedurale.

Materiale introductive privind domeniul bazelor de date:


Cursuri generale de baze de date: 1. 2. 3. 4. 5. 6. 7. www.cs.washington.edu/education/courses/444/98wi www.albany.edu/acc/courses/acc682.fall98/ www.cs.umbc.edu/461/461.shtml www-db.stanford/edu/~ulmann/fcdb.html www.developer.com/db/article.php/719041 www.servicearchitecture.com/database/articles webmonkey.wired.com/webmonkey/backend/databases/tutorial/tutorial1.html Despre alegerea sistemului potrivit de baze de date

8. [Bas97] Tipuri de organizare a fiierelor i metode de cutare n fiiere Descrierea unor SGBD-uri de tipuri diferite

17

2. Niveluri de reprezentare a unei baze 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 aplica ie 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 informa ie i Fizic referitor la stocarea efectiv a informa iei (grupare, parti ionare, indexare, etc.)

2.1 Modelarea conceptual


Nivelul conceptual ne permite s modelm aplica iile n termeni independen i 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 necesit ile utilizatorilor i cu schimbrile care apar privind cererile de informa ie. 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 aplica ii, care sunt independente de evenimente. Modelul entitate-asociere reduce redundan a datelor. Aceasta abordare utilizeaz urmtoarele nota ii grafice: dreptunghiuri pentru entit i, romburi pentru asocieri (rela ii) i cercuri sau elipse pentru atribute. Pentru situa ii complexe, o diagram entitate-asociere par ial (care nu include detalii despre atribute) poate fi utilizat pentru a prezenta o sintez a entit ilor i rela iilor. Diagrama entitate-asociere furnizeaz o metod eficient pentru vizualizarea legturilor ntre entit i, pentru o aplica ie dat. Acest instrument s-a dovedit util pentru a face tranzi ia de la descrierea unei aplica ii la o schem formal a bazei de date. Modelul entitateasociere este astfel realizat fr a fi necesar aten ia 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 defini iile unor termeni de baz utiliza i 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 apari ie particular a unei entit i. De exemplu, fiecare persoan n parte poate fi o instan a unei entit i PERSOANE, fiecare main n parte poate fi o instan a unei entit i MAINI, etc. o Tip de entitate Un grup de entit i similare poart numele de clas de entit i sau tip de entitate. O clas de entit i are propriet i comune.

Atribute Atributele descriu propriet ile entit ilor i rela iilor i pot fi: o Simple (scalare) sunt cele mai mici unit i 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.

18

Domeniile sunt mul imile de defini ie ale atributelor: mul imi precizate de valori scalare de acelai tip sau mul imi de valori posibile.

Rela iile O rela ie este o legtur ntre dou clase de entitate. De exemplu, o rela ie ntre entit ile PERSOANE i MAINI poate fi cea de proprietate (automobilele sunt n proprietatea oamenilor). o Gradul unei rela ii indic numrul de entit i implicate n rela ie. o Cardinalitatea unei rela ii indic numrul de instan e din clasa de entit i E1 care poate sau trebuie asociat cu instan e din clasa de entit i E2: Rela ii 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). Rela ii 1-n (One to Many relationships) O entitate din clasa E2 este asociat cu zero sau mai multe entit i din clasa E1, dar fiecrei entit i din E1 i se asociaz cel mult o entitate n E2. De exemplu, o femeie poate avea mai mul i copii dar orice copil are o singur mam. Rela ii m-n (Many to Many relationships) Nu exist restric ii asupra numrului de entit i dintr-o clas, ce pot fi asociate cu o entitate din cealalt clas. De exemplu, rela ia ntre studen i i cursuri. Fiecare student merge la mai multe cursuri i fiecare curs are mai mul i studen i. Poate fi obligatorie, op ional sau fixat. o Ierarhiile Isa (Is a) reprezint un tip special de rela ie 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 entit i. o Cheia primar Identificator utilizat pentru a identifica n mod unic o instan particular a unei entit i. Poate fi reprezentat de unul sau mai multe atribute. 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 instan e i se asociaz o valoare. o Cheie candidat Cnd exist mai multe chei primare posibile, fiecare este o cheie candidat. o 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. o Atribute cheie mprumutate dac exist o rela ie 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. o Chei secundare Refer un tabel aflat n rela ie, prin cheia primar a acelui tabel. Restric ia de integritate referen ial 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 entit ile i/sau rela iile.

19

2.1.2 Diagrama Entitate - Asociere Simbolurile utilizate n diagrama entitate asociere includ: Dreptunghiuri Reprezint clasele (tipurile) de entitate. Cercuri reprezint atributele. Romburi reprezint rela iile. Arce Au rolul de a conecta entit ile prin rela ii i, de asemenea, de a conecta atributele la entit i. Unele modele de diagram entitate asociere utilizeaz sge i sau sge i duble pentru a indica diferitele tipuri de rela ii. Sublinierea Atributele cheie ale entit ilor sunt subliniate.

Iat un fragment dintr-o diagram entitate asociere:

Tip de entitate

Rela ie 1 Primesc N

Tip de entitate

CLIEN I

FACTURI

Cod

Nume

Adr.

Codf

Data

Val.

2.2. Modele de date


Principalele clase de modele logice utilizate n gestiunea bazelor de date sunt urmtoarele: Modelul ierarhic Modelul re ea Modelul rela ional. Un alt model care trebuie men ionat este modelul punctual. O baz de date cu un singur fiier (tabel) reprezint o structur punctual. O astfel de structur este util doar n cazuri extrem de simple, pentru cele mai multe aplica ii din domeniul economic fiind insuficient. Multe procesoare de tabele includ facilit i de baze de date, cum ar fi sortarea, numrarea sau filtrarea datelor care satisfac anumite criterii. Toate facilit ile 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 rela ional care este, n prezent, cel mai utilizat. 2.2.1 Modelul ierarhic Modelul de date ierarhic este o colec ie 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 con ine dou elemente rdcin sau un cmp master (o cheie), care identific tipul, loca ia 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 mul i fii. Opera iile din bazele de date de tip ierarhic se traduc n procese de parcurgere a arborilor. Avantaje: vitez i eficien pentru anumite tipuri de aplica ii. Modelul ierarhic este o alegere bun atunci cnd datele au o structur natural de arbore. Astfel de aplica ii pot fi, de exemplu, inventarele, sistemele de documentare bibliografice, unele sisteme de luare a

20

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 re ea. 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 aerospa ial. Ini ial a fost un sistem pur ierarhic, dar a cptat unele trsturi non-ierarhice, ca rezultat al necesit ilor practice. Exemplu. Structura arborescent prezentat n continuare se refer la o baz de date a unei agen ii de vnzri de locuin e: 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 instruc iuni 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 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 re ea Modelul de date re ea este cel mai apropiat de forma de reprezentare a bazelor de date sub forma diagramelor entitate-asociere. Deosebirea const doar n faptul c toate rela iile ce apar pot fi numai binare i de tipul 1-1 sau 1-n. Aceast restric ie permite reprezentarea grafic a unei baze de tip re ea sub forma unui orientat numit re ea. n acest graf, nodurile corespund entit ilor iar rela iile sunt reprezentate prin sge i de la tat la fiu i anume: sge i simple dac rela ia este de tip 1-1 i sge i duble dac rela ia este de tip 1-n. Iat cteva caracteristici ale modelului re ea: Creeaz 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 con in loca ia nregistrrii asociate. Complexitate pentru fiecare mul ime 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.

21

Vitez legturile directe conduc la viteze de lucru mari ale sistemelor care implementeaz modelul re ea.

Exemplu. SGBD SOCRATE este de tip re ea, 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 con ine un limbaj de descriere pentru date (identificarea datelor, a propriet ilor 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 securit ii i confiden ialit ii datelor din baz, pentru reorganizarea bazei i alte programe utilitare. Poate lucra att autonom, con innd toate elementele necesare func ionrii sale, ct i ca metod de acces, fiind deschis prin interfe e pentru a putea func iona mpreun cu alte programe. Poate opera att programabil ct i conversa ional. n al doilea caz, poate lucra n regim multiutilizator.

Materiale privind modelarea:


1. http://www.utexas.edu/its/windows/database/datamodeling/rm/rm7.html Curs de ini iere in modelarea datelor la University of Texas at Austin

Despre modelele ierarhic i re ea: 2. 3. 4. http://unixspace.com/context/databases.html www.ittia.com/dbstar/whitepapers/technicalmodel.pdf www.staff.brad.ac.uk/ckarazai/Lecture3.pdf

Despre modelul entitate-asociere: 5. 6. 7. 8. www.campus.ncl.ac.uk/databases/design/design.html http://databases.about.com/od/Specificproducts http://ycmi.med.yale.edu/nadkarni/IntroductiontoEAVSystems.htm http://wofford.org/ecs/DataAudVisualization/ermodel/material.htm

22

3. Modelul rela ional


n modelul rela ional, baza de date este reprezentat de un grup de tabele corelate. Modelul rela ional 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 uurin a vizualizrii modelului rela ional au contribuit la succesul acestuia. n plus, modelul rela ional de date nu este legat de un tip anume de structur de date (cum este, de exemplu, modelul ierarhic). Modelul rela ional se bazeaz pe teoria matematic a rela iilor. Formal, o rela ie n-ar R pe domeniile X1, X2, ,Xn este o submul ime a produsului cartezian X1xX2x xXn i se noteaz R(X1,X2, ,Xn). X1, X2, ,Xn se mai numesc constituen i. Exemplu. Fie o ntreprindere i clasa de obiecte autoturisme fabricate n ntreprindere. Fiecare produs are ca atribute: codul produsului, denumirea produsului i pre ul de referin . S considerm datele ce caracterizeaz mpreun un anume produs: 1555, OPEL VECTRA, 15000 1555 reprezint codul, OPEL VECTRA reprezint numele iar 15000, pre ul. Datele reprezint valori ale atributelor, valori ce se plaseaz ntr-un domeniu de defini ie corespunztor. Domeniul de defini ie se poate preciza implicit sau explicit. n acest caz, atributului pre de referin i se atribuie valori n mul imea numerelor ntregi. Dac pre urile autoturismelor fabricate au valori cuprinse ntre 10000 i 30000, atunci domeniul de defini ie se poate preciza ca fiind secven a numerelor ntre 10000 i 30000. Este important ca pentru fiecare atribut s se cunoasc domeniul de defini ie, deoarece la introducerea datelor n baza de date nu vor fi acceptate dect datele care reprezint valori plasate n domeniile de defini ie ale atributelor. Validarea datelor la introducere poate fi foarte complex, avnd ca obiectiv asigurarea integrit ii 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 rela ii trebuie s fie unice. Se observ c datele pot fi organizate, n mod eficient, ntr-un tabel. De altfel, 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 rela ii nseamn, n plus, respectarea regulilor de integritate stabilite la nivel de rela ie. Exemplu. Pentru rela ia SALARIAT, cu atributele: Maca, Nume, Data_angajarii. La nivelul acestei rela ii se poate stabili regula de integritate: An(Data_angajarii)>=An(Data_nasterii)+18. Regulile pentru asigurarea integrit ii datelor pot viza i asocieri ce se stabilesc ntre realizri ale rela iilor din baza de date. Exemplu. O realizare a rela iei facturi de la furnizori se asociaz cu o realizare a rela iei furnizori. Nu se pot nregistra datele dintr-o factur, dac anterior nu s-a nregistrat, n baza de date, furnizorul. Acesta este un exemplu de regul de integritate referen ial a bazei de date. Dintre cele trei modele de baze de date prezentate, modelul rela ional se impune prin: simplitate, structuri de date simple, operatori simpli (fr mari diferen e ntre sisteme), mecanismul vederilor, o baz teoretic solid, un numr mic de concepte, aplicarea principiului dualit ii accesului (prin program i interactiv), independen a fizic a datelor, independen a logic a datelor, uurin a dezvoltrii aplica iilor, a instalrii i operrii, simplificarea proiectrii bazelor de date, integrarea dic ionarelor, posibilitatea dezvoltrii bazelor de date distribuite, performan e i posibilit i de extindere. Data_nasterii,

23

3.1 Conceptele modelului rela ional


Conceptele modelului rela ional sunt prezentate n urmtoarea sintez: Rela ie - Un tabel (bidimensional). Rela ia nsi corespunde no iunii noastre obinuite de tabel. O rela ie este deci o colec ie de tuple (termenul vine de la tuplu, nota ie folosit i n matematic, adic o succesiune de t elemente), fiecare con innd valori ale unui numr fix de atribute. Rela iile mai sunt uneori referite i ca fiiere, din cauza asemnrii lor cu o secven nestructurat de articole. Fiecare tuplu al unei rela ii trebuie s fie unic (deci, nu exist duplicate). Atribut Este o coloan a tabelului. Al i termeni utiliza i n mod obinuit pentru atribut sunt proprietate i cmp. Mul imea valorilor permise pentru fiecare atribut se numete domeniul acelui atribut. Tuplu Este un rnd al tabelului. Un tuplu este o instan a unei entit i sau asocieri. Cheie Un singur atribut sau o combina ie de atribute ale cror valori identific n mod unic tuplurile rela iei. Deci, fiecare rnd are o valoare diferit pentru atributul cheie. Modelul rela ional cere ca fiecare rela ie 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 restric ii ale modelului rela ional 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 restric ie 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 rela iei. n practic, totui, se folosete deseori o metod de ordonare a tuplurilor. Exemplu de extensie a unei rela ii:

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 distinc ie ntre schema unei rela ii i extensia unei rela ii. Schema este cadrul pentru rela ie. Ea definete rela ia, adic: Numrul atributelor Numele atributelor i domeniile acestora Atributul cheie primar Extensia rela iei este con inutul rela iei, adic mul imea tuplurilor care formeaz rela ia. Extensia unei rela ii 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.

24

n termeni conceptuali, o rela ie este o structur care pstreaz valori ale atributelor unei clase particulare de entit i, sau ale unei clase particulare de asocieri. Exemplul reprezint o rela ie ce descrie membrii unei clase de entitate numit CLIEN I. Rela iile pot, de asemenea, s descrie asocieri. Observa ie. A nu se confunda, din cauza omonimiei, rela ia, care este o construc ie la nivel de date a modelului rela ional, cu asocierea (pentru care se folosete i termenul de rela ie), care este o no iune la nivel conceptual. n rela ia CLIEN I, 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 rela ie care s reprezinte asocierea dintre studen i i cursuri am avea nevoie de o cheie, care ar putea fi combina ia dintre cheia pentru studen i i cheia pentru cursuri. Urmtoarele reguli permit (n cele mai multe cazuri) conversia unei diagrame entitateasociere ntr-o schem rela ional: Este necesar cte o rela ie (tabel) pentru fiecare clas de entit i i fiecare rela ie de tip m-n; Nu sunt necesare rela ii pentru a reprezenta rela iile de tip 1-1 sau 1-n; Cnd se construiete o rela ie (tabel) pentru reprezentarea unei asocieri m-n, cheia trebuie s con in toate atributele cheie ale rela iilor implicate. Exemplul din 10.1 reprezint un model rela ional.

3.2 Sisteme de gestiune a bazelor de date rela ionale


Bazele de date la organizarea crora se utilizeaz modelul rela ional se numesc baze de date rela ionale (BDR). SGBD-urile care permit gestiune bazelor de date rela ionale se numesc sisteme de gestiune a bazelor de date rela ionale (SGBDR). Dintre sistemele de gestiune a bazelor de date rela ionale men ionm: Visual Fox, Access, Db2, Oracle, Informix. Unele dintre aceste SGBDR-uri au interfe e proprii pentru interogarea bazelor de date rela ionale, toate implementnd limbajul standard SQL. Multe SGBDR-uri fac obiectul unor extinderi, pentru a fi adaptate noilor cerin e, 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 performan ele oferite pentru gestiunea bazelor de date rela ionale dar i necesit ile didactice, n cadrul acestui curs vom prezenta aplica ii realizate n Access.

Materiale privind modelul rela ional:


1. [Fel96] Despre bazele de date rela ionale 2. http://databases.about.com/compute/databases/mbody.htm Despre baze de date n general, cu informa ii despre modelul rela ional 3. http://www.sqlmag.com/Articles/Index.cfm?ArticleID=5113 SQL. Despre alegerea cheii primare 4. http://www.acm.org/classics/nov95/ Extrase din lucrarea lui Codd privind modelul rela ional

25

4. Noi func ionalit i ale bazelor de date 4.1 Partajarea bazelor de date
n condi iile lucrului n re ea, este posibil s se stocheze baza de date pe un calculator ce are rol de server. To i 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 integrit ii datelor (ndeosebi n cazul n care doi sau mai mul i utilizatori vor s realizeze n acelai timp opera ii de actualizare a bazei de date); asigurarea confiden ialit ii datelor; prevederea unor mecanisme de protec ie mpotriva unor opera ii 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 ntre inerea bazei de date. Drepturile de acces la nivel de utilizator vizeaz opera iile 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 interfe e 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 situa ii bazele de date sunt dispersate geografic se spune c sunt distribuite (BDD). O baz de date distribuit permite ca o colec ie arbitrar de rela ii, dintr-o colec ie arbitrar de baze de date, , aflate pe o mare varietate de maini ce lucreaz sub diverse sisteme de operare i sunt legate prin diferite re ele de comunica ie, s poat fi utilizate ca i cum ar fi o singur baz de date pe o singur main. Principalele cerin e pe care trebuie s le asigure un sistem de baze distribuite sunt: autonomia local n organizarea i prelucrarea datelor, posibilitatea de lucru continuu al nodurilor, independent de schimbrile n configura iile de lucru (adugri sau eliminri de noduri), independen a localizrii i fragmentrii datelor (transparen a fizic), posibilit i de replicare (copiere) i independen a copiilor, prelucrarea distribuit a cererilor, administrarea distribuit a tranzac iilor, independen a de hardware, de sistem de operare, de re ea i de SGBD. Exemplu. Considerm o banc ce are filiale n 20 de localit i. Fiecare agen ie 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. Tranzac iile efectuate in conturi pot fi locale sau globale. S presupunem c de la filiala din Constan a a 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 Constan a, tranzac ia este local. Dac persoana X are contul deschis la filiala din Bucureti, tranzac ia este considerat global. Fiecare filial are acces la baza de date a unei alte filiale pentru realizarea unui set finit de opera ii. Lucrul n re ele 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.

26

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 Agen ia 1

LAN Agen ia 2

LAN Agen ia M

n cazul unei ntreprinderi s-ar putea opta pentru solu ia unei baze de date distribuite pe func ii, ca n figura urmtoare:
Gestiunea resurselor umane i a salariilor
Infrastructur pentru comunica ie

Gestiunea resurselor materiale

Gestiunea produc iei

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. 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 tranzac ii - a crui func ie este de a gestiona tranzac iile relative la datele site-ului; fiecare tranzac ie poate fi local (executabil integral n cadrul siteului) sau poate s fac parte dintr-o tranzac ie global (interesnd mai multe site-uri); Coordonatorul tranzac iilor al crui rol este de a coordona executarea diverselor tranzac ii (locale sau globale); el trebuie s execute un protocol da validare a tranzac iei. 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.

27

4.3 Baze de date deductive


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

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 necesit ilor crescnde de procesare multidimensional a datelor. Aplica iile care se bazeaz pe analiza multidimensional a datelor sunt cunoscute sub numele de OLAP (On Line Analytical Processing). Se face astfel distinc ie ntre: OLTP (On Line Transactional Processing) - care privilegiaz: integritatea i securitatea datelor i tratarea cererilor informa ionale simple de ctre servicii opera ionale (produc ie, 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:

Datele se regsesc la intersec ia 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 obiecte


Dei succesul SGBDR-urilor n dezvoltarea aplica iilor economice este nc destul de mare, ele prezint i anumite limite. Este vorba, n primul rnd, de faptul c pentru orice aplica ie informatic se delimiteaz net trei domenii: interfa a; datele; prelucrrile.

28

Tehnologia orientat pe obiecte reduce cele trei formalisme la unul singur: obiectul. Aplicarea tehnologiei orientate obiect n domeniul bazelor de date a determinat apari ia bazelor de date orientate pe obiecte. Primele baze de date orientate 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 cerin e fundamentale: s ndeplineasc cerin ele 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 defini iei 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. Interfa a 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

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)

29

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 mpr irea eficace a anumitor cunotin e despre obiecte pentru a ob ine 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 ce 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 propriet i 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 compara ie cu celelalte tipuri de Baze de date). Acest acces este asigurat prin intermediul unei hr i a ierarhiilor i rela iilor claselor de obiecte, pe care BDOO o stocheaz. De asemenea, permit gruparea sau parti ionarea fizic a datelor, tehnic numit clustering. BDOO asigur accesarea eficient a obiectelor necesare la un moment dat unei cereri utilizator, minimiznd traficul prin re ea. 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.

4.6 Alte tipuri de baze de date


Bazele de date textuale gestioneaz documente electronice. Principalele opera ii asigurate sunt: stocarea, cutarea, modificarea i asamblarea de documente i alte informa ii 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 entit i: server i client. Tehnologia client/server presupune dou aplica ii (urmtoarea figur): serverul, care furnizeaz diverse servicii; clientul, care este beneficiarul serviciilor oferite de server.
Cerere Rspuns

Aplica ie client

Aplica ie server

Cele mai rspndite aplica ii 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.

30

4.8 Bazele de date i sistemele informa ionale din organiza ii


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

SLIC

SISE

SIT

B D

SIM
SIAD SIR

SIIO

unde nota iile reprezint: SIT sisteme informa ionale tranzac ionale (sisteme informa ionale opera ionale); SLIC - sisteme de lucru bazate pe informa ie i cunotin e; SIIO - sisteme informa ionale inter-organiza ionale (multe dintre aceste sisteme sunt de tip tranzac ional); SISE - sisteme informa ionale suport pentru executiv SIM - sisteme informa ionale pentru management, care includ: o SIAD - sisteme informa ionale de asistare a deciziei i o SIR sistemele informa ionale de raportare. Bazele de date sunt alimentate n principal de sistemele opera ionale i sistemele inter-organiza ionale (sisteme de comer electronic, sisteme de pl i 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 informa ie i cunotin e (cum ar fi, spre exemplu, sistemele expert). Structurile func ionale 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 organiza ii i utilizatori.

BD distribuit

Post de lucru al utilizatorului

Server de Baze de date

BD externe

BD individual

BD opera ionale Depozite de date

31

Materiale privind func ionalit ile moderne ale bazelor de date:


1. www.extropia.com/tutorials/sql/toc.html Introducere n domeniul bazelor de date, pentru dezvoltatorii de web

2. http://www.service-architecture.com/object-oriented-databases/ Articole despre bazele de date orientate obiect i produse pentru acestea Despre baze de date multimedia 3. http://sunsite.berkeley.edu/Imaging/Databases/ 4. [Tod04]

32

5. Forme normale. Normalizare 5.1 Dependen e func ionale


Atributul Y este dependent func ional 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 dependen e func ionale. 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 func ional. De exemplu, ntre numele unui student i numrul su matricol: un numr matricol se asociaz exact unui student; dar mai mul i studen i pot avea acelai nume, astfel c un nume poate avea mai multe numere matricole asociate. Asocierile m-n nu prezint dependen e func ionale. De exemplu, ntre studen i i cursuri exist o coresponden de acest tip: fiecare student poate urma mai multe cursuri i fiecare curs poate avea mai mul i studen i, fr a se observa vreo corela ie ntre valori, n sensul defini iei dependen ei func ionale.

Utilizatorul care proiecteaz o aplica ie determin dependen ele func ionale examinnd mediul real. Deseori dependen ele nglobeaz anumite restric ii referitoare la aplica ia respectiv. Este o problem de conven ie, de exemplu, ca un student s poat urma mai multe cursuri, dar nu dintre cele care au loc n acelai 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.

5.1.1 Descompunerea Termenul descompunere se refer la faptul c informa ia inclus ntr-o rela ie poate fi splitat n dou sau mai multe rela ii separate, fiecare dintre acestea avnd mai pu ine atribute dect rela ia original. Cu alte cuvinte, atributele sunt plasate n tabele diferite. Tuplele din noile rela ii vor fi determinate de atributele incluse. Scopurile descompunerii unei rela ii sunt: S reduc redundan a datelor. S pstreze capacitatea de a recrea rela ia original, fr a pierde tupluri sau a aduga noi tupluri. Procesul recrerii tabelului original se numete uniune sau jonc iune (join). A se vedea 6.2.1. Exemplu. n exemplul de mai jos sunt prezentate tabelele ini iale, precum i rezultatul opera iei join pe atributul Profesie. Persoane Nume Profesie Andrei inginer Carmen profesor Silvia inginer Traian pilot Calit i Profesie inginer profesor pilot Rezultatul opera iei 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 informa ie, cci n caz contrar, informa ia trebuie restaurat.

33

5.1.2 Asocierile i proiectarea schemelor Elegan a matematic a modelului rela ional suport o teorie a proiectrii schemelor. Teoria indic, ntr-o anumit msur, ce structuri au probleme poten iale 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 apar innd 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 la ipoteza c un student nu poate urma dect o specializare, atunci: un student urmeaz o specializare, dar o specializare are mai mul i studen i. Aceasta este o rela ie n-1 ntre studen i i specializri (sau 1-n ntre specializri i studen i). 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 rela ie este cea ntre studen i i cursuri. Fiecare student urmeaz mai multe cursuri, iar fiecare curs are mai mul i studen i. Nu exist limite n ceea ce privete numrul partenerilor de asociere. Vom nota sintetic: Numr matricol (n-m) Cursuri

5.2 Dependen e multivaloare


Fie R o schem rela ional, X i Y submul imi 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.

34

Exemplu. Fie rela ia 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 dependen e func ionale: 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 dependen ele multivaloare CURS ORA, LOCATIE care semnific faptul c fiecrui curs i se asociaz o mul ime de perechi de ore i sli care nu depind n nici un fel de celelalte informa ii. n schimb nu au loc, n general, dependen ele multivaloare CURS ORA sau CURS LOCATIE.

5.3 Forme normale ale bazelor de date


O form normal se refer la o clas de scheme rela ionale 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 rela iile s se afle n ct mai multe forme normale posibil. 5.3.1. Date ne-normalizate Urmtorul tabel con ine date ne-normalizate. Coloanele 2, 3 i 4 con in liste de valori, iar coloana 5 con ine un atribut compus. List
Legitima ie Cod Calificri

List
Categorie Calificri

List
Profil

Valori compuse
Nume Vrst Birou nr. Ora Superior

21 35 50 77

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 35 28

1 2 2 1

Iai Bucureti Bucureti Iai

Ion Damian Damian Ion

35

5.3.2 Prima form normal (FN1) O rela ie se prezint n FN1 dac valorile fiecrui cmp sunt ne-decompozabile (atomice) i fiecare tuplu este unic. Atributele care se pot parti iona 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 tabloul de mai sus), atunci rela ia nu se afl n prima form normal. La fel, dac un cmp este comun, 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 aplica ie. 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 rela iei. Este dificil s se refere un element anume din grupul repetitiv, cci ar trebui specificat o informa ie cu privire la pozi ia sa n grup. Mai mult, diferite pr i ale atributului se pot comporta foarte diferit din punct de vedere al dependen elor. Regula FN1 surprinde cerin a natural ca fiecare atribut s aib propriul su nume. Urmtorul tabel prezint datele tabelului anterior, structurate n FN1. n toate rela iile ce vor fi prezentate, cheia primar este subliniat.

Legiti ma ie

Cod Califi cri

Categorie Calificri

Pro fil

Nume

Prenu me

Vr st

Bi rou nr.

Ora

Superior

21 35 35 35 50 77 77

113 113 170 200 170 150 200

Sisteme Sisteme Taxe Audit Taxe Consultan a Audit

3 5 7 4 3 5 8

Mare Ionescu Ionescu Ionescu Mircea Traian Traian

Ana Dan Dan Dan Clin Raluca Raluca

29 33 33 33 35 28 28

1 2 2 2 2 1 1

Iai Bucureti Bucureti Bucureti Bucureti Iai Iai

Ion Damian Damian Damian Damian Ion Ion

Informa iile aflate doar n FN1 prezint un nalt grad de redundan . Pentru a reduce redundan a vom converti datele la a doua form normal. Formele normale mai mari dect FN1 au fost motivate de descoperirea anomaliilor, deci a opera iilor pe rela ii din care rezult inconsisten e sau pierderi nedorite ale datelor. nlturarea anomaliilor necesit trecerea progresiv prin diferite nivele ale formelor normale. Aceast transformare urmrete un ideal: fiecare informa ie care presupune asocieri ntre date s apar o singur dat n baz i s nu depind de prezen a altor asocieri. 5.3.3 A doua form normal (FN2) O rela ie 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 rela ionat doar cu o parte a cheii). Tehnica de descompunere pentru ob inerea FN2 este foarte simpl: presupune construirea unei rela ii separate care sa nglobeze dependen ele par iale i s nlture atributele dependente din rela ia original. Pentru exemplul considerat, n urma eliminrii dependen elor par iale s-au ob inut urmtoarele trei rela ii. Rela ia CADRE:
Legiti ma ie 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

36

Se observ c numele i prenumele, vrsta i informa iile referitoare la grupul din care persona face parte (numrul biroului, oraul, eful direct) sunt corelate direct cu numrul de legitima ie (am putea spune c depind de numrul de legitima ie) i nu depind de calificare. Rela ia CALIFICRI:
Cod Calificri Categorie Calificri

113 170 200 150

Sisteme Taxe Audit Consultan a

n acest caz, categoria calificrii este determinat de codul calificrii i nu depinde de numerele de legitima ie ale cadrelor. Rela ia COMPETEN E:
Legiti matie Cod Calificri Competen e

21 35 35 35 50 77 77

113 113 170 200 170 150 170

3 5 7 4 3 5 8

n acest caz, competen a este determinat de combina ia celor dou chei (legitima ie i cod calificare). 5.3.4 A treia form normal (FN3) O rela ie este n FN3 dac este n FN2 i nu exist nici un fel de dependen e tranzitive (adic, nici unul din atributele non-cheie nu este dependent de alt atribut, care la rndul su este dependent de cheia rela iei). Aceasta nseamn c nu exist nici o pereche (sau o pereche de mul imi 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 rela ii ce reprezint entit i i rela ii ce reprezint asocieri ntre entit i. 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 rela ie separat. Aceast descompunere prezint dou caracteristici importante: Fiecare dependen este concretizat printr-o rela ie (deci descompunerea pstreaz dependen ele). Dac o extensie a rela iei 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 dependen elor i cu opera ii join fr pierderi de date. Pentru exemplul considerat, datele n FN3 se prezint dup cum urmeaz. Rela ia CADRE:
Legiti ma ie 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

37

Rela ia BIROURI:
Bi rou nr. Ora Superior

1 2

Iai Bucureti

Ion Damian

Rela ia CALIFICRI:
Cod Califi cri Categorie Calificri

113 170 200 150

Sisteme Taxe Audit Consultan a

Rela ia COMPETEN E:
Legiti matie Cod Calificri Competen e

21 35 35 35 50 77 77

113 113 170 200 170 150 170

3 5 7 4 3 5 8 5.3.5 Forma normal Boyce-Codd (FNBC)

Spunem c o rela ie R cu dependen ele F se afl n forma normal Boyce-Codd (FNBC) dac, oricare ar fi dependen a XA cu A atribut necon inut n X, exist o cheie a lui R con inut n X. Orice rela ie n forma normal Boyce-Codd este n FN3, dar reciproca nu este adevrat. Exemplu. Rela ia R cu schema R(A, B, C), cu cheile AC i BC i cu dependen ele func ionale F={ABC, CA}. R este n a treia form normal, dar nu este n forma normal Boyce-Codd deoarece cheile acestei rela ii sunt AC i BC, iar pentru dependen a CA partea stng nu con ine nici una din cele dou chei. Pentru problema de a determina dac o rela ie este n FNBC nu exist (n general) algoritmi eficien i de rezolvare. 5.3.6 A patra form normal (FN4) Fie R o schem rela ional i D o mul ime de dependen e func ionale 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 rela ie R este n FN4 dac este n FNBC i orice dependen multivaloare este, de fapt, o dependen func ional. Dac D con ine numai dependen e func ionale i R este n FN4, atunci R este n FNBC. Exemplu. Fie rela ia ORAR prezentat n 5.2. Singura cheie a rela iei este format din atributele STUDENT i ORA. Dependen a CURS ORA, LOCATIE nu respect condi ia din FN4 deoarece CURS nu con ine o cheie. Vom descompune rela ia n:

38

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 dependen a CURS PROFESOR care rezult din CURS PROFESOR i CURS nu con ine o cheie. Descompunem ORAR1 n: PROFESORI CURS Algebr Programare Englez i 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 PROFESOR Ionescu T. Dinu A. Bonta E.

care sunt ambele n FN4. Deci, descompunerea rela iei 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 rela ie R satisface dependen a de uniune (join dependency) i se noteaz cu *(X,Y,,Z) dac i numai dac R este egal cu uniunea proiec iilor lui R pe X,Y,,Z, acestea fiind submul imi ale lui R. O rela ie R este n FN5 (numit i forma normal proiec ie-uniune) dac i numai dac orice dependen de uniune a lui R este o consecin a unei chei candidat a lui R. Orice rela ie care este n FN5 este i n FN4, deoarece fiecare dependen multivaloare poate fi privit ca un caz particular de dependen de uniune. Orice rela ie poate fi descompus fr pierderi la uniune ntr-o mul ime de rela ii care sunt n FN5. Pentru a preciza dac o rela ie este n FN5, este suficient s cunoatem cheile candidate i toate dependen ele de uniune din R.

39

5.3.8. Procesul normalizrii rela iilor Procesul de normalizare a rela iilor se poate descrie n felul urmtor: 1. Se proiecteaz rela ia ini ial, aflat n FN1, pe alte rela ii, pentru a elimina dependen ele func ionale care nu sunt complete. Se ob ine o mul ime de rela ii n FN2. 2. Se proiecteaz rela iile ob inute n pasul 1 pe alte rela ii, pentru a elimina dependen ele func ionale tranzitive. Se ob ine o mul ime de rela ii n FN3. 3. Se proiecteaz rela iile ob inute n pasul 2 pe alte rela ii, pentru a elimina dependen ele n care partea din stnga nu este o supracheie. Se ob ine o mul ime de rela ii n FNBC. 4. Se proiecteaz rela iile ob inute n pasul 3 pe alte rela ii, pentru a elimina toate dependen ele multivaloare care nu sunt i dependen e func ionale. Se ob ine o mul ime de rela ii n FN4. 5. Se proiecteaz rela iile ob inute n pasul 4 pe alte rela ii, pentru a elimina orice dependen de uniune care nu este implicat de o cheie. Se ob ine o mul ime de rela ii n FN5. De obicei, forma normal FN3 este suficient, iar alteori chiar FN2 este suficient.

Materiale privind normalizarea:


1. [Fel96] Dependen e ntre date 2. [Bas97] Forme normale i normalizare 3. http://databases.about.com/od/ specificproducts/a/normalization.htm Despre normalizare 4. http://en.wikipedia.org/wiki/Database_normalization Defini ia normalizrii n enciclopedia wikipedia 5. http://www.datamodel.org/NormalizationRules.html 5 reguli pentru normalizarea datelor 6. http://www.fmsinc.com/tpapers/datanorm/ Fundamente ale normalizrii datelor

40

6. Limbaje utilizate n lucrul cu baze de date 6.1 Limbajul de definire a datelor pentru modelul rela ional
Schema unei baze de date rela ionale este declarat utiliznd un limbaj de definire a datelor (LDD). Un LDD rela ional este simplu. Fiecare rela ie 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 rela ionale, este aceea prin care fiecrei rela ii 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 rela ii n ACCESS, precum i adugarea rela iei la baz.

41

6.2 Limbajul de manipulare a datelor pentru modelul rela ional


Se cunosc foarte multe abordri n ceea ce privete limbajele de manipulare a datelor (LMD) organizate rela ional. Cele mai multe dintre acestea sunt interactive, proiectate pentru folosirea conversa ional 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 func ii se regsesc ntr-o form sau alta n orice limbaj de manipulare a datelor. Complexitatea cea mai mare a opera iilor unui limbaj de manipulare a datelor se refer la ultima categorie de prelucrri: consultarea datelor. Inserarea, tergerea i actualizarea sunt, de obicei, opera ii clare i sunt realizate de un utilizator experimentat (sau de un program de aplica ie), cunoscndu-se exact ce trebuie modificat i unde. Opera iile 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 cerin ele 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 rela ional: Algebra rela ional. 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. Diferen a const n facilitatea scrierii cererii respective. 6.2.1 Algebra Rela ional Algebra Rela ional furnizeaz instrumente pentru exprimarea procedural a cererilor de date. Const dintr-o colec ie de opera ii pe rela ii, fiecare opera ie avnd drept operanzi una sau mai multe rela ii i producnd ca rezultat o alt rela ie. E.F. Codd a introdus Algebra Rela ional Standard, constituit din: 5 opera ii de baz: o Reuniunea o Diferen a o Produsul cartezian o Proiec ia o Selec ia 3 opera ii derivate: o Jonc iunea o Intersec ia o Diviziunea. Ulterior, la Algebra Rela ional Standard au fost adugate i alte opera ii, aa-numitele opera ii adi ionale sau extensii ale Algebrei Rela ionale Standard, cum ar fi: o Complementara o Splitarea o nchiderea tranzitiv. n cele ce urmeaz presupunem c rela ia R are gradul r iar S are gradul s. Reuniunea. Pentru dou rela ii R i S se poate nota: RUS, UNION(R,S), ADD(R,S). Reuniunea rela iilor R i S este mul imea tuplurilor care se gsesc n cel pu in una din rela iile R sau S. Aceast opera ie 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.

42

Diferen a. Pentru dou rela ii R i S se poate nota: R-S, MINUS(R,S), REMOVE(R,S). Diferen a rela iilor R i S este mul imea tuplurilor din R care nu sunt n S. Este necesar s fie ndeplinite aceleai condi ii ca pentru reuniune. Produsul cartezian. Pentru dou rela ii R i S se poate nota: RS, PRODUCT(R,S), TIMES(R,S). Produsul cartezian al rela iilor R i S este mul imea 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 rela ii). Proiec ia. Fie rela ia R de grad r. Proiec ia rela iei R dup atributele c1, c2,, ck (k<=r) se noteaz c1, c2,, ck(R), PROJECT(R; c1, c2,, ck) i este mul imea tuplurilor de aritate k n care se pstreaz doar valorile corespunztoare atributelor men ionate explicit n proiec ie. Dac rela ia R are asociate nume pentru atribute, acestea se pot pstra n rela ia rezultat. Se observ c aceast opera ie corespunde unor tieturi verticale n R. Selec ia. Fie F o formul logic format din operanzi care sunt constante sau nume de componente n tupluri i operatori aritmetici i/sau logici. Selec ia rela iei R n raport cu formula F se noteaz F(R), SELECT(R; F) i reprezint mul imea tuplurilor din R pentru care formula F devine adevrat. Rela ia rezultat are pentru atribute aceleai nume ca i rela ia R. Toate constantele care apar n F sunt incluse ntre apostrofuri.

Opera iile derivate se pot exprima n func ie de opera iile de baz. Utilizarea acestora permite o exprimare mai simpl a cererilor i, dac sunt bine implementate, ob inerea unui rspuns mai rapid. Jonc iunea. Este numit i uniune sau join. O -uniune a rela iilor R i S dup coloanele i i j, unde este un operator de compara ie este notat UNION(R,S; ij), JOIN(R,S; ij) sau R Xij S este constituit din mul imea tuplurilor produsului cartezian dintre R i S, pentru care a i-a component a lui R se afl n rela ia 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. Jonc iunea este o opera ie derivat deoarece se poate exprima cu ajutorul opera iilor de baz prin formula: R Xij S= i(r+j) (RS). Dac este operatorul =, opera ia se numete echiuniune sau echijoin. Un caz particular de jonc iune este jonc iunea natural. Uniunea natural a rela iilor R i S, notat R X S, se aplic dac cele dou rela ii au nume asociate atributelor i, n acest caz, se selecteaz din produsul cartezian al rela iilor R i S acele tupluri ce con in valori comune pentru cmpurile cu aceleai nume din cele dou rela ii i apoi se elimin valorile din cmpurile lui S comune cu cele din R. Intersec ia. Intersec ia rela iilor R i S, notat RS, INTERSECT(R,S), AND(R,S), este constituit din mul imea tuplurilor care se gsesc n ambele rela ii. Se aplic n condi iile specificate la reuniune. Intersec ia se poate exprima prin opera iile de baz cu formula: RS=R-(R-S). Diviziunea. Fie rela iile R de aritate r i S de aritate s, cu r >s i S. Diviziunea sau ctul lui R prin S, notat RS, este mul imea tuplurilor a de aritate r-s astfel nct, pentru orice tuplu b al lui S, tuplul ab este n R. Dac atributele celor dou rela ii au nume, atunci lista atributelor lui S trebuie s fie o submul ime a listei atributelor lui R iar rezultatul are ca list de atribute diferen a celor dou liste. Ctul se poate exprima prin opera iile de baz cu formula: RS= 1, 2,, r-s(R)- 1, 2,, r-s(1, 2,, r-s(R)S)-R).

Exemplul 1. Fie rela iile 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

43

n acest caz, rezultatele aplicrii operatorilor: reuniune, diferen , produs cartezian, proiec ie, selec ie i intersec ie asupra rela iilor R i S (cu precizrile indicate pentru proiec ie i selec ie) sunt: RUS a d c b RS a a d d c c R-S a c b b c d

b a b g

c f d a

A,C(R),
b b a a b b b b c c f f d d c 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

Exemplul 2. Fie rela iile 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 rela iile R i S, cu schemele i extensiile de mai jos: R A 1 4 7 B 2 5 8 C 3 6 9 S D 3 6 E 1 2

n acest caz, jonc iunea 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

44

Exemplul 4. Fie rela iile 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, jonc iunea 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: Rela ia ANGAJATI Nume cmp Marca Nume Prenume Initiala_tatalui Data_angajarii Rela ia CHITANTE Nume cmp Numar_chitanta Data Total Avans Numar_cont Credit_card Tip_card Marca Tip Numr Text 20 Text 20 Text 1 Dat Tip Numr Dat Numr Numr Text 9 Numr Text 2 Numr Cheie Da

Cheie Da

S se scrie o cerere prin care s se ob in un tabel cu urmtoarele date: Numar_chitanta, Data, Total, Marca, Nume, Prenume pentru toate chitan ele exprimnd pl i salariale efectuate nainte de luna martie 2005. n cazul acestei cereri, sunt necesari operatorii: Selec ie, Proiec ie i Jonc iune. Cererea formulat se poate exprima, n limbajul algebrei rela ionale, prin secven a: LIST JOIN(CHITANTE, ANGAJATI ) SELECT(Date&<3/1/05) PROJECT(Numar_chitanta, Data, Total_chitanta, Marca, Nume, Prenume)

Materiale privind Algebra Rela ional:


1. www.cs.rochester.edu/users/faculty/nelson/courses/csc_173/relations/algebra.html 2. www.cs.sfu.ca/CC/354/zaiane/material/notes/Chapter3/node7.html 3. http://cs.wwc.edu/~aabyan/415/RelAlg.html

45

6.2.2 SQL Unul dintre cele mai puternice limbaje structurate pentru interogarea bazelor de date rela ionale l constituie SQL (Structured Query Language). Pe lng manipularea i regsirea datelor, limbajul permite efectuarea de opera ii complexe privind actualizarea i administrarea bazelor de date. SQL este un limbaj neprocedural sau declarativ, deoarece utilizatorul lui descrie numai informa iile pe care vrea s le ob in n urma interogrii, fr a fi nevoie s stabileasc modalit ile 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 aplica ii, fiind orientat pe mul imi. Foarte frecvent, limbajul SQL este utilizat n administrarea bazelor de date client/server, aplica ia client fiind aceea care genereaz instruc iunile SQL. Exist un anumit grad de standardizare a limbajului SQL, mai multe sisteme de gestiune a bazelor de date recunoscnd principalele instruc iuni 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 tranzac iilor, ct i caracteristicile complexe privind integritatea informa iilor. Mul i 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 instruc iunilor SQL de la prompter; cea modular (Modul Language) - folosete anumite proceduri apelate de programele aplica iei; cea de tip ncapsulat (Embedded SQL) - are n vedere instruc iunile 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 Rela ional orientat pe tupluri O expresie de calcul pe tupluri este, n esen , o defini ie non-procedural a unei rela ii, n termenii unei mul imi de rela ii date. O astfel de expresie este constituit din variabile tuplu, condi ii i formule bine formate. 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)

46

where c.Data < 3/1/05 and c.Marca=a.Marca Cererea n Access are forma:

6.2.4 Calculul Rela ional orientat pe domenii Calculul pe domenii difer de calculul pe tupluri prin aceea c variabilele sunt, n acest caz, domenii i nu rela ii. i aici, o expresie de calcul orientat pe domenii este alctuit din variabile domeniu, condi ii i formule bine formate. n cazul exemplului 5, cererea n Borland Paradox are forma: CHITANTE Numar_chitant a Data 5 ANGAJATI Marca Nume pers =3/1/0 Tota l Avan s Numar_con t Credit_car d Tip_car d Marca per s Initiala_tatalui Data_angajarii

Prenume

Materiale privind limbajele pentru baze de date:


1. 2. 3. 4. www.freewebmasterhelp.com/tutorials/phpmysql/1 Tutorial PHP i MySQL www.w3schools.com/sql/default.asp Tutorial SQL www.w3schools.com/sql/default.asp Tutorial XML [Nas00] Limbajul Visual Basic pentru Access 2000

47

7. Restric iile de integritate ale modelului rela ional


Integritatea bazelor de date este dat, n principiu, de corectitudinea informa iilor con inute n acestea i presupune detectarea, corectarea i prevenirea diferitelor erori neinten ionate privind informa iile introduse n bazele de date. Restric iile de integritate (RI), denumite i reguli de integritate, definesc cerin ele pe care trebuie s le satisfac datele din cadrul bazei de date rela ionale pentru a putea fi considerate corecte i coerente n raport cu sistemul real pe care l reflect. n bazele de date rela ionale, rela iile sunt toate la acelai nivel iar setul de operatori este relativ restrns, neputnd exprima semantica opera ional a obiectelor complexe. Acest aspect rmne n sarcina programatorilor de aplica ie. Totui, sistemele rela ionale de in o serie de mecanisme pentru tratarea aspectelor de ordin semantic. Restric iile de integritate ale modelului rela ional sunt de dou tipuri: RI structurale, care se definesc prin egalitatea sau inegalitatea unor valori din cadrul rela iilor. Din aceast categorie fac parte: o Restric iile de unicitate a cheii o Restric ia referen ial o Restric ia entit ii o Dependen a ntre date. RI de comportament, proprii unei anumite baze de date rela ionale, ce in cont de semnifica ia 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 restric ie de domeniu.

Utilizarea modelului rela ional nu impune definirea i verificarea tuturor acestor tipuri de restric ii. Din acest punct de vedere, putem considera c exist: RI minimale obligatoriu de definit i de respectat. Din aceast categorie fac parte restric ia de integritate a cheii, restric ia referen ial, restric ia entit ii. Alte RI categorie din care fac parte dependen ele ntre date, restric iile de comportament.

7.1 Restric ii de integritate minimale


Cheia unei rela ii R reprezint un ansamblu minimal de atribute prin care se poate identifica n mod unic orice tuplu din R. Orice rela ie posed cel pu in o cheie. La limit, cheia este constituit fie dintr-un singur atribut, fie din totalitatea atributelor din schema rela iei respective. Cnd cheia este constituit dintr-un singur atribut ea poart numele de cheie simpl iar cnd este format din mai multe atribute este denumit cheie compus. Exemplu. n rela ia 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 rela ia R2 cheia trebuie format B b1 b2 b3 b2

ntr-o rela ie pot exista mai multe combina ii de atribute cu proprietatea de identificare unic a tuplurilor. Se spune n acest caz c rela ia posed mai multe chei candidate. n aceast situa ie, 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.

48

Cheia unei rela ii trebuie sa fie minimal, n sensul c nici o parte a sa nu trebuie s posede proprietatea de identificare unic a tuplurilor rela ie. O cheie extern reprezint un atribut sau un grup de atribute dintr-o rela ie R1 ale crui/cror valori sunt definite pe acelai/aceleai domeniu/domenii ca i cheia primar a unei alte rela ii R2 i care are rolul de a modela asocierea ntre entit ile reprezentate prin rela iile R1 i R2. n acest context, R1 este numit rela ie care refer, n timp ce R2 poart numele de rela ie referit. Exemplu. n rela ia ANGAJATI atributul Marca este cheie primar, n timp ce atributul Cod_departament este cheie extern, servind la modelarea asocierii ntre angaja i i departamente. n rela ia 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 rela ional prezint urmtoarele restric ii de integritate minimale: Restric ia de unicitate a cheii. Reprezint restric ia care impune ca ntr-o rela ie R cu cheia K, oricare ar fi tuplurile t1 i t2 s fie satisfcut inegalitatea t1(K) t2(K). Restric ia referen ial (integritatea referirii). Reprezint restric ia care impune ca ntr-o rela ie R1 care refer o rela ie R2, valorile cheii externe s figureze printre valorile cheii primare din rela ia R2 sau s fie valori null (nedefinite). R1 i R2 nu trebuie s fie neaprat distincte. Semnifica ia restric iei de integritate a referirii este urmtoarea: o asociere nu poate exista dect ntre parteneri cunoscu i, adic deja defini i. Atunci cnd, ntr-o anumit situa ie, asocierea nu este aplicabil, unul dintre parteneri va fi desemnat prin valoarea null, cu semnifica ia de partener inexistent. Exemplul anterior respect restric ia de integritate a referirii. Restric ia entit ii (integritatea entit ii). Reprezint restric ia care impune ca ntr-o rela ie 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.

Restric ia de integritatea a entit ii nu se aplic cheilor externe, ceea ce confer o anumit suple e modelului rela ional. Uneori, se consider drept restric ii de integritate minimale numai ultimele dou, restric ia de unicitate a cheii fiind considerat implicit.

7.2 Alte restric ii 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 condi ie 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 rela ia CUMPARATORI (Cod, Nume, Adresa, Debit) se poate impune condi ia ca nici un cumprtor s nu aib mai mult de 100.000.000 lei datorii. Pentru rela ia MAGAZINE (Numemag, Adresamag, Codmarfa, Marfa, Pret) se poate impune ca noile pre uri s nu creasc cu mai mult de 20% fa a de pre urile vechi.

49

7.3 Aspecte privind integritatea


De integritatea datelor este legat i protec ia 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 apari iei unor erori sau din necesitatea de ntrerupere a lor n urma unor interblocri sau prin interven ia utilizatorilor, programarea eronat a unor activit i prin strategiile folosite de sistem i altele. Pentru reconstituirea bazelor de date n eventualitatea apari iei unor inconsisten e 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 con ine aceste modificri se numete jurnal. Fiecare nregistrare din jurnal con ine 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 opera ii). Se spune despre o tranzac ie 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. Apari ia unor cderi dup ce o tranzac ie a fost comis nu afecteaz con inutul bazei de date, deoarece acestea se pot reconstitui cu ajutorul ultimei copii i a jurnalului n care se gsesc toate rezultatele tranzac iilor comise. Modificrile tranzac iilor 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 tranzac ie poate s scrie ntr-o baz de date numai dup ce a fost comis i o tranzac ie poate fi comis numai dup ce a nregistrat n jurnal toate schimbrile de elemente produse de ea.

Materiale privind dependen ele datelor, integritatea i securitatea bazelor de date:


1. [Fel96] Despre dependen e ntre date Despre securitatea sistemelor informa ionale, n general 2. www.boran.com/security/IT1x-4.html 3. www.computerworld.ro/index.cfm?t=articol&idcwd=2647 4. www.pcmagazine.ro/pcmag4-8/internet_business.shtml

50

8. Depozite de date
Depozitele de date (Data warehouse) au devenit, la sfritul anilor ' 90, una dintre cele mai importante dezvoltri n domeniul sistemelor informa ionale. Industria de data warehouse s-a dezvoltat continuu n termeni de investi ii, produse disponibile i proiecte elaborate. Se apreciaz c aproximativ 90% dintre companiile multina ionale 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, mediul economic este tot mai competitiv, global i complex i solicit informa ii elaborate pentru sprijinirea deciziilor strategice iar, pe de alt parte, evolu ia tehnologiilor informa ionale ofer solu ii eficiente de gestionare a unor volume mari de date integrate (de ordinul Tera bytes) asigurnd niveluri de sintez / detaliere adecvate. Astfel, evolu iile hardware performante precum i sistemele de procesri paralele masive, sistemele de multiprocesare simetric, sistemele tip baze de date paralele fac posibile ncrcarea, ntre inerea i accesul la baze de date de dimensiuni uriae. Aplica iile 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 telecomunica iile, bncile i comer ul 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 telecomunica iile i sistemul bancar se men in n top ntruct aloc cel pu in 15% din bugetul lor IT pentru proiecte referitoare la depozite de date. Un proiect de data warehouse reprezint o investi ie 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, investi iile n depozite de date nu se finalizeaz cu succes (politici organiza ionale defectuoase, insuficiente fonduri sau insuficient sus inere din partea conducerii.

8.1. Concepte de baz n data warehouse


Depozitele de date au fost definite n foarte multe moduri, astfel nct o defini ie 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 con ine date interne i externe; optimizat pentru a rspunde interogrilor complexe. Datele din sistemele surs sunt extrase, cur ate, 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: clien i, furnizori, produc ie, vnzri. Mai curnd dect a concentra procesarea opera iilor i tranzac iilor tipice ntr-o organiza ie, 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 rela ionale, fiiere, nregistrri privind tranzac ii online. Tehnicile de cur are (data cleaning) i de integrare sunt aplicate pentru a asigura concordan a n conven iile de atribuire a numelor, de codificare a structurilor i atribuire a valorilor. Caracterul istoric. Datele sunt stocate pentru a furniza informa ii n perspectiv istoric (de la 5 pn la 10 ani n urm). Astfel, deciden ii pot consulta valorile succesive ale acelorai date, pentru a determina evolu ia n timp i a calcula tendin ele anumitor indicatori. Persisten a 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

51

date este ntotdeauna memorat separat, din punct de vedere fizic, de datele transformate din alte aplica ii. Datorit acestei separri, un depozit de date nu necesit mecanisme de procesare a concuren ei. n mod uzual, solicit numai dou opera iuni: ncrcarea ini ial a datelor i accesul la date. Sintagma data warehousing desemneaz procesul de construire i utilizare a depozitelor de date (data warehouse). Construirea necesit integrarea, cur area i consolidarea datelor. Utilizarea necesit o colec ie de tehnologii de asistare a deciziilor. Acestea permit specialitilor (manageri, analiti, executivi) s ob in rapid i convenabil datele necesare i s ia decizii bazate pe informa iile din depozit.

8.2. Diferen e ntre bazele de date i depozitele de date


Att bazele de date ct i depozitele de date con in mari cantit i de date structurate care pot fi accesate rapid datorit structurilor de acces optimizate i se bazeaz, n majoritatea cazurilor, pe tehnologii rela ionale. Totui ele nu au fost proiectate pornind de la aceleai obiective i se diferen iaz prin numeroase aspecte. Sistemele de gestiune ale bazelor de date sunt adecvate aplica iilor curente de gestiune i servesc la crearea i ntre inerea sistemelor de date opera ionale. Aceste sisteme sunt cunoscute sub denumirea de sisteme OLTP (OnLine Transaction Processing) i au ca obiectiv execu ia online a tranzac iilor i proceselor de interogare. Ele ncorporeaz toate opera iile zilnice dintr-o organiza ie, cum ar fi: aprovizionri, stocuri, produc ie, decontri, pl i, contabilitate. 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 con inute, 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 5 6 7 8 9 10 11 12 13 14 15 Trsturi Destina ia Orientarea sistemului Utilizatori Func ii 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 Priorit i Sistem de evaluare OLTP Procese opera ionale Tranzac ii Func ionari, administratori BD, profesioniti n BD Opera ii zilnice Diagrame E-A Curente, noutate garantat Primitive, detaliere ridicat Scurt, tranzac ii simple Read, Write Culegere date Zeci Mii 100 MB - GB Performan e ridicate, disponibilitatea ridicat Tranzac ii culese OLAP Procese informa ionale Analize Cerin e informa ionale pe termen lung, asistarea deciziei Star / snowflake Istorice, precizie men inut n timp Sintetizare, consolidare Interogri complexe Aproape totdeauna Read Furnizare informa ii Milioane Sute 100 Gb - TB Flexibilitate ridicat, autonomie utilizatori finali Interogri culese, timp de rspuns

52

Un sistem OLTP este orientat pe client (customer oriented) i este utilizat pentru procesarea tranzac iilor 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 colec ie de date proiectate pentru sprijinirea controlului opera ional. La prima vedere nu par deosebite de depozitele de date, dar dei ambele tehnologii sprijin deciden ii sunt diferite deoarece au scopul de a acoperi anumite tipuri de cerin e informa ionale. Magazinele de date con in date orientate pe subiecte din ntreprinderile mari i, spre deosebire de depozitele de date, con in date volatile i detaliate.

8.3. Arhitectura depozitelor de date


Arhitectura simplificat a unui depozit de date este prezentat n figura urmtoare. Baze de date opera ionale

Instrumente pentru Accesare i Utilizare

Achizi ie (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 cerin e informa ionale ale utilizatorilor: Date detaliate Date uor agregate Date puternic agregate Metadate. Metadatele descriu datele con inute n depozitul de date i modul n care ele sunt ob inute i stocate. Prin metadate se precizeaz structura datelor, provenien a lor, regulile de transformare, de agregare i de calcul. Metadatele joac un rol esen ial 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 redundan ei 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: Predic ia implic utilizarea unor cmpuri sau variabile din baza de date, n scopul estimrii unor valori viitoare sau necunoscute, pentru alte variabile de interes i

53

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 func ie care mapeaz (clasific) un element de dat n una sau mai multe clase predefinite. Regresia o func ie asociaz un element de dat unei variabile cu rol de predic ie. Parti ionarea (clustering) este o func ie descriptiv prin care se urmrete identificarea unui numr (finit) de categorii sau mul imi care descriu datele. Strns legat de aceast func ie este func ia de estimare a densit ilor de probabilitate ale variabilelor aleatoare constituite de cmpurile de date. Sumarizarea implic metode pentru gsirea unei descrieri compacte a unei submul imi de date. Modelarea dependen elor const din gsirea unor modele care descriu n mod compact diferite dependen e 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 dependen e utiliznd o scar numeric). Detectarea schimbrilor i devia iilor 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 nv are rela ional Exist dou metode de data mining: Data mining direct, care presupune: o O abordare top-down o S tim (cu aproxima ie) 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 predic ia i nu cum se realizeaz aceasta o Scopul construirii unui model predictiv este de a aplica cunotin ele dobndite n trecut, pentru viitor. o Exemplu: S se gseasc rspunsul la ntrebarea: Ce clien i 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 colec iile 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 interac iunea uman pentru c numai oamenii pot determina ce semnifica ie (dac exist una) au modelele o Este utilizat deseori n procesul de explorare a datelor Literatura de specialitate face referire la trei solu ii practice de organizare a depozitelor de date: Depozit la nivelul ntreprinderii - Enterprise Warehouse. Colecteaz toate informa iile despre subiecte care privesc ntreaga organiza ie i furnizeaz un volum extins de date. Depozite la nivelul unei unit i de gestiune (filial, departament, serviciu), cunoscute sub numele de data marts. Un data mart con ine un subset al volumului de date din organiza ie, specific unui grup de utilizatori. Domeniul este limitat la subiecte specifice. De exemplu, un data mart pentru marketing limiteaz subiectele la clien i, 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 pu in scump.

54

Depozite virtuale Virtual Warehouse. Un depozit virtual este un set de viziuni asupra bazelor de date opera ionale. Este uor de construit dar necesit capacit i 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 con ine un tabel central voluminos (tabel de fapte) care cuprinde cea mai mare parte a datelor fr redundan e i un set de tabele nso itoare (tabele-dimensiune) pentru fiecare 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

Ramur
Tabel-dimensiune 2

Cheie-ramur Nume-ramur Tip-ramur

Cheie-zon Strad Localitate Jude Cod-potal ara

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. Diferen a 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 ntre inut i se economisete spa iu 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

Cheie-furnizor Tip-furnizor

55

Zon

Tabel-dimensiune 4

Ora
Tabel-dimensiune 4-1

Cheie-zon Stard Cheie-ora

Cheie-ora Ora Jude Regiune

Constela ie de fapte aplica iile complexe pot solicita tabele multiple de fapte, care partajeaz tabelele-dimensiune. Acest gen de schem poate fi vzut ca o colec ie de stele, de unde denumirea de constela ie de fapte (fact constellation). Cnd se justific un proiect de data warehouse? Exist mai multe situa ii n care un depozit de date este oportun pentru rezolvarea unor probleme: Insuficienta partajare a informa iilor (de exemplu, cnd servicii sau departamente cu aceiai clien i nu comunic ntre ele). 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 ob ine rapoarte concludente n situa ii speciale). Rapoartele care necesit date istorice sunt dificil de realizat (astfel de date nu sunt stocate n sistemele opera ionale, 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 preferin elor se afl: SQL Analysis Manager produs de Microsoft Corporation i Oracle Warehouse Builder produs de Oracle. Aceste dou instrumente beneficiaz de experien a i puterea financiar a companiilor productoare i au reuit s se impun pe pia ca solu ii 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 organiza ii vor adopta acest gen de tehnologie. Ini iativele data mining provin cel mai adesea din zona departamentelor de marketing i de vnzri cu amnuntul i se preteaz foarte bine n organiza iile care de in baze de date cu volume foarte mari. Datorit faptului c aceste instrumente dau cele mai bune rezultate cu date la un nivel ridicat de detaliere, evolu ia instrumentelor data mining va coincide de fapt cu dezvoltarea depozitelor de date cu dimensiuni de ordinul TB. Proiectele de data mining vor accentua i mai mult importan a calit ii datelor din depozitele de date. Tehnologiile data warehouse continu s fie influen ate de popularitatea solu iilor bazate pe Intranet i Internet. Ca urmare, din ce n ce mai multe instrumente de acces la date vor putea suporta facilit ile oferite de web. Unele organiza ii au nceput deja s foloseasc infrastructura Internetului pentru a oferi utilizatorilor posibilitatea de a utiliza depozitul de date de la distan , ns n acest caz este trebuie avut n vedere problema securit ii acestui mediu. Exemplul 1. NAWQA Water Quality Data Warehouse este un depozit unde se colecteaz date despre calit ile chimice, biologice i fizice ale apei din 42 de bazine din SUA. Se msoar zilnic: concentra iile n ap, sedimente i esuturi organice pentru aproximativ 600 de constituen i 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 geospa iale HRSA (Health Resources and Services Administration). Acest depozit i aplica iile sale asociate furnizeaz informa ii despre programele HRSA, resurse despre sntate i date demografice foarte utile pentru planificare i domeniului politic. Acest depozit con ine date despre granturi, burse i mprumuturi, destinate serviciilor subsumate, precum i programe demonstrative. Fiind sursa central de informa ii utilizat pentru raportrile

56

activit ilor 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 adaug noi surse de informa ii. n continuare este prezentat sec iune 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 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

Materiale privind depozitele de date i data mining:


1. www.dwinfocenter.org The Datawarehousing Information Center: acest site este o colec ie de eseuri ale practicienilor depozitelor de date. Prezint defini ii, argumente pro i contra dezvoltrii depozitelor de date, evaluri ale unor instrumente software pentru depozite de date, informa ii despre afaceri inteligente, politici pentru decizie i ale domeniului depozitelor de date. 2. datawarehouse.ittoolbox.com Instrumente pentru lucrul cu depozite de date. 3. freedatawarehouse.com Concepte i elemente practice. 4. www.infogoal.com/dmc/dmcdwh.htm Informa ii despre: Data Warehouse, Data Mart, Data Mining, Decision Support Resources. 5. www.datawarehousingonline.com Resurse, tehnologii i solu ii. 6. http://dbvis.inf-uni-konstanz.de/~keim/PDF/Vis04Tutorial.pdf Articolul Information Visualization and Visual Data Mining, autori: Grinstein G., Keim D.A., Ward M., 2004. Prezint istoria domeniilor vizualizare de date i data mining, tehnici i sisteme de vizualizare, exemple de aplicabilitate n chimie. 7. www.nag.co.uk The Numerical algorithms Group Ltd, Oxford. Ofer componente i tehnologii data mining i vizualizare, pentru mai mult de 10000 de organiza ii din ntreaga lume. Software i servicii de dezvoltare de aplica ii (n bio-informatic, e-business, detec ia fraudelor, analiz web).

57

9. Baze de cunotin e
Bazele de cunotin e sunt ntlnite n literatura de specialitate sub diferite denumiri cum ar fi: baze de date logice, baze de date inferen iale, sisteme expert, sisteme deductive, prelucrare recurent, baze de date inteligente. Prin aceste sisteme se ncearc o ct mai apropiat func ionare a bazelor de date de sistemul obinuit de operare cu date. Astfel, n aceste sisteme diferitele tupluri ale rela iilor sunt interpretate ca axiome iar cererile sunt interpretate ca teoreme, rspunsul la cerere fiind interpretat ca o demonstra ie. 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 optimizarea cererilor, proiectarea bazelor de date, demonstrarea corectitudinii programelor sunt privite la fel; modelare semantic prin evenimente, tipuri de ierarhii i combina ii de entit i; aplica ii extinse. Bazele de cunotin e permit interpretarea unor cereri formulate n limbaj natural. Printre altele, con in copii ale unor tabele din catalogul bazei de date, tabele ce con in valorile datelor utilizate frecvent, o mul ime de reguli de transformare a frazelor (unele permi nd substituirea automat a unor sub-expresii) i un lexicon con innd un tabel care definete cuvinte din limba natural ce pot fi utilizate n cereri sau cuvinte generale. Baza de cunotin e este ini iat prin construirea lexiconului i a altor pr i componente i se completeaz n timp cu noi cunotin e sau elemente, de ctre utilizatori sau automat, pe baza informa iilor ob inute n exploatare. n bazele de cunotin e sunt aplicate rezultatele din calculul propozi iilor i calculul predicatelor. Pe baza transformrilor logice se urmrete demonstrarea unor aser iuni innd seama de axiomele logicii matematice i de informa iile con inute n sistem. Prin axiom deductiv sau regul de inferen se n elege o regul care permite deducerea unor fapte plecnd de la o mul ime de fapte date. Pentru a demonstra o aser iune de forma: f1, f2, ,fn g unde f1, f2, ,fn sunt premisele iar g este concluzia, de obicei se folosete metoda reducerii la absurd, demonstrnd 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 disjunc ie de atomi, eventual preceda i de nega ie. Se deriveaz n continuare al i termeni, aplicnd legea rezolu iei n forma: ((f g) & (not g h) (f h) Dac printre termenii deriva i apare mul imea vid (n eleas ca fals i notat []) atunci aser iunea ini ial este adevrat, altfel (cnd nu mai pot fi genera i al i termeni) aser iunea este considerat fals. Exemplu. Pentru a demonstra aser iunea: 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 rezolu ia pentru formulele (1) i (2) n raport cu A se ob ine (6) NOT D OR NOT B OR C Aplicnd din nou rezolu ia pentru formulele (6) i (3) n raport cu B se ob ine

58

(7) NOT D OR C Aplicnd din nou rezolu ia pentru formulele (7) i (4) n raport cu D se ob ine (8) C i din (8) i (5) unde rezolu ia se aplic n raport cu C se ob ine clauza vid, ceea ce demonstreaz c aser iunea ini ial este adevrat. Cererile pentru baza de cunotin e 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 propozi ie adevrat. n termenii bazelor de date, (x1, x2, ,xt) este unul din tuplurile existente n baza de date. n acest sens, predicatul r afirm ceva n concordan cu n elesul pe care l are rela ia 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 defini ie par ial a predicatului din partea dreapt a implica iei, n func ie 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 con in valori sau constante ce pot s descrie anumite obiecte ale lumii reale, acestea formnd contextul (ce poate fi privit ca un univers). Rela iile de baz reprezint o mul ime de predicate sau formule deschise (cu variabile) ce urmeaz s fie interpretate n acel context. Fiecare tuplu al unei rela ii reprezint o particularizare a predicatului corespunztor (adic o formul nchis, fr variabile) care are valoarea adevrat pentru universul respectiv. Constrngerile (restric iile) de integritate sunt tot formule nchise, interpretabile n contextul respectiv. Prin urmare, tuplurile i constrngerile de integritate pot fi privite ca formnd mul imea axiomelor ce definesc o anumit teorie logic. Baza de date poate fi privit ca mul imea 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 rela iilor de baz, ele definind aa-numita baz de date extins (extensional database). 2. Cte o axiom de completitudine pentru fiecare rela ie, prin care se afirm c nu exist alte tupluri dect cele care apar efectiv n rela ia respectiv. Aceasta se mai numete presupunerea de nchidere (Closed World Assumption), prin care se consider false aser iunile pentru tuplurile ce nu apar n rela ie. 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 mul ime 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 con inutul intern al bazei de date (intensional database) i aceasta, mpreun cu extinderea bazei de date (care con ine informa iile) formeaz baza de date deductiv (deductive database).

Materiale privind bazele de cunotin e:


1. [Fel96] 2. http://www.kddresearch.org/Groups/Data-Mining/ Despre descoperirea cunotin elor i Data Mining, la Departmentul de Calculatoare i tiin ele Informa iei, Kansas State University, Laboratorul Knowledge Discovery in DataBases

59

3. http://www.kmining.com Despre inteligen n afaceri, Knowledge Discovery i Data Mining

60

10. Aplica ii Access


Acest capitol con ine patru aplica ii Access comentate, n scopul prezentrii celor mai utile informa ii privind realizarea bazelor de date rela ionale.

10.1. Baz de date pentru activit i colare


S presupunem c, ntr-un ora, activit ile facultative ale elevilor se desfoar ntr-un sediu special organizat, dup un orar care se stabilete la nceputul fiecrui an colar. Se dorete crearea unei baze de date pentru gestionarea informa iilor relative la aceast activitate: elevi, profesori, orar. Pentru simplificarea aplica iei, vom considera c dou cursuri cu acelai obiect (de exemplu, dou cursuri de pictur) sus inute la momente temporare distincte (de acelai profesor sau de profesori diferi i) sunt de fapt cursuri distincte, motiv pentru care cursurile vor fi identificate printr-un cod. Analiza problemei conduce la identificarea imediat a entit ilor: ELEVI, CURSURI, PROFESORI. Cunoscnd elementele ce trebuie memorate pentru fiecare entitate n parte i constatnd rela iile ntre entit i, construim modelul conceptual al bazei de date, care se poate reprezenta astfel: ELEVI nr matricol nume si prenume clasa

scoala
URMEAZ CURSURI cod curs denumire curs ziua ora inceperii evenimente

SUS IN PROFESORI cod profesor specializarea norma de baza

Cu specifica ia anterioar relativ la cursuri, observm c rela ia dintre entit ile PROFESORI i CURSURI este de tip 1-n ("unu la mai mul i") (un profesor poate sus ine mai multe cursuri dar un curs este realizat de un singur profesor), n timp ce rela ia ntre entit ile ELEVI i PROFESORI este de tip m-n ("mai mul i la mai mul i"). ntr-adevr, un elev poate urma mai multe cursuri iar un curs are, desigur, mai mul i elevi. Acest tip de rela ie se transform, pentru a putea fi modelat logic, n dou rela ii de tip 1-n. Vom realiza aceasta prin introducerea unei entit i suplimentare, numit REPARTI II, care va permite i notarea fiecrui elev, la sfritul anului colar, la toate cursurile la care acesta particip. Ideea acestei modelri este de a surprinde interac iunea elev curs i elementele ei specifice. Fiecare elev (identificat prin numrul su matricol, stocat n nr matricol) urmeaz un curs (identificat printrun cod pstrat n cod curs) i primete o not (stocat n cmpul apreciere). Astfel, modelul logic (rela ional) al datelor este reprezentat de urmtoarea colec ie de tabele: ELEVI (nr matricol, nume i prenume, clasa, coala) CURSURI (cod curs, denumire curs, ziua, ora nceperii, evenimente) PROFESORI (cod profesor, specializarea, norma de baz, cod curs) REPARTI IE (cod, nr matricol, cod curs, apreciere).

61

n reprezentarea de mai sus, atributele subliniate cu linie continu caracterizeaz n mod unic realizrile de entitate (un numr matricol este specific unui elev i numai unuia, aceeai proprietate este valabil pentru codul unui profesor, fiecare curs are un cod unic iar fiecare linie a tabelului reparti ie este identificat printr-un numr, pstrat n cmpul cod). Un atribut cu aceast proprietate (de identificare a realizrilor unei entit i) se numete cheie primar. De exemplu, atributul cod curs realizeaz diferen ierea a dou cursuri (n baza noastr de date, dou cursuri cu aceeai denumire Pictur sunt sus inute de profesori diferi i, n zile diferite din sptmn; este evident c nu ar putea fi identificate prin denumire). Cmpurile subliniate cu linie punctat au un rol de legtur, i anume, modeleaz rela iile ntre entit ile identificate n faza de analiz. Aceste cmpuri se numesc chei secundare sau externe (cod curs pentru tabela profesori, nr matricol i cod curs pentru tabela reparti ie). n timp ce cheile primare au valori unice, cheile secundare pot avea valori duplicate (se va observa, studiind baza de date oferit ca exemplu, c numrul matricol 101 apare n trei linii ale tabelei reparti ie, iar cursul cu codul 3 n patru linii). Vom studia n continuare procedeele prin care transpunem acest model ntr-o baz de date Access i cum putem folosi aceast baz de date. n fereastra Microsoft Access optm pentru crearea unei baze de date goale (Blank Access database) i tastm OK. Apare caseta File New Database, n care introducem numele dorit (n cazul nostru, instruire). n zona de lucru a aplica iei apare fereastra Database, aceasta fiind fereastra principal a noii baze de date, prin intermediul creia putem accesa toate obiectele ei. Se observ c n zona din stnga ferestrei obiectele sunt grupate pe tipuri (tablouri, cereri, etc.), iar n zona din dreapta se regsesc instrumente de lucru i obiectele de tipul curent. Astfel, n imaginea de mai jos nu figureaz tabele (acestea vor fi primele obiecte create), dar se pot observa instrumentele prin intermediul crora putem accesa diferitele modalit i de creare a tabelelor. Se observ c eticheta fiecrui grup de obiecte este precedat de o imagine semnificativ. Imediat sub bara de titlu a ferestrei se pot observa butoane de manevr a obiectelor de tipul curent (de exemplu, pentru tabele, Open, Design, New i Delete permit deschiderea n mod tabel, deschiderea n mod proiectare, crearea unui tabel nou i respectiv tergerea unui tabel) i butoanele pentru diferite afiri ale pictogramelor obiectelor (Large Icons, Small, List i Detail).

62

Crearea tabelelor Prin realizarea unui dublu clic pe op iunea Create table in design view se deschide fereastra Table, n cadrul creia se definesc: numele cmpului (Field Name), ce poate fi format din mai multe cuvinte, trebuie s fie sugestiv (s sugereze con inutul cmpului pe care l numete). De exemplu, "nr matricol" este numele cmpului care va con ine numrul matricol al unui elev. tipul cmpului (Data Type). Un tip de dat definete att mul imea valorilor pe care le poate lua data respectiv, ct i tipul opera iilor ce se pot aplica asupra ei. Un clic pe sgeata derulant deschide lista op iunilor (Text, Memo, Number, Date/Time, etc.). descrierea (Description), acest element fiind op ional (o descriere a cmpului respectiv, de exemplu pentru "nr matricol" s-a precizat c reprezint un cod intern, necesar identificrii elevilor n cadrul activit ii de instruire suplimentar).

Crearea rela iilor ntre tabele Exist dou tipuri de rela ii ntre tabelele unei baze de date: rela ii permanente, ce se stabilesc dup definirea tabelelor. Aceste rela ii fac parte din structura bazei de date (deci se memoreaz n ea) i se realizeaz prin coresponden ele chei primare chei secundare. rela ii temporare, ce se stabilesc ntre tabele atunci cnd se realizeaz anumite interogri; acestea nu se pstreaz n baz. Am observat deja care este tipul rela iilor ntre tabelele PROFESORI i CURSURI (1n), iar rela ia de tip m-n ntre tabelele ELEVI i CURSURI a fost descompus n dou rela ii de tip 1-n, cu ajutorul tabelei REPARTI IE: Rela ia ELEVI REPARTI IE este de tip 1-n (un elev particip la mai multe cursuri i va primi o not pentru fiecare) i la fel este rela ia CURSURI REPARTI IE (un curs se regsete n tabela REPARTI IE de un numr de ori egal cu numrul elevilor care-l urmeaz). n afara acestor tipuri de rela ii, n Access se mai pot modela rela iile de tip 1-1 ("unu la unu"), de exemplu ntre persoane i mul imea codurilor numerice personale. Un clic pe butonul Relationships: de pe bara de instrumente Database deschide fereastra Relationships i caseta Show Table, de unde utilizatorul aduce n fereastr tabelele bazei de date (dup care o nchide). O rela ie ntre dou tabele se realizeaz prin punctarea cheii principale a tabelei ce constituie partea stng a rela iei) i tragere pn la cheia secundar (extern) a tabelei ce constituie partea dreapt a rela iei. Aceast manevr deschide fereastra de dialog Editare Rela ii:

63

Se observ n aceast fereastr (n cazul de fa , pentru editarea rela iei ELEVI REPARTI IE) cele dou tabele rela ionate, cheile primar i secundar. Bifarea propriet ii Enforce Referential Integrity) activeaz un mecanism al sistemului de gestiune Access, prin care nu este permis introducerea datelor n tabele REPARTI IE, naintea celor din tabela ELEVI. Cu alte cuvinte, un elev cu numrul matricol 300 nu poate figura n tabela REPARTI IE, nainte de a fi fost introdus n ELEVI. Aceast ordine de introducere este natural, nu putem repartiza elevii la cursuri nainte de a-i "nscrie". Situa ia se prezint la fel i n cazul rela iei CURSURI REPARTI IE: trebuie s memorm mai nti datele despre un curs i apoi s repartizm elevi la acest curs. Se observ c acest mecanism este unul de pstrare a integrit ii referen iale a bazei (dup cum indic i numele propriet ii), astfel este prevenit introducerea greit a datelor i sunt eliminate multe incoeren e. Iat fereastra Rela ii pentru baza de date instruire:

Introducerea datelor n tabele Se poate realiza n mai multe moduri, dar pentru nceput putem realiza urmtorii pai: n fereastra Database selectm fiierul dorit, activm butonul Open i n fereastra care apare (gen foaie de date, ca n Excel) introducem datele. De fapt, aceast modalitate permite i vizualizarea i modificarea datelor, la orice moment n exploatarea bazei de date. n fereastra de mai jos se pot observa: articolul curent, indicat prin sgeata neagr i n bara de stare, butoanele de deplasare printre liniile tabelului (un articol naintea celui curent: , articolul urmtor: , primul articol: , ultimul articol: , articolul gol: , care apare totdeauna marcat cu *) i cursorul de defilare, pentru cazul n care sunt multe cmpuri i este necesar

64

deplasarea stnga-dreapta (evident, ar aprea i un cursor vertical dac fereastra nu ar con ine dect o parte din liniile tabelului).

Formulare n cadrul aplica iei noastre, este creat un formular cu numele CURSURI, pentru introducerea datelor n alt form dect cea tabelar. Avantajul este o interfa deosebit, care permite posibilitatea afirii unor indica ii pentru cel care introduce datele (aceast activitate fiind semnificativ, n cazul bazelor de date mari).

Antet

Zon de detaliu

Subsol

n acest formular, se observ trei zone: antetul; zona de detaliu care con ine numele cmpurilor i datele; subsolul. Att antetul ct i subsolul nu se modific pe msur ce introducem sau editm nregistrri, con innd, de regul, informa ii explicative cu privire la scopul formularului i la datele pe care acesta le prezint.

65

Crearea formularului CURSURI Efectum clic pe Formulare n fereastra Baz de date i selectm op iunea Creare formular utiliznd Expertul. n continuare se selecteaz tabela cursuri i ac ionm butonul OK:

Urmeaz acum selectarea cmpurilor pe care le dorim n formular. Pentru selectarea tuturor cmpurilor (situa ia cea mai comun), realizm clic pe butonul .

La pasul urmtor se selecteaz modul de aezare a datelor n formular. Posibilit ile sunt: Columnar (datele unei nregistrri sunt prezentate pe coloane), Tabular ( cmpurile sunt ordonate ca n figura de mai jos i n formular apar mai multe linii din tabel), Datasheet (ca n Excel), Justified (o aezare a cmpurilor unei nregistrri ntre marginile formularului) PivotTable (vizualizarea datelor detaliate sau rezumate prin aranjarea cmpurilor n filtru,

66

rnd, coloan i arii detaliu) i PivotChart (afiarea date vizual prin selectarea unui tip de diagram i aranjarea cmpurilor n filtru, serie, categorie i arii date). Un formular PivotTable efectueaz calculele alese, ca sume (implicit pentru cmpurile numerice) i numrri (implicit pentru cmpuri text), bazat pe modul n care sunt aranjate datele. De exemplu, un formular PivotTable poate afia valorile unui cmp orizontal sau vertical i apoi calculeaz totalul rndului sau coloanei. De asemenea, un formular PivotTable poate folosi valorile unui cmp drept titluri de rnd sau de coloane, calculnd cantit ile individuale la intersec ia titlului fiecrui rnd cu fiecare coloan, iar apoi calculnd subtotaluri i totaluri generale. De exemplu, pentru a analiza produsele vndute de fiecare angajat: se pot lista numele angaja ilor ca titlurile coloanelor n partea superioar a formularului PivotTable, produsele ca titlurile rndurilor n partea de jos a formularului PivotTable, iar suma vnzrilor calculat dup produse pentru fiecare angajat la intersec ia fiecrui rnd cu fiecare coloan. Formularul PivotChart permite reprezentarea grafic a datelor, folosind tipurile oferite de Excel: coloan, bar, structur inelar, radial, etc.

n urmtoarea fereastr se selecteaz stilul formularului (stilul implic un fundal, un tip de font pentru date, culori, aezare etc.):

67

Ultimul pas se refer la alegerea unui nume pentru formular i dialogul se ncheie cu clic pe Finish.

Un alt formular (cu numele elevi) este proiectat asemntor; la activarea sa (de exemplu, cu dublu clic) va afia, n forma proiectat, con inutul curent al tabelei ELEVI. Iat cum se reflect corec ia efectuat n cmpul coala, pentru elevul cu numrul matricol 303 (schimbarea valorii cmpului din 26 n 28):

Vom observa n continuare cum arat acest formular n mod proiectare (aceast vedere se poate ob ine selectnd formularul n fereastra Database i apoi realiznd clic pe butonul Proiect):

68

Fiecare component a formularului (Antet, Detaliere, Subsol) are propriet i care se pot seta prin deschiderea meniului contextual aferent (clic dreapta pe op iunii Propriet i, care deschide meniul prezentat n continuare). i selectarea

Cu ajutorul instrumentelor barei Toolbox, care se afieaz automat n mod proiectare, formularului i se pot aduga elemente grafice, numite controale:

Acestea au func ii numeroase i complexe, dar eticheta este controlul cel mai simplu de utilizat. Etichetele afieaz textul indicat astfel au fost create antetul i subsolul formularului cursuri. S realizm un subsol i pentru formularul elevi. Pentru aceasta, urmm etapele de mai jos: modificm zona Subsol Formular, plasnd cursorul pe linia inferioar, pn cnd devine de forma: apoi tragem pn mrim zona dup dorin ;

69

ac ionm butonul Label (al treilea de pe bara de mai sus) i ducem cursorul n zona creat. Forma cursorului se schimb, devenind un simbol A precedat de o cruce. Punctul unde plasm mijlocul crucii devine col ul din stnga sus al zonei destinate etichetei; micm cursorul spre dreapta i n jos, pn ob inem dimensiunea dorit a etichetei i eliberm butonul mouse-ului; n interiorul zonei etichetei editm textul dorit i, dac dorim, putem modifica propriet ile etichetei (culoare de fond, mrimea caracterelor etc.) selectnd din meniul rapid (ob inut cu clic dreapta) eticheta Propriet i, ca n imaginea urmtoare:

Aici, pentru eticheta adugat n formular s-a modificat culoarea de fundal. Interogarea bazei de date Scopul principal al unei baze de date este acela de a furniza utilizatorilor ei informa iile de care acetia au nevoie. Interogarea bazei (n englez, termenul "query" desemneaz interogarea, cererea, chestionarea) nseamn adresarea unei solicitri de informa ie, pe care sistemul de gestiune a bazei de date trebuie s o rezolve i s returneze utilizatorului rspunsul dorit. n Access, interogrile pot fi: simple pot fi formulate pentru o singur tabel i se realizeaz: prin vizualizarea datelor con inute n tabele (de exemplu, dorim s vedem oferta de cursuri suplimentare i studiem tabelul CURSURI); prin vizualizarea (par ial sau integral) a con inutului tabelelor, cu ajutorul formularelor sau rapoartelor (de exemplu, dorim s cunoatem care sunt elevii din clasele a 8-a, participan i la cursuri suplimentare); complexe comport n general mai multe tabele i/sau cereri, ale cror date sunt extrase prin precizarea unor criterii. Ca n orice soft complex, aa cum este i SGBD-ul Access, o anumit sarcin se poate rezolva n mai multe moduri. i pentru realizarea cererilor de interogare exist mai multe modalit i, dar vom prezenta n continuare proiectarea n modul Vizualizare Proiect.

70

n fereastra Database, clic pe Interogri i apoi pe Creare interogare n modul Vizualizare proiect; pe ecran apar fereastra Interogare de selectare i caseta de dialog Afiare Tabel: o din caseta Afiare Tabel se selecteaz tabelele i/sau cererile din care dorim s extragem date, dup care nchidem caseta; o 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 gril de proiectare sau gril QBE (Query By Example cerere prin exemplificare), n care se va proiecta efectiv cererea.

Cmpurile din structura unei cereri sunt de dou feluri: Preluate. Trecerea unui cmp din tabel/cerere n linia Cmp a grilei QBE se face prin tragere de mouse. Trecerea tuturor cmpurilor n gril se realizeaz fie cu dublu clic n bara de titlu a listei de cmpuri, clic n lista de cmpuri (pe oricare din ele) i apoi deplasarea n grila de proiectare, fie prin deplasarea caracterului * (aflat n capul listei de cmpuri) n gril. Aceast ultim modalitate permite definirea ulterioar a unor criterii de selec ie sau de sortare. Calculate. Pentru crearea unui cmp calculat, se selecteaz coloana n care dorim s apar valoarea calculat i din meniul View se alege op iunea Totals, care va introduce n grila QBE linia Total; se selecteaz (n celula aflat la intersec ia liniei Total cu coloana aleas) Expresie din lista derulant i n prima linie (Cmp) se introduce formula de calcul. De exemplu, pentru a calcula un punctaj egal cu de zece ori nota ob inut la curs, formula va fi urmtoarea: punctaj:[apreciere]*10

71

Iat i rezultatul execu iei cererii (se execut prin dublu clic pe pictograma sa), aa cum a fost proiectat pn n momentul de fa :

Sortarea datelor Ordonarea datelor ntr-o cerere se poate realiza cresctor sau descresctor, dup mai multe cmpuri numite chei de sortare. Se realizeaz clic n celula din gril aflat la intersec ia coloanei cmpului de sortare cu linia Sort i se alege ntre Ascending (cresctor) i Descending (descresctor). Iat grila QBE a unei cereri de interogare prin care se vizualizeaz elevii nscrii la cursurile facultative, n ordinea claselor. n cadrul unei clase, elevii apar n ordine alfabetic. Prima cheie este de tip numeric iar a doua de tip text.

Rezultatul execu iei cererii este urmtorul:

72

Se observ c ordinea cmpurilor de sortare (n cazul n care sunt mai multe) influen eaz rezultatul ob inut. Selec ia datelor Pentru a selecta dintre date pe acelea care ne intereseaz la un moment dat se utilizeaz criterii de selec ie. Acestea pot fi: Simple. Se plaseaz la intersec ia coloanei cmpului pentru care formulm criteriul cu linia Criterii din grila QBE. Principalele criterii simple sunt: o apartenen a la un interval de valori se formuleaz cu ajutorul cuvntului rezervat BETWEEN. De exemplu, dac ne intereseaz elevii cu note ntre 7 i 9 criteriul pentru cmpul apreciere va fi: BETWEEN 7 AND 9; o apartenen a la o list de valori este de forma: IN (valoare1, valoare2, ). Dac dorim s vedem datele elevilor din clasele 5, 7 i 8, criteriul pentru cmpul clasa va fi: IN (5, 7, 8); o utilizarea operatorilor de compara ie: <,>,<=,>=,= i <>(diferit). Dac dorim s selectm elevii cu punctaj mai mare sau cel pu in egal cu 80, criteriul pentru cmpul punctaj va fi: >=80; o utilizarea nega iei se realizeaz cu ajutorul operatorului NOT. Dac ne intereseaz to i elevii care nu nva la coala 19, atunci criteriul pentru cmpul coala va fi NOT "19, Al.I.Cuza" (valoarea negat apare ntre ghilimele deoarece cmpul este de tip text); o dup o dat relativ la data curent se realizeaz cu ajutorul func iei DATE( ). Compuse. Se constituie din criterii simple, legate ntre ele prin operatorii logici AND (conjunc ia) i OR (disjunc ia). n acest sens, grila QBE utilizeaz mai multe linii Criterii, iar regulile pentru construc ia criteriilor compuse sunt urmtoarele: o criteriile simple aflate pe aceeai linie Criterii sunt implicit conectate prin AND (deci vor fi satisfcute simultan); o dac selec ia valorilor unui cmp se face dup mai multe criterii simple conectate prin OR, acestea se vor specifica pe aceeai linie. Exemplu:

73

dac selec ia se face dup mai multe criterii simple aplicate unor cmpuri diferite, criteriile fiind conectate prin OR, acestea se vor specifica pe linii diferite. Exemplu:

Opera ii predefinite Access permite realizarea unor opera ii de calcul predefinite, care se pot realiza asupra unui ntreg tabel sau asupra unui grup de nregistrri. Sunt disponibile urmtoarele opera ii predefinite: SUM calculeaz suma valorilor unui cmp; MEDIE calculeaz media aritmetic a valorilor unui cmp; MIN returneaz valoarea minim; MAX returneaz valoarea maxim; CONTOR numr valorile dintr-un cmp; STDEV (de la Standard deviation) calculeaz abaterea medie ptratic sau varian a valorilor unui cmp (reprezint o msur a abaterii valorilor de la media lor); VAR varian a statistic a valorilor luate de un anumit cmp; PRIM - ntoarce prima valoare din cmp; ULTIM ntoarce ultima valoare din cmp.

74

Pentru realizarea unei opera ii de acest gen asupra tuturor nregistrrilor tabelei se realizeaz urmtorii pai (vom exemplifica pentru a calcula media notelor elevilor): se creeaz o cerere care con ine doar cmpurile asupra crora vor ac iona opera iile de calcul; se ac ioneaz View, Totals, efectul fiind introducerea n grila QBE a liniei TOTALS, care va con ine pentru toate cmpurile opera ia Goup By n capul unei liste derulante; se alege din lista derulant opera ia dorit; se execut cererea prin Query, Run i se observ rezultatul. Iat cererea n mod proiectare i imaginea execu iei acesteia:

Pentru realizarea unei opera ii predefinite asupra unui grup de nregistrri, cel pu in un cmp din cerere trebuie s con in opera ia Group By, pentru a se preciza gruparea. Dac sunt prezente mai multe criterii de grupare, ordinea de evaluare este de la stnga la dreapta. Iat o cerere care determin mediile elevilor, grupa i dup cele 4 cursuri. n grila de proiectare se observ gruparea nregistrrilor dup cmpul cod curs:

Iat i rezultatul execu iei cererii, pe setul de date utilizat pn acum:

75

Se observ formatul general al cmpului AvgOfapreciere (afiarea tuturor zecimalelor semnificative), iar pentru ultima valoare rotunjirea ultimei pozi ii. Rapoarte Rapoartele (Reports) sau situa iile finale constituie prezentri ale datelor pe suport de hrtie. Aceste rapoarte au fost folosite totdeauna, constituindu-se n documente oficiale, purttoare ale semnturilor persoanelor autorizate. Realizarea unui raport implic prezentarea datelor dorite ntr-un format ct mai convenabil, conform cu necesit ile de informare (de exemplu pot con ine totaluri, subtotaluri, grafice, diagrame). n general, datele care apar n rapoarte sunt preluate din tabele sau din cereri. Mai ales dac datele provin din mai multe tabele se prefer realizarea mai nti a unei cereri i apoi a raportului corespunztor. n afar de datele propriu-zise, situa iile finale mai con in: controale; zone de text; cadre (pentru imagini i grafice); etichete (pentru realizarea unui format ct mai atrgtor). Pentru a crea un raport putem folosi instrumente wizard sau proiectarea direct, dar o metod convenabil este (ca i n cazul formularelor) mbinarea acestor dou facilit i, astfel: n fereastra Database se activeaz Rapoarte, apoi Creare raport utiliznd Expertul; se selecteaz numele tabelei sau cererii care furnizeaz datele raportului; se trece n mod proiectare (cu clic pe Design View) i se modific raportul conform dorin ei proiectantului, adugndu-se text, controale, etc. Spre exemplificare, s construim un raport care s prezinte situa ia elevilor nscrii la cursurile suplimentare n anul curent. Elevii s fie grupa i pe coli i pentru fiecare s se precizeze clasa i cursul pe care l frecventeaz. Observm c datele cerute n raport se afl n trei tabele: ELEVI (numele, clasa, coala), REPARTI IE (coresponden a elev-curs) i CURSURI (denumirea cursului). Construim mai nti o cerere care s adune aceste date. Iat structura sa, n mod proiectare:

76

Utiliznd metoda descris anterior, construim o situa ie final cu ajutorul instrumentului wizard, dup care o modificm astfel nct s se plaseze frumos pe o pagin A4, adugm un titlu, un subsol i linii separatoare ntre grupurile de elevi apar innd aceleiai coli. Forma Vizualizare Proiect a raportului este urmtoarea:

Zona de nceput a situa iei imprimate corespunde imaginii de mai jos:

ultimele date sunt:

iar sfritul listei con ine ziua, data i numrul paginii curente (din totalul de pagini).

77

Se observ c structura situa iei finale include: antetul general, antetul de pagin, antetul de grup (n cazul de mai sus, cel referitor la coal), rndul de detaliu, subsolul de pagin i subsolul de raport. Dup crearea unei situa ii finale, rezultatul poate fi vizualizat (nainte de imprimare), ceea ce permite verificarea datelor i a aspectului general al raportului. Ca i n cazul celorlalte obiecte, cititorul care studiaz aplica ia Access va descoperi numeroase posibilit i de a realiza un raport.

78

10.2. Baz de date pentru o activitate comercial


n cadrul acestei aplica ii vom simula activitatea comercial a unei firme. Vom descrie furnizorii i produsele achizi ionate de firm, personalul firmei, clien ii si comenzile pe care acetia le emit, precum i modul de transport al produselor ctre clien i. Vom presupune c un produs, identificat prin codul su, Produs_id, este cumprat de la un singur furnizor, pentru a putea rela iona tabelele Furnizori i Produse printr-o legtur de tip 1-n. Tot pentru simplitate, vom considera c fiecare client emite cte o comand pentru fiecare produs, astfel c tabelele Clien i i Comanda au o rela ie 1-n, iar tabelele Comanda i Produs_comanda au o rela ie 1-1. Aplica ia este constituit din 8 tabele, avnd urmtoarele cmpuri: 1. Agen i (Agent_id, Nume_agent, Prenume_agent, Func ie, Nscut, Angajat, Adres, Ora, JudeT, Cod_potal, Tel_acas, notes) 2. Categorie (Categorie_id, Categorie_nume, Descriere) 3. Clien i (Client_id, Denumire_client, Persoana_contact, Func ie_contact, Adresa, Ora, Jude , Cod_potal, Telefon, Max_comanda, Min_comanda, Discount) 4. Comanda (Comanda_id, Client_id, Transportator_id, Numr_comand, Data_comand, Client_nume, Client_adresa, Client_ora, Client_cod_potal, Discount, Data_livrrii, notes, Agent_id) 5. Furnizori (Furnizor_id, Denumire_furnizor, Persoana_contact, Func ie_contact, Adresa, Ora, Jude , Cos_postal, Telefon) 6. Produs_comanda (Comand_id, Produs_id, Pret_unitar, Cantitate) 7. Produse (Produs_id, Furnizor_id, Categorie_id, Nume_produs, Unitate_msur, Pre _unitar) 8. Transportatori (Transportator_id, Denumire_transportator). Acest model logic al aplica iei eviden iaz att cheile primare (subliniate cu linie continu), ct i cheile externe (subliniate cu linie punctat). Crearea tabelelor se poate realiza n trei moduri: utiliznd fereastra de proiectare (Creare tabel n modul Vizualizare proiect). Este modalitatea recomandat, pe care o vom explica n continuare. utiliznd instrumentul Wizard (Creare tabel utiliznd Expertul). Se creeaz tabele prin alegerea unor cmpuri standard. prin introducerea datelor (Creare tabel prin introducere date). Aceast modalitate nu poate fi aplicat aplica iilor complexe, dar este util n cazul aplica iilor foarte simple, n care avem nevoie de rapiditate n crearea tabelelor. Dac selectm op iunea Creare tabel n modul Vizualizare proiect, se deschide o fereastr n care se precizeaz structura tabelului: numele cmpurilor, tipul i propriet ile acestora.

79

Tipurile de baz din Access sunt urmtoarele: Text. Un cmp de acest tip con ine cel mult 255 caractere (implicit, lungimea este de 50). De tip text sunt definite cmpurile care con in nume de persoane, denumiri, adrese etc. Memo. Pot con ine cel mult 64000 caractere (cu comentarii, explica ii). Cmpurile de tip Text i Memo sunt numite alfanumerice (pot con ine caractere i/sau numere). Iat exemple de valori alfanumerice (le vom delimita cu " "): "Drago", "Mircea cel Btrn", "O el laminat OL 50", "X4532A", "345990". Numr. Este tipul numeric, cu mai multe subtipuri disponibile, determinate de dimensiunea cmpului: o Octet valori ntregi, pozitive, reprezentate pe un octet; o ntreg - valori ntregi, pozitive i negative, pe doi octe i; o ntreg lung valori ntregi, pozitive i negative, pe patru octe i; o Simpl precizie valori reale, cu cel mult 7 zecimale, pozitive i negative, pe patru octe i; o Dubl precizie - valori reale, cu cel mult 15 zecimale, pozitive i negative, pe opt octe i; o ID reproducere identificator global unic, pe 16 octe i; o Zecimal - valori ntregi, pozitive i negative, pe 16 octe i. Dat/Or. Este un tip special creat pentru date calendaristice sau de tip or, ntruct aceste valori se ntlnesc adesea n documente, nregistrri. Permite, de asemenea, diferite formate de afiare, de exemplu: Sunday, August 11, 2003 i 8/11/03 reprezint data de 11 august 2003, duminic iar 5:00:00 PM i 17:00 reprezint ora 3 dup amiaz. Moned. Acest format fix, cu patru zecimale, permite lucrul cu valori monetare. AutoNumerotare. Cmpurile de acest tip sunt completate n mod automat pentru fiecare nregistrare adugat ntr-o tabel, fie cresctor, fie cu valori aleatoare (ntmpltoare), dup cum alege utilizatorul. Da/Nu. Con in de fapt valori logice, reprezentate prin 1 (pentru Yes, True adevrat) i prin 0 (pentru No, False fals). Observa ie. Cmpurile de tip: Numr, AutoNumerotare, Da/Nu i Moned sunt de tip numeric, deci con in numere reprezentnd: cantit i, coduri, sume de bani, valori logice de adevr. Iat exemple de valori numerice: 23.90, 6785, 1. Vom vedea c o dat numeric poate fi afiat n formate diferite. Obiect OLE. Reprezint obiecte mari, de tipul imaginilor, desenelor, fiierelor audio. Hyperlink. Con ine un text ce este o adres a unei pagini Web. Expert cutare. Creeaz cmpuri care permit alegerea de valori din cadrul unor structuri (tabele, liste), deci permit legarea informa iilor. Iat fereastra de proiectare a tabelului Agen i:

80

Observm cheia primar Agent_id i propriet ile cmpului Nume_agent. Dup realizarea tuturor tabelelor, rela iile se construiesc astfel: se ac ioneaz butonul Relationships de pe bara Database, n fereastra Afiare Tabel se includ toate tabelele deja create, prin selectarea lor i apoi punctarea repetat a butonului Adugare:

Apoi se realizeaz fiecare rela ie (asociere), prin glisare a mouse-ului de la tabelul care con ine cheia primar, ctre tabelul care con ine cheia extern. La fiecare rela ie, va aprea cte o fereastr de editare, unde se puncteaz op iunea Impunere integritate referen ial, pentru a proteja baza de date la erori cum ar fi urmtoarea: exist produse dintr-o categorie care nu este nc definit.

Imaginea final a ferestrei Rela ii este prezentat n continuare.

81

Introducerea articolelor n tabele se realizeaz astfel: n fereastra Baz de date se efectueaz dublu-clic pe numele tabelului (de exemplu, Furnizori) i se introduc valorile cmpurilor din fereastra care se deschide. n imaginea urmtoare, se observ cum tabelul Furnizori are 15 articole. La fel se introduc articole n toate tabelele, n ordinea indicat de rela iile deja definite. Dac se produc erori din punctul de vedere al integrit ii referen iale, acestea sunt semnalate printr-un mesaj care cere corectarea cmpului respectiv.

O metod alternativ pentru introducerea de articole ntr-un tabel este realizarea unui formular, care s ofere o alt prezentare a cmpurilor. Un formular creat n modul Vizualizare proiect este individualizat, deoarece permite interven ia programatorului la un nivel nalt. n continuare vom prezenta crearea n acest mod a formularului pentru introducerea comenzilor. n fereastra Baz de date se selecteaz op iunea Formulare i apoi Creare formular n modul Vizualizare proiect. Dup apari ia ferestrei de editare a formularului, prin clic dreapta pe titlul ferestrei deschidem un meniu contextual din care alegem ultima op iune: Propriet i.

82

Fereastra Formular permite alegerea tabelului n care vom introduce date, prin clic de eticheta Date i derularea listei de op iuni posibile pentru Surs nregistrri. Alegem tabelul Comanda i observm c apare o nou fereastr care con ine lista cmpurilor acestuia:

Prin tragerea cmpurilor din aceast fereastr (cu ajutorul mouse-ului) pn n zona Detaliu a formularului, fixm pozi iile lor pe gril. Fiecare element al formularului este alctuit dintr-un text explicativ, respectiv numele cmpului i o zon de introducere a valorii cmpului respectiv. n figura de mai jos este selectat elementul corespunztor numrului comenzii. Deplasarea relativ a componentelor se realizeaz prin tragere de col ul stnga-sus, eviden iat. Deplasarea integral se face prin tragere de margine.

83

Pentru a ob ine o aliniere, se pot selecta mai multe elemente, prin men inerea apsat a tastei Shift i tragere de mouse. Apoi se deschide meniul contextual ataat prin clic dreapta pe unul dintre elementele selectate. Din acesta alegem op iunea Align, Stnga. Prin clic dreapta pe gril putem alege op iunea Propriet i, care permite selectarea din eticheta Format a unei culori a grilei (op iunea Culoare fundal). Din acelai meniu putem mbog i formularul prin adugarea unui antet/subsol ale paginii sau ale ntregului formular (Page Header/Footer, Form Header/Footer). ntroducerea datei i a orei curente se face prin alegerea din meniul Insert a op iunii Date and Time. Introducerea numrului curent de pagin se face din acelai meniu, op iunea Page numbers. La subsolul formularului, introducem men iunea de responsabilitate, sub forma unei etichete care con ine numele persoanei care a realizat formularul. Imaginea urmtoare prezint formularul, n modul proiectare.

84

Acest formular, folosit la introducerea datelor, are urmtorul aspect:

S presupunem acum c patronatul dorete o situa ie a angaja ilor, n care s se specifice, grupat pe func ii: - numele complet al agen ilor, - data angajrii, - oraul de domiciliu i - numrul lor de telefon. Pentru a rezolva aceast cerin , se va edita o interogare: n fereastra Baz de date se selecteaz Interogri i se alege op iunea Creare interogare n modul Vizualizare proiect. Se adaug apoi tabela Agen i, iar n gril se introduc cmpurile preluate: - Nume_agent - Prenume_agent - Functie - Angajat - Oras - Tel_acasa. Pentru a realiza cererea, pe rndul Sortare se selecteaz Ascendent la cmpurile Functie i Angajat. Interogarea se salveaz cu numele Agenti Query i se execut prin dublu clic pe numele su n fereastra Baz de date.

Iat rezultatul execu iei interogrii Agenti Query:

85

Rapoartele sunt situa ii finale, care nu mai permit interven ii ale operatorului. S presupunem c se dorete realizarea unui raport care s con in agen ii firmei, grupa i dup oraele de reedin . n fereastra Baz de date se selecteaz Rapoarte i se alege op iunea Creare raport utiliznd Expertul. n prima fereastr de dialog se aleg cmpurile care se includ i . Primul buton n raport, prin transfer din stnga n dreapta cu ajutorul butoanelor transfer cmpul curent, iar cel de-al doilea transfer toate cmpurile n viitorul raport.

Urmeaz adugarea nivelurilor de grupare a articolelor, n cazul nostru este necesar gruparea dup cmpul Ora, care se alege prin clic pe butonul .

86

Pentru o aezare plcut a articolelor n raport, se alege o sortare a agen ilor din fiecare grup, cresctoare dup cmpul Nume_agent.

Dintre modurile de prezentare, alegem Block, stilul Comun:

87

n final, alegem numele raportului: Agen i. Observm c aplica ia poate manevra obiecte diferite (tabel i raport) cu acelai nume.

88

Dup salvare, executm raportul prin dublu-clic pe numele su din fereastra Baz de date. Imaginea urmtoare prezint o parte din raportul Agen i.

89

10.3. Baz de date pentru gestiunea unui parc auto


Aceast aplica ie propune realizarea unei baze de date con innd informa ii despre mainile dintr-un garaj. Pentru fiecare main se vor memora informa ii cum ar fi: - tipul mainii; - destina ia: transport de persoane sau marf; - firma productoare; - data fabrica iei; - capacitatea cilindric; - numr km. parcuri; - consumul specific; - data achizi ionrii.; Aplica ia va fi dotat cu facilit i referitoare la validarea datelor introduse. Cnd numrul op iunilor (pentru valorile unei anumite date) este mic, se vor pune la dispozi ia utilizatorilor op iunile din care acetia s aleag. Vor fi prevzute principalele opera ii efectuate asupra datelor n bazele de date: - adugarea de noi date; - modificarea datelor existente; - tergerea datelor; - afiarea datelor pe ecran i la imprimant. Tipul datelor necesar a fi stocate sugereaz un inventar al garajului la un moment dat. Mainile garajului au ntre ele elemente comune (de exemplu: pot fi de aceeai marc i tip sau culoare), dup cum la momentul executrii inventarului unele maini pot fi plecate n curs. De asemenea, pot aprea maini noi n garaj. Exist date ce evolueaz datorit unor tranzac ii neeviden iate (km parcuri). Modelul informatic al unui garaj real este mai complex dect cel sugerat aici. n aceast abordare, nu considerm modificarea tabelelor, adic nu vom modela situa ii de genul: - apari ia unor maini noi; - casarea unor maini; - plecarea n curs a unor maini; - vopsirea (n alt culoare) a unor maini; - schimbarea numrului de circula ie. Singurul cmp care se modific natural, ca urmare a efecturii curselor i nu ca urmare a unor greeli sau evenimente excep ionale, este numrul de km parcuri. Formula de actualizare a acestui cmp este:
n

[numar km parcursi] = [ nr km initiali] + [nr km cursa]i


i =1

Tabelul urmtor prezint datele ce vor trebui memorate: Cmp Tipul mainii Destina ie: transport de persoane sau marf Firma productoare Data fabrica iei Capacitatea cilindric Numr km. parcuri Consumul specific Data achizi ionrii Entitate B B A C B D B C Evolutiv

Da

De aici rezult primele patru entit i: firma productoare de maini; tipul (marca) mainii; maina propriu-zis; cursa; Vom observa c, la modul general, asimilnd cursa cu un convoi auto omogen, o curs poate avea mai multe maini i mai mul i oferi.

90

Cerin ele problemei specific validarea datelor introduse. Validarea este un instrument informatic ce mpiedic apari ia unor greeli de introducere simple ct i a unor inconsisten e greu de verificat fr instrumente informatice (exemplu: coduri unice atribuite repetat). Bazele de date rela ionale s-au ndeprtat puternic de modelul validrii batch, care se aplic post-factum pe loturi de date, deoarece au introdus integritatea referen ial bazat pe chei unice, chei strine i verificri simple (numerice, logice) nglobate direct n baza de date i nu n program. Validrile bazate pe integritatea referen ial sunt ns adeseori completate cu validri-program pe formularele de introducere. n cele ce urmeaz, vom n elege garajul ca o unitate (agent economic) ce dispune de maini cu care efectueaz curse. Aceste curse determin tranzac ii, stocate fiecare din ele n baza de date. Ca urmare a curselor, se modific numrul de km. parcuri de fiecare main. Iat cum arat fereastra Relationships a bazei de date.

Cu excep ia col ului din stnga-jos, unde sunt specificate dou interogri necesare pentru calculul numrului de km. parcuri, toate celelalte sunt tabele, avnd rela ii ntre ele. n plus fat de tabele definite deja, n procesul de analiz s-au considerat necesare i: oferi; culori (ale mainilor); tip transport; date (adic tranzac iile curselor). Cursele sunt cele care determin tranzac iile. oferii fac parte integrant din resursele principale ale curselor, mpreun cu mainile. Culorile nu apar la fel de importante, ns n proiectare unei baze de date amnuntele sunt semnificative. Am disociat tip transport de marca mainii, deoarece reprezint o caracteristic comun mai multor maini, ca i culorile mainilor (pot fi mai multe astfel de caracteristici comune: cauciucuri, tip carburant, ulei, practic lista poate fi mare, dar ne vom limita la acestea dou). Datele (tranzac iile curselor) construiesc numrul de km. parcuri ai fiecrei maini. Rela iile sunt toate de tipul 1 - n, avnd fiecare coduri interne ale bazei de date cu cheie unic pe partea 1 a rela iilor (reprezentat cu bold). Tabelul Date are cheie unic pe toate cele 3 cmpuri concatenate, pentru asigurarea unei normalizri suficiente i protec ie la duplicate incorecte. Acest lucru se realizeaz astfel: dup definirea numelui cmpurilor, a tipului i descrierii lor, se selecteaz cu butonul Shift inut apsat toate cmpurile tabelului i din bara de instrumente Table Design. se efectueaz clic pe butonul Primary Key Selec ia cmpurilor se face prin tragere de mouse, n fa a numelui cmpurilor, pe zona gri. Rezultatul este prezentat n imaginea urmtoare.

91

Urmtoarea imagine prezint fereastra Baz de date a aplica iei, cu obiectele de tip tabel.

Paii necesari realizrii aplica iei sunt urmtorii: 1. Proiectarea pe hrtie a structurilor de date, conform modelului entitate-rela ie; 2. Crearea n access a tabelelor (cmpuri, indeci, chei unice, validri interne), adic a celor 8 tabele din structura anterioar; 3. Legarea tabelelor, prin rela ii, asigurnd integrit ile referen iale cu cheia strin (secundar); 4. Proiectarea pr ii vizuale a formularelor (fr elemente de programare VBA access); 5. Adugarea de cod de validare vba pe cmpurile de introducere date ale formelor; 6. Legarea (dup o logica simpl) a formularelor ntre ele, prin cod vba; 7. Crearea rapoartelor i conectarea prin diverse controale; 8. Crearea de interogri nglobate pentru aflarea numrului de km parcuri.

92

S-au folosit controale vizuale: cmpuri text/numerice/date calendaristice, combo, liste, butoane, control-tab. S-au folosit att forme simple, ct i mai complexe (tab-uri, masterdetail), pentru care Access ofer suport puternic i accesibil. S-au folosit controalele de navigare implicite ale Access. Toate cheile unice sunt pe cmpuri de tip Autonumerotare (secven e). Urmtoarea imagine prezint fereastra Baz de date a aplica iei, cu obiectele de tip formular.

Formularul Startup se autolanseaz. Codul Visual Basic este urmtorul Option Compare Database Private Sub Detail_Click() End Sub Private Sub Form_Open(Cancel As Integer) DoCmd.SelectObject acForm, "Startup", True DoCmd.Minimize DoCmd.Hourglass False End Sub Private Sub Start_Click() On Error GoTo Err_Start_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "Curse" DoCmd.Close DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Start_Click: Exit Sub Err_Start_Click: MsgBox Err.Description Resume Exit_Start_Click End Sub Imaginea formularului care se deschide automat la lansarea aplica iei este urmtoarea:

93

Dup clic pe butonul , acest formular lanseaz formularul Curse, care este practic cel mai complex formular al aplica iei. n continuare sunt oferite trei imagini ale acestui formular, pentru a prezenta respectiv: resursele cursei, resursele pentru toate cursele i distan a total parcurs.

94

Schema obiectelor este urmtoarea:

95

Formular

Cod Cursa Data Start Data Sfarsit Resursele Cursei

Distanta (km) Note

Curse

Grid R/W (soferi,masini)

Forma Soferi Forma Masini

Buton soferi Buton masini Buton Preview Buton Listare Buton Adaugare Buton Stergere

Raport: Curse

Resursele tururor curselor Distanta Parcursa Totala

Grid R/O (soferi,masini-total) Grid R/O (distante pe masini)

Observa ii: - sge ile groase deschid prin dublu clic (pe grid) op iunile respective; - sge ile groase punctate deschid prin clic op iunile respective. Codul formularului Curse este urmtorul: Option Compare Database Private Sub AddSofer_Click() On Error GoTo Err_AddSofer_Click DoCmd.GoToRecord , , acNewRec Exit_AddSofer_Click: Exit Sub Err_AddSofer_Click: MsgBox Err.Description Resume Exit_AddSofer_Click End Sub Private Sub Data_Sfarsit_Exit(Cancel As Integer) On Error GoTo Err_Data_Sfarsit_Exit If IsNull(Me![Data Sfarsit]) Then MsgBox "Completati Data Sfarsit" Cancel = -1 Else If Not IsNull(Me![Data Start]) Then If Me![Data Start] > Me![Data Sfarsit] Then MsgBox "Data de sfarsit nu poate fi inaintea datei de start" Cancel = -1 End If End If

96

End If Exit_Data_Sfarsit_Exit: Exit Sub Err_Data_Sfarsit_Exit: MsgBox Err.Description Resume Exit_Data_Sfarsit_Exit End Sub Private Sub Data_Start_Exit(Cancel As Integer) On Error GoTo Err_Data_Start_Exit If IsNull(Me![Data Start]) Then MsgBox "Completati Data Start" Cancel = -1 Else If Not IsNull(Me![Data Sfarsit]) Then If Me![Data Start] > Me![Data Sfarsit] Then MsgBox "Data de sfarsit nu poate fi inaintea datei de start" Cancel = -1 End If End If End If Exit_Data_Start_Exit: Exit Sub Err_Data_Start_Exit: MsgBox Err.Description Resume Exit_Data_Start_Exit End Sub Private Sub DeleteBtn_Click() On Error GoTo Err_DeleteBtn_Click DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 Exit_DeleteBtn_Click: Exit Sub Err_DeleteBtn_Click: MsgBox Err.Description Resume Exit_DeleteBtn_Click End Sub Private Sub Distanta_Exit(Cancel As Integer) On Error GoTo Err_Distanta_Exit If IsNull(Me![Distanta]) Or Me![Distanta] = 0 Then MsgBox "Distanta cursei trebuie sa fie mai mare ca zero" Cancel = -1 End If DoCmd.Requery DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70 [Note].SetFocus Exit_Distanta_Exit: Exit Sub Err_Distanta_Exit: MsgBox Err.Description Resume Exit_Distanta_Exit End Sub Private Sub Open_Soferi_Click() On Error GoTo Err_Open_Soferi_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "Soferi"

97

DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Open_Soferi_Click: Exit Sub Err_Open_Soferi_Click: MsgBox Err.Description Resume Exit_Open_Soferi_Click End Sub Private Sub Open_Masini_Click() On Error GoTo Err_Open_Masini_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "Masini" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Open_Masini_Click: Exit Sub Err_Open_Masini_Click: MsgBox Err.Description Resume Exit_Open_Masini_Click End Sub Private Sub TabCtl10_Change() On Error GoTo Err_TabCtl10_Change DoCmd.Requery DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70 Exit_TabCtl10_Change: Exit Sub Err_TabCtl10_Change: MsgBox Err.Description Resume Exit_TabCtl10_Change End Sub Private Sub PreviewBtn_Click() On Error GoTo Err_PreviewBtn_Click Dim stDocName As String stDocName = "Curse" DoCmd.OpenReport stDocName, acPreview Exit_PreviewBtn_Click: Exit Sub Err_PreviewBtn_Click: MsgBox Err.Description Resume Exit_PreviewBtn_Click End Sub Private Sub PrintBtn_Click() On Error GoTo Err_PrintBtn_Click Dim stDocName As String stDocName = "Curse" DoCmd.OpenReport stDocName, acNormal Exit_PrintBtn_Click: Exit Sub Err_PrintBtn_Click: MsgBox Err.Description Resume Exit_PrintBtn_Click End Sub

Formularul Maini permite vizualizarea datelor i introducerea de noi articole n baza de date.

98

Butonul

ac ionat cu dublu clic deschide forma de editare/adugare item list. Butonul permite tiprirea

permite vizualizarea unui raport asupra mainilor. Butonul acestui raport, iar butonul

permite tergerea unui maini din baza noastr de date.

Formularul Tip_Transport este mai simplu:

Codul VBA al acestui formular este urmtorul: Option Compare Database Private Sub Form_Load() If Me.OpenArgs = "GotoNew" And Not IsNull([Cod Tip Transport]) Then

99

DoCmd.DoMenuItem acFormBar, 3, 0, , acMenuVer70 End If End Sub Private Sub SaveBtn_Click() On Error GoTo Err_SaveBtn_Click DoCmd.DoMenuItem acFormBar, acMenuVer70 Exit_SaveBtn_Click: Exit Sub Err_SaveBtn_Click: MsgBox Err.Description Resume Exit_SaveBtn_Click End Sub

acRecordsMenu,

acSaveRecord,

Private Sub DelBtn_Click() On Error GoTo Err_DelBtn_Click DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 Exit_DelBtn_Click: Exit Sub Err_DelBtn_Click: MsgBox Err.Description Resume Exit_DelBtn_Click End Sub Private Sub ExitBtn_Click() On Error GoTo Err_ExitBtn_Click DoCmd.Close Exit_ExitBtn_Click: Exit Sub Err_ExitBtn_Click: MsgBox Err.Description Resume Exit_ExitBtn_Click End Sub Dintre rapoartele ce se pot realiza n cadrul aceastei aplica ii, prezentm Curse i Tip main:

100

Interogrile Distan e i Distante Query sunt prezentate n continuare. Fereastra interogrii Distan e presupune adugarea tabelelor Date i Curse, iar n grila QBE a cmpurilor Cod Identificare Masina, Cod Cursa din tabela Date i a cmpului Distan a din tabelul Curse.

Comanda SQL corespunztoare interogrii este: SELECT DISTINCT Date.[Cod Identificare Masina], Date.[Cod Cursa], Curse.Distanta FROM Curse INNER JOIN [Date] ON Curse.[Cod Cursa]=Date.[Cod Cursa]; Aceast comand este vizibil dac din meniul View se alege op iunea SQL View.

101

Interogarea Distante Query necesit adugarea tabelelor Masini i Distante, iar n gril se includ cmpurile Cod Identificare Masina, Numr Main, Nr Km Ini iali din tabela Maini i cmpul calculat Distan e Parcurse, aflat pe baza valorilor cmpului Distan a din tabela Distan e. n plus, se afieaz articolele sortate ascendent dup primul cmp al interogrii.

Comanda SQL aferent acestei interogri este: SELECT DISTINCTROW Masini.[Cod Identificare Masina], Masini.[Numar Masina], Masini.[Nr Km Initiali], Sum(Distante.Distanta) AS [Distante Parcurse] FROM Masini LEFT JOIN Distante ON Masini.[Cod Identificare Masina] = Distante.[Cod Identificare Masina] GROUP BY Masini.[Cod Identificare Masina], Masini.[Numar Masina], Masini.[Nr Km Initiali] ORDER BY Masini.[Cod Identificare Masina]; Func iile aplica iei Aplica ia Garaj asigur gestiunea operativ a principalelor resurse ale unui garaj (privit ca un agent economic), care efectueaz curse cu maini i oferi. Fiecare curs este memorat individual: - data start a cursei; - data sfrit a cursei; - distan a cursei; - note despre curs; - maini n curs (pot fi mai multe ntr-o curs); - oferi n curs (pot fi mai mul i ntr-o curs). Se pot aduga resurse (maini, oferi) la garaj. Se pot terge doar cele complet nefolosite. Pot exista mai multe maini de acelai tip n garaj. Cursele determina tranzac iile curselor: Tranzac ie=(cod curs, cod main, cod ofer). Aplica ia este scris n Microsoft Access 2000, constnd dintr-un fiier Garaj_lg.mdb (conform paradigmei Access, acesta con ine tabele, rela iile ntre tabele, formulare, rapoarte, interogri, codul VBA). Pentru introducerea datelor se folosesc formulare cu func ii de validare (care ghideaz utilizatorul). Func iile aplica iei sunt cele generale ale unei aplica ii de baze de date, dar i specifice. Pe scurt, aplica ia Garaj memoreaz utilizarea n curse a resurselor (maini, oferi) pentru o anumit perioad de timp, furniznd un punct de vedere ra ional asupra gradului de utilizare a acestor resurse, ct i asupra distan elor parcurse sau planificarea consumului de carburant pentru curse. Func ia principal este aceea c ofer managementului garajului

102

suport att pentru deciziile operative, ct i pentru planificare i pentru control, avnd n centrul aten iei cursele auto. Toate intrrile/ieirile sunt conforme cu schema: Utilizator Aplica ie Microsoft Access Sistem de operare PC hard disc PC monitor PC imprimant Elementele vizuale (formulare i rapoarte) ale aplica iei au fost deja prezentate. Formularul autoexecutabil Startup determin lansarea formularului Curse (ecranul principal al aplica iei). Gridul Resursele cursei este manevrabil cu instrumente implicite (tastele Insert, Delete, Escape) la nivel de rnd, pe care se face i validarea. Dublu clic pe cmpurile Maini, oferi ale grid-ului din Resursele cursei lanseaz formularele Maini/oferi (ceea ce se poate face i cu butoanele respective). n aplica ie, simbolul introducere date (sau editare). este alturat unei liste ce ramific programul spre forme de

Posibilit i de modernizare/dezvoltare a aplica iei Avnd n vedere c este vorba de o aplica ie simpl, posibilit ile de modernizare/dezvoltare sunt vaste: adugarea de validri suplimentare att pe baza de date propriu-zis, ct i pe formulare; adugarea ca tranzac ii noi a celor determinate de cumprarea/vnzarea unor maini din garaj; adugarea ca tranzac ii a consumului efectiv de combustibil (curse, maini); adugarea diagramelor de planificare a resurselor garajului; adugarea unor rapoarte de consum de combustibil; crearea unei aplica ii mono-formular (formularele multiple pot fi obositoare); adugarea suportului tranzac ional multi-user; trecerea la modelul client/server.

103

10.4. Baz de date pentru contabilitatea TVA


Aplica ia Access prezentat n acest paragraf a fost realizat n scopul automatizrii contabilit ii TVA din cadrul unei societti comerciale, pe care s o numim, fictiv, SC ADES SA. Aplica ia urmrete eficientizarea activit ii contabile, a intrrilor i a ieirilor de mrfuri cu documentele aferente acestei activit i. Societatea comercial ADES SRL are ca obiect principal de activitate comer ul cu ridicata al mrfurilor alimentare. Se dorete, ca n baza eviden elor corespunztoare facturilor de intrri i ieiri s se realizeze rapoartele jurnal de cumprare i vnzare pentru luna decembrie 2004; din acestea se extrag situa iile 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 propriet ilor elementare ale obiectelor care intereseaz n cadrul SC ADES SA, gruparea acestora, n func ie de criterii de omogenitate stabilite, n scopul descrierii obiectelor lumii reale i a rela iilor dintre ele. Sunt definite regulile de care trebuie s se in seama n manevrarea datelor existente. Pe baza regulilor de gestiune se stabilesc cardinalit i sau conectivit i ntre realizrile atributelor din entit i i cele ale propriet ilor din asocieri (coresponden e). Acestea exprim maniera de participare a valorilor atributelor din entit i la fiecare apari ie 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 entit i, 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 coresponden elor ntre aceste entit i 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 rela ie 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 clien i, este o rela ie de 1 la n, coresponden a este RECEPTIE; t_fact_client cu t_fact_client_prod, rela ia este de 1 la n, coresponden a este LINIE FACTURA - PRODUSE CLIENT.

Stabilirea cardinalit ilor Coresponden a EMITE a) dinspre entitatea furnizor (1, n) - un furnizor emite cel pu in o factur (cardinalitate 1) - un furnizor poate emite mai multe facturi (cardinalitate n) b) dinspre entitatea factur (1, 1) - factura este emis de cel pu in i de cel mult un furnizor (cardinalitate 1, 1) Coresponden a LINIE FACTURA PRODUSE FURNIZOR a) dinspre entitatea factura (1, n) - factura con ine cel pu in un produs (cardinalitate 1) - factura poate con ine mai multe produse (cardinalitate n) b) dinspre entitatea produse (1, n) - un produs este inclus n cel pu in o factur (cardinalitate 1) - un produs poate fi inclus n mai multe facturi (cardinalitate n)

104

Coresponden a RECEPTIE a) dinspre entitatea client (1, n) - un client primete cel pu in o factur (cardinalitate 1) - un client poate primi mai multe facturi (cardinalitate n) b) dinspre entitatea factura (1, 1) - factura este recep ionat de cel pu in i de cel mult un client (cardinalitate 1,1) Coresponden a LINIE FACTURA - PRODUSE CLIENT a) dinspre entitatea factur (1, n) - factura con ine cel pu in un produs (cardinalitate 1) - factura poate con ine mai multe produse (cardinalitate n) b) dinspre entitatea produse (1, n) - un produs este inclus n cel pu in o factur (cardinalitate 1) - un produs poate fi inclus n mai multe facturi (cardinalitate n). Nivelul logic sau modelul rela ional al datelor Modelul logic al datelor este reprezentat de urmtoarea colec ie 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 societ i 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 rela iile ntre entit ile 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 con in (nume, organizare, localizare, etc.), componentele fiecrui fiier (lungime, cmpuri), cile de acces la componentele tabelelor (indeci, rela ii, legturi ntre tabele). Rela ii 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 redundan a. Tabelele astfel rezultate se rela ioneaz, adic se leag prin rela ii. n figura urmtoare se poate observa fereastra de rela ii a bazei de date.

105

Primul pas n stabilirea rela iilor ntre tabelele bazei de date const n alegerea tipului de rela ie folosit: n aceast aplica ie, toate cele patru rela ii sunt de tipul 1 - n. Urmeaz realizarea acestor rela ii: se deschide fereastra Rela ii 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 rela ii se bifeaz op iunile Impunere integritate referen ial, Actualizare n cascad cmpuri corelate, tergere n cascad cmpuri corelate.

106

Formulare Formularele acestei aplica ii 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 aplica ii formularele ndeplinesc func ii 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. Aplica ia con ine urmtoarele formulare : 1. Formularul principal, n care sunt eviden iate func iile acestei aplica ii:

2. Formularul cu datele de identificare ale societ ii:

107

3. Formularul cu datele despre furnizorii de produse:

4. Formularul ce con ine facturile emise de furnizorii societ ii ADES SA, cu produsele achizi ionate de la acetia:

5. Formularul cu datele de identificare ale clien ilor:

108

6. Formularul ce con ine facturile emise clien ilor de ctre SC ADES SA, cu produsele vndute acestora:

7. Subformular ce con ine facturile emise de furnizori cu produsele aferente achizi ionate de SC ADES SA :

109

8. Subformular ce con ine facturile emise clien ilor de societate:

Interogri Interogrile sunt realizate pentru extragerea datelor i afiarea organizat a acestora n diferite modalit i necesare utilizatorilor. Interogrile realizate n cadrul acestei aplica ii 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 clien ilor 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.

110

La execu ia cererii, se ob in 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 ob ine prin adunarea bazei de impozitare cu valoarea TVA.

111

Rapoarte Rapoartele sau situa iile 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. Diferen a 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 aplica ii sunt urmtoarele: 1. Decontul privind taxa pe valoarea adugat, este un document contabil, o declara ie financiar, ce se ntocmete de societate n cadrul compartimentului financiarcontabil pentru fiecare lun. Documentul prezentat reflect activitatea de vnzare-cumprare a societ ii pentru luna decembrie 2004, valoarea facturilor emise de furnizori ctre SC ADES SA, precum i valoarea facturilor emise de SC ADES SA ctre clien i, 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 aplica ie i sunt: - 19% pentru opera iunile 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.

112

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 pre ul 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, diferen a 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 func ia 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.

113

Din decontul SC ADES SA aferent lunii decembrie 2004 rezult urmtoarele: Valoarea total a facturilor recep ionate 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 clien ilor cu cota de 19% i 9% este de 89.301.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 ob inem TVA-ul de plat ctre bugetul de stat de 2.077.120 lei datorit faptului c societatea a nregistrat venituri din vnzarea mrfurilor. 2. Jurnalul pentru cumprri este un document contabil n care sunt reflectate achizi iile de produse, cumprrile efectuate de SC Ades SA. Jurnalul de cumprri al societ ii este:

114

Acest raport este ob inut prin execu ia raportului rpt_jc:

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

115

11. Teste
Testele prezentate n acest capitol ofer posibilitatea autoevalurii, con innd subiecte similare celor propuse la examenele de baze de date sau de licen (pentru specializrile profilului Economic). Fiecare din testele 11.1 11.5 con ine 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 con in cte 8 itemi pentru care rspunsul trebuie dezvoltat, precum i o aplica ie care necesit parcurgerea tuturor etapelor de realizare a unei baze de date, fiind potrivite abordrii n colectiv.

11.1 Testul 1
1. Indicele de calitate a informa iei ce exprim necesitatea de a se dispune de ct mai multe informa ii (dac este posibil, de toate informa iile) referitoare la un sistem economic analizat se numete: a. Precizie b. Oportunitate c. Completitudine d. Concizie e. Actualitate 2. Preciza i care dintre variante indic alegerea corect a cheilor candidate i cea mai bun alegere a cheii primare, pentru rela ia 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 rela ia Personal, ce con ine informa ii despre angaja ii unei fabrici de confec ii: 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 confec ii 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 con innd numele, prenumele i salariul tuturor angaja ilor Lista con innd marca i profesia angaja ilor sec iei 1 Lista con innd numele, prenumele i salariul angaja ilor sec iei 1 Totalul salariilor angaja ilor Toate informa iile con inute n tabela de date

4. Obiectele Microsoft ACCESS care permit accesul la date prin intermediul browserelor Internet sunt: a. Tabelele b. Formularele

116

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. Opera ia care s-a realizat n cadrul schemei de mai jos este: Surs Iai Surs Iai Iai Iai Iai Iai a. b. c. d. e. Destina ie Bacu Bucureti Pacani Vaslui Cluj-Napoca Proiec ia Intersec ia Jonc iunea Diviziunea Selec ia Cost 100000 300000 40000 120000 400000 Destina ie Bacu Cost 100000 Destina ie Bacu Bacu Bacu Bacu Cost 250000 200000 300000 100000

Surs Bucureti Gala i Constan a Iai

7. Indica i tipul rela iei reprezentate conceptual prin diagrama de mai jos: CURSURI GRUPE

a. b. c. d. e.

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

8. Redundan a 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 b. Identificarea utilizatorilor bazei de date prin nume sau cod c. Autentificarea utilizatorilor prin parole d. nln uirea tranzac iilor solicitate simultan pe aceeai baz de date i deservirea ulterioar a acestora e. Gestiunea unui jurnal de tranzac ii.

117

11.2 Testul 2
1. Atributul se definete ca fiind: a. O proprietate a unei entit i sau a unei asocieri b. Corespondentul unui obiect din lumea real c. O instan iere a unei entit i d. O legtur logic ntre dou realizri de entitate e. O colec ie de instan e de entitate de acelai tip 2. Formularul de analiz (utilizat n faza de analiz a sistemului informa ional existent) care con ine: volumul i periodicitatea documentelor, timpul estimat pentru completarea acestora, tipul lor (de intrare sau de ieire), forma documentelor (tipizate sau nu) precum i necesitatea documentelor se numete: a. Gril informa ional b. Lista purttorilor de informa ie c. Flux informa ional d. Lista procedurilor existente e. Chestionar de opinie 3. Categoria de personal care se ocup cu asigurarea securit ii datelor i a cererilor de informa ie 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 rela ia Contracte (Cod-contract, Tip, Client, Data) care stocheaz date despre contractele ncheiate de firma de leasing X cu clien ii 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: a. b. c. d. Lista clien ilor firmei X Lista contractelor cu cea mai mare valoare Lista contractelor ncheiate ntre 1 ianuarie 2003 i 30 iunie 2003 Numrul clien ilor 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

5.

Care din urmtoarele afirma ii este fals? a. Datorit utilizrii pe scar larg a calculatoarelor i a echipamentelor electronice cuplate la acestea, majoritatea sistemelor informa ionale au o component informatic. b. Sistemul informa ional asigur legtura ntre sistemul de conducere i sistemul de execu ie. c. Sistemul informa ional are un rol de interfa ntre unitatea economic i mediul exterior. d. Un sistem informa ional se creeaz i se dezvolt odat cu activitatea pe care o reflect, iar delimitarea lui se realizeaz prin acte normative. e. Sistemul informa ional este un subsistem al celui informatic

118

6. O regul de validare are urmtorul rol: a. Realizeaz ini ializarea 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 opera ie a algebrei rela ionale se poate ob ine lista cu localit ile de domiciliu ale studen ilor: Localitate Iai Bacu Constan a pornind de la urmtoarea rela ie STUDENT: Nume_student Traian Marius Ionescu Maria Dobre Raluca Popovici Ioana Filipescu Alexandru Iordan Mihai a. b. c. d. e. Reuniune. Proiec ie. Selec ie. Diviziune. Intersec ie. Sec ie CIG Biologie CIG Matematic Biologie CIG Localitate Iai Bacu Iai Constan a Constan a Bacu

8. Dac un cmp are defini ia 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. Rela ia CORESPONDEN I, cu structura i con inutul: ara Fran a 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.

119

11.3 Testul 3
1. Opera iile 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. Re ea c. Rela ional d. Func ional e. Soft pentru gestiunea unui depozit de date 3. Fie rela ia CATALOG(nr_matricol, nume, an, nota) care con ine date despre studen ii sec iei 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 studen ilor cu note mai mari dect 8, din anii 2 i 3. b. Lista studen ilor din anii 2 i 3 i nota lor la concurs, ordonat descresctor dup not. c. Lista numelor i notelor studen ilor din anii 2 i 3, cu note ntre 8 i 10, sortat alfabetic (cresctor) dup nume. d. Lista numelor i notelor studen ilor cu note ntre 8 i 10. e. Afiarea mediei notelor ob inute la concurs de studen ii din anii 2 i 3 4. Func ia totalizatoare COUNT, folosit ntr-o interogare de selec ie SQL ACCESS, returneaz: a. Numrul de nregistrri care respect condi iile 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 mul i clien i i un client se poate aproviziona de la mai mul i furnizori, rela ia ntre entit ile FURNIZORI i CLIEN I este de tip: a. 1-1 b. 1-n c. n-1 d. m-n e. nici unul din tipurile a,b,c,d

120

7. Una sau mai multe colec ii de date aflate n interdependen , mpreun cu descrierea datelor i a rela iilor 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 afirma ii este fals? a. Datele sunt independente de prelucrri b. Totdeauna, redundan a datelor este nul c. Redundan a datelor este controlat d. Este asigurat confiden ialitatea datelor e. Pot fi utilizate tehnici de prelucrare pentru mbunt irea timpului de optimizare. 9. O comand Macro reprezint: a. Un obiect care con ine proceduri definite de utilizator, scrise n Visual Basic b. Un obiect care con ine o defini ie structurat a uneia sau mai multor ac iuni pe care ACCESS le realizeaz ca rspuns la un anumit eveniment c. Un obiect care permite vizualizarea informa iilor ob inute 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.

121

11.4 Testul 4
1. Fie asocierea CLIENT FACTURA

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

Preciza i care dintre urmtoarele tupluri poate fi adugat n tabela FACTURA, astfel nct pentru atributul CodClient s fie satisfcut proprietatea de integritate referen ial: 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 colec ii de date se prezint n a treia form normal. a. PRODUSE1 CodProductor Gr11 Sp20 Ro30 b. PRODUSE2 CodProductor Gr11 Sp20 Ro30 Gr12 Sp22 c. PRODUSE3 CodProductor Gr11 Sp20 Ro30 Gr12 Sp22 TIP Con inutZahr z1000 z0800 z0450 ara Grecia Spania Romnia Caracteristici Varietatea1; Recolta2 Varietatea1; Recolta2 Varietatea2; Recolta1

ara Grecia Spania Romnia Grecia Spania

Con inutZahr z1000 z0800 z0450 z1000 z0800

Productor Alexis Jose Tudor Alexis Jose

ara Grecia Spania Romnia Grecia Spania

Con inutZahr z1000 z0800 z0450 z1000 z0800

Productor Alexis Jose Tudor Alexis Jose

Productor Alexis Jose Tudor

122

d. PRODUSE4 ara Grecia Spania

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. Preciza i care dintre urmtoarele func ii (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: a. O solu ie hardware viitoare b. O tehnologie existent c. Func ie de cunotin ele actuale ale programatorilor d. Independent de echipamente i software e. n conformitate cu un sistem deja existent 6. Care dintre urmtoarele aspecte este esen ial 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 con in cel pu in 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 entit ii CLIEN I? 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

123

d. Nu sunt admise imbricri ale formularelor e. Oricte se dorete. 9. Dat tabela DenumireProdus Carton Canson Vopsea acrilic Creion B3 Pnz pictur Crbune desen Gestiune 1 1 2 3 2

PRODUSE CodProdus A201 A205 A700 X309 B285

alege i varianta care conduce la ob inerea rela iei 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.

124

11.5 Testul 5
1. Fie rela iile STUDEN I NumeStudent Ionescu Mihai Popa Angela Zaharia Florin i NOTE1 NumrMatricol 101 103 107 Rela ia LISTA NumeStudent Ionescu Mihai Popa Angela Zaharia Florin NumrMatricol 101 103 107 NotaProgramare 9 8 10 NotaProgramare 9 8 10 NumrMatricol 101 103 107

este rezultatul unei opera ii: a. UNION (STUDEN I, NOTE1) b. MINUS (STUDEN I, NOTE1) c. SELECTION (STUDEN I, NotaProgramare>=7) d. PROJECT (STUDEN I, NotaProgramare) e. JOIN (STUDEN I, NOTE1; STUDEN .NumrMatricol=NOTE1. NumrMatricol) 2. Dat rela ia CARTE(Autor, Titlu, ISBN, Pre ), preciza i care dintre urmtoarele fraze SELECT va furniza titlurile cr ilor cu pre ul 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)); preciza i 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);

125

4. ntr-o baz de date, alegerea arhitecturii de stocare a datelor nu trebuie s fie influen at de: a. Cantitatea de date ce urmeaz a fi memorat b. Numrul de utilizatori ce vor accesa datele c. Numrul de tranzac ii pe unitate de timp d. Limbajul de programare cunoscut de ctre managerul unit ii beneficiare e. 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 integrit ii entit ii e. O violare a integrit ii referirii 6. Un obiect Access care con ine o defini ie structurat a uneia sau mai multor ac iuni 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 ini ial (Default Value) e. Cmp memo 8. Dac U este o mul ime de atribute i se manifest dependen a XY, atunci regula de inferen : {XY, ZU} XZYZ se numete: a. Reflexivitatea dependen elor func ionale b. Amplificarea dependen elor func ionale c. Tranzitivitatea dependen elor func ionale d. Complementarea dependen elor multivaloare e. Tranzitivitatea dependen elor multivaloare 9. Structura care con ine informa ii i metode de prelucrare a acestora se numete: a. Dic ionar b. Obiect c. Clas d. Ierarhie e. Mesaj.

126

11.6 Testul 6
1. date: Preciza i ordinea corect a etapelor ce trebuie urmate n proiectarea unei baze de a. b. c. d. e. f. g. h. i. j. alegerea SGBD-ului ncrcarea datelor proiectarea schemei interne proiectarea schemei externe proiectarea schemei conceptuale analiza structural analiza cerin elor informa ionale analiza temporal integrarea modelelor exploatarea i ntre inerea

2. Restric iile de integritate de comportament: a. se definesc prin egalitatea sau inegalitatea unor valori din cadrul rela iilor b. sunt proprii unei anumite baze de date rela ionale c. sunt obligatoriu de definit. Preciza i o restric ie de comportament pentru o baz de date n care figureaz rela ia: PENSIONAR(Nume, Prenume, Vrsta, Adresa) 3. Fie rela ia OLIMPIADA, ce con ine informa ii despre elevii participan i la un concurs de informatic organizat la Bacu: Legitima ie 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 ob inut cel pu in 50 de puncte, n ordinea descresctoare a punctajului. Cte tupluri con ine rezultatul? S se scrie numerele de legitima ie corespunztoare acestor tupluri. 4. Transforma i rela ia de mai jos (de tip REVISTE AI Journal PC Magazine CD Forum ) n dou rela ii 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?

127

6. Ce este un depozit de date? Indica i cteva elemente specifice unui depozit de date. 7. Cum se realizeaz protec ia unei baze dae date la nivel utilizator? 8. Cum pot fi accesate bazele de date Access pe Internet? 9. Aplica ie. Catedra de Informatic organizeaz un simpozion cu participare interna ional. Pentru aceasta, responsabilul cu activitatea tiin ific decide implementarea unei baze de date rela ionale. Se dorete ca, utiliznd datele incluse n baza de date, s se ob in urmtoarele informa ii: - Lista sec iunilor simpozionului (codul i denumirea) - Lista lucrrilor iin ifice prezentate pe sec iuni - Lista lucrrilor tiin ifice pe Institute de nv mnt Superior, n numele crora s-au nscris lucrrile la simpozion - Lista autorilor (nume, prenume, adresa profesional i adresa personal) care vor sus ine lucrri pe sec iuni. Se cere s se elaboreze modelul rela ional al bazei de date.

128

11.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 implica iile accesului concurent la o baz de date? 6. Care sunt caracteristicile bazelor de date distribuite? 7. Ce este o baz de cunotin e? 8. Care sunt problemele actuale ale dezvoltrii de aplica ii cu baze de date? 9. Aplica ie. Se propune realizarea informatizrii bibliotecii unei Institu ii de nv mnt 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 mul i autori; - Exemplarele pot fi imprumutate de catre cadrele didactice, doctoranzi sau studen i; - Exemplarele se mprumut n baza unui bon de mprumut, n care se pot trece mai multe cr i imprumutate; - n momentul mprumutului se precizeaz data de mprumut i data returnrii cr ilor. Cititorilor le sunt utile urmtoarele informa ii: - 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 rela ional al bazei de date.

129

BIBLIOGRAFIE
1. 2. 3. 4. 5. 6. 7. 8. 9. [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 rela ionale. Dependen e, Editura Universit ii Al. I. Cuza, Iai, 1996 [Flo99] Florescu V., Stanciu V., Cozgarea G., Cozgarea A. Baze de date, Editura Economic, Bucureti, 1999 [Gro96] Grommes, B., Hampe K. Secretele sistemului FoxPro 2.5 pentru DOS, Editura Teora, 1996 [Lue99] Luers, T. Bazele Oracle 7, Editura Teora, 1999 [Lun95] Lungu I., Bodea C., Bdesc G., Ioni C. Baze de date. Organizare, proiectare i implementare, Editura All, Bucureti, 1995

10. [Lun96] Lungu I., Muat N., Velicaru M. Sistemul FoxPro 2.6. Prezentare i aplica ii, Editura All, 1996 11. [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 12. [Opr02] Oprea D., Airinei D., Fotache M. Sisteme informa ionale pentru afaceri, Editura Polirom, 2002 13. [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 14. [Tod04] Todoroi D., Micua D., Sptaru S., Andronatiev V., Todoroi Z., Donici S. Databases and Multimedia Communications (Teaching Aids), Series IEEE2000, Chiinu, 2004

131

S-ar putea să vă placă și