Sunteți pe pagina 1din 36

LIMBAJE I BAZE DE DATE Prof.univ.dr.

Zenovic GHERASIM OBIECTIVE Cursul de Limbaje i baze de date se desfoar n anul II, semestrul 1 al anului universitar. Obiectivele disciplinei Limbaje i baze de date se concretizeaz n cunoaterea noiunilor de baz ale organizrii datelor n vederea prelucrrii automate cu ajutorul calculatorului electronic, a elementelor fundamentale ale programrii cu exemplificri n mediul integrat de dezvoltare Visual Basic, ale bazelor de date i sistemelor de gestiune a bazelor de date (SGBD), ale SGBD Microsoft Access, precum i n ctigarea deprinderilor practice n rezolvarea cu programe pe calculator i prin intermediul bazelor de date a problemelor economice specifice domeniului financiar-bancar.

Problematica teoretic i aplicaiile practice sunt sistematizate n aa fel nct s asigure nsuirea raional i formarea gndirii informatice a studentului.
Cuvinte cheie: dat, informaie, cunotin, structuri de date, modele de date, program, programare, declaraie, instruciune, algoritm, schem logic, limbaj de programare, procedur, funcie, programare orientat pe obiecte, aplicaie informatic, Visual Basic, formular, colecie de date, baz de date, sistem baz de date, sistem de gestiune a bazei de date (SGBD), baz de date relaional, relaie, tabel, atribut, cmp, tuplu, nregistrare, domeniu, tip de dat, interogare, raport. 1. REZOLVAREA PROBLEMELOR ECONOMICE CU AJUTORUL PROGRAMELOR PE CALCULATOR. EXEMPLIFICRI N LIMBAJUL DE PROGRAMARE VISUAL BASIC 1.1. Conceptele de societate informaional societate a cunoaterii. Sistem informaional, sistem informatic, sistem bazat pe cunotine. Dat, informaie i cunotin. Noiunea de societate informaional (Information Society) descrie o economie i o societate n care colectarea, stocarea, prelucrarea, transmiterea, diseminarea i utilizarea informaiilor i cunotinelor, inclusiv dezvoltarea tehnicilor de comunicaie interactiv, au un rol decisiv. Factorii semnificativi n aceast dezvoltare sunt: nalta tehnologie (HighTech), industria, lumea lucrului (Work World), precum i toate formele de cultur n societate. Societatea informatic este o parte a societii informaionale care folosete progresele tehnicii de calcul n toate domeniile de activitate economicosocial. Societatea bazat pe cunotine (Knowledge-Based Society) este o parte a societii informatice care utilizeaz tehnologiile informaiei i ale comunicaiilor (IT&C) preponderent pentru prelucrarea datelor sub form de cunotine. Considernd un nivel superior (pe modelul de dezvoltare n spiral al societii umane), cel mai cuprinztor concept este cel de societate a cunoaterii (Knowledge Society). Societatea cunoaterii este fundamentat pe acumularea i utilizarea de date sub form de informaii i cunotine la nivel social. Dup acad. Mihai Drgnescu, societatea cunoaterii reprezint mai mult dect societatea informaional i dect societatea informatic, nglobndu-le de fapt pe acestea. Societatea cunoaterii folosete piese (pieces) ale cunoaterii. Societatea informaional are la baz sistemele informaionale, societatea informatic sistemele informatice, iar societatea bazat pe cunotine se fundamenteaz pe sistemele bazate pe cunotine (Knowledge-Based Systems). Sintagma folosit de Romano Prodi, fostul preedinte al Comisiei Europene, este de economie bazat pe cunotine (Knowledge-Based Economy, KBE); aceast KBE reprezint cea mai rafinat parte a noii economii (New Economy), prin noua economie nelegnd economia specific societii informaionale societii cunoaterii (SI - SC). Sistemul este un ansamblu de elemente dependente (componente, principii, reguli, relaii, etc.) care formeaz un ntreg organizat, pe baza unui plan prestabilit, cu scopul realizrii unui anumit obiectiv. Sistemul informaional reprezint acel sistem de prelucrare a informaiilor, mpreun cu resursele organizaionale asociate, cum sunt resursele umane, tehnice i financiare ce furnizeaz i distribuie informaia. Sistemul informatic reprezint partea automatizat a sistemului informaional ce realizeaz prelucrarea datelor i informaiilor folosind un sistem de calcul; este un ansamblu de echipamente i programe pe calculator (software) care asigur prelucrarea datelor. Sistemul bazat pe cunotine este o parte a sistemului informatic care proceseaz cunotine ntr-o cantitate determinant i semnificativ. Dup acad. Mihai Drgnescu, cunotina este informaie cu neles i informaie care acioneaz. Cunotina semnific ceea ce este cunoscut. ntr-o alt percepie, cunotinele sunt informaii dobndite prin instruire (educaie) i practic (experien). La modul general, datele sunt reprezentate convenional

prin numere, mrimi, relaii etc. i sunt folosite la rezolvarea problemelor sau sunt obinute printr-o activitate de cercetare. Informaia reprezint elementele de noutate despre un fenomen, proces etc. Noutatea caracteristic noiunii de informaie este perceput de utilizator numai n momentul intrrii n contact cu aceast informaie. Ca urmare, din punct de vedere informatic, datele sunt informaii sau cunotine reprezentate simbolic i nregistrate n vederea gestionrii (evidenei) i/sau prelucrrii. Rezultatul prelucrrii este tot o dat care, prin interpretare, se transform iniial n informaie i apoi (nu ntotdeauna) n cunotin. Caracterul de dat, informaie sau cunotin este relativ (adic se schimb n funcie de contextul ce definete nsuirea de noutate pentru informaie i de neles i utilitate prin aciune pentru cunotin). Oceanul informaional actual necesit nu numai eforturi de stocare a datelor, informaiilor i cunotinelor, dar mai cu seam de selecie, la momentul oportun a celor mai relevante i utile dintre acestea. 1.2 Noiuni fundamentale utilizate n organizarea datelor Datele sunt stocate n memoria intern i memoria extern a oricrui sistem de calcul. Organizarea datelor se refer la procesul de definire i structurare a datelor n colecii de date, precum i la realizarea legturilor ntre elementele unei colecii i ntre coleciile de date. Organizarea datelor se proiecteaz n scopul regsirii automate a acestora dup diverse criterii. Obiectivele organizrii datelor sunt, n principal, urmtoarele: timp de acces minim la date; apariia o singur dat a datelor n sistem; spaiu de memorie intern i extern pentru date ct mai mic; reflectarea prin organizare a tuturor legturilor dintre procesele economice pe care aceste date le reprezint; posibilitatea modificrii structurii datelor i a relaiilor dintre date fr a produce schimbri n programele care le gestioneaz. Tehnicile de organizare a datelor n colecii de date sunt: fiierul de date i baza de date. Fiierul de date reprezint o colecie de date memorat pe un suport tehnic ntr-o succesiune de nregistrri. Accesul la o nregistrare din fiierul de date se obine prin parcurgerea nregistrrilor fiierului n secvena n care au fost stocate (acces secvenial) sau pe baza unei chei de identificare care s permit regsirea rapid a nregistrrii (acces direct). Accesul direct se obine prin indexarea fiierelor, adic prin crearea unor tabele de indeci care pentru fiecare valoare a atributului cheie primar (atribut care permite identificarea n mod unic a unei nregistrri din fiier) s conin adresa corespunztoare (n cadrul fiierului) a fiecrei nregistrri. Baza de date este un fiier format din nregistrri (records) sau rnduri, fiecare coninnd cmpuri (fields) sau coloane, i o mulime de operaii de cutare, sortare, recombinare etc. n proiectarea i nelegerea unui sistem informatic, organizarea datelor reprezint o etap fundamental care presupune: 1. definirea, structurarea, ordonarea i gruparea datelor n colecii de date omogene; 2. stabilirea legturilor ntre date, ntre elementele unei colecii de date i ntre coleciile de date, dup o ierarhie bine precizat; 3. memorarea datelor pe un suport informaional prelucrabil ntr-un sistem de calcul. Noiunile fundamentale folosite n organizarea datelor sunt entitatea, atributul i valoarea. ntre acestea exist legturi de interdependen astfel: o entitate are mai multe atribute, iar atributele au o anumit mulime de valori; entitatea reprezint un obiect concret sau abstract definit prin proprietile sale; orice proprietate a unui obiect este exprimat printr-o pereche (ATRIBUT, VALOARE). Exemplul a) - materialul M are lungimea mare unde lungimea este atributul, iar mare este valoarea. (LUNGIMEA, MARE); Exemplul b) un client persoan fizic al unei bnci comerciale poate fi reprezentat prin mulimea de perechi: (NUME, POPESCU); (PRENUME, ION); (LOCALITATE, BUCURETI); (TELEFON, 0213211231); (CONT_BANCAR, RO15RZBR0000070002170022). Mulimea atributelor M_ATR = (NUME, PRENUME, LOCALITATE, TELEFON, CONT_BANCAR) poate fi asociat mai multor clieni ai bncii comerciale. Ca urmare, atributele nu caracterizeaz doar o entitate, ci o clas de entiti care este denumit entitate de grup. Elementele unei entiti de grup prezint drept caracteristic aceeai mulime de atribute. Ca urmare, entitile din cadrul unei entiti de grup sunt de acelai tip, definindu-se astfel un tip de entitate.

Atributul este denumit i cmp sau caracteristic. Un cmp poate lua o anumit clas de valori, fiind caracterizat de natura acestei clase de valori (de exemplu, atributul este numeric dac ia valori numerice, atributul este alfanumeric dac clasa de valori este reprezentat de iruri de caractere etc). Atributele compuse se obin prin concatenarea mai multor atribute elementare. Atributul care identific n mod unic o entitate se numete atribut-cheie. Caracteristicile care nu identific n mod unic o entitate se numesc atribute non-cheie. Din punctul de vedere al compunerii, datele se clasific n: date elementare sau scalare, adic data nu se mai divide n raport cu informaia sau cunotina pe care o reprezint; date compuse, adic formate din mai multe date elementare. Din punct de vedere logic, o dat este definit prin identificator, atribut i valoare. De exemplu: MATERIAL identificator PRET_UNITAR atribut 120000 valoare Din punct de vedere fizic, unei date i corespunde o zon de memorie de o anumit mrime care se afl la o adres absolut. 1.3 Relaiile dintre date ntre date exist relaii sau legturi diferite. ntre datele care aparin unor tipuri de entiti se pot realiza dou feluri de legturi: prim legtur se exprim prin apartenena datelor la entitate; a doua legtur se definete pentru entitile de acelai tip sau de tipuri diferite. Exemple: a) Dac se noteaz cu SALARIATI mulimea salariailor unei bnci comerciale, ntre datele a1 i a2 ce aparin acestei mulimi, se pot defini relaii de tipul: a1 are aceeai funcie de ncadrare cu a2; a1 are acelai salariu cu a2; a1 are aceeai vrst cu a2 etc. b) Se consider dou clase de entiti: PRODUSE_BANCARE i CLIENTI. ntre datele acestor dou clase de entiti se pot defini relaiile: un produs bancar poate fi achiziionat de unul sau mai muli clieni ai bncii; un client al bncii poate achiziiona unul sau mai multe produse bancare. 1.4. Structuri de date Structura de date este o colecie de date ntre care s-au stabilit un ansamblu de relaii pe baza crora funcioneaz un mecanism de selecie i identificare a componentelor. Mulimea de date, asociat structurii de date, poate cuprinde datele unui tip sau ale mai multor tipuri de entiti. Componentele structurii se identific prin nume sau prin poziia pe care o dein n structur n raport cu ordinea specificat. n situaia n care pentru localizarea unei componente se parcurg toate celelalte componente dinaintea ei, structura are acces secvenial. n schimb, atunci cnd o component poate fi selectat fr a ine seama de celelalte, structura are acces direct. Componentele unei structuri de date sunt date elementare sau sunt ele nsele structuri de date. Asupra unei structuri de date se pot efectua urmtoarele operaii: crearea (nseamn memorarea datelor iniiale pe suportul de stocare); actualizarea (schimbarea strii structurii prin adugare, modificare sau tergere de elemente, modificarea valorii sau relaiilor dintre elemente); consultarea (accesarea componentelor structurii de date); sortarea (aranjarea elementelor unei structuri de date n conformitate cu criterii prestabilite); ventilarea (divizarea unei structuri de date n dou sau mai multe structuri de date); fuzionarea (formarea unei structuri de date noi din dou sau mai multe structuri de date) etc. Structurile de date care prezint aceeai organizare i asupra crora se execut aceleai operaii formeaz un anumit tip de structuri de date. Tipul de structur de date reprezint o mulime ordonat de date ntre care s-au stabilit anumite relaii i pentru care realizarea operaiilor se efectueaz cu un grup de operatori de baz care au o anumit semantic. Dac se ia n considerare tipul componentelor, structurile de date se clasific n omogene (componentele sunt de acelai tip) i eterogene (componentele au tipuri diferite). Cnd structura de date se descompune n structuri de date de acelai tip, atunci structura obinut este denumit recursiv.

Dup nivelul de structurare al datelor, se deosebesc structura fizic (structura de date care se refer la modul de implementare pe supori tehnici informaionali) i structura logic (modul de ordonare a datelor i modul de folosire a operatorilor de tratare a datelor). Dac se ia n considerare posibilitatea modificrii valorilor i a structurilor, se identific structuri statice (pe tot parcursul existenei acestora prezint acelai numr de componente i n aceeai ordine (adic au cardinalitate finit, prin cardinalitate nelegnd numrul elementelor mulimii)) i structuri dinamice (permit modificarea valorilor i a structurii de date prin aplicarea unor operatori; aceste structuri de date au cardinalitate infinit deoarece prezint un numr nelimitat de componente). O structur logic poate fi implementat att ca structur static ct i ca structur dinamic. Exist ns i structuri logice ce nu pot fi implementate static. n organizarea datelor trebuie definit att structura logic, ct i cea fizic, deorece cele dou nivele se condiioneaz reciproc. Din punctul de vedere al tipului de structur de date, se deosebesc structuri de date punctuale, liniare, arborescente, reea, relaionale. Datele i structurile de date pot fi predefinite sau definite de utilizator. Structurile de date se folosesc, n special, n programare, iar unele dintre ele sunt fundamentale i n teoria bazelor de date (cum este, de exemplu, tabloul sau tabelul (table), care este folosit n structurarea bazelor de date relaionale). 1.5. Modele de date Modelarea datelor servete pentru prelucrarea datelor cu ajutorul calculatorului electronic. Definirea unui model de date cuprinde urmtoarele: structura modelului; operatorii care se utilizeaz la manipularea structurilor de date; stabilirea regulilor de integritate pentru meninerea corectitudinii datelor. Definirea structurii modelului cuprinde definirea obiectelor (entitilor) i a caracteristicilor asociate (atributelor). Se utilizeaz urmtoarele elemente: cmpul (cel mai mic element al structurii) grupul simplu sau compus (set compus din cmpuri multiple i grupuri) i nregistrarea (ansamblu de cmpuri sau grupuri care constituie i elementul generic al structurii). Relaiile dintre nregistrrile unei entiti (obiect) sau mai multor entiti (obiecte) independente se materializeaz ntr-o legtur dintre o realizare a nregistrrii printe i una sau mai multe realizri ale nregistrrii copil. Prin entitate se nelege un obiect al universului real ce este supus modelrii, obiect care este caracterizat de o identitate proprie, de o existen proprie i de o familie de caracteristici care semnific proprietile acestui obiect. Relaiile sunt denumite i asocieri. Pentru realizarea unei reprezentri grafice (sub form de diagrame) a structurii modelului se utilizeaz tehnica entitate-asociere care const n identificarea componentelor (entitilor), identificarea asocierilor dintre entiti i codificarea lor, identificarea atributelor i precizarea atributelor de identificare a entitilor. Fiecare entitate prezint mai multe realizri. Legturile dintre entiti sunt reprezentate prin arce neorientate sau orientate (fig.1) care stabilesc legtura ntre nodurile ce reprezint entitile participante la asociere. Semnificaia legturii este exprimat printr-un nume acordat legturii. Legtura se reprezint cu un nod etichet (sub form de romb) dispus pe arc ca nod intermediar.

Fig. 1.Reprezentarea relaiei CLIENI-PRODUSE i a cardinalitii


Tipul sau forma legturii se evideniaz cu ajutorul cardinalitii. n figura 1 este reprezentat grafic cardinalitatea legturii ntre CLIENI-PRODUSE. Cardinalitatea legturilor semnific numrul minim i numrul maxim de realizri (instane) de entitate care pot fi asociate cu o realizare a partenerului de asociere. Cardinalitatea se reprezint prin perechi de numere, cte o pereche pentru fiecare entitate din cadrul legturii. Din fig.1 se observ c un anumit produs poate fi achiziionat de mai muli clieni i un client poate cumpra mai multe produse. Perechea (1,n) este asociat entitii CLIENTI i semnific faptul c un client poate s achiziioneze un produs sau poate s achiziioneze mai multe produse. Perechea (0,n) este asociat entitii PRODUSE i semnific faptul c un produs poate s nu fie achiziionat de nici un client sau poate s fie achiziionat de mai muli clieni. ntre entiti se pot stabili urmtoarele tipuri de legturi: 1. Dup cardinalitatea asocierii i dup gradul asocierii (maximele cardinalitii) se deosebesc:

asocieri de tipul unu la unu (one-to-one); asocieri de tipul unu la muli (one-to-many); asocieri de tipul muli la muli (many-to-many). 2. Dup cardinalitatea asocierii i dup obligativitatea participrii entitilor la asociere (minimele cardinalitii) se difereniaz asocieri pariale (acele asocieri care nu oblig participarea la asociere a tuturor entitilor vizate) i asocieri totale (complete). 3. Combinat, dup gradul asocierii i dup obligativitatea participrii la asociere. 4. Dup numrul de entiti distincte care particip la asociere se definesc: asocieri binare (asocieri ntre dou entiti distincte); asocieri recursive (asocieri ale entitilor cu ele nsele); asocieri complexe (asocieri ntre mai mult de dou entiti distincte).

Atributele reprezint proprieti distincte ale entitilor. ns ele se pot referi i la asocierile dintre entiti. Dup complexitate, atributele se clasific n atribute simple sau elementare i n atribute complexe (compuse din mai multe atribute elementare). Dup realizrile pe care le pot prezenta atributele, acestea pot fi monovaloare, multivaloare, obligatorii sau opionale. Un atribut de identificare este denumit cheie, atunci cnd este caracterizat prin unicitatea valorii sale pentru fiecare instan a entitii (de exemplu, cod_client pentru entitatea CLIENTI, cod_produs, pentru entitatea PRODUSE). Atributele cheie se marcheaz prin subliniere sau printr-o sgeat spre entitatea creia i aparin.
Operatorii utilizai n modelele de date sunt citire, memorare, modificare, jonciune etc. Pentru asigurarea corectitudinii datelor se folosesc reguli de integritate. Cele mai importante modele de date sunt modelul ierarhic, modelul reea, modelul relaional i modelul orientat obiect. Modelul ierarhic conine ca structuri de baz tipuri de nregistrri care grupeaz toate atributele unei entiti. Acest model posed ierarhia ca tip de structur. Aceast ierarhie dispune de un tip de nregistrare definit ca rdcin/root i mai multe tipuri de nregistrri subordonate, legate sub form de arbore, motiv pentru care modelul este denumit i arborescent. n cazul modelului reea, datele sunt reprezentate ca la modelul ierarhic, cu deosebirea c fiecare inferior poate avea mai muli superiori. Structurile specifice modelului reea pot s fie tipul de nregistrri (asigur atributele unei entiti) i tipul de set (asigur legturile ntre tipurile de nregistrare). Modelul relaional este fundamentat pe teoria matematic a relaiilor, caracterizndu-se printr-o singur structur de date i anume relaia sau tabelul. Un astfel de model poate fi perceput ca o mulime de tabele obinute prin metoda normalizrii. Normalizarea pornete de la o mulime de atribute sau cmpuri de date i de la o mulime de dependene funcionale dintre atribute. Normalizarea permite obinerea unei scheme conceptuale a modelului relaional ntr-o form normalizat n care se elimin anomaliile de actualizare. Modelul orientat obiect este bazat pe structura denumit clas de obiecte ce este definit prin abstractizare din entitile desemnate. 1.6. Noiuni de baz specifice procesului de prelucrare automat a datelor i programrii Orice sistem de calcul (adic acel sistem tehnic care asigur execuia procesului de prelucrare automat a datelor) are n compunere, n esen, partea de hardware i partea de software. Bill Gates, patronul Microsoft spunea n anul 2002 c din totalul costurilor unui sistem de calcul, partea de hardware reprezint 5%, n timp ce partea de software reprezint 95% din totalul acelorai costuri. Problema costurilor unui sistem de calcul devine din ce n ce mai important n condiiile cerute de societatea informaional societatea cunoaterii i n conformitate cu prevederile legale referitoare la respectarea legii drepturilor de autor n domeniul software. Partea de software a unui sistem de calcul cuprinde, la rndul ei, software-ul de baz (sistemul de operare sau sistemul de programe de baz) i software-ul de aplicaie (sau sistemul de programe aplicative). Un sistem informatic are funcia de prelucrare automat a datelor pentru obinerea informaiilor necesare procesului de conducere sau de informare. Procesul de prelucrare automat a datelor presupune existena simultan a urmtoarelor elemente: sistemul de echipamente (hardware), sistemul de programe de baz, sistemul de programe aplicative, datele de intrare ce sunt supuse proceselor de prelucrare automat i datele de ieire sau rezultatele prelucrrilor. n esen, acest proces de prelucrare automat a datelor este format din trei etape: introducerea (citirea) datelor de intrare, prelucrarea datelor (efectuarea calculelor) i extragerea (scrierea) rezultatelor. Este de reinut c datele de intrare sunt introduse printr-o operaie de citire - read, iar datele ce reprezint rezultate sunt obinute printr-o operaie de scriere write sau de tiprire - print a rezultatelor.

Datele ce sunt prelucrate pe un sistem de calcul sunt organizate ntr-o form avantajoas pentru aplicaia informatic i sunt reprezentate ntr-o structur accesibil calculatorului. Datele sunt organizate n colecii de date n funcie de condiiile specifice impuse de sistemul informaional existent i de dorinele utilizatorilor finali din procesul de decizie. Procesul de prelucrare automat a datelor are loc ntr-o succesiune controlat de operator, adic, n accepiunea clasic, de acel utilizator final specializat n operarea pe sistemul de calcul. Etapele procesului de prelucrare a datelor pe calculator sunt materializate n urmtoarele operaii: pregtirea datelor iniiale, de regul manual, n vederea introducerii lor n procesul de prelucrare automat (citire), ce presupune verificarea, sortarea i codificarea acestor date n funcie de documentele primare existente; verificarea datelor presupune confirmarea concordanei ntre valorile prezente n documentele primare i valorile care trebuie s existe n conformitate cu aplicaia informatic concret sau problema economic cu urmeaz a fi rezolvat; sortarea datelor semnific acel tip de prelucrare prin care datele sunt dispuse ntr-o anumit ordine, n conformitate cu un anumit sistem sau cu anumite precizri ale utilizatorului; codificarea datelor nseamn operaia de atribuire de semne numerice, alfabetice sau alfanumerice unor date cu scopul de a optimiza numrul de semne cu care se scriu i se prelucreaz, de exemplu, elementele specifice sistemului informaional financiar-contabil; noiunea de document primar (de eviden primar) este cea definit n contabilitate, ca prim etap a funciei contabile, adic acel document n care se consemneaz pentru prima dat o operaie economicofinanciar (facturi, chitane, cecuri etc). Fiecare eveniment ce prezint un efect economic se nscrie ntrun document primar n momentul i n locaia n care s-a produs. introducerea datelor iniiale n calculator, adic n memoria intern sau memoria extern a sistemului de calcul; introducerea datelor iniiale poate fi fcut direct de la tastatur (n regim conversaional) sau de pe un suport tehnic accesibil calculatorului; prelucrarea propriu-zis a datelor, ceea ce nseamn execuia automat de ctre calculator a tuturor operaiilor prestabilite prin program (validri de date, sortri, interclasri, comparri i testri); validarea de date este tipul de prelucrare ce const n verificarea datelor de intrare dac sunt corecte n raport cu un set de reguli prestabilite (dac sunt reale, coerente, corelate, corect testate, corect transferate dintr-un mediu ntr-altul); interclasarea datelor reprezint tipul de prelucrare prin care se obine un ir (vector) de date ce conine toate elementele unor vectori iniiali ordonai; compararea datelor este tipul de prelucrare prin care se verific existena unor relaii de ordine ntre dou date; relaia de ordine a fost definit la cursul de matematic i este o relaie binar pe o mulime de date ce stabilete ordinea de parcurgere a elementelor mulimii; testarea datelor este tipul de prelucrare prin care se verific un ansamblu de date ce sunt pregtite pentru buna funcionare a unui program; prezentarea rezultatelor prelucrrii, adic afiarea pe ecranul monitorului sau imprimarea pe hrtie; cnd rezultatele sunt folosite n prelucrri ulterioare, ele sunt stocate pe supori magnetici. Etapele i operaiile prezentate mai sus se ncadreaz n triada de aur specific oricrui sistem de calcul: stocare prelucrare- prezentare date. Rezolvarea unei probleme reprezint procesul de concepere i de implementare a unei strategii de gsire a unei soluii sau de conversie la normalitate a unor stri generate de condiii nedorite sau neateptate. n activitatea de concepere a programelor destinate calculatoarelor electronice, problema de rezolvat este definit, detaliat i transformat ntr-un proiect pe baza cruia se poate realiza un program ce poate fi rulat pe un sistem de calcul. nainte de a se scrie efectiv programul, se efectueaz analiza problemei de rezolvat i se realizeaz algoritmul de calcul. Programul pe calculator este un set de instruciuni (comenzi) ce se execut de sistemul de calcul cu scopul de a efectua o succesiune de aciuni sau un tip prestabilit de activitate. Instruciunea sau comanda semnific un enun ce specific o aciune ntr-un limbaj de programare. Programul pe calculator (sau, mai simplu, programul) are n compunere, de regul, dou tipuri de enunuri: declaraii i instruciuni. Declaraia este asocierea dintre un identificator i anumite informaii. Aceast asociere este formal la realizarea programului i devine efectiv n timpul compilrii sau n timpul execuiei programului. Declaraia privete modul de organizare a datelor de intrare, pe timpul prelucrrii, precum i a datelor de ieire (rezultatelor). Identificatorul reprezint orice ir de caractere alfanumerice ce se folosete n calitate de: nume de variabil sau constant ntr-un program; etichet de regsire a unui punct din program; nume de procedur sau de funcie; nume ataat unei uniti logice de memorie extern (hard disc, dischet, compact disc, memorie flash etc.). Dintr-o alt perspectiv, orice program pe calculator reprezint un ansamblu format din date (structuri de date) i algoritmi prezentate ntr-un limbaj de programare. Noiunea de algoritm nu are o definiie riguroas. Algoritmul este o metod, un procedeu, o reet, o soluionare a unei probleme, fr ns a realiza echivalena cu aceti termeni. Dicionarele de informatic definesc algoritmul ca:

o descriere a schemei de realizare a unui eveniment cu ajutorul unei mulimi finite de aciuni elementare predenumite, realizabile a priori i avnd o durat limitat n timp; un concept folosit pentru a desemna o mulime finit de operaii cunoscute care, executate ntr-o ordine bine stabilit, pornind de la o mulime de valori (date) de intrare conduc la obinerea n timp finit a unei alte mulimi de valori, valori (date) de ieire; o secven finit de pai prin care se rezolv o problem logic sau matematic. n realizarea unui algoritm este necesar satisfacerea urmtoarelor patru condiii (proprieti): claritatea, ceea ce nseamn ca algoritmul s fie bine definit (cu specificaii riguroase i fr ambiguiti); exactitatea (determinismul), adic n fiecare moment al execuiei algoritmului, se cunoate cu exactitate urmtoarea operaie, precum i modul de execuie a fiecrei operaii; descrierea cu exactitate asigur execuia algoritmului pe un sistem de calcul; universalitatea, ceea ce semnific faptul c orice algoritm, fiind ct mai universal cu putin, asigur rezolvarea unei clase largi de probleme; finitudinea, ce const n faptul c algoritmul este finit n spaiu (ca descriere) i asigur obinerea rezultatului ntr-un timp determinat de execuie, adic dup un anumit numr finit de pai. Dup gndirea algoritmului, acesta se poate reprezenta sub mai multe forme; dintre aceste forme, cele mai uzuale sunt reprezentarea n limbaj pseudocod i schema logic. Limbajul pseudocod asigur descrierea algoritmilor prin intermediul a dou enunuri: standard i nestandard; enunurile nestandard sunt fraze n limbajul natural ce se folosesc, de regul, n programare pentru reprezentarea formei iniiale a algoritmilor; enunurile standard exprim operaii ce dispun de corespondene directe n instruciunile limbajului de programare. Schema logic asigur reprezentarea sub form grafic a algoritmilor. Schema logic de program se deosebete de schema logic de sistem. Schema logic de sistem descrie operaiile de prelucrare a datelor pe sistemul de calcul, cu focalizare pe sursele de date, documentele primare ce le conin, activitile ce se execut asupra lor, modul de stocare i de prezentare a rezultatelor prelucrrii. Schema logic de sistem este utilizat pentru a oferi o imagine de ansamblu a fluxurilor de date din sistemul de calcul, n timp ce schemele logice de program sunt folosite pentru detalierea anumitor procese reprezentate n schema logic de sistem. Schemele logice de program sunt independente de limbajul de programare utilizat. Schemele logice utilizeaz simboluri grafice. Pentru realizarea unui program sunt necesare trei tipuri de structuri de control, caracterizate prin aceea c au o singur intrare i o singur ieire. Aceast posibilitate se bazeaz pe teorema lui Boehm i Jacopini care arat c orice algoritm poate fi reprezentat ca o combinaie a celor trei structuri de control fundamentale: secvenial, alternative i repetitive. Structura de control secvenial (liniar) cuprinde o succesiune de blocuri care se execut unul dup altul. Structurile de control alternative (cu ramificaii) corespund unui bloc de prelucrare care se execut n functie de satisfacerea unei condiii. Aceste structuri de control prezint urmtoarele forme: structura de control alternativ cu dou ramificaii (IfThenElse); structura de control alternativ cu mai multe ramificaii (imbricat); structura de control alternativ generalizat (Case-Of). Structurile de control repetitive (de ciclare) asigur repetarea prelucrrii unor secvene de program. Formele structurilor de control repetitive sunt: structura repetitiv fr contor condiionat anterior (While Do); structura repetitiv fr contor condiionat posterior (Repeat Until); structura repetitiv cu contor condiionat anterior (DoFor); structura repetitiv cu contor condiionat posterior (DoFor). Din punct de vedere structural, un program poate avea n compunere mai multe subprograme sau module. Pot constitui subprograme, componentele programului de tipul procedurilor i/sau al funciilor. Mai multe programe alctuiesc mpreun o aplicaie informatic. Clasic, aplicaia informatic are o structur static arborescent, adic este format dintr-un program principal care apeleaz subprograme. Subprogramele sunt independente n conformitate cu principiile programrii structurate (programe constituite din subprograme sau module i folosirea structurilor de control fundamentale). Aplicaia informatic este dedicat unui anumit domeniu de activitate economic (de exemplu, aplicaie informatic de contabilitate, aplicaie informatic pentru managementul resurselor umane, aplicaie informatic pentru gestiunea creditelor bancare etc.). Noiunea de aplicaie informatic nu este similar cu aceea de sistem informatic. Limbajul de programare este un limbaj artificial ce se folosete pentru definirea unui ir de instruciuni care pot fi prelucrate i executate pe un calculator. Procedura (procedure) este o parte component, cu nume, a unui program, creia i sunt associate constante, tipuri de date i variabile i care execut, de regul, un task unic. Task-ul este un subprogram sau aplicaie autonom rulat ca o entitate independent. Funcia (function) este un subprogram sau rutin care returneaz o singur valoare prin nsi numele funciei. Spre deosebire de

funcie, procedura poate returna mai multe valori atunci cnd este rulat. Variabila este, n programare, o locaie de memorie n care se stocheaz date de un anumit tip i care pot fi modificate pe timpul execuiei programului. Constanta desemneaz o entitate cu nume ce reprezint o valoare care nu se modific pe timpul execuiei unui program. Structura de date este o schem de organizare a datelor cu scopul de a simplifica operaiile de prelucrare sau de a uura interpretarea lor. Exist mai multe tipuri de structuri de date: vector, nregistrare, mulime etc. Instruciunea este format din dou elemente distincte: codul operatorului i operanzii (datele supuse operaiei elementare reprezentate prin cod). n funcie de tipul prelucrrii pe care o execut, instruciunile se clasific n: instruciuni de prelucrare propriu-zis; instruciuni de organizare (structurare) care realizeaz concordana logic ntre algoritm i succesiunea intern a secvenelor de program. Instruciunile de prelucrare propriu-zis se grupeaz n: instruciuni de intrare-ieire care stabilesc sensul fluxului de date n sistemul de calcul, fiierul de date asupra cruia se efectueaz operaia i echipamentul periferic pe care se gsete acest fiier de date; fiierul de date este o colecie de date stocat pe un suport tehnic ntr-o succesiune de nregistrri; instruciunile de calcul, ce precizeaz natura operaiei, adresele operanzilor care particip la calcul i a operaiei aritmetice; instruciunile de transfer (atribuire), ce realizeaz transferul datelor, preciznd sensul transferului i adresele operanzilor. Instruciunile de organizare sunt urmtoarele: instruciunile de comparare (decizie logic), care asigur compararea a doi sau mai muli operanzi, rezultatul fiind categorisit ca adevrat (True) sau fals (False); instruciunile de salt, ce realizeaz trecerea de la secvena de instruciuni curent din program la o secven de instruciuni situat n alt punct al programului. Indiferent de limbajul de programare folosit pentru rezolvarea problemei, realizarea unui program presupune parcurgerea urmtoarelor etape: 1. Analiza problemei de rezolvat i realizarea algoritmului, etap ce presupune elaborarea unui enun complet al problemei, stabilirea modalitilor de organizare i de reprezentare a datelor de intrare i de ieire, elaborarea schemei logic de sistem care definete echipamentele din configuraia calculatorului ce particip la procesul de prelucrare a datelor, realizarea algoritmului ce presupune elaborarea i reprezentarea acestuia n limbaj pseudocod sau sub forma schemei logice de program; 2. Scrierea (introducerea) programului, ce are drept scop codificarea algoritmului, adic conversia acestuia n conformitate cu instruciunile unui limbaj de programare; pentru aceast codificare, se folosete un editor de texte; acest editor poate fi independent sau poate face parte din mediul integrat de dezvoltare (IDE); se obine astfel programul-surs (codul-surs al programului) care este scris ntr-un limbaj similar cu limbajul natural, dar nc inaccesibil sistemului de calcul; 3. Compilarea programului, ce realizeaz traducerea programului-surs scris ntr-un limbaj de programare de nivel nalt n program-obiect, exprimat n instruciuni cod-main. Aceast operaie de traducere se obine, n mod automat, prin folosirea unei componente a sistemului de operare, numit compilator. Dup compilare, eventualele erori de codificare existente n program (numite erori de sintax ce apar datorit nerespectrii sintaxei generale a unei instruciuni) sunt depistate i afiate. Erorile de sintax sunt eliminate prin corecii aduse programului-surs, dup care operaia de compilare este reluat. Este important de menionat faptul c n etapa de compilare nu se depisteaz erorile logice din program; erorile logice sunt greeli produse la realizarea algoritmului de calcul. 4. Editarea de legturi (linkeditarea), ce asigur includerea codului obiect al programului (programul-obiect) ntr-un ansamblu executabil (programul executabil) care cuprinde i module specifice sistemului de operare, funcii de bibliotec etc. cu ajutorul componentei denumit editor de legturi (linkeditor). Eventualele erori ce apar conduc la corecii n programul-surs. 5. Testarea logic a programului, ce realizeaz verificarea final a programului pe baza unui set de date de test care acoper domeniul real de valori ale datelor de intrare ce se vor folosi n timpul exploatrii programului. 1.7. Problematica general a limbajelor de programare Limbajul de programare reprezint un limbaj artificial ce se folosete pentru definirea unui ir de instruciuni care pot fi prelucrate i executate pe un sistem de calcul. Spre deosebire de limbajele naturale (umane), limbajele artificiale au fost create cu scopuri precise: limbaje de programare, limbaje de

specificare a programelor, limbaje de descriere a documentelor structurate, limbaje de schimb de date electronice, EDI (Electronic Data Interchange) etc. Limbajele de programare se definesc formal prin alfabet, vocabular i gramatici (fapt ce permite compilarea sau interpretarea lor). Alfabetul reprezint mulimea simbolurilor utilizate pentru scriere n limbajul de programare respectiv. Vocabularul este compus din mulimea cuvintelor ntrebuinate n limbaj. Gramatica limbajului de programare este reprezentat de ansamblul regulilor de scriere, cu preponderen sub aspect sintactic (mulimea regulilor de formare a instruciunilor), cu luarea n consideraie a regulilor de punctuaie i a semanticii (semnificaiilor conferite cuvintelor) i extrem de puin sub aspect morfologic (ansamblul regulilor de modificare a formei cuvintelor, n contextul utilizrii lor). Operaia de interpretare asigur execuia instruciune cu instruciune (la comanda pas cu pas a operatorului) a unui program. Un mare grad de utilizare l prezint sistemele de gestiune a bazelor de date (SGBD) ce sunt fundamentate pe limbaje de descriere a structurii bazei de date i pe limbaje de manipulare i interogare a bazei de date. SGBD-urile lucreaz cu date organizate n baze de date i programele sunt independente n raport cu descrierea datelor. Se dau ca exemple SGBD-urile FoxPro (cu o larg rspndire n Romnia n deceniul 90 al secolului trecut), Informix, Oracle, Sybase, Microsoft Access. Din categoria limbajelor de programare specializate fac parte limbajele inteligenei artificiale. Se dau ca exemple limbajele Lisp i Prolog. Limbajele de programare orientate pe obiecte sunt dezvoltate n conformitate cu conceptual de programare orientat pe obiecte, OOP (Object-Oriented Programming). Programarea orientat pe obiecte semnific programarea bazat pe obiecte la care se adaug motenirea i polimorfismul. Programarea bazat pe obiecte, OBP (Object-Based Programming) utilizeaz conceptele de clas i obiect. Dintre limbajele de programare OOP se menioneaz Pascal, C++, C#, SmallTalk, Simula, Java etc. 1.8. Elementele de baz ale programrii orientate pe obiecte Programarea orientat pe obiecte, OOP (Object-Oriented Programming) specific limbajelor de programare orientate pe obiecte, nseamn programarea bazat pe obiecte la care se adaug motenirea i polimorfismul. Programarea bazat pe obiecte, OBP (Object-Based Programming) utilizeaz conceptele de obiect i clas. Obiectul este o entitate dinamic (este creat, utilizat i apoi distrus) constituit din oricare unitate programabil i caracterizat prin identitate, metode de comportament i stare. Identitatea individualizeaz un obiect n comparaie cu alte obiecte. Metodele de comportament ale obiectului reprezint elementele comportamentale ale acestuia n momentul accesrii. Prin comportament, obiectul i pune n eviden apartenena la clas, precum i individualitatea sa. Starea obiectului este caracterizat cu ajutorul atributelor lui. Orice atribut dispune de nume i valoare sau realizare ce este asociat ca variabil de instan (ce definete proprietile obiectului la un anumit moment). Elementele ce aparin coleciei de obiecte descrise ntr-o clas reprezint instane de clas. Obiectul este definit de un identificator intern unic, independent de valoarea sau adresa de memorie a obiectului. Acest identificator nu este controlat de utilizator i nu se confund cu diferitele nume utilizate de utilizator cu scopul de a-l numi. Ca entiti complexe, obiectele sunt constituite din alte obiecte i din valori. Distincia ntre obiecte i valori se realizeaz prin intermediul strii obiectului: obiectele dispun de o stare intern care se poate schimba; valoarea nu se schimb niciodat. Obiectele sunt create de utilizatori, prin derivare din tipuri de obiecte create anterior sau printr-o operaie de creare (new). Clasa reprezint o implementare a unui tip abstract de date ce ncapsuleaz dou tipuri de atribute: cmpuri sau proprieti i metode sau operaii ale tipului respectiv. Cmpurile sunt private adic sunt ascunse n reprezentarea obiectului. Metodele sunt publice adic accesibile utilizatorului. Altfel exprimat, clasa definete o categorie de obiecte cu proprieti i metode ce se motenesc ntr-o subclas. Subclasa sau clasa derivat definete comportamentul obiectului derivat dintr-o clas considerat de baz. Clasa este un model de realizare a obiectelor de acelai tip i se definete cu ajutorul unui limbaj declarativ sau pe cale grafic. Clasa are un nume, prezint operaii externe sau metode, are o reprezentare intern (ca expresie a valorilor diverselor stri ale instanelor de clas) i folosete cod ce implementeaz att operaiile externe ct i descrierile reprezentrii interne a obiectelor. Clasa exist conceptual chiar i atunci cnd nu conine obiecte i este un ablon pentru generarea i manipularea obiectelor i este accesat de utilizator cu ajutorul interfeei specifice clasei. Specificarea metodei se numete semntur, iar modul de implementare constituie corpul metodei. Noiunea de clas este asociat n special cu faza de execuie i presupune: generarea de obiecte (new) i memorarea mulimii de obiecte care reprezint instanele claselor. O clas descrie obiectele, crearea unui obiect realizndu-se prin luarea n consideraie a unei expresii de tip. Tipul reprezint o descriere abstract a unui grup de

entiti asemntoare. Obiectul prezint valorile lui proprii, lista atributelor i metodelor fiind gestionate de clas. Pentru majoritatea limbajelor OOP, ansamblul instanelor unei clase reprezint o colecie care are acelai nume cu clasa i care se numete extensie a clasei. Obiectele reprezint instane (manifestri) ale claselor din care fac parte. Tipul de dat este folosit pentru descrierea unei mulimi de obiecte care au aceeai reprezentare. Fiecrui tip de dat i se asociaz anumite operaii cum ar fi de exemplu: operaii aritmetice pentru date numerice, concatenri pentru irurile de caractere, modificri pentru anumite articole. Tipul abstract de dat este un tip de dat care este definit prin accentuarea elementelor de precizare a comportamentului i de specificare a metodelor ce se pot efectua asupra variabilelor de tipul de dat respectiv (se specific att structura obiectului, ct i mesajele aplicabile lui). Tipul abstract de dat ascunde modul n care sunt implementate metodele asociate obiectului, reprezentarea intern a obiectelor i protejeaz algoritmii interni care implementeaz cererile din exterior. Acest tip abstract de dat are dou componente: interfaa (list de metode) i implementarea (descrierea structurii interne a datelor obiectului i realizarea procedurilor de implementare a metodelor interfeei). Structura aleas pentru memorarea tipului abstract de dat este ascuns pentru utilizator, ca urmare algoritmul de reprezentare este ncapsulat. Exist o interfa public, la care au acces utilizatorii, i o interfa privat ce ascunde reprezentarea i implementarea. Diferena dintre tipul de dat i clas este urmtoarea: tipul de dat este destinat pentru definirea de declaraii utilizate pentru controlul static al expresiilor de limbaj, n timp ce clasele sunt abloane destinate generrii i manipulrii obiectelor care prezint proprieti i comportament comun. ntre clase i obiecte se stabilesc relaii astfel: asociaii binare ntre dou clase, asociaii n-are ntre mai multe clase, relaii ntre obiect i clasa din care face parte, relaii ntre obiectele aceleiai clase. Exist mai multe paradigme ale modelului folosit de OOP: motenirea, ncapsularea, polimorfismul, abstractizarea datelor, persistena, evenimentul. Paradigma este un ansamblu ce detaliaz conceptele specifice unui anumit termen utilizat ca model. Paradigma se refer la forme de manifestare ale termenului respectiv. Motenirea asigur transferarea de proprieti i metode de la clasa-printe ctre un obiect nou. Prin motenire sunt generate tipuri noi de obiecte i clase ntr-o ierarhie. Prin motenire, n OOP se elimin rescrierea i recodificarea programelor, asigurndu-se reutilizarea codului. Un obiect nou motenete operaii sau metode, variabile de instan, atribute. n cazul metodelor, este vorba de partajarea codului, iar n cazul variabilelor, de partajarea structurii ntre datele obiectelor. Proiectarea unei aplicaii prin intermediul OOP const gruparea informaiilor generale n clase care sunt apoi specializate pas cu pas n subclase cu comportament particular. Metodele reprezint operaii ce pot regsi sau actualiza starea unui obiect. Aceast stare a obiectului este memorat n variabilele instanelor sale. ntr-o ierarhie de moteniri, o metod definit pentru o clas este motenit de subclasele sale. Motenirea este implementat static sau dinamic. Motenirea static nseamn adugarea cmpurilor motenite, situaie n care redefinirea unei clase oblig la actualizarea tuturor subclaselor. Motenirea dinamic se realizeaz fr a se copia cmpurilor motenite i oblig la parcurgerea legturilor de motenire. n cazul motenirii dinamice, actualizarea se efectueaz mai rapid, n timp ce execuia este mai puin eficient. Motenirea poate fi simpl sau multipl. Motenirea simpl se produce atunci cnd o subclas motenete proprieti i metode ale unei singure clase-printe. Motenirea multipl se realizeaz cnd o subclas posed mai multe clase-printe. ncapsularea reprezint proprietatea ce definete posibilitatea de a ascunde prin mascare atributele proprii ale unui obiect i modul n care se execut metodele. Astfel, sunt protejate obiectele n situaia efecturii greite a unor manipulri exterioare. Un obiect poate fi accesat numai prin metodele asociate la crearea sa. Polimorfismul definete caracteristica unei metode de a se comporta n mod diferit n funcie de clasa de obiecte creia i aparine. Polimorfismul asigur invocarea pentru obiectele de diferite tipuri a metodelor cu acelai nume, dar semantic i implementare diferit. O metod se comport diferit n funcie de clasa de obiecte creia i aparine. Abstractizarea datelor se realizeaz prin faptul c nsi clasele sunt expresia unei abstracii. Obiectele dintr-o clas prelucreaz datele modelului clasei creia i aparin. Utilizatorul obine comunicarea cu obiectele prin mesaje ce se transmit prin interfaa ce specific metodele posibile. Persistena este o proprietate a obiectelor care implic existena acestora i dup ncetarea procesului care le-a creat. Starea obiectului i codul corespunztor metodelor sunt memorate n baza de date. Tipurile obiectelor pot fi declarate persistente prin folosirea cuvntului cheie persistent la momentul declarrii, variabila fiind i ea constrns la un tip persistent. Evenimentul reprezint o aciune efectuat de sistemul de calcul n cazul n care utilizatorul solicit executarea unei comenzi, este aplicat un mesaj al sistemului sau exist o solicitare din partea altei

10

aplicaii informatice. Ca urmare, evenimentele se pot produce n mod interactiv sau programat. ntr-o aplicaie informatic dirijat prin evenimente, codul nu urmrete o cale prestabilit, ci secvene de program executate ca rspuns la apariia evenimentelor. Succesiunea n care se produc aceste evenimente determin secvena dup care se execut codul, ceea ce nseamn c la fiecare rulare a programului, el va parcurge o cale diferit. 1.9. Caracteristicile generale i componentele mediului integrat de dezvoltare Visual Basic Visual Basic (VB) reprezint un mediu integrat de dezvoltare, IDE (Integrated Development Environment), n mod interactiv, pentru aplicaii informatice sub sistemul de operare Microsoft Windows. n general, un mediu de programare este un sistem de programare care asist utilizatorul este asistat n proiectarea i codificarea algoritmilor i a datelor, respectiv n editarea i depanarea programelor. Cnd acest mediu de programare asist utilizatorul (programatorul) n toate etapele de realizare a unui program, el se numete mediu de dezvoltare. Cnd toate componentele de asistare a utilizatorului (programatorului) sunt integrate n cadrul aceluiai mediu de dezvoltare, el se numete mediu integrat de dezvoltare. Termenul visual din denumirea IDE Visual Basic semnific faptul c aplicaiile informatice dezvoltate n VB dispun de interfee grafice ce sunt proiectate vizual de ctre utilizator. Pentru aceasta, utilizatorul are la dispoziie un set de elemente vizuale standard ce pot fi folosite la proiectarea unei interfee grafice, denumite elemente de control, sau, pe scurt, controale (Controls). Aceste controale sunt dispuse n ferestrele aplicaiei, ferestre denumite formulare (Forms), concomitent cu stabilirea proprietilor acestora (n fereastra Properties) la dorina utilizatorului i n conformitate cu necesitile aplicaiei. Termenul Basic din compunerea IDE Visual Basic arat tipul limbajului de programare utilizat pentru realizarea programelor (secvenelor de cod) corespunztoare evenimentelor generate de acionarea controalelor dispuse n formularul specific aplicaiei. Limbajul de programare Basic (acronim provenit din denumirea n limba englez Beginners All-purpose Symbolic Instruction Code), definit la nceputul anilor 1960, a cunoscut numeroase versiuni i dezvoltri ulterioare. n anul 1991, firma Microsoft a realizat produsul Visual Basic care, ulterior, a cunoscut mai multe versiuni, n concordan cu dezvoltarea sistemului de operare Windows. Versiunea Visual Basic 6.0 face parte din pachetul Microsoft Visual Studio 6.0, iar versiunea Visual Basic.NET este parte component a pachetului Microsoft Visual Studio.NET. Visual Basic prezint caracteristici specifice programrii structurate (programrii bazate pe obiecte), programrii dirijate de evenimente, orientrii spre prelucrarea bazelor de date (manipulare i interogare). Visual Basic face parte din clasa de medii de dezvoltare rapid a aplicaiilor, RAD (Rapid Application Development), alturi de Microsoft Visual C++, Power Builder, Borland Delphi .a. ce prezint urmtoarele caracteristici: realizare rapid a aplicaiilor informatice, necesiti acceptabile de resurse informatice la execuie, separarea proiectrii prelucrrilor de proiectarea interfeei, integreaz proiectarea interfeei, scrierea codului, testarea i depanarea. n cadrul pachetului de birotic Microsoft Office, a fost inclus ca limbaj de dezvoltare un subset al Visual Basic, denumit Visual Basic for Application VBA. La pornirea Visual Basic, apar simultan fereastra principal a mediului integrat de dezvoltare VB (1), cutia cu instrumente Toolbox (2), fereastra de proiectare a formularului Form Design (3), fereastra de editare a codului Code Editor (4), fereastra Project Explorer (5), fereastra de stabilire a proprietilor Properties (6), fereastra Form Layout (7), fereastra Immediate (8), fereastra Locals (9), fereastra Watch (10), utilitarul Object Browser (11), aa cum sunt prezentate n fig.2. Ferestrele care nu apar la pornirea VB i sunt necesare pentru lucru, pot fi activate prin urmtoarea succesiune de comenzi: bara cu meniuri View poziionare pe denumirea ferestrei click. Fereastra principal a mediului integrat de dezvoltare VB are patru componente: bara de meniuri (1), bara cu instrumente (2) i dou zone care afieaz poziia (3) i dimensiunea (4) obiectului ce a fost selectat (obiectul curent). Butoanele de pe bara cu instrumente (Toolbar) dubleaz cele mai utilizate comenzi din bara de meniuri. Meniurile contextuale cuprind comenzi rapide pentru aciunile efectuate n mod frecvent. Pentru deschiderea unui meniu contextual se poziioneaz vrful mouse-ului pe obiectul care trebuie folosit, se apas butonul din dreapta mouse-ului, se selecteaz comanda dorit concomitent cu click executat cu butonul din stnga mouse-ului. Cutia cu instrumente, Toolbox, (fereastra 2 din fig.2), asigur instrumentele predefinite folosite n timpul proiectrii formularului pentru a introduce controale pe acesta. Utilizatorul poate crea propriile controale, imagini sau grafic prin selecia opiunii AddTab din meniul contextual. Fereastra de proiectare a formularului, Form Design (fereastra 3 din fig.2), este fereastra pentru realizarea interfeei dintre utilizator i secvenele de program. Fereastra de editare a codului, Code Editor (fereastra 4 din fig.2), este folosit ca editor de texte pentru a introduce codul aplicaiei informatice. Fiecare formular sau modul de cod din cadrul aplicaiei informatice dispune de propria fereastr de editare a codului.

11

Fig.2 Componentele de baz ale IDE Visual Basic Fereastra Project Explorer (fereastra 5 din fig.2), servete numai la proiectarea aplicaiei pentru afiarea coleciei de fiiere ce conin formularele i modulele din cadrul proiectului aflat n lucru (curent). Unele fiiere sunt ncrcate n mod automat de ctre sistem, iar alte fiiere sunt realizate de ctre utilizator (programator). Fiierele care se gsesc n fereastr (proiect) se pot grupa pe categorii cu ajutorul butonului Toggle Folders. Butonul View Object servete pentru vizualizarea obiectului selectat (current), iar butonul View Code este folosit pentru vizualizarea codului. Fereastra de stabilire a proprietilor, Properties (fereastra 6 din fig.2), asigur afiarea valorilor proprietilor pentru formularul sau controlul selectat. O proprietate reprezint o caracteristic a unui obiect (titlu, dimensiuni, poziie, culoare etc.). Fereastra Form Layout (fereastra 7 din fig.2), este folosit pentru vizualizarea aspectului formularului. Fereastra Immediate (fereastra 8 din fig.2), este o fereastr suplimentar utilizat n procesul de depanare a aplicaiilor informatice rulate din interiorul mediului IDE. Mediul VB 6.0 permite funcionarea n trei moduri de lucru: proiectare (design mode), rulare normal (run mode) i execuie cu ntrerupere (break mode). Execuia cu ntrerupere (pas cu pas) se utilizeaz la depanarea aplicaiei pe baza punctelor de ntrerupere (breakpoints) stabilite n prealabil. Fereastra Immediate permite introducerea de secvene de cod care se execut imediat sau afiarea valorilor unor expresii. Fereastra Locals (fereastra 9 din fig.2) este destinat, la depanarea programelor VB, pentru afiarea valorilor unor expresii din program. Fereastra Watch (fereastra 10 din fig.2) este, de asemenea, o fereastr suplimentar utilizat n procesul de depanare a programelor VB, pentru gestiunea variabilelor i expresiilor watch, adic a valorilor unor variabile i expresii din program existente n momentul aciunii (curente). Utilizarea ferestrei Watch este posibil prin intermediul meniului contextual. Utilitarul Object Browser (fereastra 11 din fig.2) realizeaz afiarea obiectelor disponibile n IDE ce pot fi utilizate de proiect. Utilitarul servete, de asemenea, pentru a examina obiecte din VB i din alte aplicaii, pentru a constata ce metode i proprieti sunt disponibile n cazul acestor obiecte i pentru a prelua coduri de program n propria aplicaie informatic. Editorul de meniu (Menu Editor) permite proiectarea meniurilor asociate formularelor. Pentru afiarea ferestrei corespunztoare, se apas butonul cu acelai nume de pe bara cu instrumente sau prin opiunea Menu Editor din meniul Tools. Fiecare meniu are nume, proprieti i mod de accesare asociat. 1.10. Realizarea aplicaiilor n limbajul Visual Basic Pentru a realiza o aplicaie informatic n limbajul Visual Basic, este necesar parcurgerea urmtoarelor trei etape: 1. Crearea interfeei.

12

2. Precizarea proprietilor. 3. Scrierea codului. Crearea interfeei se efectueaz cu ajutorul formularelor (Forms). Acestea servesc pentru a genera ferestre i casete de dialog, n calitate de containere pentru elemente care se gsesc n partea ascuns a aplicaiei. Precizarea proprietilor se realizeaz prin intermediul ferestrei Properties, dup selecia prealabil a obiectului. Scrierea codului se execut folosind fereastra de editare a codului, Code Editor. Crearea aplicaiilor n VB se face n modul de proiectare Design Mode, iar execuia acestora se efectueaz n modul de rulare normal, Run Mode. nainte de prezentarea n detaliu a celor trei etape de proiectare a unei aplicaii n VB, se trateaz fiierul proiect. Termenul de proiect n VB este similar cu aplicaia informatic, astfel c el cuprinde o list a fiierelor care intr n compunerea aplicaiei. Fiierul proiect este un fiier text cu extensia .VBP. Mediul de dezvoltare VB 6.0 asigur posibilitatea lucrului cu mai multe proiecte concomitent, proiecte ce sunt reunite ntr-un grup de proiecte (fiierul grup de proiecte are extensia .VBG). n lista de fiiere a unui proiect pot fi incluse urmtoarele tipuri de fiiere: fiier pentru formular (.FRM); fiier pentru formular care cuprinde controale cu proprieti care prezint ca valori date binare (.FRX); fiier pentru clas de module (.CLS); fiier pentru modul standard (.BAS); fiier pentru control utilizator (.VBX DDL-uri pentru controale pe 16 bii i .OCX DDL-uri pentru controale pe 32 de bii ). Din punctul de vedere al utilizatorului, proiectul are n compunere module existente n mediul integrat de dezvoltare (IDE) Visual Basic, n format binar, i module realizate de utilizator (formular, cod, clas). Modulul reprezint un termen generic care desemneaz entitatea de structurare a unui program. Modulele sunt reutilizabile, ceea ce nseamn c un modul folosit ntr-un program, poate fi utilizat ulterior i n alte programe. Modulul definete reguli de vizibilitate adic elementele declarate n interiorul lui pot fi sau nu pot fi vizibile n exteriorul acestui modul. Orice proiect trebuie s includ cel puin un modul (modul de formular sau modul de cod). Atunci cnd au fost definite toate componentele unui proiect, acesta poate fi transformat direct ntrun fiier executabil (.EXE), astfel: 1. din meniul File, se selecteaz opiunea Make EXE; 2. se introduce numele fiierului executabil n caseta File Name i se apas butonul OK. Realizarea aplicaiei este terminat atunci cnd se selecteaz comanda Save Project As din meniul File sau cnd se selecteaz butonul Save Project din linia de butoane. Mediul Visual Basic solicit salvarea, pe rnd, a formularului i apoi a proiectului prin introducerea numelui dar i a unitii logice de memorie, precum i a cii unde se dorete a avea loc salvarea. n mod implicit, mediul Visual Basic asigur salvarea n locaia C:\Program Files\Microsoft Visual Studio\VB98 (Save In). Pentru salvarea unui proiect, se recomand particularizarea numelui proiectului i folosirea unei uniti logice de memorare i a unei ci personalizate a utilizatorului pentru fiecare proiect, ca, de exemplu: Homes(D:)\Student\Facultatea\Grupa\Nume_prenume_student\Nume proiect. Cnd se lucreaz cu mai multe proiecte, la un anume moment un singur proiect este activ. ntre aceste proiecte cu care se lucreaz simultan, se pot partaja fiiere. Un fiier, cum este, de exemplu, un formular, poate aparine mai multor proiecte. Crearea unor formulare, module i controale noi se efectueaz cu comenzile din meniul Project. 1.10.1 Crearea interfeei aplicaiei Crearea interfeei unei aplicaii se realizeaz cu ajutorul unui obiect denumit formular (Form). n multe lucrri destinate VB, echivalentul romnesc pentru Form este form. n lucrarea de fa s-a preferat denumirea de formular dei cea de form este mai apropiat de termenul n limba englez (crearea formularului nseamn de fapt turnarea controalelor ntr-o form adecvat interfeei aplicaiei). Motivul preferinei pentru formular este asigurarea lizibilitii apariiei denumirii acestui obiect n explicaiile din cuprinsul lucrrii, dei n dicionarele limbii romne, formularul, n general, este definit ca un imprimat cu mai multe spaii albe ce se completeaz n vederea ntocmirii unui tabel. Formularul este un container de controale care faciliteaz dialogul dintre utilizator i aplicaie. Controalele nu pot funciona n afara formularului. Ele sunt obiecte care elibereraz programul de sarcinile legate de intrrile i ieirile generate de aciunile utilizatorului, concentrnd eforturile pe operaiile de prelucrare a datelor. Avantajul controalelor din VB este c ele se aseamn foarte mult cu controalele standard ce apar n sistemul de operare Windows (meniuri, butoane, casete). Controalele uureaz munca de programare n sensul c sunt eliminate instruciunile care s ghideze utilizatorul asupra aciunilor pe care acesta trebuie s le ntreprind. La proiectarea interfeei aplicaiei (Design Mode), fereastra de proiectare a formularului servete pentru dispunerea controalelor necesare proiectului. La rularea programului (Run Mode), formularul ndeplinete rolul de fereastr principal a proiectului sau de fereastr de dialog.

13

La pornirea mediului VB, fereastra de proiectare a formularului cu numele implicit (default) Form1 este dispus n centrul ecranului. n interiorul acestei ferestre se gsesc linii punctate cu rolul de a asigura orientarea utilizatorului, iar la marginea ferestrei sunt dispuse mnerele de redimensionare a formularului. Este bine ca, nc de la crearea formularului, s se opteze pentru o dimensiune potrivit a formularului n raport cu numrul de controale introduse i de dimensiunile acestora; nu este estetic i nici practic s rmn zone mari nefolosite pe suprafaa formularului. Un formular include descrierea grafic a acestuia, controalele sale, proprietile, constantele, variabilele i procedurile externe, subrutinele de tratare a evenimentelor, procedurile generale. Fiecrui formular i corespunde un modul de formular (Form Module). Clasa de module (Class Module) este asemntoare formularului, dar nu dispune de interfa utilizator vizibil. Clasa de module poate fi folosit pentru crearea obiectelor utilizator, cuprinznd secvene de cod pentru metodele i proprietile obiectelor definite. Obiectele care aparin aceleai clase nu sunt nzestrate cu evenimente proprii. Mediul VB asigur interfa pentru un singur document (SDI) sau interfaa multidocument (MDI). n cazul SDI, toate ferestrele mediului VB pot fi deplasate pe ecran, iar n cazul MDI, toate ferestrele mediului integrat de dezvoltare VB (numite fii) sunt incluse ntr-o fereastr unic (numit printe) ce poate fi redimensionat. Pentru a obine comutarea ntre modurile de lucru SDI i MDI se realizeaz urmtoarea succesiune de aciuni: 1. se selecteaz Options (opiuni) din meniul Tools; efectul este apariia casetei de dialog Options; 2. se selecteaz Advanced; 3. se valideaz sau se invalideaz caseta SDI Developement Environement. Controalele standard sunt butoanele de comand (Command Button), casetele cu text (TextBox), etichetele (Label), casetele de validare (Check Box), butoanele de opiuni (Option Button), casetele cu list (ListBox), casetele cu imagine (PictureBox), barele de defilare (ScrollBar) orizontale i verticale, casetele combinate (ComboBox). Introducerea unui control din cutia cu instrumente (Toolbox) pe suprafaa formularului se obine prin parcurgerea etapelor urmtoare: a. se deplaseaz cursorul mouse-ului n cutia cu instrumente (Toolbox), pe pictograma care reprezint controlul ce urmeaz a fi introdus n formular i se acioneaz butonul din stnga al mouse-lui; b. se mut cursorul mouse-ului pe suprafaa formularului, n poziia n care va fi colul stng al controlului; c. se efectueaz succesiunea de operaii de tipul Drug and Drop pn se dimensioneaz dup dorin controlul selectat; d. se elibereaz butonul stng al mouse-ului. O alt modalitate de introducere a controlului selectat pe suprafaa formularului este reprezentat de dublu-click-ul mouse-ului pe pictograma (icon-ul) controlului din cutia cu instrumente (Toolbox). Se genereaz astfel un control cu dimensiunile implicite, dispus n centrul formularului. Dispunerea controalelor pe suprafaa formularului se face dup o anumit logic legat de succesiunea operaiilor importante de introducere date, prelucrare i afiare rezultate. Fiecare control este caracterizat de un ansamblu de proprieti ce se refer la descrierea comportamentului sau aspectului unui control. Limea sau nlimea unui control se msoar n twip (un twip reprezentnd cel mai mic punct adresabil de pe ecran, cu dimensiunea de 1/1440 inch). Aa cum se va arta n paragraful urmtor, fereastra Properties permite modificarea ntre limite prestabilite a valorilor diferitelor proprieti ale controalelor. Focalizarea reprezint operaiunea de punere n eviden a unui control la un moment dat; mai precis, acel control devine activ prin focalizare. Acel control activ se mai numete i focar (focus). Acest lucru se pune n eviden printr-o linie punctat n jurul controlului sau printr-un titlu ngroat. Mutarea focarului de la un control la altul se efectueaz prin intermediul tastelor Tab sau Shift+Tab. Apsarea tastei Enter va determina aciunea controlului focar sau focalizat. Ordinea de parcurgere a controalelor n formular reprezint ordinea n care controalele sunt puse n eviden prin focalizare, odat cu apsarea succesiv a tastei Tab. n momentul activrii formularului, este stabilit primul control care este focalizat. Proprietile comune tuturor controalelor din formular care stabilesc ordinea de parcurgere a controalelor sunt TabIndex (poziia) i TabStop (oprirea). Ordinea de parcurgere a controalelor este circular i n ambele sensuri nainte (Tab) i napoi (Shift+Tab). Un control poate include o tast fierbinte (Hot Key) ce este evideniat printr-o liter subliniat. Prin aciunea Alt+litera subliniat, se provoac aciunea controlului respectiv. Litera subliniat se introduce cu ajutorul proprietii Caption prin precedare de un ampersand (&). Redimensionarea unui control introdus deja pe suprafaa formularului se obine astfel: 1) se selecteaz controlul de redimensionat prin click executat cu mouse-ul n interiorul suprafeei acestui control. Pe marginile controlului apar mnerele de redimensionare; 2) se fixeaz cursorul mouse-ului n dreptul unui mner de redimensionare i se mic innd apsat butonul stng al mouse-ului, pn se obine dimensiunea dorit.

14

Mnerele situate n colurile suprafeei controlului redimensioneaz controalele att pe vertical ct i pe orizontal, iar mnerele dispunse pe laturi redimensioneaz controlul numai ntr-o singur direcie. 3) se elibereaz butonul stng al mouse-ului. Mutarea unui control pe suprafaa formularului se realizeaz cu mouse-ul prin tehnica Drug and Drop. Dup finalizarea proiectrii formularului, blocarea tuturor controalelor pe suprafaa formularului se obine din meniul Format cu opiunea Lock Controls sau cu butonul Lock Controls Toggle de pe bara cu instrumente Form Editor. Formularele sau controalele Visual Basic au asociate, n cadrul proiectului, proceduri eveniment vide care sunt personalizate n momentul execuiei aplicaiei. 1.10.2 Precizarea proprietilor Precizarea proprietilor n etapa de proiectare (Design Mode) a formularului sau a altui obiect vizual se realizeaz cu ajutorul ferestrei Properties. Fereastra Properties este format din caseta cu obiecte, Objects (afieaz numele i tipul obiectului selectat, adic obiectul curent) i caseta Settings setri (afieaz alfabetic sau pe categorii lista proprietilor stnga i lista cu valorile sau setrile proprietilor dreapta).

Activarea ferestrei Properties se poate obine prin succesiunea de comenzi meniu principal View Properties Window sau cu ajutorul tastei funcionale F4.
Precizarea proprietilor se obine prin parcurgerea urmtoarele etape: 1) dac nu este afiat, se activeaz fereastra Properties; se selecteaz obiectul cruia urmeaz s i se precizeze proprietile; n acest moment, se afieaz automat proprietile cu valorile implicite pentru obiectul selectat;

2) din lista alfabetic sau lista pe categorii a proprietilor se selecteaz denumirea proprietii la care se vor modifica valorile sau setrile existente; 3) n coloana valorilor sau setrilor din dreapta se tasteaz sau se selecteaz valorile dorite pentru proprietate.
Pentru a asocia o pictogram unui formular se atribuie o valoare proprietii icon pentru acel formular. 1.10.3 Scrierea codului Dup proiectarea formularului i precizarea proprietilor, urmeaz scrierea codului care const n asocierea unor secvene de cod pentru toate controalele din formular, adic moduri de aciune la diverse evenimente. Codul conine constante, declaraii de variabile i instruciuni scrise n limbajul de programare Visual Basic, n conformitate cu algoritmul de calcul. Legarea efectiv de control sau fereastr a secvenelor de cod se obine de ctre utilizator (programator) n mod conversaional. Pentru scrierea codului se deschide fereastra de editare a codului (Code Editor), prin dublu-click executat cu butonul stng al mouse-ului poziionat pe obiectul selectat. Fereastra de editare a codului (Code Editor) este format din fereastra principal ce reprezint zona pentru scrierea codului i dou casete de tip list din care se selecteaz controlul pentru care se scrie codul (Object) i, respectiv, din care se alege evenimentul la care se reacioneaz prin codul scris pentru procedur n fereastra principal (Procedure). Codul din proiectele realizate n VB se divide n blocuri de dimensiuni mai mici numite proceduri. Codul care corespunde unui eveniment se numete procedur eveniment. Procedura-eveniment asociat unui control are numele alctuit din numele controlului (stabilit n proprietatea Name), o liniu de subliniere (_) i numele evenimentului. Atunci cnd se deschide fereastra de cod i se selecteaz evenimentul pentru care se scrie codul, se genereaz automat prima i ultima linie a procedurii (Private Sub Form_Load () i End Sub) ce constituie un ablon de lucru. Pentru crearea unei proceduri-eveniment se execut urmtoarea succesiune de aciuni: caseta Object se specific numele obiectului din formularul curent (adic cel care este focalizat) pentru care se scrie codul caseta cu list Procedure selecie nume eveniment asociat obiectului selectat (de exemplu, procedura Click implicit pentru controlul buton de comand, Command Button) ablon pentru procedura-eveniment ntre declaraiile Private Sub i End Sub, se introduce de la tastatur codul n conformitate cu algoritmul de calcul. Se poate opta pentru afiarea tuturor procedurilor n aceeai fereastr de cod sau pentru afiarea unei singure proceduri la un moment dat. Pentru afiarea tuturor procedurilor n cadrul aceleiai fereastre de cod, se execut clic pe butonul de vizualizare a ntregului modul, Full Module View, n colul din stnga-jos al ferestrei de editare a codului, Code Editor sau se execut urmtoarea succesiune de aciuni: meniul Tools caseta de dialog Options seciunea Editor grupul de setri pentru fereastr, Window Settings, bif n caseta de validare din stnga lui Default to Full Module View. n acelai grup de setri pentru fereastr, caseta de

15

validare din stnga lui Procedure Separator servete la adugarea sau eliminarea unei linii de separaie ntre proceduri. Pentru afiarea unei singure proceduri la un moment dat, se execut click pe butonul de vizualizare a procedurii, Procedure View, n colul din stnga-jos al ferestrei de editare a codului, Code Editor sau se execut urmtoarea succesiune de aciuni: meniul Tools caseta de dialog Options seciunea Editor n grupul de setri pentru fereastr, Window Settings, se terge bifa din caseta de validare din stnga lui Default to Full Module View. 1.10.4. Execuia aplicaiei informatice n Visual Basic Dup parcurgerea etapelor de creare a interfeei (proiectarea formularului), de precizare a proprietilor i de scriere a codului, toate fiierele aplicaiei sunt salvate i se trece de la modul de proiectare (Design Mode) la modul de rulare (execuie) a proiectului (Run Mode). Pentru a lansa n execuie aplicaia se alege opiunea Start din meniul Run sau se acioneaz tasta funcional F5 sau se execut cu butonul stng al mouse-ului click pe butonul Start de pe bara cu instrumente. Terminarea rulrii proiectului se efectueaz cu opiunea End din meniul Run sau prin apsarea butonului de nchidere (Close) a ferestrei aplicaiei (colul din dreapta sus al ferestrei) sau prin apsarea butonului End de la bara cu instrumente. Dup terminarea execuiei aplicaiei, mediul VB revine n modul de proiectare (Design Mode). Prin rularea proiectului, se obine fiierul executabil. Fiierul executabil se poate obine direct din meniul File cu opiunea Make EXE . 1.11. Elementele limbajului de programare Visual Basic 1.11.1 Unele reguli de scriere O proprietate esenial a unui obiect n Visual Basic este numele (Name). Numele este folosit pentru a referi un obiect particular n cadrul codului. Numele obiectului trebuie s fie sugestiv i s arate, n cazul controalelor, grupul de controale cruia i aparine. Ca urmare, s-a adoptat convenia conform creia un nume trebuie s fie format dintr-un prefix din trei litere (dat de notaia ungar) i numele propriu-zis cu semnificaie pentru utilizarea obiectului. Prefixul numelui (Tabelul 1) indic, n mod unic, grupul de controale din care face parte. Tabelul 1 Stabilirea numelor unor obiecte n Visual Basic Nume obiect Prefix standard Exemple Data dat datSalarii Form frm frmMateriale, frmClienti Command Button cmd, btn cmdCalcul, btnExit Label lbl lblDobinda, lblSumaInitiala TextBox txt txtDobinda, txtSumaInitiala Menu mnu mnuEvaluare Check Box chk chkImpozit Frame fra fraSelectie Image img imgOrase, imgProfesori List Box lst lstDiscipline, lstStudenti Option Button opt optCursuri Picture Box pic picTools Numele obiectelor pot avea maxim 40 de caractere, trebuie s nceap cu o liter i pot conine numai litere, numere i underscore ( _ ). n cadrul mai larg al ntregului limbaj Visual Basic, cu setul de caractere ASCII extins ce formeaz alfabetul acestui limbaj, se construiesc literalii i identificatorii. Literalii sunt compui din iruri de caractere. Literalii pot fi de tipul literali iruri de caractere i sunt scrii ntre ghilimele, i de tipul literali numerici zecimali (n baza 10), octali (n baza 8), hexazecimali (n baza 16). Identificatorii pot fi predefinii (cuvinte rezervate i cuvinte-cheie ce desemneaz instruciuni, funcii, operatori, metode) sau pot fi definii de utilizator (ce desemneaz obiecte, variabile, tipuri de date, constante, etichete, proceduri). Instruciunile specifice limbajului Visual Basic se obin prin combinarea literalilor, identificatorilor i cuvintelor rezervate. Pentru lizibilitatea codului, fiecare instruciune se scrie pe o linie separat. Dac o instruciune nu ncape pe o linie, se poate continua pe linia urmtoare prin caracterul underscore (_). Se pot folosi 20 astfel de linii de continuare a unei instruciuni. Numele sunt folosite la setarea proprietilor la momentul execuiei i n stabilirea numelor procedurilor pentru evenimentele obiectelor. Setarea proprietilor la momentul execuiei se obine prin scrierea unui cod. Formatul acestui cod se scrie prin notarea cu punct i este: Nume obiect. proprietate = noua valoare (Object Name. Property = New value).

16

n Visual Basic, numele obiectelor sunt utilizate n setarea unui cadru de lucru (framework) corespunztor procedurilor eveniment, pentru scrierea codului. Formatul fiecrei subrutine (n Visual Basic nu exist program principal; toate procedurile obiectelor sunt subrutine) este: Private Sub Object Name_Event (Optional Arguments) End Sub. Formularului i se ataeaz un obiect. Visual Basic construiete automat un cadru de lucru (framework) pentru fiecare dintre procedurile eveniment. Utilizatorul care construiete aplicaia trebuie s scrie codul procedurilor eveniment la care corespunde aplicaia. 1.11.2 Tipuri de date Tipurile de date reprezint natura datelor n cadrul unui limbaj de programare. n limbajul Visual Basic, tipurile de date sunt predefinite (standard) sau definite de utilizator. n tabelul 2 sunt prezentate tipurile de date predefinite cele mai utilizate. Tipurile de date definte de utilizator se obin prin combinarea mai multor tipuri de date existente n structuri de date. Declararea tipurilor de date definite de utilizator se efectueaz n seciunea Declaration (din modulul standard) cu TypeEnd Type care are sintaxa general: [Private/Public] Type nume_tip_data_utilizator Nume_1 As tip_data_1 Nume_2 As tip_data_2 Nume_n As tip_data_n End Type Tipurile de date definite de utilizator se declar la nivelul modulelor standard, de clas sau formular (numai Private). Aceste tipuri de date nu pot fi declarate la nivelul unei proceduri. Tabelul 2 Tipurile de date predefinite n Visual Basic Tip romn Tip englez Sufix Memorie Interval de valori (domeniu) ocupat 1 0255 Octet Byte ntreg Integer % 2 -32768+32767 ntreg lung Long & 4 2.147.483.648+2.147.483.647 (integer) Logic Boolean 2 True, False Real simpl Single 4 -3,40 e38+3,40 e38 precizie (floating) ! Real dubl Double 8 -1,8 e308+1,8 e308 precizie (floating) # Moned Currency @ 8 -9,22 e14+9,22 e14 Dat Date 8 Jan 01/100-dec 31/9999 Obiect Object 4 Adresa unui obiect ir de String $ 1 octet/ ir de caractere alfanumerice caractere caracter Nedefinit Variant ir, numere, dat De exemplu, tipul de date definite de utilizator Client are urmtoarea structur: Type Client Nume_client As String *20 Prenume_client As String *20 Adresa_client As Adresa CNP_client As String *13 End Type unde tipul de date definit de utilizator Adresa are structura: Type Adresa Localitate As String *20 Strada As String *20 Numar As Integer Judet As String *20 End Type

17

1.11.3 Variabile i constante Variabilele care se folosesc ntr-un program desemneaz locaii de memorie n care se stocheaz valori ce se modific pe timpul execuiei programului. O variabil n limbajul Visual Basic are un nume (identificator) format astfel: maxim 40 de caractere; numele include: litere, numere, underscore (): primul caracter trebuie s fie o liter; nu se pot folosi ca nume de variabile, cuvintele rezervate, care fac parte din setul de cuvinte cheie al limbajului. Corespunztor variabilei care se dorete a fi creat i utilizat, utilizatorul poate s stabileasc tipul de dat asociat prin folosirea unui sufix de natura tip de dat care va putea fi stocat sau prelucrat prin intermediul respectivei variabile. n tabelul 3.4 s-au prezentat tipurile de date, sufixul asociat i intervalul de valori. Exist trei moduri de declarare a unei variabile: a) Prin lips (din oficiu). Dac variabila nu este definit n nici un mod, ea este presupus Variant, adic un tip de dat Visual Basic care poate conine: valori numerice, iruri de caractere sau dat calendaristic. b) Implicit. Declararea implicit este dat prin folosirea sufixului corespunztor. De exemplu, o variabil de tip String (ir de caractere) poate fi declarat implicit astfel: NumeClient$ = Ionescu iar o variabil de tip Integer se poate declara implicit astfel: Suma% = 2700. c) Explicit. Acest mod de declarare a unei variabile prezint mai multe avantaje: asigur efectuarea unui calcul corect prin intermediul instruciunilor care utilizeaz variabilele respective i permite identificarea, gestionarea corect a apariiei literelor mari sau a literelor mici n numele variabilelor. Datorit acestor avantaje, se prefer lucrul cu tipurile de variabile explicite. Pentru a putea lucra cu variabile declarate explicit trebuie s fie cunoscut domeniul de valabilitate i anume: 1 domeniul procedurilor; 2 domeniul procedurilor n care variabilele se declar static; 3 domeniul formularelor i modulelor; 4 domeniul nivelului global. De exemplu, pentru domeniul procedurilor, variabilele sunt declarate folosind cuvntul cheie Dim: Dim Denumire_material As String Dim Cantitate As Integer Dim Pret_unitar As Single. Variabilele declarate la nivelul procedurilor i vor pstra valorile numai pe timpul rulrii procedurilor respective. Din acest motiv se mai numesc i variabile locale. Pentru ca variabilele s-i pstreze valorile i dup terminarea procedurii, se folosete domeniul procedurilor n care variabilele se declar static, cuvntul-cheie Dim fiind nlocuit cu Static. De exemplu: Static Denumire_material As String Static Cantitate As Integer Static Pret_unitar As Single. Pentru domeniul domeniul formularelor i modulelor, variabilele i menin valorile la nivelul formularului (modulului), relativ la toate procedurile prin declararea variabilelor cu Dim, dar n partea de declaraii a obiectului general, n fereastra de cod a formularului. Pentru domeniul domeniul nivelului global, o variabil este disponibil tuturor procedurilor prezentate n aplicaie, prin declararea n partea de declaraii a obiectului general din fereastra de cod a unui modul cu ajutorul cuvntului cheie Global. De exemplu: Global Nr_factura As Long Global Data_factura As Date.

n cazul mai multor variabile cu acelai nume, variabilele locale au valabilitate numai n cadrul procedurilor. La prsirea acestor proceduri se folosesc variabilele cu acelai nume, dar definite la nivel superior.
Procedura de introducere a acestor variabile globale este urmtoarea: se execut dublu-click oriunde n fereastra formularului pentru a deschide fereastra de editare a codului (sau se selecteaz opiunea View Code din fereastra Project); se declar variabilele din formular astfel: Option Explicit (foreaz declararea variabilelor) Global Nr_factura As Long Global Data_factura As Date.

18

Constante simbolice utilizate n Visual Basic n cele mai multe situaii, funciile i obiectele limbajului Visual Basic necesit argumente pentru efectuarea operaiilor specifice, argumente care reprezint constante numerice. Acestea sunt greu de interpretat din punct de vedere al utilizatorului. Pentru a le face inteligibile, limbajul Visual Basic asigur nume celor mai utilizate valori i acestea se numesc constante simbolice. De exemplu, pentru setarea fondului formularului frmMat pe culoarea albastr se poate scrie: frmMat. Back Color = 0XFF0000 sau, folosind constanta simbolic pentru albastru: frmMat. Back Color = VBBlue Utilizatorul i poate defini propriile constante ca de exemplu: const TVA = 0.19. Constantele de utilizator se scriu cu litere mari, pentru a le distinge de variabile. Domeniul de valabilitate al unei constante este similar cu cel al variabilelor. 1.11.4 Instruciuni Visual Basic 1.11.4.1 Construirea expresiilor Cea mai simpl instruciune este cea de atribuire, formatul ei este: Let variabil = expresie. De exemplu: Let Vmftva = Cant *Pu Let Vfftva =Vfftva + Vmftva Let Nume_client = Georgescu Constantin Utilizatorul poate tasta sau nu cuvntul Let dar este obligat s exprime numele variabilei i expresia pe baza creia se deduce coninutul. Vmftva = Cant *Pu Vfftva =Vfftva + Vmftva Nume_client = Georgescu Constantin Instruciunile se scriu de obicei pe o singur linie fr delimitator. Pentru a putea scrie mai multe instruciuni pe o linie se folosete separatorul :. Observaie: se recomand folosirea atent a acestui delimitator cnd este folosit structura If End If. Dac o instruciune este foarte lung, ea poate continua pe urmtoarea linie, folosind caracterul de continuare underscore _. De exemplu: Print Tab(2); "COD_MATERIAL"; Tab(20); "DEN_MATERIAL"; Tab(41); "CANT"; _ Tab(48); "PRET_UNITAR"; Tab(70); "VAL_M_FARA_TVA"; Tab(100); _ "VAL_M_CU_TVA" Comentariile ncep cu cuvntul cheie Rem sau . De exemplu: Rem Acesta reprezinta un comentariu Acesta reprezinta un exemplu de comentariu. 1.11.4.2 Operatori Visual Basic Operatorii Visual Basic, n ordinea claselor de preceden, sunt prezentati n tabelul 3. Precedena operatorilor (clasele de preceden) se refer la ordinea n care se execut operaiile ntr-o expresie care conine mai multe tipuri de operatori. Primii sunt executai operatorii de concatenare, dup care urmeaz operatorii arithmetic, operatorii de comparare i, la sfrit, operatorii logici. Operatorii pot fi unari (se aplic unui singur operand, de exemplu, Not) sau binari (prezint doi operatori, de exemplu, +. -, *, /, And, Or etc.). 1.11.4.3 Funcii Visual Basic Funcia (Function) reprezint o mulime ordonat de instruciuni creat n scopul ndeplinirii unei sarcini (task) bine precizat i repetabil. Funcia returneaz un singur rezultat. Funciile Visual Basic sunt predefinite sau definite de utilizator. Visual Basic asigur o bibliotec variat de funcii predefinite. n tabelul 4 sunt prezentate principalele funcii predefinite specifice limbajului Visual Basic. Tabelul 3 Clasele de preceden ale operatorilor n Visual Basic Clasa Operator Operaia 1. And, Or, Not Logic 2. Mod Modulo 3. <,>,<=,>=,=,<> Comparare + Adunare Scdere 4. ^ Exponeniere (ridicare la putere) \ mprire ntreag 5. * nmulire / mprire () [] Stabilire prioritate calcul 6. &, + Concatenare ir de caractere

19

Funcie Abs Asc Chr Cos Date Format Left Len Mid Now Right Rnd Sin Sqr Str Time Timer

Tabelul 4 Principalele funcii predefinite ale limbajului Visual Basic Valoare returnat Valoarea absolut a unui numr Codul ASCII sau ANSI al unui caracter Caracterul corespunztor unui cod ASCII sau ANSI Cosinusul unui unghi Data curent ca ir de caractere Dat sau numr convertite la un ir de caractere Selecteaz partea stng a unui ir de caractere Numrul de caractere dintr-un ir de caractere (lungimea irului de caractere) Selecteaz o parte din irul de caractere Data i ora curent Selecteaz partea de sfrit a unei ir de caractere Generarea aleatoare a unui numr Sinusul unui unghi Rdcin ptrat dintr-un numr Numr transformat ntr-un ir de caractere Timpul curent dat ca ir de caractere Numr de secunde rmase pn la miezul nopii (ora 0)

1.11.4.4 Implementarea structurilor de control al execuiei unui program S-au prezentat cele trei structuri de control fundamentale: structura de control secvenial (liniar), structurile de control alternative (cu ramificaii) i structurile de control repetitive (de ciclare). Tuturor acestor structuri de control fundamentale le sunt asociate instruciuni specifice n limbajul de programare Visual Basic, cu ajutorul crora poate fi controlat logica de execuie a oricrei secvene de program n Visual Basic. Acestor instruciuni li se altur comenzile asociate operaiunilor de intrare/ieire specifice introducerii datelor de intrare, respectiv extragerii rezultatelor prelucrrilor, precum i instruciunile de transfer. Instruciuni alternative (sau cu structur alternativ) Instruciunea If cea mai simpl form a acestei instruciuni este: If condiie Then instruciune De exemplu: If TVA=0.19 Then Vmctva=Vmftva + TVA * Vmftva Cnd n instruciunea If, dup cuvntul cheie Then urmeaz mai multe instruciuni, sintaxa general a instruciunii este: If condiie Then Secven de instruciuni End If De exemplu: If TVA=0.19 Then Vmctva=Vmftva + TVA * Vmftva Vfctva = Vfctva + Vmctva Print Tab(70); Vmctva; Tab(100); Vfctva End If O alt form a instruciunii If este: If Then Else End If. De exemplu: If TVA = 0.19 Then Vmctva=Vmftva + TVA * Vmftva Vfctva = Vfctva + Vmctva Print Tab(70); Vmctva; Tab(100); Vfctva Else Print TVA diferit de 19% End If Instruciunea Select Case Instruciunea Select Case se folosete n cazul cnd sunt precizate mai multe selecii. Sintaxa general a instruciunii este urmtoarea: Select Case variabil Case Is variabil sau expresie instruciuni Case Is variabil sau expresie instruciune Case Else instruciune End Select

20

De exemplu, pentru selecia persoanelor dup categoria de vrst (Categoria_varsta) se procedeaz astfel: Select Case Vrsta Case Is 5 Categoria_varsta = Copii sub 12 ani Case Is 13 TO 19 Categoria_varsta = Adolesceni Case Is 20 TO 35, 50, 60 TO 65 Categoria_varsta = Aduli Case Is > 65 Categoria_varsta = Btrni Case Else Categoria_varsta = Alte categorii End Select Instruciuni repetitive Ciclarea este asigurat prin formatul general Do Loop. Ciclrile implementeaz operaiile care se repet de un anumit numr de ori, ciclarea repetndu-se pn cnd se ndeplinete o condiie specificat, ntlnit la nceputul sau sfritul ciclrii. Instruciuni care implementeaz structuri de control repetitive condiionate anterior Din aceast categorie fac parte instruciunile Do {While|Until}Loop i While Wend care au urmtoarele sintaxe generale: Do [{While|Until} conditie] Secventa_instructiuni_1 [Exit Do] Secventa_instructiuni_2 Loop, respectiv: While conditie Secventa_instructiuni Wend Cnd conditie este adevrat (True), se execut secvena imediat de instruciuni. Instruciunea While Wend nu permite ieirea forat din ciclare. Instruciuni care implementeaz structuri de control repetitive condiionate posterior Din aceast categorie fac parte instruciunile Do Loop {While|Until}care au urmtoarea sintax general: Do [Secventa_instructiuni_1] [Exit Do] [Secventa_instructiuni_2] Loop {While|Until} conditie Un exemplu de utilizare a instruciunii Do Loop Until este urmtorul: Do Cant = InputBox("Introduceti cantitatea materialului: ") Pu = InputBox("Introduceti pretul unitar al materialului: ") Vmftva = Cant * Pu Vmctva = Vmftva + tva * Vmftva Print Cant; Tab(48); Pu; Tab(70); Vmftva; Tab(100); Vmctva Loop Until MsgBox("CONTINUATI?", vbYesNo) = vbNo Ciclarea se repet pn cnd rspunsul la ntrebarea CONTINUATI? va fi No (Nu). Instruciuni care implementeaz structuri de control repetitive cu contor n acest caz, numrul de iteraii este cunoscut. Din aceast categorie face parte instruciunea For Next care are urmtoarea sintax general: For contor=valoare_initiala To valoare_finala [Step pas] [Secventa_instructiuni_1] [Exit For] [Secventa_instructiuni_2] Next [contor]. Un exemplu de folosire a acestei instruciuni este urmtorul: For i = 1 To Nrm Cant = InputBox("Introduceti cantitatea materialului nr: " & i) Pu = InputBox("Introduceti pretul unitar al materialului nr: " & i) Vmftva = Cant * Pu Vmctva = Vmftva + tva * Vmftva txtVmftva = Format(Vmftva, "######0.00")

21

txtVmctva = Format(Vmctva, "######0.00") Next i. 1.11.5 Exemplu de aplicaie informatic n limbajul Visual Basic S se realizeze un program n limbajul Visual Basic care s calculeze valoarea total (fr TVA i cu TVA) a unei facturi de materiale. Factura conine un numr precizat de materiale. Datele de intrare sunt: numrul de materiale de pe factur (Nrm), numr factur (Nrf), data facturii (Df), codul materialului (Codmat), denumirea materialului (Denmat), cantitate (Cant) i preul unitar al materialului (Pu). TVA este de 19%. Datele de intrare vor fi introduse cu ajutorul casetelor de introducere a datelor prin dialog cu utilizatorul (InputBox).

Vfftva = 0; Vfctva = 0; TVA = 0.19; i=1;

Vmftva= Cant * Pu; Vmctva=Vmftva + TVA * Vmftva; Vfftva=Vfftva + Vmftva; Vfctva = Vfctva + Vmctva;

i=i+1

Fig.3 Schema logic pentru varianta 1 de rezolvare a problemei

22

Datele de intrare (Nrm, Nrf, Df, Codmat, Denmat, Cant, Pu), datele intermediare (Vmftva i Vmctva) i datele de ieire sau rezultatele rulrii programului (Vfftva i Vfctva) se vor afia n casetele text (TextBox) separate din formular. Lucrul cu casete text n formular reprezint o prim variant de rezolvare a problemei cu calculul i afiarea valorii facturii de materiale cu un numr precizat de materiale. Varianta a doua de rezolvare a problemei const n afiarea, sub form de tabel, pe formular, a datelor de intrare, a datelor intermediare i a rezultatelor rulrii aplicaiei. n aceast variant de rezolvare a problemei, nu se mai folosesc casete text (TextBox). n ambele variante de rezolvare a problemei, se prevd butoane de comand (Command Button) pentru calculul i afiarea unui material (fr TVA i cu TVA) butonul CALCULEAZA, pentru calculul valorii facturii (fr TVA i cu TVA) butonul AFISEAZA (pentru afiarea valorii facturii fr TVA i cu TVA) i pentru ieirea din program butonul IESIRE. Varianta 1 de rezolvare a problemei Schema logic este prezentat n fig.3. Este folosit o structur de control repetitiv cu contor (i), condiionat anterior care se implementeaz cu instruciunea For Next. Codul programului n limbajul Visual Basic, pentru varianta 1 de rezolvare, este urmtorul: Option Explicit Dim Nr_factura As Long Dim Data_factura As Date Dim Vmftva As Double Dim Vmctva As Double Dim Vfftva As Double Dim Vfctva As Double Dim Nrm As Byte Const tva = 0.19 Private Sub cmdCalcul_Click() Dim Cod_mat As Long Dim Den_mat As String Dim Cant As Integer Dim Pu As Single Dim i As Byte Nr_factura = InputBox("Introduceti numarul facturii: ") txtNrf = Format(Nr_factura, "######0") Data_factura = InputBox("Introduceti data facturii sub forma zz/ll/aaaa") txtDf = Format(Data_factura, "Short Date") Nrm = InputBox("Introduceti numarul de materiale de pe factura: ") Vfftva = 0 Vfctva = 0 For i = 1 To Nrm Cod_mat = InputBox("Introduceti codul materialului nr: " & i) txtCodmat = Format(Cod_mat, "######0") Den_mat = InputBox("Introduceti denumirea materialului nr: " & i) txtDenmat = Format(Den_mat, "######0") Cant = InputBox("Introduceti cantitatea materialului nr: " & i) txtCant = Format(Cant, "######0") Pu = InputBox("Introduceti pretul unitar al materialului nr: " & i) txtPu = Format(Pu, "######0.00") Vmftva = Cant * Pu Vmctva = Vmftva + tva * Vmftva Vfftva = Vfftva + Vmftva Vfctva = Vfctva + Vmctva txtVmftva = Format(Vmftva, "######0.00") txtVmctva = Format(Vmctva, "######0.00") Next i End Sub Private Sub cmdAfisare_Click() txtVfftva = Format(Vfftva, "######0.00") txtVfctva = Format(Vfctva, "######0.00") End Sub Private Sub cmdExit_Click() End End Sub

23

Rezultatele rulrii programului n prima variant de rezolvare a problemei sunt prezentat n fig.4.

Fig.4 Rezultatele rulrii programului realizat n varianta 1 Varianta 2 de rezolvare a problemei Schema logic este prezentat n fig.5, Este utilizat o structur de control repetitiv fr contor condiionat posterior. Implementarea acestei structuri n program se va face cu instruciunea Do Loop Until. Pe baza acestor considerente, nu mai sunt necesare variabilele i i Nrm folosite n varianta 1 de rezolvare a problemei. Codul programului n limbajul Visual Basic, pentru rezolvarea n varianta 2, este urmtorul: Option Explicit Dim Nrf As Long Dim Df As Date Dim Vmftva As Double Dim Vmctva As Double Dim Vfftva As Double Dim Vfctva As Double Const tva = 0.19 Private Sub cmdCalcul_Click() Dim Cod_mat As Long Dim Den_mat As String Dim Cant As Integer Dim Pu As Single Nrf = InputBox("Introduceti numarul facturii: ") Df = InputBox("Introduceti data facturii sub forma zz/ll/aaaa") Cls Print Tab(10); "FACTURA NR."; Tab(28); Nrf; Tab(45); "DIN DATA DE "; Tab(70); Df Print String(110, "=") Print Tab(2); "COD_MATERIAL"; Tab(20); "DEN_MATERIAL"; Tab(41); "CANT"; _ Tab(48); "PRET_UNITAR"; Tab(70); "VAL_M_FARA_TVA"; Tab(100); _ "VAL_M_CU_TVA" Print String(110, "=") Vfftva = 0 Vfctva = 0 Do Cod_mat = InputBox("Introduceti codul materialului: ") Den_mat = InputBox("Introduceti denumirea materialului: ") Cant = InputBox("Introduceti cantitatea materialului: ") Pu = InputBox("Introduceti pretul unitar al materialului: ") Vmftva = Cant * Pu Vmctva = Vmftva + tva * Vmftva Vfftva = Vfftva + Vmftva Vfctva = Vfctva + Vmctva Print Tab(2); Cod_mat; Tab(20); Den_mat; Tab(41); Cant; Tab(48); Pu; _ Tab(70); Vmftva; Tab(100); Vmctva Loop Until MsgBox("CONTINUATI?", vbYesNo) = vbNo

24

Print String(110, "=") End Sub Private Sub cmdAfisare_Click() Print Tab(20); "VALOARE FACTURA FARA TVA = "; Tab(60); Vfftva; Print Tab(20); "VALOARE FACTURA CU TVA = "; Tab(60); Vfctva; End Sub Private Sub cmdExit_Click() End End Sub

Vfftva = 0; Vfctva = 0; TVA = 0.19

Vmftva= Cant * Pu; Vmctva=Vmftva + TVA * Vmftva; Vfftva=Vfftva + Vmftva; Vfctva = Vfctva + Vmctva;

Fig.5. Schema logic pentru varianta 2 de rezolvare a problemei

25

Rezultatele rulrii programului n a doua variant de rezolvare a problemei, sunt prezentate n fig.6.

Fig.6. Rezultatele rulrii programului n a doua variant de rezolvare a problemei 2. TEORIA BAZELOR DE DATE SI A SISTEMELOR DE GESTIUNE A BAZELOR DE DATE

2.1 Organizarea datelor n baze de date. Sisteme de gestiune a bazelor de date.


Un sistem informatic eficace ofer utilizatorilor informaii relevante, corecte (exacte) i la timp. Aceste informaii sunt memorate sub form de date n fiiere, care trebuie s fie aranjate (organizate) i ntreinute astfel nct utilizatorii s obin cu uurin informaiile de care au nevoie. Managementul datelor este o parte foarte important a sistemului informatic organizaional economic deoarece influeneaz viteza cu care pot fi obinute datele i deci poate fi luat decizia. Exist situaii cnd viteza de luare a deciziei este o chestiune de supravieuire pentru organizaia economic. Datele sunt organizate ntr-o ierarhie care ncepe cu bii i octei (bytes) i continu cu cmpuri, nregistrri, fiiere, baze de date i depozite de date. Sistemul baz de date se definete ca fiind ansamblul de colecii organizate de date, mpreun cu descrierea datelor i a relaiilor dintre ele, care reprezint, complet, corect i coerent, universul real al organizaie economice (compartimentului specializat al acesteia) prin caracteristicile relevante (reprezentative) ale elementelor sale, percepute de sistem prin semantica lor (semnificaia lor real) i prin legturile dintre aceste caracteristici. Conceptul de baz de date a fost introdus n anul 1969, cu prilejul prezentrii primului raport CODASYL. Ulterior i alte grupuri de lucru specializate (IIBM, ANSI, DBTG) i-au adus contribuia la standardizarea conceptelor din teoria bazelor de date. Colecia de date, se definete ca fiind mulimea de valori (date) pe care le iau caracteristicile reprezentative ale unui element din universul real al organizaiei economice, dac la fiecare moment de timp se aplic asupra lor un predicat, o aciune din realitatea organizaiei economice, mpreun cu domeniile de definiie reale ale acestor caracteristici. ntr-un sistem baz de date, descrierea datelor const n descrierea structurii de date a sistemului baz de date i n descrierea regulilor care asigur coerena datelor, n raport cu universul real al organizaiei economice reprezentat. Tipurile de structuri logice de date sunt: punctual, liniar, arborescent, reea, relaional, orientat pe obiecte (OO). Structura de date a unui sistem baz de date este determinat de modelul abstract de reprezentare a datelor folosit, numit baz de date. n funcie de tipul stabilit pentru legturile dintre datele din coleciile de date (ierarhic, reea, relaional, orientat pe obiecte), s-au realizat mai multe modele abstracte de reprezentare a datelor, dar fiecruia i corespunde o singur structur de date a sistemului baz de date. Din acest motiv s-a generalizat utilizarea conceptului de baz de date, BD sau DB (DataBase), care este folosit att pentru denumirea structurii de date a unui sistem baz de date, ct i pentru denumirea modelului abstract de reprezentare a datelor care o determin. Mai mult chiar, conceptul de baz de date denumete att colecia organizat, ct i structura de date folosit pentru reprezentarea acesteia n sistemul baz de date. Sistemul de gestiune a bazei de date, SGBD sau DBMS (Data-Base Management System) reprezint un ansamblu complex de programe care asigur interfaa dintre baza de date i utilizator. O baz de date trebuie s satisfac urmtoarele condiii:

26

structura bazei de date trebuie s asigure informaiile necesare i suficiente pentru ndeplinirea cerinelor de informare i decizie; s asigure o independen sporit a datelor fa de programe i invers; s se realizeze o redundan (cardinalitatea informaiilor coleciilor de date) minim i controlat a datelor memorate; accesul la datele stocate n baza de date s fie rapid i eficace. O baz de date poate s fie exploatat, de regul, n regim de prelucrare pe loturi (batch) i n regim conversaional. Accesarea bazei de date se realizeaz prin aplicaii generale, programe de aplicaie, limbaje de manipulare autonome (procedurale i neprocedurale), interfee specializate cu limbajele de programare clasice etc., local sau de la distan, prin utilizarea calculatoarelor singulare sau a reelelor de calculatoare. Rezultatele interogrilor utilizatorilor se prezint sub form vizual, listat, prin memorare pe diveri supori tehnic de date, local sau la distan. Sistemul baz de date are rolul de organizare i stocare a unor volume mari de date, n vederea gestionrii, prelucrrii, distribuirii i utilizrii multiple, folosind sistemele de calcul, programele utilitare i programele de aplicaie. Pornind de la funcia sa, un sistem baz de date este format, ca structur general, din: colecii de date, baza de date, SGBD, programe de aplicaie i utilitare, precum i utilizatori. Dac conceptul de baz de date denumete att coleciile de date ct i structura de date folosit pentru reprezentarea acesteia, atunci structura general a sistemului baz de date este baza de date, SGBD, programe de utilizare, utilizatori. Arhitectura unui sistem baz de date este definit n conformitate cu specificaiile utilizatorilor finali (end-users) i cuprinde baza de date, SGBD, programele de aplicaie, utilitare, schema bazei de date i utilizatorii (programatorul de aplicaie, administratorul bazei de date i utilizatorii finali). Programatorii de aplicaie, avnd la dispoziie utilitare (programe specializate de proiectare) i prin colaborarea cu administratorul bazei de date (acesta lucreaz nemijlocit cu schema bazei de date), pun la punct programele de aplicaie. Interfaa dintre baza de date i schema BD, utilitare i programele de aplicaie este sistemul de gestiune a bazei de date, SGBD. Obiectivele unui SGBD sunt, n principal, urmtoarele: asigurarea independenei datelor fa de aplicaie; asigurarea redundanei minime i controlate a datelor; asigurarea tuturor facilitilor posibile de exploatare a datelor; asigurarea securitii i proteciei datelor mpotriva accesului neautorizat (inclusiv prin criptarea datelor); asigurarea coerenei i integritii datelor mpotriva tergerilor accidentale sau intenionate; asigurarea partajrii datelor (accesul concurent al utilizatorilor la baza de date); asigurarea nivelului de performan global (volum mare de date complexe gestionate cu un timp de rspuns acceptabil la adresarea cererilor de interogare din partea utilizatorilor multipli). Funciile generale ale unui SGBD sunt: 1. descrierea datelor (definirea structurii bazei de date prin intermediul limbajului de definire a datelor); 2. manipularea datelor (ncrcarea, actualizarea, prelucrarea i regsirea datelor cu ajutorul limbajului de manipulare a datelor); 3. utilizarea bazei de date (de ctre toate categoriile de utilizatori); 4. administrarea bazei de date. Fiecare grup de lucru pentru standardizarea bazelor de date (CODASYL i ANSI, n principal) a propus o arhitectur proprie a unui SGBD. Limbajele SGBD (DBMS) pot fi grupate n trei categorii de limbaje: a) limbajul de definire a datelor (DDL, Data Definition Language); b) limbajul de manipulare a datelor (DML, Data Manipulation Language); c) limbajul de descriere a stocrii datelor (DSDL, Data Storage Description Language). Operaiile ce se execut asupra unei baze de date sunt: creare; ncrcare (populare); consultare: cutare (selecie); actualizare: modificare, adugare articole noi, tergerea unor articole, ordonare (sortare, indexare), prelucrare etc. Dicionarul de date (Data Dictionary) este un fiier care memoreaz definiiile datelor i caracteristicile lor ca: folosirea, reprezentarea fizic, proprietatea (cine este responsabil pentru ntreinerea lor), autorizarea i securitatea. Prin faptul c reprezint un inventar a datelor coninute ntr-o

27

baz de date, dicionarul de date este un important instrument de management organizaional. n realizarea acestor dicionare de date se folosesc metadatele. Metadatele reprezint date despre date (nume, coninut, semnificaie, proprietar etc.). O baz de date este compus dintr-o mulime de atribute (cmpuri, coloane) i are asociat o mulime de date (linii, rnduri, nregistrri, articole). O nregistrare (record) reprezint o asociere a valorilor pentru fiecare cmp (field) al bazei de date. Cele trei nivele de organizare a datelor ntr-o baz de date sunt logic, virtual i fizic. Nivelul logic sau extern (nivelul programatorului de aplicaie) calific o structur de date ce are o realitate n planul semnificaiei sau utilizrii, dar nu i n implementarea fizic; calific forma n care fiecare utilizator vede structurarea datelor, n funcie de aplicaia pe care o folosete sau n funcie de resursele de date pe care administratorul bazei de date i le pune la dispoziie. Nivelul virtual sau conceptual (nivelul administratorului bazei de date) se refer la definirea structurii datelor din baza de date astfel nct aceasta s ndeplineasc cerinele tuturor utilizatorilor, n condiii de redundan minim i controlat a acesteia. Nivelul fizic (nivelul inginerului de sistem) privete modul de stocare i de structurare a datelor pe suportul fizic de memorare a datelor (volum magnetic, cilindru, pist, sector, bloc, octet i bit). Structura virtual reprezint schema bazei de date, iar structura logic este denumit subschema bazei de date (concepia CODASYL). Astfel, se poate concluziona c SGBD (DBMS) asigur legtura dintre nivelul conceptual (virtual) i nivelul fizic. O nregistrare virtual se poate prezenta sub forma a una sau mai multe nregistrri fizice i poate participa la construirea unei sau mai multor nregistrri logice. ntr-o baz de date ideal datele sunt definite o singur dat i folosite ori de cte ori este necesar. n funcie de locul n care sunt memorate coleciile de date ce formeaz baza de date, se deosebesc: baze de date centralizate, CDB (Centralized DataBases), n situaia n care toate coleciile care formeaz baza de date sunt stocate pe un singur calculator; baze de date distribuite, DDB (Distributed DataBases), n situaia n care coleciile care formeaz baza de date sunt rspndite n nodurile unei reele de calculatoare i de comunicaii. Dup orientare, bazele de date pot fi generalizate i specializate. n cadrul DDBMS, accesarea bazelor de date distribuite, DDB se realizeaz, n principal, prin intermediul limbajului structurat de interogare, SQL (Structured Querry Language) i al arhitecturii Client/Server (acestea sunt prezentate pe larg n capitolul 7 al lucrrii). Realizarea unei baze de date se obine prin parcurgerea etapelor: analiz sistem, proiectarea structurii bazei de date, popularea (ncrcarea) bazei de date cu date, exploatarea i ntreinerea bazei de date. Coninutul acestor etape este dependent, de regul, de tipul bazei de date i de domeniul n care este ea folosit. Activitatea de analiz a sistemului economic presupune: a. analiza componentelor sistemului i a legturilor dintre acestea sau analiza structural n urma creia se definete modelul structural sau static al sistemului economic; b. analiza strilor sistemului i a tranzaciilor posibile ntre aceste stri n raport cu anumite evenimente. n urma acestei analize rezult modelul dinamic sau temporal; c. analiza cerinelor informaionale, n urma creia se definete modelul funcional al sistemului economic; d. integrarea modelelor sistemului economic (structural, dinamic i funcional) n scopul corelrii i completrii lor. Se face meniunea c analiza funcional a sistemului are ca scop determinarea transformrilor de date care se produc n cadrul sistemului n scopul satisfacerii cerinelor informaionale specifice acestui sistem. Transformrile de date se vor prezenta sub forma unei diagrame de flux a prelucrrilor (modelul funcional), n care nodurile reflect procesele de prelucrare informaional i arcele fluxurile informaionale ale datelor n baza de date. La proiectarea unei baze de date, procesul de normalizare ajut proiectantul bazei de date s creeze o structur a bazei de date care poate economisi spaiul de memorare a datelor i poate conduce la creterea eficienei prelucrrii datelor. Scopul normalizrii este de a minimiza redundana datelor. 2.2 Clasificarea bazelor de date i de sisteme de gestiune a bazelor de date asociate n evoluia istoric, bazele de date i sistemele de gestiune a bazelor de date (SGBD) asociate au cunoscut trei generaii: sistemele ierarhice i reea; sistemele relaionale; sistemele n tehnologie avansat (orientate obiect, relaionale orientate obiect, deductive, distribuite, multibaze, active, multimedia, online etc.).

28

Sistemele ierarhice i reea reprezint datele la nivel de articol, prin legturi ierarhice (arbore) sau de tip graf reea. Deoarece datele prezint o slab independen fizic, SGBD (DBMS) este mai complicat i mai greoi n comparaie cu celelalte sisteme. Drumurile de acces la date sunt specificate prin intermediul limbajului de manipulare a datelor. Diagrama structurii de date (graf orientat ce reprezint tipuri de entiti i legturi funcionale dintre ele) servete pentru descrierea, la nivel logic, a structurilor de date specifice sistemelor ierarhice i reea. Sistemele relaionale trateaz entitile ca nite relaii. Modelul relaional (ce aparine lui E.F.Codd) reprezint un model formal de organizare conceptual a datelor, ce realizeaz reprezentarea legturilor dintre date, avnd la baz teoria matematic a relaiilor. Un sistem relaional este compus formal dintr-o baz de date relaional, o colecie de operatori relaionali, regulile de integritate care guverneaz utilizarea cheilor n model i un set de asocieri. Elementele de definire a modelului relaional corespund celor trei componente ale ingineriei software: informaie, proces, integritate. Problematica de detaliu a sistemelor de gestiune a bazelor de date relaionale este tratat n paragraful urmtor. Sistemele de gestiune a bazelor de date n tehnologii avansate elimin cea mai mare parte a acestor dezavantaje. n programarea orientat pe obiecte, OOP (Object-Oriented Programming), efortul esenial este direcionat pentru definirea obiectelor. Obiectele de acelai tip formeaz o clas ce cuprinde, alturi de date, i metodele de acces la aceste date. Datele sunt transparente numai pentru metodele asociate clasei respective (ncapsularea datelor). Prin funciile denumite constructori i destructori, se realizeaz controlul asupra creerii i tergerii unui anumit obiect. Prin motenire, se obin clase derivate ce motenesc proprietile (date i funcii) claselor-printe. Prin reunirea tehnicilor bazelor de date cu acelea ale limbajelor orientate obiect s-au obinut bazele de date orientate obiect i sistemele de gestiune aferente acestora, OODBMS (Object-Oriented DBMS). Se realizeaz astfel o organizare coerent a obiectelor partajate ntre utilizatori concureni. OODBMS prezint urmtoarele avantaje: integrarea descrierii structurale i comportamentale; posibiliti superioare de deducie (ierarhie de clase, motenire); considerarea aspectelor dinamice n cadrul aplicaiilor; mbuntirea interfeei cu utilizatorii. Se apreciaz, totui, c administrarea obiectelor complexe este mai dificil dect accesul la relaii prin cereri SQL, specific bazelor de date relaionale. Avantajele incontestabile ale tehnologiei orientate obiect au fost combinate cu acelea ale modelului relaional, rezultnd bazele de date relaionale orientate obiect. Relaiile sunt mulimi de nregistrri ce reprezint fapte. Cunotinele se definesc ca aseiuni generale i abstracte asupra faptelor. Pe baza faptelor cunoscute tezaurizate n cunotine, se pot deduce noi fapte printr-un proces de raionamente. Bazele de date deductive ce folosesc programarea logic (specific inteligenei artificiale) administreaz cunotine relativ la baze de date ce sunt, de regul, RDB. Sistemele multibaze de date sunt compuse din mai multe sisteme de baze de date ce sunt integrate pe baza schemelor globale. Se realizeaz astfel accesul uniform i integrat la fiecare dintre bazele de date componente. Dac se consider scopul esenial de analiz a datelor, inclusiv istorice, pentru toat organizaia, o baz de date optimizat n acest scop definete o Data Warehouse (depozit de date), dup principiul procesrii analitice, OLAP (On-Line Analytical Processing). Sistemele tranzacionale (ce se folosesc pentru prelucrarea datelor operaionale ale organizaiei economice) au la baz principiul procesrii tranzacionale online, OLTP (On-Line Transactional Processing), de control la un moment dat al unei singure tranzacii. Data Warehouse admite interogri ce nu sunt predefinite i ofer rspunsuri ad-hoc pe baza analizelor datelor ce se refer la ntreaga organizaie. Data Warehouse se subdivide n baze de date departamentale (domenii de gestiune ale organizaiei) denumite rafturi de date (Data Marts). Realizarea sistemelor de sprijin al deciziilor, DSS (Decision Support Systems) implic un proces laborios de descoperire a informaiilor utile din cadrul bazelor mari de date. Procesul este denumit Data Mining ( mineritul datelor ) sau de descoperire a cunotinelor n baza de date, KDD (Knowledge Discovery in Databases). O baz de date OLAP poate s fie baz de date relaional, dar i baz de date multidimensional. Structura unei baze de date multidimensionale conine obiecte de urmtoarele tipuri: variabile, dimensiuni, niveluri, ierarhii, atribute. 2.3 Baze de date relaionale Termenul de baz de date relaional (BDR) a fost introdus de E.F.Codd de la firma IBM n anul 1969. Modelul relaional este fundamentat pe reguli, structuri i operaii. Regulile stabilesc modul de manipulare a datelor, structurile sunt obiecte definite ce conin date i care sunt accesibile utilizatorului, iar operaiile reprezint aciuni prin care sunt manipulate datele sau obiectele schemei bazei de date.

29

E.F.Codd a formulat n anul 1985 cele 13 reguli de baz care definesc o baz de date relaional. Trebuie precizat faptul c nici un SGBD actual nu respect n totalitate cele 13 reguli ale lui Codd. O baz de date relaional reprezint o colecie de relaii (tabele n accepiunea uzual, memorate fizic n fiiere). Coloanele tabelului se numesc atribute, iar liniile se numesc tupluri. Baza de date relaional (RDB) este compus dintr-o mulime de domenii i o mulime de relaii peste care se aplic o mulime de asocieri. Domeniul este definit ca mulimea obiectelor de acelai tip. Relaia este o mulime rezultat ca urmare a agregrii (corespondenei) a dou sau mai multe mulimi. O relaie n accepiunea bazelor de date pe domeniile Di const dintr-un cap de tabel i un corp de tabel. Asocierea se realizeaz pe baz de atribute (din capul de tabel). Un astfel de exemplu este tabelul (relaia) referitor la MATERIALE: Tabelul 5 Cod_material Denumire_material Cantitate Pret_unitar 01212 Tabl 1200 180000 03214 Cornier 400 420000 04301 Cherestea 850 210000 Fiecare linie descrie un anumit material. Coloanele conin etichete ce reprezint nume ale atributelor (Cod_material, Denumire_material, Cantitate, Pret_unitar). Domeniul ce reprezint codurile materialelor este: D1: {01212,03214,04301}. iar domeniul pentru tipurile de materiale (delimitate prin denumire_material) este: D2: {TABLA,CORNIER,CHERESTEA}. Domeniul pentru cantitate este: D3: {1200,400,850}. Domeniul preurilor unitare, n acest caz, este: D4: {pret_unitar pret_unitar[180000,420000]}. Mulimea tuplurilor este definit prin produsul cartezian al domeniilor D1 X D2 X X Dn. Exemplu de tuplu: <01212,TABLA,1200,180000>. Relaia L se definete prin tupluri corespunztoare din tabel: L: {<01212,TABLA,1200,180000>, <03214,CORNIER,400,420000>}. ntr-o relaie, este necesar ca tuplurile s fie distincte (nu se permit valori duplicate). Ca urmare, se observ c relaia este reprezentat prin tabelul bidimensional n care coloanele sunt domenii iar liniile sunt tupluri. Numrul tuplurilor unei relaii este cardinalul relaiei. Numrul valorilor unui tuplu este gradul relaiei. Schema unei relaii este format din numele relaiei i lista atributelor (pentru fiecare atribut este necesar specificarea domeniului asociat). Modelul relaional este format din dou mulimi de operatori pe relaii: algebra relaional i calculul relaional. E.F.Codd a definit algebra relaional ca o colecie de operaii pe relaii, astfel nct o anumit operaie dispune de operanzi de tipul relaie i are ca rezultat tot o relaie. Tipurile de operaii acceptate de algebra relaional sunt operaii de baz (reuniunea, diferena, proiecia, produsul cartezian .a.), operaii derivate (intersecia i diviziunea) i operaii suplimentare (selecia, splitarea unei relaii, complementarea unei relaii, nchiderea tranzitiv, jonciunea etc.). Algebra relaional permite derivarea procedural a relaiilor. Calculul relaional conine mulimea operatorilor din modelul relaional i este o adaptare a calculului cu predicate (o relaie este identificat cu un predicat) pentru domeniul BDR. Calculul relaional asigur definirea neprocedural, declarativ a relaiilor. Relaiile sunt precizate prin proprietile tuplurilor. Iniial, n BDR, variabilele definite asupra relaiilor aveau valori care reprezentau tupluri de relaie (variabile tuplu), obinndu-se calculul relaional orientat pe tuplu. Cnd variabilele opereaz asupra domeniilor aa cum se petrec lucrurile n prezent ele sunt variabile domeniu i determin calculul relaional orientat pe domeniu. Regulile de integritate sunt aseriuni pe care datele ce formeaz baza de date trebuie s le satisfac i sunt n numr de trei: unicitatea cheii (cheia primar trebuie s fie unic i minimal), integritatea entitii (atributele cheii primare trebuie s fie diferite de null) i integritatea referirii (o cheie extern trebuie s fie null n ntregime sau s corespund unei valori a cheii primare asociate). Constrngerile structurale sunt de trei tipuri: de cheie, de referin i de entitate. Cheia unei relaii reprezint o mulime minimal de atribute ale cror valori identific n mod unic un tuplu ntr-o relaie. Diferitele chei posibile se numesc chei-candidat. Cheia candidat aleas pentru a identifica efectiv tupluri se numete cheie primar. Conceptele folosite pentru descrierea formal, uzual i fizic a elementelor de baz ale organizrii datelor n baze de date relaionale sunt prezentate n tabelul urmtor.

30

Formal Relaie Tuplu Atribut domeniu

Tabelul 6 Uzual tablou linie coloan tip de dat

Fizic Fiier Inregistrare Cmp tip de dat

Definirea proprietilor structurale ale relaiilor se realizeaz prin tehnica normalizrii. Se afirm c o relaie se gsete ntr-o form normal particular dac ndeplinete un numr specificat de restricii. Normalizarea se obine printr-un numr de pai succesivi, n cadrul unui proces reversibil, pn la realizarea formei dorite. Forma normal a unei relaii este necesar deoarece formele normale nu produc anomalii n actualizarea datelor unei baze de date relaionale. Tipurile de restricii folosite la formele normale ale relaiilor sunt restriciile asupra valorilor atributelor, restriciile referitoare la dependena atributelor secundare de chei, restriciile cu privire la dependena atributelor principale de toate atributele. 3. SISTEMUL DE GESTIUNE A BAZELOR DE DATE MICROSOFT ACCESS 3.1 Prezentarea sistemului Microsoft Access Produsul-program Microsoft Access reprezint un sistem de gestiune a bazelor de date relaionale (SGBDR) care este inclus n compunerea pachetului de birotic Microsoft Office si care lucreaza sub sistemul de operare Microsoft Windows. Ca urmare, Microsoft Access folosete toate facilitile oferite de sistemul de operare Microsoft Windows. Firma Microsoft a realizat n decursul timpului mai multe versiuni ale produsului Access. n capitolul de fa referirile sunt efectuate la versiunile Microsoft Access 2000, 2002 (XP) i 2003. La baza SGBDR Microsoft Access se afl modelul relaional al datelor i modelul orientat pe obiecte (unui obiect i sunt asociate evenimente i proprieti). n comparaie cu alte SGBDR, produsul Microsoft Access dispune de toate componentele unei baze de date stocate ntr-un fiier cu extensia MDB. Sistemul de gestiune a bazelor de date relaionale Microsoft Access conserv avantajele sistemelor de gestiune, asigurnd astfel interfaa ntre baza de date i utilizator. SGBD Microsoft Access permite definirea, consultarea i actualizarea bazelor de date i, n plus, partajarea datelor ntre mai muli utilizatori. Se apreciaz c mai mult de 20 de utilizatori pot lucra simultan la o baz de date Access. Pentru execuia comenzilor prin intermediul interfeei grafice a SGBD Microsoft Access se asigur urmtoarele posibiliti: meniuri, instrumente specifice (unelte ca butoane, casete etc), casete de dialog, combinaii de taste. Produsul Microsoft Access permite lucrul cu trei limbaje: QBE (Query By Examples), SQL (Structured Query Language) i VBA (Visual Basic for Applications). Ca urmare, exist mai multe modaliti de realizare a aplicaiilor pentru baze de date sub SGBD Microsoft Access: interfaa standard Access, interfaa SQL, cu ajutorul VBA, interfeele Access pentru comunicarea cu alte SGBD-uri (Paradox, FoxPro, dBase etc.), interfeele Access cu alte aplicaii Windows. Aplicaiile n sine sunt obiecte ale utilizatorilor destinate pentru o anumit baz de date. Aceste obiecte sunt, de regul, de tip vizual. Schema bazei de date este format din ansamblul tabelelor i poate fi utilizat prin manipularea interogrilor asupra bazei de date. Aceste interogri sunt obinute prin intermediul limbajului de interogare structurat, SQL. Produsul Microsoft Access este compatibil cu tehnologia ActiveX care este specific aplicaiilor de tipul client/server. 3.2 Cunoaterea mediului de lucru Microsoft Access 3.2.1 Definirea componentelor principale ale SGBD Microsoft Access SGBD Microsoft Access 2003, (XP, 2000) asigur posibilitatea manipulrii datelor n conformitate cu cerinele utilizatorilor. Datele sunt stocate n mod organizat n baze de date. Baza de date permite localizarea rapid a unui anumit element, compararea statisticilor pe diverse perioade de timp, interogarea anumitor categorii de date i obinerea facil a rezultatelor tiprite. O baz de date Microsoft Access reprezint o colecie de obiecte de tipul: tabele, formulare, interogri, rapoarte, pagini, macroinstruciuni i module. Obiectele Microsoft Access sunt percepute prin ceea ce fac, comportamentul lor mascnd elemente de structur intern. n momentul n care obiectul a fost creat, el poate fi utilizat i n alte aplicaii, compuse din obiecte care interacioneaz prin specificul comportamentului lor. n acest caz, nu

31

mai exist un program care manipuleaz datele, ci obiecte care i transmit reciproc date. Evenimentele care apar i schimbrile de stare pe care acestea le declaneaz determin o schimbare a metodologiei de concepere a sistemului. Tabelele (Tables) sunt obiecte utilizate de Access pentru stocarea datelor. Crearea unei baze de date ncepe cu definirea tabelelor. Fiecare coloan a tabelului este denumit cmp (field), iar fiecare rnd al tabelului constituie o nregistrare (record). nregistrrile unui tabel respect aceeai structur de cmpuri. La crearea unui tabel nou se solicit definirea cmpurilor, atribuindu-se fiecruia o denumire unic i indicndu-i SGBD Access tipul de date corespunztor. Ulterior se pot aduga i alte cmpuri, cu condiia reproiectrii eventualelor formulare i rapoarte care folosesc datele tabelului n structura anterioar acestei operaii. Interogrile (Queries) sunt obiecte Access ce reprezint ntrebri pe care utilizatorul le formuleaz n legtur cu numite informaii din baza de date. n momentul n care utilizatorul pornete la construcia unei interogri, acesta trebuie s aib deja o viziune de ansamblu asupra datelor pe care dorete s le regseasc, i anume: ce cmpuri se vor utiliza, din care tabele se vor extrage datele, ce criterii trebuie s ndeplineasc aceste date, n ce ordine vor fi ele sortate. Construirea unei interogri n SGBD Access reprezint un proces simplu i rapid de aezare a tabelelor i a cmpurilor necesare pe o gril de tipul QBE (Query by Example). Limbajul QBE a fost lansat pe pia n anii 1970 de firma IBM, care a dorit s pun la dispoziia utilizatorilor un produs performant de regsire a datelor ntr-o baz de date. Succesul limbajului QBE a fost att de mare nct acesta este prezent ntr-o form sau alta n aproape toate sistemele SGBD, inclusiv n Microsoft Access. Formularele (Forms) reprezint obiecte Access destinate introducerii datelor ntr-o baz de date (cnd formularul este asociat unui tabel), precum i vizualizrii datelor datelor din baza de date (cnd formularul este asociat unei interogri). Astfel cu ajutorul formularelor se pot efectua cteva operaii tipice n baza de date, i anume operaii de adugare, modificare sau de tergere a unor date din baza de date. Rapoartele (Reports) reprezint un alt obiect al unei baze de date Microsoft Access, prin intermediul cruia utilizatorul are posibilitatea de a prezenta date selectate n rezumat, inclusiv n format pentru tiprire. Prin intermediul rapoartelor utilizatorul are un control complet asupra dimensiunilor i modului de prezentare a datelor de ieire. De asemenea, rapoartele permit prezentarea unor informaii de sintez rezultate ca urmare a prelucrrilor executate n baza de date. Rapoartele se difereniaz de formulare prin faptul c n timp ce formularul este proiectat pentru a avea un acces aleator la date, el bazndu-se pe un set dinamic al datelor, rapoartele nu modific niciodat datele din baza de date, parcurgerea nregistrrilor realizndu-se n mod secvenial (SGBD Microsoft Access utilizeaz pentru obinerea unui raport o copie a datelor protejat la scriere). Paginile (Pages) sunt obiecte Access ce asigur accesarea bazelor de date din Internet prin intermediul navigatoarelor (browser-elor) Web. Aceste obiecte sunt necesare ca urmare a prelucrrii integrate a datelor care circul n Internet sub forma unei aplicaii globale a datelor, inclusiv pentru funcia de partajare a datelor. Macroinstruciunile sau macro-urile (Macros) reprezint obiecte Access care definesc ansamble de comenzi pe care sistemul Microsoft Access le execut automat la apariia unor evenimente. Macrourile pot fi ataate unui formular, raport sau control n scopul automatizrii unor operaii de rutin (deschidere sau nchidere de formulare, imprimarea unor rapoarte, filtrarea, verificarea sau validarea unor date etc.). Modulele (Modules) sunt obiecte Access ce sunt create n limbajul Visual Basic pentru aplicaii, VBA (Visual Basic for Applications) destinate extinderii posibilitilor funcionale ale unei baze de date. 3.2.2 Deschiderea i nchiderea unei baze de date n Microsoft Access SGBD Microsoft Access poate fi pornit din meniul Start sau din zona de lucru. La pornirea SGBD Access 2003, panoul de lucru Getting Started este disponibil n partea din dreapta ecranului. Din meniul Vizualizare (View) se execut clic pe opiunea Task Pane de unde se alege panoul de lucru dorit cu clic pe sgeata de list de pe bara de titlu a panoului respectiv. Comutarea ntre panourile de lucru se efectueaz cu clic pe butoanele napoi (Back) i nainte (Forward). nchiderea unui panou de lucru se efectueaz prin intermediul butonului nchidere (Close). Caseta Search for servete pentru cutarea unui nume sau a unei locaii de fiier. De asemenea, Search for poate fi util pentru cutarea unei proprieti ntr-o baz de date sau a unui anumit ir de caractere. Deschiderea unei baze de date existente se execut din panoul de lucru Getting Started, cu opiunea Open din meniul File sau cu butonul Open de pe bara cu instrumente, urmat de numele bazei de date.

32

Crearea unui nou fiier se face cu opiunea Task Pane. Pentru o baz de date nou se alege opiunea Blank database din meniul New. Deschiderea unei baze de date existente sau noi presupune lucrul cu fereastra Database (baz de date) care afieaz obiectele care formeaz baza de date. Fereastra Database pune la dispoziie utilizatorului o metod simpl de gestionare a obiectelor care compun baza de date. n fereastra Database sunt afiate, n partea stng a ferestrei. cele apte tipuri de obiecte care formeaz baza de date, i anume: Tabelul (Table); Interogarea (Query); Formularul (Form); Raportul (Report); Pagini Web (Pages); Macro-ul (Macro); Modulul (Module). Cele trei butoane (butonul Open, butonul Design, butonul New) afiate n partea de sus a ferestrei Database, sunt utilizate pentru crearea, modificarea i respectiv afiarea obiectului curent. Obiectele create vor fi afiate n lista cu obiecte situat n mijlocul ferestrei Database. n interiorul acestei liste se mai afl trei opiuni rapide de creare a obiectelor. Obiectele gestionate cu SGBD Microsoft Access, mpreun cu elementele de control care le sunt asociate, conin proprieti i declaneaz apariia unor tipuri de evenimente. Pentru modificarea proprietilor unui obiect, se selecteaz din partea stng a ferestrei Database eticheta corespunztoare tipului de obiect. Aceast operaie are ca efect afiarea n ordine alfabetic (n lista cu obiecte) a tuturor obiectelor de acelai tip. Se execut un clic cu butonul din partea dreapt a mouse-ului pe obiectul a crui proprietate se dorete a se modifica, iar din meniul rapid care apare se pot efectua urmtoarele: deschiderea obiectului respectiv pentru a consulta datele coninute n el; deschiderea obiectului n modul Design pentru a efectua modificri de structur; salvarea obiectului respectiv sub un alt nume; vizualizarea coninutului obiectului nainte de a-l trimite pentru tiprire; realizarea unei copii a coninutului obiectului la imprimant; tergerea din baza de date a obiectului, sau redenumirea acestui obiect; realizarea unui duplicat al obiectului curent prin copierea n clipboard (memorie tampon sau temporar) i apoi recopierea din aceast memorie tampon. Aceast comand este necesar atunci cnd este nevoie de un tabel similar cu unul deja creat. SGBD Access cere confirmarea copierii tabelului cu toate datele pe care le conine, sau numai a structurii acestui tabel; copierea unui tabel sau a unui obiect de tip interogare n clipboard i apoi recopierea acestuia n programe ca Excel i Word; se determin astfel copierea datelor Access n programele respective; Butonul Open (deschide), sau alegerea opiunii Open din meniul rapid, are ca efect o afiare a obiectului selectat pentru o utilizare normal. Butonul Design (proiectare), sau alegerea opiunii Design din meniul rapid, asigur ca obiectul selectat s fie deschis n modul de afiare Design n vederea efecturii modificrilor necesare tipului de aplicaie dorit de utilizator. Butonul New (nou) asigur crearea unui obiect nou, de tipul selectat anterior. n timpul lucrului cu SGBD Microsoft Access se pot obine informaii de ajutor prin intermediul meniului Help de pe bara cu instrumente. Prin introducerea unui sau mai multor cuvinte-cheie n caseta Search for se obin explicaii detaliate referitoare la subiectul dorit. 3.3 Tabelul 3.3.1 Crearea unui tabel Tabelul (Table) este un obiect specific SGBD Microsoft Access pentru stocarea datelor. Crearea unei baze de date (structurile de date specifice acesteia) ncepe cu definirea tabelelor. Aceast definire nseamn, de fapt, stabilirea structurii tabelului. Fiecare coloan a tabelului este denumit cmp (field), iar fiecare rnd al tabelului constituie o nregistrare (record). nregistrrile unui tabel respect structura de cmpuri a tabelului. La crearea unui tabel nou se solicit definirea cmpurilor, atribuindu-se fiecruia o denumire unic i indicndu-i SGBD Microsoft Access tipul de date corespunztor. Ulterior se pot aduga i alte cmpuri, cu condiia reproiectrii eventualelor formulare i rapoarte care folosesc datele tabelului n structura anterioar acestei operaii. Pentru crearea unui tabel, se poate utiliza una dintre urmtoarele trei metode: Create table in Design View (crearea tabelului cu ajutorul ferestrei de proiectare)

33

Create table by using wizard (crearea tabelului prin folosirea ghidului) Create table by entering data. (crearea tabelului prin introducerea datelor). Crearea tabelelor prin alegerea opiunii Create table by using wizard (program vrjitor dedicat tabelelor) asigur asistarea pe ntregul parcurs de construcie a unui tabel, definind prin intermediul unui dialog cu utilizatorul numele i tipul de cmpuri care definesc tabelul. O alt modalitate de a crea un tabel o constituie executarea unui clic de mouse pe butonul New i alegerea din fereastra de dialog New Table, a uneia dintre cele cinci opiuni disponibile: 1. Datasheet View permite crearea unui tabel n modul Datasheet (foaie de date), avnd 10 cmpuri (coloane) i 21 de nregistrri (rnduri) libere, pregtit pentru completare. 2. Design View permite crearea unui tabel n modul Design (proiectare). 3. Table Wizard permite crearea de tabele cu ajutorul magicienilor bazei de date. 4. Import Table aceast facilitate import tabele i obiecte aflate n alte baze de date. 5. Link Table creeaz tabele n baza de date curent care sunt legate cu alte tabele din baze de date externe. Crearea tabelelor cu ajutorul opiunii Design View presupune parcurgerea a trei pai pentru definirea unui cmp n structura unui tabel: stabilirea numelui cmpului, stabilirea tipului de dat asociat acelui cmp i stabilirea proprietilor acestuia. Cnd se alege aceast modalitate de construcie a unui tabel, pe ecranul monitorului este afiat fereastra de dialog Table. Fereastra de dialog Table este format din dou zone: zona aflat n partea de sus a ferestrei (zon folosit pentru declararea cmpurilor), alctuit dintr-un tabel format din trei coloane i o a doua zon aflat n partea de jos a ferestrei, zon n care se stabilesc proprietile cmpului. Zona de declarare a cmpurilor este format dintr-un tabel compus din trei coloane: Coloana Field Name n aceast coloan se declar numele cmpurilor. SGBD Microsoft Access permite folosirea unor nume de cmpuri de maxim 64 de caractere, inclusiv spaiile. n construcia numelui unui cmp se pot folosi litere mari i mici, avndu-se n vedere ca aceste nume s nu prezinte aceeai denumire cu numele utilizate ca proprieti de SGBD Microsoft Access. Coloana Data Type indic ce tip de date vor fi memorate n acel cmp i ct memorie se va aloca pentru acel cmp. Coloana Description (Descriere) n aceast coloan se poate scrie de ctre utilizator un text explicativ cu scopul de a detalia destinaia cmpului. Tipurile de date asociate cmpurilor definesc tipurile de cmpuri i sunt urmtoarele: 1. Text Un cmp text are implicit 50 de caractere, dar se poate opta pentru orice lungime cuprins ntre 1 i 255. 2. Memo Cmpurile memo constau numai din text i au maxim 255 de caractere, n acestea putnd fi incluse i secvenele de salt la nceput de rnd/salt la rnd nou. Aceste cmpuri sunt utilizate pentru a scrie comentarii. 3. Numr (Number) Tipul Number include mai multe subtipuri de date care difer prin modul de stocare i viteza de rspuns, i anume: subtipul Byte (octet) care accept numai valori ntregi pozitive (fr semn) cuprinse ntre 0 i 255; subtipul Integer (ntreg) acoper domeniul numerelor ntregi de la 32768 la +32768; subtipul Long Integer (ntreg lung) acoper domeniul numerelor ntregi dincolo de limitele 2.000.000.000; subtipul Single (numere reale reprezentate n virgul mobil simpl precizie) acoper domeniul numerelor fracionare cu maxim apte cifre semnificative; subtipul Double (numere reale reprezentate n virgul mobil dubl precizie) acoper domeniul numerelor fracionare cu maxim 14 cifre semnificative; subtipul ReplicationID (identificator duplicare sau identificator multiplicare); aceast valoare este reprezentat pe 16 octei i a fost creat cu scopul de a asigura un identificator unic global pentru bazele de date n care trebuie realizate sincronizrile unui mare volum de date suplimentare. 4. Dat calendaristic/or (Date/Time) SGBD Microsoft Access stocheaz intern datele calendaristice sub forma unor numere n virgul mobil pe 8 octei, ora fiind reprezentat ca o fraciune dintr-o zi. Sistemul introduce automat data curent prin proprietatea Default Value (valoare implicit) a cmpului = Date(). Se poate folosi opiunea = Now() pentru a stoca ora i data. Proprietatea Format trebuie s fie stabilit pentru toate cmpurile dat calendaristic/or (date/time).

34

5. Tipul valut (Currency) Tipul Currency acoper valorile n USD, cu 15 cifre la partea ntreag, iar la partea zecimal pn la sutimi de cent. Din punct de vedere al reprezentrii interne, tipul valut este un numr n virgul fix. 6. Numr cu incrementare automat (AutoNumber) Datele de acest tip au proprietatea c sunt incrementate automat (AutoNumber) i pot primi valori ntregi lungi secveniale. Tipul este numit Counter (numrtor). 7. Tipul Da/Nu (Yes/No) Datele de acest tip sunt booleene. Ca urmare primesc valorile True/False (adevrat/fals) i sunt afiate ntr-una din formele True/False, respectiv On/Off. 8. Obiect OLE Tipul de cmp OLE (Object Linking and Embedding) este destinat pstrrii datelor provenite de la alte programe care s-au nregistrat ca servere OLE n Windows. Aceasta permite bazei de date s stocheze documente create de programe de prelucrare a textelor, seturi de foi de calcul, sunete, videoclipuri .a. 3.3.2 Realizarea relaiilor ntre tabele Atunci cnd se creeaz tabele ntr-o baz de date relaional, acestea prezint o existen de sine stttoare. Pentru a lega tabelele ntre ele, pentru a crea o relaie, se utilizeaz fereastra Relationships, fereastr pe care se poate activa fie din bara de meniuri standard, fie din meniul Tools. Pentru a defini o relaie, se adaug n fereastra Relatioships tabelele ntre care se dorete s existe legturi i se trage dintrun tabel cmpul care trebuie legat spre cmpul corespunztor din cellalt tabel. Ca regul general se va lega un cmp care reprezint o cheie primar din tabelul-printe, cu un cmp care reprezint cheie extern (strin) n tabelul-fiu. Cheia extern este un atribut sau o mulime de atribute care are aceleai valori cu un atribut sau un grup de atribute aparinnd tabelului-printe, acest atribut sau grup de atribute jucnd rolul de cheie primar n tabelul-printe. Pentru validarea relaiei ntre cele dou tabele, cheia extern trebuie s fie de acelai tip i s aib aceeai dimensiune cu a cheii primare. 3.4. Interogarea Interogarea (Query) este un obiect Access ce reprezint o ntrebare pe care utilizatorul o formuleaz cu privire la numite informaii din baza de date. n momentul n care utilizatorul pornete la construcia unei interogri, acesta trebuie s aib deja o viziune de ansamblu asupra datelor pe care dorete s le regseasc, i anume: ce cmpuri se vor utiliza, din care tabele se vor extrage datele, ce criterii trebuie s ndeplineasc aceste date, n ce ordine vor fi ele sortate. Construirea unei interogri n Microsoft Access reprezint un proces simplu i rapid de aezare a tabelelor i a cmpurilor necesare pe o gril QBE (Query by Example). Clasificarea interogrilor Cele mai utilizate interogri sunt interogrile denumite interogri de selecie. O interogare permite: vizualizarea sau modificarea datelor; selectarea acelor nregistrri care satisfac criteriile impuse de utilizator; limitarea unei proceduri la cmpurile care sunt relevante; sortarea nregistrrilor ntr-o ordine specificat. Atunci cnd este executat o interogare de selecie, rezultatul va fi o mulime de nregistrri aparinnd unui tabel sau mai multor tabele. Aceast mulime poart numele de dynaset (setul dinamic rezultat al interogrii). Un dynaset reprezint o vedere dinamic asupra datelor care sunt subiectul interogri respective. Asta nseamn c atunci cnd datele din tabelele surs ale interogrii sufer modificri, atunci automat rezultatul interogrii va fi i el modificat [18]. O a doua mare categorie de interogri este reprezentat de interogrile de aciune. Aceste interogri au rolul de a modifica anumite date, n cadrul unei singure operaii. Aceste modificri cuprind capacitatea de a terge, de a aduga, a modifica anumite valori dintr-un tabel, ca i de a crea un tabel nou. Aceste interogri de aciune sunt: interogrile pentru tergere (Delete Query), interogrile pentru adugare (Append Query), interogrile pentru reactualizare (Update Query) i interogrile a cror rezultat este crearea unui tabel nou n baza de date (Make-Table Query). Crearea interogrilor

35

Atunci cnd se dorete s se creeze o interogare, se alege din fereastra Database grupul de obiecte Query, apoi se execut un clic pe butonul New, SGBD Microsoft Access afind caseta de dialog New Query. Fereastra New Query permite cinci moduri de realizare a unei interogri i anume: 1. Design View alegnd aceast opiune de creare a unei interogri, utilizatorul va porni de la zero, cu un obiect blanc n definirea interogrii; 2. Simple Query Wizard alegnd aceast opiune, utilizatorul va fi ajutat, pe tot parcursul crerii unei interogri de selecie, de ghidul de lucru al SGBD de tip Wizard, care adreseaz ntrebri referitoare la tabelele i cmpurile care se doresc a fi selectate, iar pe baza rspunsurilor obinute, se va construi interogarea; 3. Crosstab Query Wizard aceast opiune funcioneaz similar cu opiunea Simple Query Wizard, doar c de aceast dat wizard-ul va construi o interogare prin ncruciarea tabelelor; 4. Find Duplicates Query Wizard wizard va construi o interogare care va regsi nregistrri duble; 5. Find Unmatched Query Wizard funcioneaz identic ca i opiunea Find Duplicates Query Wizard, dar de aceast dat rezultatul va fi construirea unei interogri care va gsi nregistrrile fr corespondent n cadrul tabelelor. 3.5. Raportul Raportul (Report) reprezint un obiect al unei baze de date Microsoft Access cu ajutorul cruia utilizatorul poate prezenta anumite date sub form de rezumat, eventual n format pregtit pentru tiprire. Prin intermediul rapoartelor utilizatorul dispune de un control absolut asupra dimensiunilor i modului de prezentare a datelor. De asemenea, rapoartele asigur prezentarea unor informaii de sintez asupra rezultatelor prelucrrilor efectuate n baza de date. Rapoartele nu modific datele din baza de date, parcurgerea nregistrrilor realizndu-se n mod secvenial. SGBD Microsoft Access folosete pentru obinerea unui raport o copie protejat la scriere a datelor. Rapoartele sunt alctuite din dou categorii de informaii: 1. informaii de structur reprezentate de acele informaii de ordin funcional stabilite la crearea raportului (controale, seciuni, elemente de grafic decorative, etc); 2. informaii reprezentnd datele propriu-zise. Majoritatea informaiilor dintr-un raport sunt culese din tabele sau interogri asociate raportului respectiv. SGBD Microsoft Access 2003 asigur mai multe metode de creare a unui raport, i anume: 1. Design View prin aceast metod de creare a unui raport, utilizatorul are controlul absolut asupra modului de aranjare a obiectelor n cadrul de proiectare a raportului. 2. Report Wizard reprezint o metod rapid i uoar de creare a unui raport, utilizatorul fiind asistat pe tot parcursul crerii raportului cu ntrebri referitoare la sursele nregistrrilor, numele cmpurilor i formatul datelor. SGBD Microsoft Access 2003 creeaz pe baza rspunsurilor utilizatorului raportul dorit. 3. AutoReport: Columnar sau AutoReport: Tabular SGBD Microsoft Access 2003 genereaz n mod automat un raport n care datele sunt afiate ntr-o coloan (pentru AutoReport: Columnar), sau sub form de tabel (pentru AutoReport Tabular). 4. Chart Wizard aceast opiune asigur generarea unui raport n interiorul cruia va fi prezentat un grafic. 5. Label Wizard aceast opiune are rolul de a crea etichete potale care pot fi tiprite la imprimant pe suporturi speciale de hrtie (auotcolante, etchete detaabile, etc.) n partea de jos a ferestrei de dialog New Report se afl o caset avnd n partea dreapt un buton cu o sgeat desenat pe el. Dac utilizatorul execut un clic de mouse pe acest buton va apare o list derulant care conine numele tuturor tabelelor i interogrilor create n baza de date. Pentru crearea unui raport utilizatorul trebuie s aleag din lista derulant un tabel sau o interogare.

36

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