Sunteți pe pagina 1din 52

MINISTERUL EDUCAIEI, CERCETRII, TINERETULUI I SPORTULUI INSPECTORATUL COLAR JUDEEAN CLUJ COLEGIUL TEHNIC TURDA Profil: Mecatronica si Informatica

Specialitatea: Analist Programator

Realizarea unui centralizator de materiale

Proiect de Diplom

ndrumator: Profesor: 2011

Elev: Iclezan Dan Claudiu

I. INTRODUCERE
n ultimii cincizeci de ani, producia i utilizarea tehnicii de calcul harware i software a cunoscut o dezvoltare dramatic. Ea reprezint o parte semnificativ din produsul naional brut al rilor industrializate; n SUA, de exemplu, peste 50% din capitalul investit este cheltuit pe tehnologie de calcul. Costul informaiei" a ajuns la 1 trilion de dolari SUA (aproximativ produsul naional brut al Marii Britanii) n anul 2000 i este estimat la peste 1,5 trilioane n 2005 (prognoz realizat de Michael Spindler fost preedinte la Apple Computer). Produsele program au depit de mult teritoriul centrelor de calcul. Ele sunt ncorporate i controleaz echipamente industriale (linii tehnologice automate, maini cu comand numeric, roboi), mijloace de transport i de comunicaii, tranzacii financiare i bancare, reele energetice, sisteme de ap rare naional, etc. Odat cu perfecionarea tehnicilor virtual realty i multimedia, calculatorul este tot mai folosit ca mijloc didactic sau de divertisment i n activiti de concepie. Tehnologia informaiilor face permanente modificri mijloacelor de munc n ntreaga lume. Informaii care erau altdat stocate n depozite pline de dulapuri pot fi accesate acum la o singur apsare a butonului mouse-ului. Pentru a stoca informaii n orice mediu imaginabil n zilele noastre sunt folosite sisteme de baze de date. De la bazele mari de date, cum ar fi sistemele de rezervare a biletelor ale companiilor aeriene i pn la colecia de fie dintr-un cabinet medical, sistemele de baze de date sunt folosite pentru memorarea i distribuirea datelor de care ncep s depind vieile noastre. Pn n urm cu civa ani, sistemele mari de baze de date puteau fi executate numai pe calculatoare de tip mainframe. n mod obinuit, era foarte costisitor s fie proiectate, achiziionate i ntreinute aceste maini. O dat cu apariia calculatoarelor din clasa staiilor de lucru, care sunt puternice i ieftine, programatorii au posibilitatea de a proiecta rapid i ieftin produse software pentru ntreinerea i distribuirea datelor. Cel mai folosit model de stocare a datelor este baza de date relaional. Acest nou model s-a dezvoltat pornind de la un articol, A Relational Model of Data for Large Shared Data Banks (Un model relaional al datelor pentru bnci mari de date folosite n comun), scris de Dr. E. F. Codd n anul 1970. Ideea lui Codd pentru un sistem de
2

administrare a bazelor de date relaionale folosete conceptele matematice de algebr relaional pentru a grupa datele n mulimi i a stabili relaii ntre submulimile (domeniile) comune. n plus fa de dezvoltarea unui model de baz de date relaional, alte dou tehnologii au condus la dezvoltarea rapid a ceea ce acum este numit un sistem de baze de date client/server. Prima tehnologie important a fost calculatorul personal, care a fcut posibil ca aplicaii ieftine, uor de folosit, s permit utilizatorilor crearea documentelor i administrarea datelor rapid i corect. Utilizatorii s-au obinuit s modernizeze continuu sistemele, deoarece rata schimbului a fost echilibrat rapid de scderea preului celor mai avansate sisteme. A doua tehnologie important a fost dezvoltarea reelelor locale de calculatoare (LAN). Dei utilizatorii erau obinuii cu terminalele conectate la calculatorul mainframe comun, acum fiierele procesate puteau fi stocate local i accesate de la orice calculator ataat n reea. Totodat, cantiti mari de date puteau fi transferate la serverele de date departamentale. n acest context, sistemul, denumit client/server deoarece procesarea este separat ntre calculatoarele client i un server de baze de date, constituie o modificare radical de la programarea aplicaiilor bazat pe calculatoarele mainframe. Aceast arhitectur este total recursiv, pe rnd serverele putnd deveni clieni i cere servicii de la alte servere din reea. Datorit puterii crescute a hardware-ului calculatoarelor personale, informaiile critice (importante) ale bazei de date pot fi memorate pe un server independent, care poate fi nlocuit mai trziu cu foarte puine (sau chiar fr) modificri. Ultima dintre arhitecturile dezvoltate este cea a aplicatiilor distribuite pe web. Clientul devine o aplicatie cat mai simpla posibil, accesata de obicei printru banal browser de internet. Serverul de date si cel de aplicatii web preiau cea mai mare parte a sarcinilor, fiind plasate in general pe calculatoare puternice. Se revine astfel la structura (oarecum) centralizata, dar pe o spirala evidenta a tehnologiei. Complexitatea actual a aplica iilor de management al bazelor de date face necesar o combinaie a procesrii tranzaciilor on-line, a ncrcrii i a creterii
3

sprijinului decizional. n scopul satisfacerii acestor necesiti, este nevoie de baze de date scalabile i performante care pot fi ajustate dinamic pentru a realiza un compromis ntre bazele de date (mai mari) i utilizatorii simultani (mai muli). De asemenea, sunt necesare tehnologii pentru baze de date proiectate pentru a maximiza capacitile configuraiei hardware/software disponibile (incluznd arhitecturi simplu i multi-procesor), precum i pentru valorificarea unor arhitecturi hardware (cum ar fi clustere cuplate larg i maini paralele puternice). Serverele de date de astzi se apropie de aceste cerine - o arhitectur paralel (de nou generaie) a bazelor de date care furnizeaz scalabilitate, manevrabilitate i performan; o regie minimal a sistemului de operare; i o distribuire automat a ncrcrilor de lucru. Arhitectura multifilar este proiectat pentru a utiliza ct mai bine resursele hardware i poate fi reconfigurat dinamic on-line pentru a urmri cererile n schimbare. Performana este aspectul critic al succesului, i avnd n vedere creterea dramatic a numrului de utilizatori, date fiind aplicaiile de comer electronic i noile modele de calcul, presiunea exercitat asupra bazelor de date este mai mare ca oricnd. 1.1. Ce este o baz de date? Dar un sistem de gestiune a bazelor de date?

Baza de date reprezint una sau mai multe colecii de date aflate n interdependen mpreun cu descrierea datelor i a relaiilor dintre ele. Colecia de date reprezint un ansamblu de date organizat dup anumite criterii. Descrierea datelor se ntlne te sub denumirile de catalog de sistem, dicionar de date sau meta-date ceea ce reprezint date despre date. Relaiile logice reprezint asociaiile dintre mai multe entiti. O entitate este un obiect distinct ce trebuie reprezentat n baza de date. Un atribut este o proprietate ce descrie un anumit aspect al obiectului ce se nregistreaz n baza de date. n sistemele de baze de date definirea datelor se separ de programele aplicaie, utilizatorii vd doar definiia extern a unui obiect fr a cunoate modul n care e definit acesta i cum func ioneaz. n acest mod, definiia intern a obiectului poate fi modificat fr a afecta utilizatorii acestuia dac nu se modific definiia extern. De exemplu, dac sunt adugate noi structuri de date sau sunt modificate cele existente,
4

atunci programele aplicaie nu sunt afectate dac nu depind direct de ceea ce se modific. n bazele de date are loc o integrare a datelor, n sensul c mai multe fi iere sunt privite n ansamblu, eliminndu-se pe ct posibil informaiile redondante. De asemenea, se permite accesul simultan la acelea i date, situate n acelai loc sau distribuite spaial, a mai multor persoane de pregtiri diferite, fiecare cu stilul personal de lucru. Sistemul de programe care permite construirea unor baze de date, introducerea informaiilor n bazele de date i dezvoltarea de aplicaii privind bazele de date se numete sistem de gestiune a bazelor de date (SGBD). Un SGBD d posibilitatea utilizatorului s aib acces la date folosind un limbaj de nivel nalt, apropiat de modul obinuit de exprimare, pentru a obine informaii, utilizatorul fcnd abstracie de algoritmii aplicai privind selecionarea datelor implicate i a modului de memorare a lor. SGBD-ul este o interfa ntre utilizatori i sistemul de operare. n esen un SGBD permite:
1.

definirea bazei de date printr-un limbaj de definire a datelor (DDL) prin care se specific tipurile de date i structurile precum i constrngerile asupra datelor. extragerea, inserarea, tergerea i actualizarea datelor din baza de date cu ajutorul unui limbaj de manipulare a datelor (DML) care ofer o facilitate de interogare general a datelor, denumit limbaj de interogare. Acest limbaj elimin dificultile sistemelor bazate pe fiiere unde utilizatorul este constrns s lucreze cu un set fix de interogri pentru a evita apariia de programe noi ce creeaz probleme majore privind gestionarea lor. Componentele unui SGBD sunt:-Hardware, software, date , proceduri, resurse umane a. Componenta hardware poate fi reprezentat de un singur calculator personal, un singur calculator mainframe sau o reea de calculatoare. De obicei se aplic urmtoarea schem ntr-o reea de calculatoare:

2.

un calculator principal pe care se afl programele back-end - adic partea din SGBD care administreaz i controleaz accesul la baza de date; mai multe calculatoare aflate n diferite locaii pe care se afl programele frontend - adic partea din SGBD ce constituie interfaa cu utilizatorul.

n aceast schem, numit client-server, programele back-end reprezint serverul iar cele front-end reprezint clienii.
5

b. Componenta software - cuprinde: 1. programele SGBD; 2. programele aplicaie - n limbaje de programare de generaia a III-a (C, Pascal, Cobol) sau SQL ncorporat ntr-un limbaj de generaia a III-a; 3. sistemul de operare; 4. software de reea. c. Datele - acioneaz ca o punte ntre componentele main (hardware i software) i componenta uman. Baza de date conine att datele operaionale (setul de nregistrri pe care se lucreaz) ct i metadatele. Structura bazei de date e numit schem. d. Procedurile - reprezint instruciunile i regulile aplicate n proiectarea i utilizarea bazei de date. Acestea pot fi: 1. deschiderea unei sesiuni de lucru n SGBD; 2. pornirea sau oprirea SGBD; 3. utilizarea unui program de aplicaie sau a unei funcii SGBD; 4. efectuarea de copii de siguran; 5. tratarea defeciunilor hard i soft; 6. modificarea structurii unui tabel, reorganizarea bazei de date, mbuntirea performanelor, arhivarea datelor. e. Resursele umane sunt reprezentate de: 1. Administratorul de date - responsabil de gestionarea resurselor de date i proiectarea conceptual / logic a bazei de date; 2. Administratorul bazei de date - responsabil de realizarea fizic a bazei de date ce implic proiectarea i implementarea acesteia;
3.

Proiectanii de baze de date - ei pot fi:


-

Proiectant de BD logice: identific datele (entiti i atribute); identific relaiile dintre date ; identific constrngerile ; identific regulile ce descriu principalele caracteristici ale datelor; implic utilizatori n realizarea modelului de date

Proiectant de BD fizice: transpune modelul logic ntr-un set de tabele i constrngeri; selecteaz structuri de stocare i metode de acces specific; asigur securitatea datelor
6

4. Programatorii de aplicaii
5.

Utilizatorii finali

Pentru a uura munca administratorului de sistem, un SGBD conine o serie de componente ce permit: ncrcarea (crearea unei versiuni iniiale a bazei de date plecnd de la unul sau mai multe fiiere); salvarea i rencrcarea (efectuarea de copii periodice i posibilitatea refacerii bazei de date plecnd de la aceste copii); reorganizarea (rearanjarea datelor pentru a obine performane superioare); statistici, analize i altele.

1.2. O scurt istorie a bazelor de date Sisteme de baze de date sunt folosite pentru a stoca informa ii n orice mediu imaginabil din zilele noastre. Pn n urm cu civa ani, sistemele mari de baze de date puteau fi executate numai pe calculatoare de tip mainframe. n mod obinuit, era foarte costisitor s fie proiectate, achiziionate i ntreinute aceste maini. O dat cu apariia calculatoarelor din clasa staiilor de lucru, care sunt puternice i ieftine, programatorii au posibilitatea de a proiecta rapid i ieftin produse software pentru ntreinerea i distribuirea datelor. 1.2.1. Evoluia organizrii datelor Datele sunt fapte culese din lumea real pe baz de observaii i msurtori. Ele constituie orice mesaj primit de la un receptor sub o anumit form. Colecia de date reprezint un ansamblu de date organizat dup anumite criterii. Fiierul reprezint o colecie de date organizat dup criterii calitative, de prelucrare i scop. Organizarea datelor - reprezint procesul de definire i structurare a datelor n colecii, gruparea lor precum i stabilirea elementelor de legtur ntre componentele coleciei i ntre colecii. Evoluia n timp a metodelor de organizare a datelor e legat de soluiile tehnice de nmagazinare a datelor i cuprinde nivelele: 1. Nivelul I - organizarea datelor n fiiere clasice 2. Nivelul II - organizarea mixt n fiiere
7

3. Nivelul III - organizarea datelor n bazele de date clasice 4. Nivelul IV - organizarea datelor n bazele de date relaionale 5. Nivelul V - organizarea datelor n baze de date distribuite
1.2.2

Avantajele i dezavantajele sistemelor de gestiune a bazelor de date

Avantaje fa de sistemele clasice, cu fiiere: 1. Controlul redundanei datelor Risipa de spaiu care se face prin stocarea acelorai informaii n mai multe fiiere e mult diminuat prin utilizarea bazelor de date, dar nu complet eliminat datorit altor cereri de mbuntire a performanelor. 2. Coerena datelor Dac un articol de date e nmagazinat de mai multe ori trebuie s se garanteze c toate copiile lui vor fi actualizate dac se reactualizeaz o valoare a sa (valoarea articolului e aceeai pentru toate copiile sale). 3. Mai multe informaii de la aceeai cantitate de date Se pot obine prin integrarea fiierelor ce conin informaii diferite despre aceleai date. 4. Partajarea datelor Datele pot fi utilizate de ctre mai muli utilizatori n acelai timp. De asemenea se pot face modificri sau adugiri la baza de date existent fr a fi necesar definirea repetat a tuturor cerinelor referitoare la acestea. 5. Integritatea crescut a datelor se refer la validitatea i coerena datelor nmagazinate se exprim prin constrngeri (= reguli de coreren) constrngerile se pot aplica:

6. Securitatea crescut Se realizeaz prin atribuirea unor nume de utilizatori i parole ce permit identificarea persoanelor autorizate s foloseasc baza de date i impun modalitatea de utilizare a acestor date. 7. Aplicarea standardelor Se refer la formatul datelor, conveniile privind denumirile, documentarea,
8

procedurilor de reactualizare, regulile de acces. 8. Reducerea costurilor Prin realizarea integrrii se aloc fonduri centralizat i nu separat fiecrui departament. 9. Rezolvarea conflictelor Fiecare utilizator va avea propriile cerine ce pot intra n conflict cu ale altora. Administratorul bazei de date poate lua decizii ce duc la utilizarea optim a resurselor. 10. Creterea accesibilitii datelor i a capaciii de rspuns Se realizeaz prin intermediul utilizrii limbajelor de programare din generaia a IV-a (ex. SQL, QBE). 11. Creterea productivitii Prin furnizarea unor funcii ce permit manipularea fiierelor i a introducerii limbajelor de programare din generaia a IV-a ce reduc mult timpul de programare. 12. Independena datelor Duce la creterea capacitii de ntreinere prin faptul c descrierile datelor sunt separate de aplicaii.
13.

Controlul concurenei este mbuntit Se garanteaz c dac 2 sau mai muli utilizatori acceseaz simultan aceleai date nu se pierd informaii sau nu se altereaz integritatea acestora.

14. Asigurarea salvrii de siguran i a refacerii Prin recuperarea ultimei stri coerente a bazei de date n cazul apariiei unei defeciuni hard sau soft. Dezavantaje: 1. Complexitatea Trebuie avute n vedere o serie de mai multe probleme referitoare la date dect n cazul aplicaiilor clasice. Se face mai nti o analiz amnunit a datelor i apoi a aplicaiei propriu-zise. 2. Dimensiunea SGBD-urile ocup mult spaiu pe disc. 3. Costul a) sistemelor SGBD;
9

b) elementelor hard achiziionate; c) conversiei aplicaiilor existente la noul SGBD i noua configuraie hard. 4. Performana redus n cazul utilizrii SGBD-urilor care au un caracter mai general, n locul unei aplicaii simple bazat pe fiiere care apeleaz o singur funcie.
5.

Efectul unei defeciuni e mult mai mare datorit centralizrii (o defeciune minor afecteaz toi utilizatorii).

II. MEMORIU TEHNIC

Cu siguran c FoxPro reprezint cel mai popular subiect romnesc n privina bazelor de date. n materie de proceduri stocate, disponibile altadata doar pe serverele de baze de date, complexe si costisitoare, Visual FoxPro este de ani buni in fata concurentilor xBase si chiar a rivalului ce detine gloria SGBD-urilor personale. Segmentul de piata caria i se adreseaza este tot mai inghesuit din mai multe directii, pe de o parte de un Accses mult mai ieftin si mai pretentios cu utilizatorii, iar pe de alta parte, cea a SGBD-ului profesionale, unde lucrurile au evoluat spectaculos si aproape imposibil de crezut ca Visual FoxPro ar putea spera sa atinga gradul de viteza, scalabilitate si securitate din Oracle, SQL Server, Informix. Ultimi ani au popularizat ceea ce noi consideram actualmente a fi inamicul numarul public numarul unu al VFP: SGBD-urile de tip free. Simple si puternice, din ce in ce mai sigure, si sa nu uitam gratuite, SGBDurile free constituie una din putinele solutii pentru dezvoltarea de aplicatii. Visual FoxPro, produs de firma Microsoft, este un pachet software din categoria sistemelor de gestiune a bazelor de date destinat microcalculatoarelor. FoxPro a evoluat de la un SGBD simplu cu oarecare faciliti de realizarea a aplicaiilor, la un adevrat
10

mediu integrat de dezvoltare. n accepinea clasic, un mediu de dezvoltare const dintrun editor de texte pentru scrierea codului-surs ntr-un limbaj dat, un compilator pentru limabjul respectiv i cteva faciliti de natura depanatoarelor, pentru verificarea aplicaiei. O dat cu perfecionrile n domeniul hardware-ului i cu creterea att a numrului de limbaje i de variante ale acestora, ct i a numrului de dezvoltatori de aplicaii, aceste instrumente s-au diversificat i mbuntit, integrnd noi faciliti. Am incercat sa atenuez problema relatata anteror cu privire la cantitatea insemnata de date, privind realizarea unui centralizator de materiale, folosind Visual FoxPRo si nu alte sisteme cum ar fi Acces, datorita problemelor pe care acesta le relateaza, probleme amintite anterior. Deasemenea si bibliografia, care ne-a fost pusa la dispozitie, relateaza si demonstreaza acest lucru. Problema amintita anterior, am incercat sa-i gasesc solutii, ajungand la concluzia de a alege limbajul de programare Visual FoxPro pentru creearea aplicatiei, deoarece acest limbaj are un viitor in domeniul economic, de gestiune a bazelor de date, dar si pentru modul placut de lucru. Visual FoxPro este un Sistem de Gestiune a Bazelor de Date, SGBD, cunoscand in prezent o larga raspandire datorita aplicatiilor dezvoltate pentru domenii din cele mai diverse, cat si pentru interfata, meniuri,ferestre de dialog si alte caracteristici, care faciliteaza comunicarea usoara cu utilizatorul. SGBD-ul reprezinta sisteme informatice specializate in stocarea si prelucrarea unui volum mare de date. El trebuie sa asigure urmatoarele functii elementare relative la bazele de date: definirea structurii, crearea bazei de date, introducerea datelor in bazele de date, modificarea unor date deja existente in bazele de date, stergerea datelor din bazele de date, consultarea bazelor de date. O serie de facilitatii ale SGBD-ului Visual FoxPro sunt date prin componentele specializate numite generatoare. Acestea ofera un mod de lucru comod si rapid, in ferestre specializate, utilizatorul acestor componente nu trebuie sa fie neaparat specializat in informatica si nu trebuie sa cunoasca foarte multe lucruri despre bazele de date. Cele mai utilizate generatoare sunt: de ecran. generatoare de rapoarte, generatoare de meniuri, generatoare

11

2.1. Tehnologiile aplicatiei Bazele de date sau bncile de date reprezint un sistem de organizare i prelucrare, respectiv teleprelucrare, adica prelucrare la distan a informaiei, constituit din urmtoarele 3 elemente: colecie de date aflate n interdependen, creare baza de date ; descrierea datelor i a relaiilor dintre ele; un sistem de programe care asigur exploatarea bazei de date, actualizare si interogare Arhitectura sistemului de baza de date este format din urmtoarele componente: bazele de date, reprezint componenta de tip date a sistemului, coleciile de date propriu-zise, indecii ; sistemul de gestiune a bazelor de date reprezinta asamblul de programe prin care se asigur gestionarea i prelucrarea complex a datelor i care reprezint componenta software a sistemului de baze de date numit, Sistem de Gestiune a Bazelor de Date SGBD; alte componente, proceduri manuale sau automate, inclusiv reglementri administrative, destinate bunei funcionri a sistemului, dicionarul bazei de date, care conine informaii despre date, structura acestora, elemente de descriere a semanticii, statistici, documentaii, mijloacele hardware utilizate, personalul implicat. Datele dintr-o baz de date pot fi structurate pe 3 niveluri, n funcie de categoria de personal implicat: nivelul conceptual sau global, exprim viziunea administratorului bazei de date, asupra datelor, acestui nivel i corespunde structura conceptual, adica schema bazei de date, prin care se realizeaz o descriere a tuturor datelor, ntr-un mod independent de aplicaii, ce face posibil administrarea datelor. nivelul logic, exprim viziunea programatorului de aplicaie asupra datelor, la acest nivel se realizeaz o descriere a datelor corespunztoare unui anumit program de aplicaie. nivelul fizic, care exprim viziunea inginerului de sistem asupra datelor,

12

corespunde schemei interne a bazei de date prin, care se realizeaz o descriere a datelor pe suport fizic de memorie. Modelul de date reprezint ansamblul de concepte i instrumente necesare pentru a construi o schem a bazei de date. Modelarea datelor poate viza totalitatea datelor din cadrul bazei de date, schema datelor, sau o parte a acestora, subscheme ale bazei de date. Schema i subschema bazei de date sunt modelele logice ale bazei de date, care au asociate principii generale pentru gestionarea, respectiv structurarea datelor, manipularea i asigurarea integritii datelor, fr a reflecta modul de reprezentare i stocare a acestor date pe suportul de memorie,care sunt atributele modelului fizic. Se cunosc mai multe tipuri de baze de date dup modul de organizare, modul de dispunere pe suport magnetic a informaiei i a elementelor componente: modele primitive, datele sunt organizate la nivel logic n fiiere, structura de baz este nregistrarea, astfel mai multe nregistrri fiind grupate n structuri de tip fiier; baze de date ierarhice, legturile dintre date sunt ordonate unic, accesul se face numai prin vrful ierarhiei, un subordonat nu poate avea dect un singur superior direct i nu se poate ajunge la el dect pe o singur cale; baze de date n reea, datele sunt reprezentate ca ntr-o mulime de ierarhii, n care un membru al ei poate avea orici superiori, iar la un subordonat se poate ajunge pe mai multe ci; baze de date relaionale, structura de baz a datelor este aceea de relai, tabel, limbajul SQL, Structured Query Language, este specializat n comenzi de manipulare la nivel de tabel. Termenul relaional a fost introdus de un cercettor al firmei IBM dr. E. F. Codd cel care a enunat cele 13 reguli de baz necesare pentru definerea unei baze de date relaionale. Baza de date relaional reprezint o mulime structurat de date, accesibile prin calculator, care pot satisface n timp minim i ntr-o manier selectiv mai muli utilizatori. Aceast mulime de date modeleaz un sistem sau un proces din lumea real i servete ca suport unei aplicaii informatice; baze de date distribuite, sunt rezultatul integrrii tehnologiei bazelor de date cu cea a reelelor de calculatoare, sunt baze de date logic integrate, dar fizic distribuite pe mai multe sisteme de calcul.

13

Integrarea bazei de date distribuite se face cu ajutorul celor 3 tipuri de de scheme care sunt implementate ;schema global, definete i descrie toate informaiile din baza de date distribuit n reea. Urmatoarea este schema de fragmentare,aceasta descrie legturile dintre o colecie global i fragmentele sale si este de tipul unu la mai muli avand forma unei ierarhii. Ultima este schema de alocare,care descrie modul de distribuire a segmentelor pe calculatoarele, nodurilor din reea. Fiecare segment va avea o alocare fizic pe unul sau mai multe calculatoare. Schema de alocare introduce o redundan minim i controlat, astfel un anumit segment se poate regsi fizic pe mai multe calculatoare. Utilizatorul unei asemenea baza de date o vede ca pe o baz de date unic, compact cu toate c n realitate ea este distribuit pe mai multe calculatoare legate n reea. Aceast organizare a dus la o cretere substanial a vitezei de acces la o baz de date ntr-o reea de calculatoare. Anumite date stocate pe un server local sunt mult mai rapid accesate dect dac ele sar afla pe un server la distan, unde baza de date ar fi fost stocat n ntregime. Pentru gestionarea acestor baze de date sau creat sisteme informatice specalizate. Sistemele de gestiune a bazalor de date ,SGBD, sunt sisteme informatice specializate n stocarea i prelucrarea unui volum mare de date, numrul prelucrrilor fiind relativ mic. Termenul de baz de date se va referi la datele de prelucrat, la modul de organizare a acestora pe suportul fizic de memorare, iar termenul de gestiune va semnifica totalitatea operaiilor ce se aplic asupra datelor din baza de date. Un SGBD trebuie s asigure urmtoarele funcii: definirea, respectiv crearea bazei de date; introducerea, respectiv adugarea datelor n baza de date; modificarea unor date deja existente n baza de date; tergerea datelor din baza de date; consultarea bazei de date, interogare respectiv extragerea datelor. n plus un SGBD mai asigur i alte servicii: suport pentru limbaj de programare; interfa ct mai atractiv pentru comunicare cu utilizatorul;
14

tehnici avansate de memorare, organizare, accesare a datelor din baza de date; utilitare ncorporate: sistem de gestiune a fiierelor, liste, tabele etc.; help pentru ajutarea utilizatorului n lucrul cu baza de date. Apariia i rspndirea reelelor de calculatoare a dus la dezvoltarea SGBD-urilor n direcia multiuser; mai muli utilizatori folosesc simultan aceeai baz de date. Principalul avantaj al reelelor a fost eficiena mult sporit de utilizare a resurselor sistemelor de calcul: la o baz de date, aflat pe un server central au acces simultan mai muli utilizatori, situai la distan de server, de unde rezult o bun utilizare a resurselor server-ului i o economie de memorie datorat memorrii unice a bazei de date. Un SGBD este dotat cu un limbaj neprocedural de interogare a bazei de date SQL care permite accesul rapid i comod la datele stocate n baza de date. n arhitectura unui sistem de baze de date SGBD ocup locul central. El este un ansamblu complex de programe care asigur interfaa ntre o baz de date i utilizatorii acesteia. SGBD este componenta software a unui sistem de baze de date care interacioneaz cu toate celelalte componente ale acestuia asigurnd legtura i interdependena ntre ele. Un SGBD trebuie s asigure urmtoarele activiti: definirea i descrierea structurii bazei de date, se realizeaz printr-un limbaj propriu, limbaj de definire a datelor, LDD, conform unui anumit model de date; ncrcarea datelor n baza de date, se realizeaz prin comenzi n limbaj propriu, limbaj de manipulare a datelor, LMD; accesul la date, se realizeaz prin comenzi specifice din limbajul de manipulare a datelor. Acest acces la date se refer la operaiile de interogare si actualizare. Interogarea este complex i presupune vizualizarea, consultarea, editarea unor situaii de ieire, rapoarte, liste. Actualizarea presupune 3 operaiuni: adugare, modificare efectuate prin respectarea restriciilor de integritate ale BD i tergere; ntreinerea bazei de date,se realizeaz prin utilitare proprii ale SGBD; reorganizarea bazei de date, se face prin faciliti privind actualizarea structurii de date i modificarea strategiei de acces. Se execut de ctre administratorul bazei de date;
15

securitatea datelor, se refer la asigurarea confidenialitii datelor prin autorizarea i controlul la date, criptarea datelor. Obiectivele unui SGBD, are rolul de a furniza suportul software complet pentru dezvoltarea de aplicaii informatice cu baze de date. Astfel trebuie s asigure: minimizarea costului de prelucrare a datelor, reducerea timpului de rspuns, flexibilitatea aplicaiilor, protecia datelor. Pentru satisfacerea performanelor enumerate, SGBD trebuie s asigure un minim de obiective. Asigurarea independenei datelor, trebuie privit din dou puncte de vedere: independena logic, se refer la posibilitatea adgrii de noi tipuri de nregistrri de date sau extinderea structurii conceptuale, fr a determina rescrierea programelor de aplicaie; independena fizic, adica modificarea tehnicilor fizice de memorare fr a determina rescrierea programelor de aplicaie. Asigurarea redundanei minime i controlate a datelor respective stocarea informaiilor n bazele de date se face astfel, nct datele s nu fie multiplicate. Totui, pentru a mbunti performanele legate de timpul de rspuns, se accept o anumit redundan a datelor, controlat, pentru a asigura coerena bazei de date i eficiena utilizrii resurselor hardware. Asigurarea facilitilor de utilizare a datelor, presupune ca SGBD-ul s aib anumite componente specializate pentru: folosirea datelor de ctre mai muli utilizatori de la o aplicaie aplicaii, care trebuie s poat fi utilizate i n alte aplicaii; accesul ct mai simplu al utilizatorilor la date, fr ca ei s fie nevoii s cunoasc structura ntregii baze de date; aceast sarcin cade n seama administratorului bazei de date; existena unor limbaje performante de regsire a datelor , care permit exprimarea interactiv a unor cereri de regsire a datelor; sistemul de gestiune trebuie s ofere posibilitatea unui acces multicriterial la informaiile din baza de date spre deosebire de sistemul clasic de prelucrare pe fiiere unde exist un singur criteriu de adresare, cel care a stat la baza organizrii fiierului. Asigurarea securitii datelor mpotriva accesului neautorizat.
16

Asigurarea coerenei i integritii datelor mpotriva unor tergeri intenionate sau neintenionate, se realizeaz prin intermediul unor proceduri de validare, a unor protocoale de control concurent i a unor proceduri de refacere a bazei de date. Asigurarea partajabilitii datelor, se refer pe de o parte la asigurarea accesului mai multor utilizatori la aceleai date i de asemenea la posibilitatea dezvoltrii unor aplicaii fr a se modifica structura bazei de date. Asigurarea legturilor ntre date, corespund asocierilor care se pot realiza ntre obiectele unei aplicaii informatice. Orice SGBD trebuie s permit definirea i descrierea structurii de date, precum i a legturilor dintre acestea, conform unui model de date, de exemplu modelul relaional. Administrarea i controlul datelor, sunt asigurate de SGBD, n sensul c datele pot fi folosite de mai muli utilizatori n acelai timp, iar utilizatorii pot avea cerine diferite i care pot fi incompatibile. SGBD trebuie s rezolve probleme legate de concuren la date, problem care apare mai ales n lucrul n mediu de reea de calculatoare. In activitatea sa SGBD-ul trebuie sa indeplineasca urmtoarele funcii:

funcia de descriere a datelor, se face cu ajutorul LDD, realizndu-se descrierea atributelor din cadrul structurii BD, legturile dintre entitile BD definesc eventualele criterii de validare a datelor, metode de acces la date, integritatea datelor.

Concretizarea acestei funcii este schema BD.

funcia de manipulare, este cea mai complex i realizeaz actualizarea i regsirea datelor. funcia de utilizare, asigur mulimea interfeelor necesare pentru comunicare a tuturor utilizatorilor cu BD. funcia de administrare, administratorul este cel care realizeaz schema conceptual a bazei de date, iar n perioada de exploatare a BD autorizeaz accesul la date, reface baza n caz de incident.

funcia de protecie a bazei de date, ansamblul de msuri necesare pentru asigurarea integritii, semantic, acces concurent, salvare, restaurare i securitii datelor, autorizare acces, utilizare viziuni, criptare.
17

In procesul de prelucrare a datelor apar anomalii la rezolvarea carora a avut deosebita activitate A.F. Codd, care propune solutii pentru eliminarea acestor neajunsuri, proces de structurare a bazei de date fiind denumit normalizare. Este procesul prin care se elimin redundana datelor n proiectul bazei de date i se construiete un model de baz de date care susine diverse cerine funcionale i structuri alternative ale bazei de date. Sunt aplicate n normalizarea unei baze de date urmtoarele trei reguli. Toate atributele trebuie specificate o singur dat, aceasta este forma inti normal. Un atribut trebuie s depind n ntregime de identificatorul unic al entitii pe care o descrie, aceasta este forma a doua normal. Se pun atributele ntr-o tabel n care depind exclusiv de o cheie primara. Nu se utilizeaz tabele n care atributele s nu depind exclusiv de o singur cheie. Pentru a fi n forma normal a treia, fiecare tabel trebuie s posede o singur cheie primar, iar datele din tabel trebuie s depind exclusiv de cheia primar a tabelei.

Dezvoltarea iterativ Analiza, proiectarea i dezvoltarea unei aplicaii sunt prezentate de cele mai multe ori ca fiind procese exclusive, n sensul c unul nu poate ncepe pn cnd nu se termin precedentul.. Analiza dureaz pn la obinerea unui nivel de cunotine, apoi ncepe proiectarea. n cursul proiectrii apar ntrebri despre pri neacoperite din analiz, ceea ce determin revenirea asupra ei. Ulterior se reproiecteaz, cel puin parial, aplicaia. Dup ce proiectarea aplicaiei este finalizat, ncepe dezvoltarea efectiv. i n mod inevitabil se descoper omisiuni sau chiar erori n proiectare, ceea ce determin revenirea la proiectarea aplicaiei. Analiza aplicaiei Trebuie s in cont de dorina clientului, dar trebuie s fac un compromis ntre ce vrea clientul i ceea ce tiu eu. Clientul nu poate cere ceva ce nici nu tie c exist! Este foarte posibil ca el s nu neleag conotaiile rezultate din datele de intrare pe care le furnizeaz. O aplicaie bine proiectat trebuie s pun la dispoziia utilizatorului mult mai

18

mult dect o imagine, i cteva formulare; ea trebuie s aib o interfa coerent i ergonomic care trateaz mult mai multe aspecte interne. Ce-ar trebui s conin aplicaia Exist cteva lucruri care ar trebui s apar n orice aplicaie. Fiecare component a unei aplicaii ofer servicii utilizatorului sau altor componente. De exemplu, interfaa permite utilizatorului s interacioneze cu programul. Dar exist componente care ofer numai servicii. Sarcina lor este doar de a coordona funcionarea intern a programului. Mai jos sunt enumerate cteva din serviciile de sistem pe care trebuie s le conin o aplicaie. Lista nu este complet i nici obligatorie, pentru c fiecare programator i-o face singur n funcie de necesiti. Iniializarea aplicaiei Operaiunile care se execut la nceput: stabilirea cilor de cutare, ncrcarea bibliotecilor de clase i a procedurilor, lansarea n execuie a meniului sau a unui mod similar de apelare a componentelor aplicaiei, iniializarea tratrii evenimentelor, etc.. Securitate i identificare utilizator Desi este arhicunoscut faptul ca Visual FoxPro nu ofera securitate de nici un fel asupra datelor totusi se poate implementa un anumit sistem de protectie care consta in restrictionarea drepturilor pentru fisiere, autorizarea editarilor anumitor linii ale unei tabele. Configuraia global Aceasta este o sum de informaii care descriu comportarea aplicaiei, cum ar fi: reguli de validare a datelor, cile de cutare implicite, setarea font-urilor, eventuale configurri speciale sau partajare fiiere, etc.. Tratarea erorilor Putem spune, pe scurt ca erorile dintr-un program sunt de doua mari categorii :de sintaxa (pot fi depistate deoarece impiedica etapele de compilare si de executie) si erori de executie, care nu pot fi descoperite inainte de executia programului.Este necesara testarea pentru descoperirea erorilor si depanarea ( cu instrumentul Debugger) pentru izolarea si corectarea acestora. Servicii pentru programator
19

Nu trebuie omis faptul c aplicaia trebuie s se comporte ntr-un fel atunci cnd ruleaz la client i altfel cnd ruleaz n calculatorul programatorului. Dar asta nu necesit dou meniuri. Pot s afiez sau nu o anumit opiune, n funcie de modul de lansare al aplicaiei.Se pot ncapsula serviciile globale ntr-o multitudine de componente mai mici. n acest fel, atunci cnd este nevoie s modific doar puin unul dintre serviciile de sistem, de interfa sau pentru programator dau componenta respectiv afar i pun alta n locul ei.

III. MEMORIU JUSTIFICATIV 3.1 Justificarea temei alese


Am utilizat limbajul de programare Visual FoxPro pentru creearea lucrarii de diplom, deoarece acest limbaj are un viitor in domeniul economic (de gestiune a bazelor de date), dar si pentru modul placut de lucru. Dupa cele relatate in introducere, alegerea temei aplicatiei este strins legata de domeniul unde a dori s imi desfasor activitatea profesionala. La acest nivel datorita cantitatii mari de informatie legate de un depozit, cerintelor numeroase si rapide de intocmire a unor
20

situatii, m-am gandit ca ar fi necesara realizarea unei aplicatii,care sa pastreze si pelucreze aceasta informatie. Am ales ca sistem de gestiune si realizare a aplicatiei Visual FoxPro 9, avand in vedere maleabilitatea acestui sistem. Majoritatea aplicaiilor informatice presupun necesitatea memorrii anumitor date. Un sistem informatic care necesita o baz de date are un scop fundamental: accesarea datelor de ctre utilizatorii aplicaiei. O baz de date poate fi definit ca un ansamblu da date elementare sau structurate, accesibile. Este un ansamblu de fiiere intercorelate, care conine nucleul de date necesare unui sistem informatic (aplicaie informatic). Un fiier este un ansamblu de nregistrri fizice, omogene din punct de vedere al coninutului i al prelucrrii. O nregistrare fizic este unitatea de transfer ntre memoria intern i cea extern a calculatorului. Aceasta este format din una sau mai multe nregistrri logice. O nregistrare logic este unitatea de prelucrare din punct de vedere al programului utilizator. Aceasta este format din dintr-un ansamblu de cmpuri, care descriu o anumit realitate. Crearea, actualizarea i consultarea unei baze de date este permis prin intermediul unui sistem de gestiune a bazelor de date, care constituie o interfa ntre utilizatori i baza de date. Astfel, un sistem de gestiune a bazelor de date este un instrument de asamblare, codificare, aranjare, protecie i regsire a datelor n baza de date. Consultarea unei baze de date trebuie s se deruleze ca principiu n mai multe etape care se succed ntr-o ordine bine stabilit: 1 2 3 4 programul de aplicaie emite o cerere de consultare a unei date simple sau grupate din baza de date; cererea este recepionat de sistemul de gestiune a bazelor de date, care consult schema aferent programului de aplicaie care a emis cererea; sistemul de gestiune a bazelor de date obine descrierea logic a datei solicitate, pe care o compar cu descrierea acesteia n schema conceptual; acelai sistem lanseaz cereri ctre sistemul de operare, care prin metodele sale de acces caut nregistrarea fizic aferent i o pune la dispoziia sistemului de gestiune a bazelor de date;
21

sistemul de gestiune a bazelor de date proiecteaz i, eventual, convertete nregistrarea logic, dup care transfer datele n zona de legtur a programului de aplicaie;

programul de aplicaie primete de la sistemul de gestiune a bazelor de date n zona de legtur informaii privind modul de realizare al transferului. O clasificare a problemelor rezolvate cu ajutorul calculatorului, tinand cont

de volumul datelor si al prelucrarilor implicate in rezolvare ar putea fi urmatoarea : probleme care implica prelucrari putine asupra unui volum mare de date probleme a caror rezolvare presupune un volum mediu de prelucrari asupra unui volum mediu de date probleme in rezolvarea carora intra un volum mic de date asupra lor efectuandu-se un volum mare de prelucrari. Sistemele de gestiune a bazelor de date (SGBD) reprezinta sisteme informatice specializate in stocarea si prelucrarea unui volum mare de date, in rezolvarea problemelor de primul tip, din clasificarea anterioara. Termenul de baza de date se va referi la datele de prelucrat, la modul de organizare a acestora pe suportul fizic de memorat iar termenul de gestiune se va referi la actiunea de memorare si prelucrare a acestor date. Un SGBD trebuie sa asigure urmatoarele functiuni elementare, referitoare la bazele de date : definirea bazei de date introducerea datelor (adaugarea de noi date la baza de date) modificarea unor date existente in baza de date stergerea unor date interogarea bazei de date, adica extragerea informatiilor stocate in aceasta Pe masura dezvoltarii acestor sisteme lista s-a completat cu facilitati importante cum ar fi : generare de rapoarte modalitati noi de interogare a bazei de date (de exemplu un limbaj de tip SQL) noi tipuri de organizare a bazelor de date si noi tipuri de acces (de exemplu accesul indexat)

22

FOXPRO 9.0 este un sistem de gestiune al bazelor de date relational iar in comparatie cu concurentii sai directi se mentine in frunte datorita performantelor sale. Principalele sale atuuri sunt modul relaiv simplu de lucru si limpezimea sintaxei, ceea ce il face si utilizat si in scop didactic. Crearea proiectului Depozit O etapa extrem de importanta din ciclul de viata al unui sistem informatic este faza de implementare. Acum programatorii trebuie sa transpuna intr-un limbaj de programare toate specificatiile formulate in faza de proiectare. In general, elaborarea unei aplicatii intr-un mediu integrat de dezvoltare consta in construirea unui proiect care trebuie sa gestioneze o serie de componente. Aceste componente se concretizeaza intr-un mare numar de fisiere memorate pe disc, iar aici Visual FoxPro asigura plasarea acestora intr-un ansamblu structurat de directoare. Crearea acestora se realizeaza automat, folosind aplicatia expert(wizard), lansarea acestuia facandu-se selectand File / New. n noua fereastra am introdus denumirea proiectului racova si am selectat folderul in care se va crea structura de directoare mentionata.

Fig. 2.1 Crearea proiect unui

Acest prioect trebuie sa gestioneze o serie de componente cum ar fi: structurile de date utilizate de aplicatie, cum ar fi schemele de baze de date;

componente care vor genera interfata aplicatiei:meniuri, formulare, rapoarte aplicatiei:module de cod (proceduri);
23

componente dedicate exclusiv structurarii logicii de prelucrare specifice

diverse biblioteci refolosibile (clase), utile in standardizarea aplicatiilor si cresterea productivitatii dezvoltarii. Crearea bazei de date Majoritatea aplicaiilor informatice presupun necesitatea memorrii anumitor date. Un sistem informatic care necesita o baz de date are un scop fundamental: accesarea datelor de ctre utilizatorii aplicaiei. O baz de date poate fi definit ca un ansamblu da date elementare sau structurate, accesibile. Este un ansamblu de fiiere intercorelate, care conine nucleul de date necesare unui sistem informatic (aplicaie informatic). Un fiier este un ansamblu de nregistrri fizice, omogene din punct de vedere al coninutului i al prelucrrii. O nregistrare fizic este unitatea de transfer ntre memoria intern i cea extern a calculatorului. Aceasta este format din una sau mai multe nregistrri logice. O nregistrare logic este unitatea de prelucrare din punct de vedere al programului utilizator. Aceasta este format din dintr-un ansamblu de cmpuri, care descriu o anumit realitate. Crearea, actualizarea i consultarea unei baze de date este permis prin intermediul unui sistem de gestiune a bazelor de date, care constituie o interfa ntre utilizatori i baza de date. Astfel, un sistem de gestiune a bazelor de date este un instrument de asamblare, codificare, aranjare, protecie i regsire a datelor n baza de date. Creare bazei de date, se face folosind butonul New din fereastra Project Manager:

24

De regula seva selecta New Database, deoarece structura acesteia este strans legata de aplicatia, rezovata, deci ea va fi definita treptat, in timpul construirii acesteia. Apare onoua fereastra ce va indica numele noii baze de date. 3.4 Structrura tabelelor Dupa crearea bazei de date, etapa urmatoare este cearea tabelelor. Cu acest sistem care dispune de un numar mare de comenzi, crearea tabelelor, modificarea structurii acestora, editarea valorilor, redenumirea tabelelor si distrugerea. Comenzile pot fi date in fereastra Command, sau folosind a doua posibilitate, fereastra Project manager. Pentru celele 6 tabele existente in baza de date Materiale vom prezenta doar schema structurii i relaiile stabilite intre aceste tabele:

25

n aplicaia descris, la crearea bazei de date materiale s-au stabiliti relaii de tipul one to many . Acet tip de relaie este cel mai frecvebt ntlnit i st la baza modelului relaional elaborat de Codd. Cheile primare din cele 6 tabele sunt vizibile mai sus. O cheie strin dintr-un tabel permite regsirea unei linii dintr-un tabel asociat. n tabelul asociat, cheia strin din primul tabel este de regul cheie primar. n funcionarea bazelor de date au aprut anomalii de funcionare, determinate de existena informaiilor redundante care predispuneau la erori greu de depistat. n anii 60 A.F.Codd cercettor la I.B.M. a studiat posibilitatea ameliorrii modului de stocare a datelor n fiiere. Prin produsul de software realizat, numit Oracle, Codd promoveaz o firm Oracle Corporation i propune suluii pentru eliminarea acestor anomalii prin modelul elaborat. Procesul de structurare a bazei de date n vederea eliminrii anomaliilor evideniate mai sus poart numele de normalizare, care const n aducerea bazei de date ntr-una din formele normale, cele mai importante fiind urmtoarele 3 forme: prima form normal, a doua form normal i a trei form normal. Pentru a satisface cerinele impuse de cele 3 forme normale, informaiile sunt de regul pstrate ntr-un ansamblu de tabele ntre care exist relaii de diferite tipuri : relaii 1 la mai muli (one to many) , relaii 1 la 1 (one to one), relaii mai muli la mai muli (many to many).

3.5 Elemente ale limbajului Foxpro folosite in aplicatie

26

O etapa extrem de importanta din ciclul de viata al unui sistem informatic este faza de implementare. Acum programatorii trebuie sa transpuna intr-un limbaj de programare toate specificatiile formulate in faza de proiectare. Comenzile FOXPRO permit descrierea tuturor functiunilor generale ale unui SGBD, anume :
1. gestionarea structurii conceptuale a bazei de date separat de structura fizica

(CREATE,

MODIFY

STRUCTURE,

COPY

STRUCTURE,

DISPLAY

STRUCTURE, CREATE TABLE)


2. gestionarea datelor : incarcare (APPEND, INSERT), modificare (REPLACE, EDIT,

CHANGE), stergere (DELETE, ZAP, PACK, RECALL)


3. satisfacerea cerintelor de regasire rapida a datelor, fie prin specificarea unor

criterii complexe de selectie, cit si prin folosirea unor chei de acces (FIND, SEEK, LOCATE)
4. afisarea

datelor

in

diferite

modalitati

(CREATE/MODIFY

REPORT,

CREATE/MODIFY LABEL, CREATE/MODIFY SCREEN)


5. programare structurata (IF, CASE, DO WHILE, SCAN) 6. modularizare si parametrizare (PROCEDURE, FUNCTION) 7. facilitati ale utilizatorilor in organizarea mediului de lucru (SET COLOR,

DEFINE WINDOW, DEFINE MENU).


8. protectie (SET LOCK, SET EXCLUSIVE, SET ENCRYPTION)

Un element important al mediului FoxPro este formularul, care reprezinta o portiune a ecranului tratata ca un unic element, cu anumite caracteristici ce determina actiunile ce se pot executa asupra acesteia. Formularele sunt definite de catre utilizator de catre utilizator, care pot fi utilizate in programele de aplicatii create sub mediul FoxPro. Modul de lucru cu aceste formulare este urmatorul:

mai intai acestea se creeaza, cu ajutorul comenzii CREATE FORM,

moment in care se precizeaza si atributele lor( poza de fond, dimensiunea ferestrei modul de deschidere);

dupa definire se vor creea pe ecran, folosind modelul grafic propus de FOX

PRO, butoane care sa faca legatura intre formulare


27

aceasta legatura se formeaza prin secventa de instructiuni: thisform.relese() do form [nume formular]

se vor crea de asemenea si tabele in care se vor depunde informatiile cu

privire la abonatii firmei, abonamentele acestora (clientii pot sa aiba mai multe abonamenete fiecare), costul suplimentar (pe langa cel al abonamentului) Alaturi de formulare, rapoartele FoxPro dau acestui mediu si acestui limbaj o putere deosebita, atat datorita eficientei si comoditatii cu care se lucreaza cu aceste elemente, ci si datorita aspectului deosebit de placut pe care cele doua elemente il ofera programelor de aplicatii si mediului FoxPro. Formularul reprezinta un element FoxPro prin care se ofera utilizatorului posibilitatea selectarii unei anumite optiuni, dintr-o multime finita de optiuni posibile, afisata pe ecran total sau partial, urmand ca, in functie de selectarea facuta, sa se declanseze anumite actiuni, corespunzatoarea optiunii alese. Am preferat utilizarea formularului in locul meniului anumite optiuni.
3.6

datorita interfatei mai

prietenoase si a posibilatilor inserari de iamgini. Fiecare formular contine la randul lui

Modul de functionare Modul de funcionare este urmtorul: se apasa dubluclick pe fiserul service

Facilitati oferite de program depozit.exe, nu este necesara instalarea unei variante de FOX PRO.
-

Utilizand butoanele formularelor se navigheza intre paginile proiectului.

Acest proiect isi propune sa realizeze gestiunea unui depozit de materiale. Pentru a indeplni aceasta sarcina, proiectul contine o baza de date unde se inregistreaza materialele care intra in depozit, cantitatea acestor materiale, unitatea de masura, pretul si data (ziua, luna si anul), producatorii de materiale, distribuitorii de materiale, clientii depozitului. Pentru a mijloci dialogul utilizatorului cu baza de date, este disponibila o interfata grafica. Fereastra principal a aplicaiei este cea afiat mai jos:

28

Mai sus este prezentata modalitatea de lucru cu instrumentele programului Vvisual Foxpro 9.0.
29

Opiunile din primul meniu sunt operative, permind nregistrarea unui client nou venit, cutarea existenei clientului in baza de date precum i asocierea unui client materialele selectate, existente in baza de date.

Opiunea Client nou permite introducerea unui nou client in baza de date. Se introduc datele cum sunt: numele, prenumelele, nationalitatea, localitatea de domiciliu, strada, tara de resednta, data sosirii, actul de identitate.

La selectarea comenzii Cauta client se deschide forma prezentat n imaginea de mai jos. Se introduce seria i numrul actului de identitate i se apas butonul CAUTA
30

CLIENT. Dac clentul nu exist n baza de date se poate aduga acesnd butonul ADAUG.

Se poate asocia fiecrui client existent n baza de date o serie de materiale aleatoare, accesnd opiunea 3 a primului meniu. Tot aceast opiune permite vizulaizarea unui raport care conine materialele rmase n depozit n urma comenzilor fcute de ctre clieni, precum i un raport ce cuprinde centralizarea materialelor pe fiecare client.

Meniul al doilea al ferestrei principale, Rapoart+eEvidente, conine opiunile prezentate n figura de mai jos, i conine opiuni pur informative, pe baza de rapoarte:

31

Meniul al treilea al ferestrei principale, Stoc conine opiunile prezentate n figura de mai jos.

Opiunea Afiseaza material, permite afisarea informatiilor despre un material introdus de la tastatura.

32

Meniul al patrulea al ferestrei principale, Gestiune, contine opiunile prezentate n figura de mai jos

33

Formele aferente opiunilor sunt prezentate in imaginile de mai jos:

Aceasta form permite modificarea informaiilor existente n baza de date referitoare la un material.

34

Opiunile prezente n forma de mai sus permit tergere unui material existent n tabela depozit. Se parcurg nregistrrile din tabel, i nregistrarea activ poate fi tears.

Forma de mai sus permite introducerea unui nou distribuitor in tabela distribuitori a bazei de date. Dup introducerea datelor poate fi vizualizat coninutul tabelei prin accesarea butonului Vizualizare.

35

Forma de mai sus permite introducerea unui nou distribuitor in tabela productori a bazei de date. Dup introducerea datelor poate fi vizualizat coninutul tabelei prin accesarea butonului Vizualizare. Meniul cinci al ferestrei principale, Campuri Tabelei conine opiunile prezentate n figura de mai jos:

Opiunile din acest meniu permit afiarea n formulare diferite, lista cmpurilor care constituie structura tabelelor: depozit, client, producatori, distribuitori

36

37

38

Utilizand astfel aceste instrumente (tabele, formulare, rapoarte, interogri) ale Fox Pro-ului reusim sa cream o aplicatie stabila care sa asigure o organizare precisa a datelor si o interfata prietenoasa cu utilizatorul.

IV. CONCLUZIE Aceast aplicaie cuprinde informaii despre REALIZAREA UNUI

CENTRALIZATOR DE MATERIALE, oferind

posibilitatea stocrii i prelucrrii

datelor cu privire la materialele din depozit. . Aplicaia poate fi dezvoltat prin completarea bazei de date cu noi tabele in functie de datele noi aprute, avnd n vedere fluctuaia de materiale. Baza de date poate fi mbuntit cu noi tipuri de formulare iar pe msur ce depozitul i largete sfera de servicii, se pot aduga noi informaii i se poate astfel lrgi oferta de mrfuri a depoyitului de materiale. Desigur, aceasta ar presupune dezvoltarea mult mai pe larg a aplicaiei. Se poate realiza un sit pentru efectuarea nscrierilor online, ceea ce presupune si accesarea unei baze de date existente pe un server. Acest proiect, este un program destinat utilizrii n cadrul societatii datorit faptului c pe tot parcursul proiectrii am avut n vedere urmtoarele aspecte: modelul utilizatorului trebuie s corespund cu modelul programului meu;
39

clientul n-are manual, sau dac-l are nu-l citete i chiar dac ar putea, n-ar face-o (exceptnd faptul n care nu are absolut nici o alt alternativ); alegerea trebuie s fie dictat de modelul utilizator, fiind sarcina mea s fac ca modelul programului s corespund cu cel al utilizatorului; modelul utilizatorului nu este niciodat complex; cnd oamenii fac presupuneri despre modul n care funcioneaz un program, presupunerile lor sunt simple; nu se gndesc niciodat la lucruri complexe, A rezultat o interfa coerent, ergonomic, prietenoas, uor de folosit i care s nu dea mari bti de cap clientului. Astfel, dup cum s-a cerut, aplicaia permite:

inregistrarea unui client:


o

inregistrarea sosirii unui client prin introducerea unor date despre client precum: nume, prenume, data nasterii, locul nasterii, nationalitate, localitate de domiciliu, strada, numarul, tara, data sosirii, data plecarii, tipul actului de identitate, seria si numarul C.I.

asocierea materialelor disponbile pentru clientul nou venit, i pentru orice client existent in baza de date

cutarea unui client in baza de date dup datele furnizate in actul de identitate sau pasaport

Rapoarte/ evidene privind lista clienilor, lista materialelor disponibile n depozit, lista comenzilor efectuat de ctre un client, lista distribuitorilo, lista productorilor de nateriale diverse, centralizator client-materiale

Vizualizarea stocului disonibil dup diverse criterii Adgare de materiale n depozit, adagare de productori, aduhgare distribuitori, modificarea informaiilor aferente unui material, tergerea unui material din depozit. Prin imbunatatirea viitoare

o mai buna evidenta si gestiune a depozitului prin realizarea unei conexiuni intre depozitele din zona din zon..
40

V. BIBLIOGRAFIE 1. Gabriel si Mihai DIMA, FOXPRO, Editura TEORA, 1998. 2. Mariana, Ionut si Ioana Pantiru, Manual pentru clasa a XIIa, Editura L&S INFOMAT, 2002
3.

Damian M., Vlean H., Miclea L, Revnic I. Crearea si exploatarea bazelor de date relationale, U.T.PRES, Cluj-Napoca, 2006 www.msdn.microsoft.com

4.

5. Cursurile oferite de COLEGIUL TEHNIC TURDA, Scola Postliceal

41

VI. ANEXA-LISTING PROGRAM Oferim in cele ce urmeaza secvente de cod cu explicatii sumare: --introducere material in depozit
if used("depozit") select depozit else select 0 use depozit select depozit endif append blank replace codm with thisform.text8.value replace material with thisform.text1.value replace cantitate with thisform.text2.value replace um with thisform.text4.value replace pret with thisform.text3.value replace zi with thisform.text5.value replace luna with thisform.text6.value replace an with thisform.text7.value replace coddistr with dis if used ("prodmat") select prodmat else select 0 use prodmat select prodmat endif set order to cod_prod go bottom append blank replace cod_prod with pro

42

replace codm with thisform.text8.value _screen.activeform.text8.value="" _screen.activeform.text1.value="" _screen.activeform.text2.value=0 _screen.activeform.text3.value=0 _screen.activeform.text4.value="" _screen.activeform.text5.value=0 _screen.activeform.text6.value=0 _screen.activeform.text7.value=0 *show get sr, 1 disable show gets

--adaugare distribuitor nou


do case case this.value=1 &&introducere if used("distribuitori") select distribuitori else select 0 use distribuitori select distribuitori endif set order to cod_distr go bottom coddis=cod_distr + 1 append blank replace cod_distr with coddis replace nume with firma replace adresa with adr replace telefon with tel thisform.text1.value="" thisform.edit1.value="" thisform.text2.value="" thisform.text1.setfocus case this.value=2 &&vizualizare browse fields cod_distr, nume, adresa, telefon freeze nume case this.value=3 &&iesire thisform.release endcase

--adaugare producator nou


do case case this.value=1 &&introducere if used("producatori") select producatori else select 0 use producatori select producatori endif set order to cod_prod go bottom codpro=cod_prod + 1 append blank

43

replace cod_prod with codpro replace nume_prod with cinef replace adresa with punde replace telefon with calnr thisform.text1.value="" thisform.edit1.value="" thisform.text2.value="" thisform.text1.setfocus case this.value=2 &&vizualizare browse fields cod_prod, nume_prod, adresa, telefon freeze nume_prod case this.value=3 &&iesire thisform.release endcase

--afiare pre, cantitate, pentru un material introdus de la tasatatura existent in baza de date
thisform.List1.clear thisform.List2.clear if used("depozit") select depozit else select 0 use depozit select depozit endif go top scan if (upper(thisform.text1.value)=upper(material)) then *!* thisform.Combo1.AddItem(table1.camp1) *thisform.List2.AddlistItem(depozit.pret) thisform.text2.value=(depozit.cantitate) thisform.text3.value=(depozit.pret) thisform.List1.AddlistItem(thisform.text2.text) thisform.List2.AddlistItem(thisform.text3.text) else endif endscan

--afiare stoc limit


thisform.List1.clear sele depozit go top scan if (depozit.cantitate<=thisform.text1.value) then *!* thisform.Combo1.AddItem(table1.camp1) thisform.List1.AddItem(depozit.material) else endif

44

endscan

asociere materiale-clienti
do case case this.value=1 if used("centraliz") select centraliz else select 0 use centraliz select centraliz endif go bottom append blank replace codc with c1 replace codm with c2 replace cantitate with val(thisform.text1.value) if used("depozit") select depozit else select 0 use depozit select depozit endif replace depozit.cantitate with depozit.cantitateval(thisform.text1.value) replace centraliz.pretfaratva WITH depozit.pret*centraliz.cantitate replace centraliz.tva WITH 24/100*centraliz.pretfaratva replace centraliz.prettotal WITH centraliz.pretfaratva+centraliz.tva messagebox("Ok...s-a efectuat operatiunea cu succes!..") case this.value=2 thisform.release endcase

--cutare client
if used("client") select client else select 0 use client select client endif LOCATE FOR UPPER(_seria)=seria AND _numar=numar IF FOUND() _nume=nume _prenume=prenume _national=national _localitate=localitate _strada=strada _nr=nr _actid=actid _tara=tara _data_ven=data_ven _seria=seria

45

_numar=numar thisform.Refresh ELSE MESSAGEBOX("Acest client nu este in baza noastra de date!") MESSAGEBOX("Verificati datele si spatiile lasate in fata numarului de la actul de identitate!") ENDIF

-afiare materiale pe clienti


PUBLIC codclient if used("client") select client else select 0 use client select client endif set order to codc go top thisform.combo1.value=client.nume codclient=codc thisform.list1.setfocus

--modific informaiile existente despre un material


if used("depozit") select depozit else select 0 use depozit select depozit endif go recno() x=recno() replace replace replace replace replace replace replace material with thisform.text1.value cantitate with thisform.text2.value pret with thisform.text3.value um with thisform.text4.value zi with thisform.text5.value luna with thisform.text6.value an with thisform.text7.value

_screen.activeform.text1.value="" _screen.activeform.text2.value=0 _screen.activeform.text3.value=0 _screen.activeform.text4.value="" _screen.activeform.text5.value=0 _screen.activeform.text6.value=0 _screen.activeform.text7.value=0

if x>reccount() go x-1

46

else go x endif if used("depozit") select depozit else select 0 use depozit select depozit endif do case case b=1 go top case b=2 if recno()<>1 go recno()-1 endif case b=3 if recno()<>reccount() go recno()+1 endif case b=4 go bottom endcase go recno() _screen.activeform.text1.value=material _screen.activeform.text2.value=cantitate _screen.activeform.text3.value=pret _screen.activeform.text4.value=um _screen.activeform.text5.value=zi _screen.activeform.text6.value=luna _screen.activeform.text7.value=an show get sr,1 enable show gets

--tergere material existent


go recno() x=recno() delete pack _screen.activeform.text1.value="" _screen.activeform.text2.value=0 _screen.activeform.text3.value=0 _screen.activeform.text4.value="" _screen.activeform.text5.value=0 _screen.activeform.text6.value=0 _screen.activeform.text6.value=0 _screen.activeform.text1.refresh _screen.activeform.text2.refresh _screen.activeform.text3.refresh _screen.activeform.text4.refresh _screen.activeform.text5.refresh

47

_screen.activeform.text6.refresh if x>reccount() go x-1 else go x endif if used("depozit") select depozit else select 0 use depozit select depozit endif do case case b=1 go top case b=2 if recno()<>1 go recno()-1 endif case b=3 if recno()<>reccount() go recno()+1 endif case b=4 go bottom endcase go recno() _screen.activeform.text1.value=material _screen.activeform.text2.value=cantitate _screen.activeform.text3.value=pret _screen.activeform.text4.value=um _screen.activeform.text5.value=zi _screen.activeform.text6.value=luna _screen.activeform.text7.value=an show get sr,1 enable show gets

--nregistrare client nou n tabela


if used ("client") select client else SELECT 0 use client select client endif IF EMPTY(_nume) OR EMPTY(_prenume) OR EMPTY(_national) OR EMPTY(_localitate); OR EMPTY(_strada) OR EMPTY(_nr) OR EMPTY(_tara); OR EMPTY(_seria) OR EMPTY(_numar) MESSAGEBOX("Nu ati completat datele necesare pentru a reusi inregistrarea clientului in baza de date!!") ELSE

48

set order to codc go bottom cod=codc+1 APPEND BLANK replace codc with cod replace nume with PROPER(ALLTRIM(_nume)),prenume WITH PROPER(ALLTRIM(_prenume)),actid WITH _actid replace national with PROPER(ALLTRIM(_national)) replace localitate with PROPER(ALLTRIM(_localitate)) replace strada with PROPER(_strada) replace nr with _nr replace tara with PROPER(ALLTRIM(_tara)) replace data_ven with _data_ven replace seria with UPPER(ALLTRIM(_seria)) replace numar with ALLTRIM(_numar) replace data_ven with date() seria1=_seria numar1=_numar MESSAGEBOX("Clientul a fost introdus in baza de date!") _actid='B.I' _nume=SPACE(25) _prenume=SPACE(25) _national=SPACE(15) _localitate=SPACE(15) _strada=SPACE(15) _nr=SPACE(6) _tara=SPACE(10) _data_ven=DATE() _seria=SPACE(3) _numar=SPACE(10) DO FORM asociereclientmaterial Endif _actid='B.I' _nume=SPACE(25) _prenume=SPACE(25) _national=SPACE(15) _localitate=SPACE(15) _strada=SPACE(15) _nr=SPACE(6) _tara=SPACE(10) _data_ven=DATE() _seria=SPACE(3) _numarul=SPACE(10) thisform.optiongroup1.Value=1 thisform.Refresh IF _act=1.00 _actid='B.I' ELSE IF _act=2.00 _actid='Permis' ELSE _actid='Pasaport' ENDIF ENDIF

--codul Sql-vedere2
SELECT Client.codc, Client.prenume, Client.nume, Depozit.material,; Depozit.pret, Depozit.um, Centraliz.cantitate, Centraliz.pretfaratva,;

49

Centraliz.tva, Centraliz.prettotal; FROM ; materiale!client ; INNER JOIN materiale!centraliz ; ON Client.codc = Centraliz.codc ; INNER JOIN materiale!depozit ; ON Centraliz.codm = Depozit.codm; ORDER BY Client.codc DBSetProp(ThisView,"View","SendUpdates",.F.) DBSetProp(ThisView,"View","BatchUpdateCount",1) DBSetProp(ThisView,"View","CompareMemo",.T.) DBSetProp(ThisView,"View","FetchAsNeeded",.F.) DBSetProp(ThisView,"View","FetchMemo",.T.) DBSetProp(ThisView,"View","FetchSize",100) DBSetProp(ThisView,"View","MaxRecords",-1) DBSetProp(ThisView,"View","Prepared",.F.) DBSetProp(ThisView,"View","UpdateType",1) DBSetProp(ThisView,"View","UseMemoSize",255) DBSetProp(ThisView,"View","Tables","materiale!client") DBSetProp(ThisView,"View","WhereType",3) DBSetProp(ThisView+".codc","Field","DataType","N(5)") DBSetProp(ThisView+".codc","Field","UpdateName","materiale!client.codc") DBSetProp(ThisView+".codc","Field","KeyField",.T.) DBSetProp(ThisView+".codc","Field","Updatable",.F.) DBSetProp(ThisView+".prenume","Field","DataType","C(25)") DBSetProp(ThisView+".prenume","Field","UpdateName","materiale!client.prenume") DBSetProp(ThisView+".prenume","Field","KeyField",.F.) DBSetProp(ThisView+".prenume","Field","Updatable",.T.) DBSetProp(ThisView+".nume","Field","DataType","C(25)") DBSetProp(ThisView+".nume","Field","UpdateName","materiale!client.nume") DBSetProp(ThisView+".nume","Field","KeyField",.F.) DBSetProp(ThisView+".nume","Field","Updatable",.T.) DBSetProp(ThisView+".material","Field","DataType","C(10)") DBSetProp(ThisView+".material","Field","UpdateName","materiale! depozit.material") DBSetProp(ThisView+".material","Field","KeyField",.F.) DBSetProp(ThisView+".material","Field","Updatable",.F.) DBSetProp(ThisView+".pret","Field","DataType","N(10)") DBSetProp(ThisView+".pret","Field","UpdateName","materiale!depozit.pret") DBSetProp(ThisView+".pret","Field","KeyField",.F.) DBSetProp(ThisView+".pret","Field","Updatable",.F.) DBSetProp(ThisView+".um","Field","DataType","C(10)") DBSetProp(ThisView+".um","Field","UpdateName","materiale!depozit.um") DBSetProp(ThisView+".um","Field","KeyField",.F.) DBSetProp(ThisView+".um","Field","Updatable",.F.) DBSetProp(ThisView+".cantitate","Field","DataType","N(10)") DBSetProp(ThisView+".cantitate","Field","UpdateName","materiale! centraliz.cantitate") DBSetProp(ThisView+".cantitate","Field","KeyField",.F.) DBSetProp(ThisView+".cantitate","Field","Updatable",.F.)

50

DBSetProp(ThisView+".pretfaratva","Field","DataType","N(10)") DBSetProp(ThisView+".pretfaratva","Field","UpdateName","materiale! centraliz.pretfaratva") DBSetProp(ThisView+".pretfaratva","Field","KeyField",.F.) DBSetProp(ThisView+".pretfaratva","Field","Updatable",.F.) DBSetProp(ThisView+".tva","Field","DataType","F(10,2)") DBSetProp(ThisView+".tva","Field","UpdateName","materiale!centraliz.tva") DBSetProp(ThisView+".tva","Field","KeyField",.F.) DBSetProp(ThisView+".tva","Field","Updatable",.F.) DBSetProp(ThisView+".prettotal","Field","DataType","F(10,2)") DBSetProp(ThisView+".prettotal","Field","UpdateName","materiale! centraliz.prettotal") DBSetProp(ThisView+".prettotal","Field","KeyField",.F.) DBSetProp(ThisView+".prettotal","Field","Updatable",.F.)

--cod SQL-interogare 2
SELECT Client.codc, Client.nume, Client.prenume, Depozit.material,; Centraliz.cantitate, Centraliz.pretfaratva, Centraliz.tva,; Centraliz.prettotal; FROM ; materiale!centraliz ; INNER JOIN materiale!depozit ; ON Centraliz.codm = Depozit.codm ; INNER JOIN materiale!client ; ON Client.codc = Centraliz.codc; ORDER BY Client.nume

51

CUPRINS I. INTRODUCERE...................................................................................................1 1.2. Ce este o baz de date? Dar un sistem de gestiune a bazelor de date?..........3 1.2. O scurt istorie a bazelor de date.......................................................................6 1.2.1. Evoluia organizrii datelor.............................................................................7 1.2.2 Avantajele i dezavantajele sistemelor de gestiune a bazelor de date ...........7 II. MEMORIU TEHNIC..........................................................................................10 2.1. Tehnologiile aplicatiei.......................................................................................11 Dezvoltarea iterativ...........................................................................................18 Analiza aplicaiei.................................................................................................19 Ce-ar trebui s conin aplicaia..........................................................................19 III. MEMORIU JUSTIFICATIV..............................................................................21 3.1 Justificarea temei alese.......................................................................................21 3.2 Crearea proiectului Depozit...............................................................................23 3.3 Crearea bazei de date..........................................................................................24 3.4 Structrura tabelelor.............................................................................................25 3.5 Elemente ale limbajului Foxpro folosite in aplicatie.........................................27 3.6 Modul de functionare, Facilitati oferite de program:... ....................................29 IV. CONCLUZIE.....................................................................................................40 V. BIBLIOGRAFIE..................................................................................................42 VI. ANEXA-LISTING PROGRAM.........................................................................43

52

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