Sunteți pe pagina 1din 44

CUPRINS

Introducere .................................................................................................................................. 2 Capitolul I : Analiza gestiunii stocurilor ..................................................................................... 3 I. 1 Stocurile ................................................................................................................................. I.1.1 Definirea stocurilor ..................................................................................................... I.1.2 Tipuri de stocuri .......................................................................................................... I.1.3 Rolul stocurilor ........................................................................................................... I. 2 Gestiunea stocurilor ............................................................................................................... I.2.1 Sfera gestiunii stocurilor ............................................................................................ I.2.2 Obiective i rezultate ale gestiunii tiinifice a stocurilor .......................................... I.2.3 Funciile gestiunii stocurilor ....................................................................................... I.2.4 Elementele principale ale unui proces de stocare ....................................................... I.2.5 Factorii de influen a gestiunii stocurilor .................................................................. I.2.6 Situaii periculoase n gestiunea stocurilor ................................................................. I.2.7 Modaliti practice de gestiune a stocurilor ................................................................ I.2.8 Indicatori ai eficienei gestiunii stocurilor .................................................................. 3 3 3 3 4 4 4 5 5 5 6 6 10

Capitolul II : Proiectarea programului de gestiune a stocurilor unei farmacii ............................ 11 II.1 Noiuni de proiectare a bazelor de date .................................................................................. 11 II.2 Analiza principalilor indicatori i operatori relaionali .......................................................... 12 II.2.1 Caracteristici ale bazelor de date relaionale ............................................................. 12 II.2.2 Operatorii relaionali ai bazelor de date relaionale.................................................... 13 II.2.3 Noiunile i conceptele bazelor de date relaionale, modelul entitate-relaie ........... 14 II.2.4 Modelarea grafic a bazelor de date relaionale ........................................................ 15 II.3 Analiza detaliat a proiectrii bazei de date relaionale care va gestiona stocurile unei farmacii ........................................................................................................... 16 Capitolul III : Realizarea programului de gestiune a stocurilor unei farmacii realizat n Microsoft Access 2000 ....................................................................................... 18 III.1 Prezentare Access ................................................................................................................. III.2 Crearea bazei de date de gestiune a stocurilor unei farmacii ............................................... III.3. Crearea de filtre, interogri i rapoarte ............................................................................... III.4. Crearea unei interogri de tip crosstab ................................................................................ III.5.Utilizarea programului de gestiune a stocurilor unei farmacii realizat n Microsoft Access 2000 ........................................................................................................ 18 19 24 31 38

Concluzii ..................................................................................................................................... 42 BIBLIOGRAFIE ........................................................................................................................ 43

Introducere

Tema proiectului Proiecatarea unui sistem informatic pentru gestiunea stocurilor este n strns legtur att cu disciplina Sisteme informatice de asistare a deciziilor la care se prezint acest proiect, ct i cu cu specialitatea Facultii de tiine Economice, Contabilitate i Informatic de Gestiune, din a crei program face parte disciplina menionat. Dup cum reiese i din titlul temei, proiectul cuprinde dou componente: o component informatic i o component economic. Acestea sunt tratate separat din punct de vedere al bazelor teoretice, dup care acestea devin un tot unitar, la realizarea practic a sistemului informatic, materializat prin obinerea unui program de gestiune a stocurilor, n mod arbitar ales al unei farmaci, deoarece este un model simplu de gestiune a stocurilor, folosind platforma de programare a Microsoft Access 2000. Pentru realizarea unei uniti n expunerea proiectului, s-a fcut n primul rnd prezentarea noiunilor teoretice ale componentei economice, urmat de prezentarea noiunilor teoretice ale componentei informatice, iar n final se arat pas cu pas modul de programare al softului de gestiune al farmaciei. n momentul utilizrii bibliografie a unor relaii, noiuni sau paragrafe, acestea sunt indicate corespunztor n proiect, prin folosirea notelor de subsol. La tratare noiunilor teoretice ale componentei economice s-a fcut o prezentare amnunit stocurile i gestiunea stocurilor. Sunt artate modalitile de definire a stocurilor, tipurile i rolul acestora. La gestiunea stocurilor se dezbat ariile de cuprindere ale gestiunii stocurilor, obiectivele i rezultatele unei gestiuni informatice a stocurilor, funciile gestiunii stocurilor, elementele procesului de stocare, factorii de influen i situaiile periculoase ntlnite n cazul unei gestiuni informatizate a stocurilor, modalitile practice de gestiune i indicatorii eficieei gestiunii stocurilor. La tratarea noiunilor teoretice ale componentei informatice s-au prezentat criteriile unei proiectri de baze de date, analiza principalilor indicatori i operatori ai unei baze de date relaionale, noiunile, conceptele, caracteristicile i modelarea grafic a bazelor de date relaionale bazate pe modelul entitate-relaie, precum i analiza detaliat a proiectrii n cazul particular ales al unei baze de date relaionale care va gestiona stocurile unei farmacii. Prezentarea teoretic a platformei de programare a programului Microsoft Acces 2000 este urmat de expunerea pas cu pas a proiectrii bazei de date, a crerii acesteia precum i a crerii filtrelor, interogrilor i rapoartelor. n ultima parte a proiectului este dezbtut utilizarea sistemului informatic de gestiune a stocurilor unei farmacii, din punct de vedere al unui utilizator de program, care n cazul analizat poate fi reprezentat de persoana care vinde medicamentele aflate n stocul i respectiv n gestiunea farmaciei.

Capitolul I : Analiza gestiunii stocurilor


I.1 Stocurile
I.1.1 Definirea stocurilor Stocurile reprezint cantiti de resurse materiale sau produse finite sau ntr-un stadiu oarecare de fabricaie, acumulate n depozitele de aprovizionare ale unitilor economice ntr-un anumit volum i o anumit structur, pe o perioad de timp determinat, n vederea unei utilizri ulterioare. Stocul este o rezerv de material destinat s satisfac cererea beneficiarilor, acetia identificndu-se, dupa caz, fie unei clientele (stoc de produse finite), fie unui serviciu de fabricaie (stocuri de materii prime sau de semifabricate), fie unui serviciu de ntreinere (articole de consum curent sau piese de schimb), fie unui serviciu de dup vnzare (piese detaate). Stocul reprezint ansamblul de bunuri care se formeaz n ciclul de exploatare al intreprinderii pentru a fi vndut n starea n care se gasete n urma unui proces de producie n curs sau viitor, sau pentru a fi consumat la prima necesitate1. Stocul reprezint un ansamblu de bunuri sau de articole acumulate n ateptarea unei utilizri ulterioare, mai repede sau mai trziu i care permite alimentarea utilizatorului pe msura nevoilor sale, fr a fi perturbat de ntrzieri n livrri sau de incapacitatea furnizorului de a fabrica temporar respectivele bunuri. Noiunea de stoc grupeaz: aprovizionarea: materiile prime, furnizorii; produsele: intermediare i finite; intermediarii: cumprtorii care revnd marfa. Orice stoc se caracterizeaz printr-un flux de intrare pe care intreprinderea l poate previziona ntr-un anumit grad, precum i printr-un flux de ieire, pe care rareori intreprinderea l poate stapni, fiind impus de clieni, dar i de un nivel de bunuri n ateptare. I.1.2 Tipuri de stocuri Din punct de vedere al produciei, stocurile pot fi de producie (stoc n amonte), de desfacere (stoc n aval) i stoc interoperaional. Din punct de vedere al rolului jucat pe plan economic, stocurile pot fi cu rol de regulator, cu rol strategic i stocuri speculative. Din punct de vedere al modului de depozitare, care ine seama i de unele proprieti fizicochimice ale elementelor, avem: produse periculoase, voluminoase, fragile etc. Din punct de vedere al modului de gestionare exist stocuri cu gestiune normal, stocuri cu afectare direct (comandate special pentru o anume comand), stocuri fr gestiune (din magaziile intermediare, cu o supraveghere global) i stocuri de produse consumabile. Din punct de vedere al caracteristicilor formrii i destinaiei lor, exist stoc curent, stoc de siguran, stoc de pregtire sau de condiionare, stoc pentru transport intern i stoc de iarn. I.1.3 Rolul stocurilor Rolul determinant al stocurilor este evideniat de faptul c acestea asigur certitudine, siguran i garanie n alimentarea continu a produciei i ritmicitatea desfacerii rezultatelor acesteia 2. Altfel spus, procesul de stocare apare ca un regulator al ritmului aprovizionrilor cu cel al produciei, iar stocul reprezint acel tampon inevitabil care asigur sincronizarea cererilor pentru consum cu
1 2

Pleea Doru - Bazele contabilitii, vol. II, Ed. Omnia Uni SAST, Braov, 2005 Gheorghe Basanu, Mihai Pricop - Managementul aprovizionrii i desfaceri, Ed. Economica, 1996

momentele de furnizare a resurselor materiale. Rolul stocului este multiplu i are numeroase raiuni economice, financiare, tehnice, comerciale. Justificarea existenei stocurilor de materii prime, componente sau produse finite rezult din: a) Raiuni financiare: stocarea produselor scumpe pentru un scop speculativ specific perioadelor de criz sau inflaie, meninerea valorii anumitor materii prime sau produse, eliminndu-se astfel riscul creterii exagerate a cheltuielilor de fabricaie datorit penuriei; b) Raiuni economice: reducerea cheltuielilor de transport prin achiziionarea unor cantiti mai mari dect stocul curent necesar, acceptarea ofertei propuse de furnizor cu cantiti fixe de livrare la preuri foarte avantajoase pentru produsele care nu implic costuri mari de stocare, stocarea produciei excedentare n raport cu cererea n cazul n care oprirea i repornirea activitilor productive cost, fiind preferat realizarea unei producii constante cu stocuri care s raspund cererilor suplimentare ocazionale; c) Raiuni tehnice: ameliorarea calitii produselor (uscarea lemnului, ampanizarea vinului); d) Raiuni comerciale: reducerea termenelor de livrare mai ales cand clienii doresc produsele ntr-un timp scurt, achiziii n perioada reducerilor oferite de furnizori, pentru a promova un produs, politica de marketing prevznd i aciuni punctuale cnd se realizeaz reduceri de preuri, perioad n care cererile cresc i se justific crearea stocului, pentru a realiza un rspuns prompt la cererile aleatoare.

I.2 Gestiunea stocurilor


Intreprinderile sunt supuse unei duble constrngeri: cadena de aprovizionare foarte scazut genereaz stocuri mari i costuri importante de stocare n timp ce ritmul de aprovizionare ridicat multiplic costurile de lansare a comenzilor. Fa de aceste consideraii, gestiunea materialelor cuprinde o serie de activiti prin care: se efectueaz normarea stocurilor; se optimizeaz sistemul logistic de aprovizionare, depozitare, manipulare, conservare; se reduc cheltuielile de stocare; se realizeaz evidena strict a materialelor. I.2.1 Sfera gestiunii stocurilor Ca proces economic complex, gestiunea stocurilor are o sfer larg de cuprindere, aceasta incluznd atat probleme de conducere, dimensionare, de optimizare a amplasrii stocurilor n teritoriu, de repartizare a lor pe deintori, de formare i eviden a acestora, ct i probleme de recepie, de depozitare i pstrare, de urmrire i control, de redistribuire i mod de utilizare.3 I.2.2 Obiective i rezultate ale gestiunii tiinifice a stocurilor Obiectivele principale ale conducerii proceselor de stocare pot fi sintetizate astfel: prevenirea formrii de stocuri supranormative, cu micare lent sau fr micare i valorificarea operativ a celor existente (devenite disponibile); asigurarea unor stocuri minim necesare, asortate, care s asigure desfaurarea normal a activitii economico-productive a agenilor economici prin alimentarea continu a punctelor de consum i n condiiile unor cheltuieli ct mai mici; asigurarea unor condiii de depozitare-pstrare corespunzatoare n vederea prevenirii degradrii materialelor existente n stocuri; folosirea unui sistem informaional simplu, operativ, eficient, util i cuprinztor care s evidenieze n orice moment starea procesului de stocare; aplicarea unor metode eficiente de urmrire i control care s permit meninerea stocului n anumite limite, s previn imobilizrile neraionale. Soluionarea oricrei probleme de stoc trebuie s conduc la obinerea rspunsului pentru urmtoarele dou chestiuni, care constituie de fapt obiectivele principale ale gestiunii: 1) determinarea mrimii optime a comenzii de aprovizionare;
3

http://www.biblioteca.ase.ro/eresurse/reviste/contabilitate

2) determinarea momentului (sau frecvenei) optime de aprovizionare. I.2.3 Funciile gestiunii stocurilor Principalele funcii ale gestiunii stocurilor se pot nominaliza prin: crearea siguranei i certitudinii cu privire la asigurarea alimentrii continue a procesului de producie; imobilizarea unor cantiti cat mai reduse n materiale stocate; diminuarea continu a cheltuielilor de stocare; formarea de stocuri pentru situaii neprevzute. I.2.4 Elementele principale ale unui proces de stocare Stabilirea politicii de gestiune a stocurilor este nemijlocit legat de cunoaterea elementelor prin care se caracterizeaz procesele de stocare i care determin nivelul de formare al stocurilor: A. Cerere ce consum, element de baz n funcie de care se determin nivelul i ritmul ieirilor, volumul i ritmul necesar pentru intrri i nivelul stocului. Cererea de consum reprezint numrul de produse solicitate n unitatea de timp. Acest numr nu coincide ntotdeauna cu cantitatea vndut deoarece unele cereri pot ramne nesatisfcute datorit deficitului n stoc sau ntrzierilor n livrare. Evident, dac cererea poate fi satisfacut n ntregime, ea reprezint cantitatea vndut. B. Costurile reprezint cheltuielile ce trebuie efectuate pentru derularea procesului de aprovizionare-stocare (respectiv cele cu comandarea, contractarea, transportul, depozitarea, stocarea materialelor etc.). n calculul stocurilor se au n vedere: costurile de stocare - cuprind suma cheltuielilor ce trebuie efectuate pe timpul staionarii resurselor materiale n stoc; costul de penurie sau costul ruperii stocului - definit atunci cnd volumul cererii depete stocul existent; cheltuieli datorate variaiilor ritmului de producie - cheltuielile fixe legate de creterea ritmului de producie, de la nivelul zero, la un anumit nivel dat; preul de achiziie sau cheltuielile directe de producie. C. Cantitatea de reaprovizionat reprezint necesarul de aprovizionat care se stabilete n funcie de necesarul pentru consum pentru ntreaga perioada de gestiune. D. Lotul reprezint cantitatea cu care se face aprovizionarea la anumite intervale, n cadrul perioadei de gestiune stabilit (trimestru, semestru, an) i care este funcie de caracterul cererii. E. Parametri temporali sunt specifici dinamicii proceselor de stocare: perioada de gestiune, intervalul de timp ntre dou aprovizionri consecutive, durata de reaprovizionare, momentul calendaristic la care se emit comenzile de reaprovizionare, coeficientul de actualizare. F. Gradul de prelucrare a produselor: cu ct bunurile pstrate n stoc sunt ntr-un stadiu mai avansat de finisare, cu att mai repede pot fi satisfcute comenzile, dar cu att mai mari vor fi cheltuielile de stocare. Cu ct produsele sunt mai puin finisate, cu att mai mici sunt cheltuielile de stocare, dar timpul necesar pentru livrarea unei comenzi este mai mare. n plus, erorile de previziune tind s creasc pe masur ce gradul de prelucrare a produselor este mai avansat. Rezult c pentru a reduce influena factorilor nefavorabili este necesar s creasc i stocul tampon. I.2.5 Factorii de influen a gestiunii stocurilor4 Factorii cei mai relevani care influeneaz gestiunea stocurilor sunt: cererea, care poate fi constant sau aleatoare cu o probabilitate cunoscut sau necunoscut; cantitatea de aprovizionat (Q) rezultat din analiza cererii; durata de aprovizionare (d) timpul consumat de la emiterea comenzii pn la recepia materialului n depozitul ntreprinderii; intervalul dintre dou reaprovizionri (t); perioada de timp pentru care este planificat gestiunea (T); stocul curent optim (Sc); date despre furnizor: capaciti, termene de livrare, loturi de livrare;
4

http://www.market-mentor.ro

capacitile de depozitare ale ntreprinderii; cheltuielile ocazionate de desfurarea procesului de aprovizionare, dintre care cele mai importante sunt: Cl cheltuieli pentru lansarea comenzii, independente de mrimea stocului curent sau de cantitatea comandat; Cs cheltuieli cu stocarea, manipularea, transportul i conservarea materialelor, dependente de mrimea stocului depozitat; Cp cheltuieli de penalizare, care apar atunci cnd cererea este mai mare dect stocul existent i ea se datoreaz lipsei de materii prime pentru prelucrare.

I.2.6 Situaii periculoase n gestiunea stocurilor Responsabilii cu gestiunea stocurilor trebuie s evite dou situaii periculoase: un nivel de stoc prea mare sau un nivel de stoc prea sczut, ambele cu consecine economice dezavantajoase5. Dac nivelul de stoc este prea mare: se nregistreaz numeroase cheltuieli suplimentare (construcia de depozite, asigurri, personal salarizat, ntreinere, paz etc.); imobilizrile de capitaluri scad competitivitatea firmei; poate crea dificulti de lichiditi; crete riscul de degradare i deteriorare a produselor stocate; conduce la situaii n care firma vinde cu rabat (scderea profitului) producia stocat. Dac nivelul de stoc este prea sczut: multiplic riscul de a ntrerupe i chiar de a opri fluxul productiv; dezorganizeaz ntreprinderea; genereaz ntrzieri n livrri, diminuarea vnzrilor i n final pierderea clientelei. Astfel, intreprinderea va construi i va exploata un sistem de gestiune economic a stocurilor, printr-un efort financiar care merit a fi luat n considerare, sistem care va avea ca obiective: reducerea la maxim a nivelului mediu al stocurilor; minimizarea riscurilor de ntrerupere a produciei. I.2.7 Modaliti practice de gestiune a stocurilor Modelul S-s. Gestiunea de tip S-s sau cu dou depozite se caracterizeaz prin faptul c reaprovizionarea se face n momentul n care nivelul curent al stocului a atins o anumit valoare notat generic cu s. Acest lucru este echivalent unei gestiuni cu dou depozite, n cadrul creia reaprovizionarea se face n momentul n care primul depozit s-a golit. n perioada de reaprovizionare (de avans) consumul se va realiza din cel de-al doilea depozit, care joac rolul stocului de siguran. n acest model considerm: cererea total pentru perioada T este R, aleatorie; costul stocrii este cS; costul lansrii unei comenzi de reaprovizionare este cL; termenul de livrare poate fi: a) neglijabil i obinem costul total pentru intervalul T ca fiind:

unde: q - reprezint cantitatea de reaprovizionat. b) cvasiconstant este nivelul minim de reaprovizionare Ns; cnd stocul atinge acest nivel se lanseaz o comand de q piese. Mrimile date sunt: T, , R, cS, cL i ne propunem s determinm pe Ns i pe q astfel nct costul stocului pentru perioada T s fie minim. O metod aproximativ const n a admite c ritmul mediu al cererii este constant; n acest caz optimul cantitii q0 este independent de Ns:

Radu Emilian, Gabriela Tigu - Managementul operaiunilor n intreprinderile de servicii

Dac este durata medie a termenului de reaprovizionare (cu o abatere medie ptratic mic) se va evalua legea de probabilitate a cererii pentru acest interval de timp. Fie F (r) probabilitatea cererii de r produse n intervalul : F (r) = P(Rr) = probabilitatea cumulat. Se impune condiia ca probabilitatea epuizrii stocului s fie mai mic sau egal cu valoarea dat , unde reprezint probabilitatea de penurie. Trebuie s avem: 1 - F (r) = . Fie Q soluia ecuaiei: 1 - F (r) = , de unde rezult Q = Ns. Aceast metod este aproximativ, deoarece implic ipoteze de lucru distincte pentru stocurile fiecrui depozit. Metoda A.B.C. este un procedeu rapid pentru analiza aprovizionrii i gestiunii economice a materialelor. Aceast analiz clasific mrfurile achiziionate n funcie de valorile de aprovizionare ale acestora i de ponderea achiziiilor. Prin aceasta pot fi vzute punctele de plecare pentru realizarea unei politici raionale a achiziiilor, pe care se pot baza mai multe msuri, ncepnd cu simplificarea procedeelor de comand, pn la numrul de salariai folosii n depozite. Factorul esenial n folosirea metodei A.B.C. const n alegerea unui criteriu corespunztor pe baza cruia se efectueaz mprirea materialelor n cele trei grupe A, B, C. Un asemenea criteriu poate fi valoarea de consum a materialului dat, n timpul stabilit, valoarea special a materialului cu privire la folosirea lui n producie, proveniena din import etc. O dat criteriul ales i mprirea n grupe efectuat, metoda A.B.C. poate fi utilizat n diferite domenii ale gestiunii stocurilor. Controlul selectiv al stocurilor permite o gestiune selectiv a stocurilor. Stocurile tampon ale articolelor de valoare mare sunt meninute la un nivel destul de mic. Aceste articole trebuie s fie supuse unui control de gestiune foarte strns din partea personalului aprovizionrii (articolele de mare valoare sunt adesea gospodrite cu ajutorul unui sistem de reaprovizionare periodic i dac intervalele sunt suficient de frecvente, un stoc tampon este mai puin necesar). Aceast metod d o atenie mai mic articolelor de valoare mic, a cror epuizare se evit prin asigurarea unor stocuri tampon i se pot reduce investiiile n stocuri, micornd n acelai timp riscurile de epuizare. Din analiza structurii materiale a unitilor economice rezult c valoarea mare n stoc este deinut de un numr relativ mic de materiale, care nu numai c influeneaz direct volumul de mijloace circulante atras, dar joac i rolul principal n desfurarea procesului de fabricaie. Stocurile sunt mprite n trei clase: - clasa A, n care intr articolele cu valoare mare reprezentnd cantitativ 10 % din stoc i 70 % valoric; - clasa B, n care intr articole reprezentnd 20 % att cantitativ ct i valoric; - clasa C, n care intr articole ce reprezint cantitativ 70 % din stoc i 10 % valoric. CLA SA A B C PONDEREA NUMERIC 10 20 70 PONDEREA VALORIC 70 20 10

Gruparea materialelor n funcie de ponderea lor valoric n stocul total, pe baza datelor din tabelul de mai sus, se prezint ntr-o form expresiv n Fig. 1.

Fig. 1. Graficul de evoluie al curbei valorilor cumulate Metoda A.B.C., pe lng faptul c ofer o politic diferit pentru articolele din categoria mai scump, permite i utilizarea unor metode de gospodrire diferit. ntruct n categoria A sunt puine articole, se poate controla zilnic nivelul stocurilor, pentru a observa variaia cererii i a supraveghea de aproape respectarea termenelor de ctre furnizori. Se pot folosi modele economico-matematice exigente, care au n vedere elemente (factori) concrete ce condiioneaz nivelul stocurilor i care asigur constituirea lor la dimensiuni ct mai mici, determinnd creterea vitezei de rotaie a mijloacelor circulante la maxim. Cu articolele din categoria B se poate adopta o politic intermediar, exercitnd un oarecare control, dar baza rmne tot stocul tampon, spre deosebire de politica dus pentru categoria A. La articolele mai ieftine este mai eficient s se suporte sarcina stocurilor, dect s se plteasc salariile personalului care ar fi indispensabil pentru mrirea controlului. Pentru grupa B se pot aplica dou soluii: a) stabilirea de modele distincte pentru dimensionarea stocurilor de materiale din aceast grup cu un grad de exigen mediu; b) folosirea pentru materialele care, ca pondere valoric, tind ctre grupa A de importan, a modelelor precizate pentru aceast din urm grup, iar pentru materialele ce tind ca valoare ctre grupa C a modelelor specifice acestora. Pentru materialele din categoria C se pot folosi procedee mai puin exigente (chiar cu caracter statistic) i care vor avea n vedere factorii cu aciune hotrtoare n optimizarea proceselor de stocare (cheltuielile de transport, sursa de provenien etc.). Viabilitatea unui sistem de gestiune a stocurilor este determinat, n general, de felul n care acesta rspunde unor cerine de baz6, cum ar fi: gradul ridicat de utilitate practic; adaptabilitatea la utilizarea mijloacelor electronice de calcul; supleea i operaionalitatea n derularea i adaptarea proceselor de stocare; aria de cuprindere mare; concordana cu fenomenele reale ale procesului de formare i consum a stocurilor; reducerea la minim a imobilizrilor de resurse materiale i creterea vitezei de rotaie a mijloacelor circulante ale agenilor economici; cheltuielile de conducere, organizare i desfurare a proceselor de stocare ct mai mici. Analizat din aceste puncte de vedere, sistemul A.B.C. rspunde n mare msur cerinelor. Acest sistem aplicat la gestiunea stocurilor are n vedere, n primul rnd reducerea imobilizrilor la materialele de baz i care se consum n cantiti mari, aspect asigurat prin exigena metodologic de dimensionare a stocurilor i de urmrire a derulrii proceselor de stocare. Strategia IMPACT (Inventory Management Program and Control Techniques) este considerat ca un model eficient de stabilire a stocurilor de siguran. Este o metod de depozitare economic, adaptat cerinelor calculatoarelor electronice. Acest model a fost dezvoltat de IBM. Estimarea necesarului se face prin extrapolarea valorilor din trecut. Influenele conjuncturale i sezoniere sunt luate n calcul prin metoda de nivelare exponenial. Stocul de siguran se determin cu ajutorul calculului probabilitilor. Conform metodei IMPACT, sortimentelor din depozit se mpart n trei grupe: 1. produse cu desfacere mare (vitale); 2. produse cu desfacere mijlocie (importante); 3. produse cu desfacere redus ( obinuite). Mrimea stocului de siguran depinde de precizia estimrii necesitilor (cererii). Cu ct va fi apreciat mai precis n prealabil cererea, cu att va fi mai mic stocul de siguran.
6

Eugen ignescu, Dorin Mitru - Bazele cercetrii operaionale

Pentru a putea aplica metoda IMPACT sunt necesare: cunoaterea cererilor ri (i = 1, 2,..., T), pe T intervale de timp i calculul abaterii medii ptratice . Pentru determinarea stocului de siguran, metoda IMPACT folosete urmtorii indicatori: a) cererea medie (necesarul mediu)

unde: T - este numrul de intervale de timp cercetate; ri - este cererea n intervalul i, i = 1, 2,..., T; b) MAD (Mean Absolut Deviation) reprezint abaterea absolut de la medie a cererilor, ca unitate de msur a mprtierii valorilor efective n jurul valorii medii.

MAD se determin ca valoare medie a valorilor absolute ale abaterilor de la cererea medie. c) coeficientul de siguran exprim potenialul de livrare al furnizorilor. Coeficientul de siguran (K) se stabilete pe baz de tabele ale funciei normale, n cadrul creia sunt date valorile lui K, corespunztor diferitelor niveluri ale potenialului de livrare al furnizorilor. Potenialul de livrare (Z) exprim gradul de satisfacere de ctre furnizor a unei comenzi. Acest potenial de livrare se mai numete grad de deservire sau nivel de serviciu. Potenialul de livrare (Z) se determin dup relaia:

unde: CLE - este cantitatea livrat efectiv; CLC - este cantitatea ce trebuie livrat conform comenzii. Dac 0 < Z < 1 sau Z = 0, atunci se nregistreaz lipsa materialelor n stoc, fr o posibilitate eficient de acoperire; iar dac Z = 1, avem de-a face cu un serviciu perfect de servire din partea furnizorilor. Relaia de determinare a potenialului de livrare se poate exprima i sub alte forme, i anume:

unde: NUC - reprezint numrul de uniti (buci) comandate; NUL reprezint numrul de uniti (buci) lips. sau

unde: NZT - reprezint numrul total de zile lucrtoare din perioada de gestiune; NZL reprezint numrul de zile cu lips de stoc. Cnd un produs se fabric din mai multe materii prime, care intr simultan n consum, potenialul de livrare se calculeaz n funcie de necesitatea prezenei n acelai moment n depozit a tuturor materiilor prime care concur la obinerea lui. Stocul de siguran se calculeaz dup formula: NS = K MAD ntre potenialul de livrare i costul stocrii necesitat de constituirea i deinerea stocului de siguran exist o corelaie strns. Creterea potenialului de livrare determin creterea costului total de stocare, dar ntr-o proporie mai mic, ceea ce nseamn c eficiena este cu att mai mare cu ct potenialul de livrare se apropie de unu. Trebuie excluse influenele ntmpltore, ns luate n considerare influenele conjuncturale i sezoniere. IMPACT folosete n acest scop metoda nivelrii exponeniale. Aceast metod a fost dezvoltat de Robert Brown i este cunoscut sub numele de exponential smoothing. 9

Valoarea medie a cererii se corecteaz cu eroarea de previziune i se stabilete introducnd o anumit parte a erorii n noua valoare a estimaiei. Fie V1 estimarea cererii pentru prima perioad i r1 cererea real a primei perioade. Estimarea cererii pentru urmtoarele perioade se obine din relaiile: Vi = Vi-1 + C (ri-1 - Vi-1), unde: C - reprezint constanta de nivelare i determin msura n care valorile din trecut sunt cuprinse n estimarea cererii. Constanta de nivelare trebuie astfel aleas nct s in seama suficient de influenele conjuncturale i sezoniere, eliminnd totui influena ntregului. 0<C<1 C= 0 nseamn c erorile de prevedere care apar nu sunt luate n considerare C = 1 nseamn c estimarea corespunde exact cererii din perioada anterioar; toate influenele ntmpltoare sunt introduse n estimare. Abaterea absolut de la medie (MAD) poate fi folosit dup aceleai principii: abaterea medie a perioadei i va fi dat de relaia : MADi = MADi-1 + C(C ri-1 - Vi-1 C - MADi-1). n acest caz C ri-1 - Vi-1 C este valoarea abaterii precedente fa de valoarea real. Cererea medie (necesarul mediu) i abaterea absolut de la medie (MAD) vor fi apreciate n prealabil prin metoda nivelrii exponenial, urmnd ca abia dup aceea s se determine nivelul stocului de siguran (NS). I.2.8 Indicatori ai eficienei gestiunii stocurilor7 n lucrrile de specialitate se regsesc numerei indicatori prin care se poate determina eficiena politicii organizaiei relativ la stocuri i aprovizionare. A. Nivelul serviciilor oferite de furnizor 1. Disponibilitatea comenzilor DC(%)

2. Disponibilitatea cantitilor DQ(%)

B. Mrimea stocurilor 1. Valoarea stocului mediu VSm

2. Valoarea stocului de siguran VSs VSs = Valoarea stocului Valoarea stocului curent 3. Valoarea bunurilor n stocuri

C. Performanele gestiunii stocurilor 1. Eficiena stocurilor

2. Acurateea nregistrrilor A

Petre Brezeanu - Gestiunea financiar a intreprinderii, Ed. Cavallioti, 2002

10

3. Rata de utilizare a stocurilor

D. Costurile de gestiune a stocurilor 1. Costul anual cu emiterea comenzilor Caec

sau (Costul fiecrei comenzi) (Numrul de comenzi) Dup cum se observ indicatorii A. msoar nivelul de satisfacere a comenzilor de ctre furnizori, indicatorii B. relev mrimea stocului i costul anual aferent emiterii comenzilor i indicatorii C. evalueaz managementul stocurilor.

Capitolul II : Proiectarea programului de gestiune a stocurilor unei farmacii


II.1 Noiuni de proiectare a bazelor de date
Bazele de date reprezint colecii de date organizate ntr-un mod riguros, bine stabilit. Ele nu conin date care nu sunt necesare n vederea prelucrrii sistemelor de gestiune( informaii nesemnificative cum ar fi n cazul crii de telefon, tipul sau culoarea acestuia). De regul, bazele de date sunt organizate pe patru niveluri, i anume: nivelul conceptual nivelul extern nivelul logic nivelul intern(fizic) Nivelul conceptual se refer la programatorii care cunosc datele referitoare la problema care este studiat, sau care obin aceste date de la specialitii implicai n domeniul respectiv. Nivelul extern reprezint designul pe care l are baza de date, modul n care datele vor fi organizate n vederea utilizrii i prelucrrii. Tot nivelul extern realizeaz i operaiile de acces secvenial la informaiile coninute de baza de date. Astfel, un utilizator va avea acces numai la anumite date, existnd situaii cnd accesul i este interzis, sau permis numai pe baz de parol. De asemenea, la acest nivel informaia poate fi prezentat sub diferite forme, pentru a se face o distincie, sau o individualizare. Nivelul logic reprezint modul n care vor fi organizate datele din punct de vedere logic. Exist mai multe tipuri de modele: modelul ierarhic: este de tip arbore, n care nivelul cel mai de sus se numete rdcin, care poate avea orict de muli descendeni. Relaiile dintre date sunt de tip printe-copil. Este modelul cel mai puin folosit n realizarea nivelului logic modelul reea: este asemntor modelului ierarhic, cu diferena c un copil poate avea mai muli prini. Este un model care poate prelucra date complexe, dar care are o structur destul de complicat. Este puin folosit n gestionarea bazelor de date. modelul relaional: este modelul cu cea mai larg rspndire, fiind uor de utilizat i avnd o flexibilitate deosebit, care face ca manipularea datelor s se fac uor, fr a altera integritatea datelor existente. Datele sunt stocate n tabele, tabelele fiind formate din nregistrri, acestea fiind la rndul lor formate din cmpuri. ntre tabele se pot realiza legturi, care uureaz cu mult operaiile de prelucrare a informaiilor. Sistemele de gestiune a bazelor de date care folosesc modelul relaional sunt Oracle, Access, Iformix etc.

11

modelul orientat pe obiect: cel mai nou tip folosit de sistemele de gestiune al bazelor de date. A aprut ca urmare a diversificrii tipului de informaii care trebuie gestionate de ctre bazele de date(este vorba de hri, programe orientate pe obiect, programe dinamice, simulatoare, animaie etc.). Nivelul intern(fizic) n cadrul cruia se vor utiliza i prelucra informaiile din schema conceptual, n funcie de sistemul de gestiune al bazei de date. Ca sistem de gestiune al bazei de date putem folosi: Oracle, Access, DB2, Ifromix, Fox. Sistemul de gestiune al bazei de date este rspunztor de stocarea datelor, prelucrarea lor, asigurarea securitii informaiilor, asigurarea accesului concurenial (astfel nct baza de date s fie utilizat n reea de mai multe persoane n acelai timp).

II.2 Analiza principalilor indicatori i operatori relaionali


II.2.1 Caracteristici ale bazelor de date relaionale Modelul de stocare a datelor sub forma bazelor de date relaionale s-a dezvoltat pornind de la articololul "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 1970. Dr. Codd a definit 12 reguli, referite ca cele 12 reguli ale lui Codd, reguli de definesc modelul relaional i care sunt urmtoarele: [1] Regula capacitii sistemului: un sistem relaional de administrare a bazelor de date trebuie s poat administra bazele de date n ntregime prin funciile sale relaionale; [2] Regula informaiei: toate informaiile dintr-o baz de date relaional, inclusiv numele de tabel i de coloan, trebuie reprezentate explicit ca valori n tabele; [3] Regula suportului sistematic al valorii nule: SGBD trebuie s asigure un suport sistematic pentru tratamentul valorii nule, date necunoscute sau neaplicabile, diferit de valorile prestabilite i independent de orice domeniu; [4] Regula catalogului relaional activ on-line: descrierea bazei de date i a componentelor sale trebuie reprezentat la nivel logic sub form de tabele, iar ca urmare poate fi interogat folosind limbajul bazei de date; [5] Regula sub-limbajului multilateral al datelor: trebuie s existe cel puin un limbaj acceptat care s aib o sintax bine definit i s fie multilateral, care s suporte definirea i manipularea datelor, reguli de integritate, autorizare i tranzacii; [6] Regula actualizrii vederilor: toate vederile care pot fi actualizate trebuie s fie actualizate n cadrul sistemului; [7] Regula de inserare, actualizare i tergere la nivel de mulimi: SGBD trebuie s suporte nu numai regsirea datelor la nivel de mulimi, ci i inserri, actualizri i tergeri; [8] Regula de independen fizic a datelor: programele de aplicaii i cele create pe moment nu trebuie s fie afectate din punct de vedere logic la deteriorarea metodelor de acces fizic sau a structurilor de memorare; [9] Regula de independen logic a datelor: programele de aplicaii i cele create pe moment nu trebuie s fie afectate din punct de vedere logic cnd sunt fcute modificri n structura tabelelor; [10] Regula independenei integritii: limbajul bazei de date trebuie s poat defini regulile de integritate, care trebuie s fie memorate n catalogul on-line i care nu pot fi nclcate; [11] Regula independenei distribuiei: programele de aplicaii i cererile momentane nu trebuie s fie afectate din punct de vedere logic la prima distribuire a datelor sau la o distribuire ulterioar; [12] Regula de nesubversiune: nu trebuie s fie posibil nclcarea regulilor de integritate, definite prin limbajul bazei de date, prin folosirea limbajelor de nivel inferior. Matematicianul F.E. Codd a construit un model riguros, cu concepte matematice, pentru baza de date relaional, ns aceasta este perceput de utilizatorii ca o colecie de tabele (tablouri bidimensionale de date, numite i relaii), noiune care nu necesit definiii suplimentare, n care sunt prezente patru concepte: tabelele coloanele tabelului rndurile tabelului cmpurile din tabel, de pe o anumit coloan i linie. 12

Bazele de date au, din punct de vedere istoric, un set de relaii de tip "printe-fiu". Aceasta nseamn c un nod printe poate conine pointeri de tip fiier ctre fiii si. Aceast metod are cteva avantaje i mai multe dezavantaje. Ca un avantaj, structura fizic a datelor pe disc nu este important. Programatorul memoreaz doar pointerii ctre locaia urmtoare, astfel nct datele pot fi accesate n aceast manier. De asemenea, datele pot fi accesate cu uurin. Totui, grupuri diferite de informaii nu pot fi joncionate pentru a forma o nou informaie. Formatul datelor pe disc nu poate fi modificat oricnd dup crearea bazei de date. n cadrul modelului relaional, datele sunt separate n mulimi care seamn cu structura unui tabel. Aceast structur de tabel const din elemente informaionale individuale numite coloane sau cmpuri. Un singur set al unui grup de cmpuri este cunoscut ca o nregistrare sau linie. O relaie, n cazul discret, poate fi privit i neleas ca o tabel. Modificarea datelor se realizeaz prin operaii relaionale aplicate asupra tabelelor. Spre exemplu, restricia unei relaii, a unui tabel, va fi un nou tabel n care se pstreaz doar anumite linii. Iar proiecia unei relaii - unui tabel - va fi un nou tabel n care se pstreaz doar anumite coloane. O baz de date relaional apare ca o colecie de relaii (tabele). Exist o mulime de operatori pentru transformarea i combinarea relaiilor: selecia, proiecia, produsul, join-ul, reuniunea, intersecia, diferena. II.2.2 Operatorii relaionali ai bazelor de date relaionale Operatorii relaionali ai bazelor de date relaionale sunt definii n tabelul urmtor: Operatorul Descrierea Relaional Este o operaie care preia i afieaz datele din relaie.Este posibil s se afieze toate Restricia rndurile sau doar rndurile care ndeplinesc o anume condiie (sau mai multe condiii). Aceasta este de multe ori numit "submulime orizontal" Este operaia care afieaz anumite coloane din relaie, fiind numit de aceea i Proiecia "submulime vertical". Este rezultatul obinut cnd rndurile a dou mulimi de date sunt concatenate Produsul conform condiiilor specificate. Este rezultatul obinut cnd rndurile a dou mulimi de date sunt concatenate "Join"-ul conform condiiilor specificate. Reuniunea Afieaz toate rndurile care apar n una, n cealalt, sau n ambele relaii. Intersecia Afieaz toate rndurile care apar n ambele relaii. Afieaz rndurile care apar numai n prima relaie fr s apar n cea de a doua (n Diferena SQL se utilizeaz chiar semnul - operatorul minus). Proprietile bazelor de date relaionale sunt: inexistena pointerilor; conexiunile fcute numai pe baza datelor; independena total a datelor. Proprietile relaiilor tabelare sunt: nu exist rnduri duplicate; nu exist nume de coloane identice (duplicate); ordinea rndurilor este neimportant; ordinea coloanelor este neimportant; valorile (cmpurile) sunt atomice (nedecompozabile).

13

II.2.3 Noiunile i conceptele bazelor de date relaionale, modelul entitate-relaie Data elementar reprezint cea mai mic unitate de date, identificat prin nume. Entitatea este un obiect distinct ce trebuie reprezentat n baza de date. Grupul de date (data agregata) este un ansamblu de cmpuri, identificate prin nume. Tipul sau structura grupului, reprezint ansamblul identificatorilor, al descrierilor grupurilor i al cmpurilor componente. Tipul cmpului este ansamblul format din identificator, meninerea valorilor i formatul de memorare. Atributul este o proprietate a unui tip de entitate sau relaie, ce descrie un anumit aspect al obiectului ce se nregistreaz n baza de date. nregistrarea logic reprezint o colecie de date elementare i/sau grupuri de date, identificata prin nume. Setul de date este alctuit dintr-o mulime de nregistrri. Tipul nregistrrii const din ansamblul tipurilor cmpurilor i al grupurilor mpreun cu ordinea i numrul de apariii. Fiierul reprezint ansamblul tuturor apariiilor fizice ale unui tip de nregistrare logic. Cheia simpl, respectiv compus, din 1 pn la n campuri, ale cror valori identific n mod unic fiecare nregistrare. Cheia candidat este un atribut sau set de atribute ce identific n mod unic apariiile individuale ale unui tip de entitate. Cheia primar este una din cheile atribut. Cheia alternativ este una din celelalte chei candidat. Cheia compus este o cheie candidat format din dou sau mai multe atribute. Indexul const n totalitatea valorilor cheilor i a adreselor de memorare a nregistrrilor respective. Zona reprezint o poriune a memoriei externe n care se pot memora nregistrri, identificat prin nume. Colecia de date reprezint un ansamblu de date organizat dup anumite criterii. Baza de date reprezint una sau mai multe colecii de date aflate n interdependen mpreun cu descrierea datelor i a relaiilor dintre ele. Baza de date fizic sau modelul fizic este ansamblul datelor din baza de date, sub forma memorrilor de fiiere, indexuri, etc. Este format din totalitatea exemplarelor nregistrrilor, seturilor de nregistrri i a zonelor, organizate dup o anumit schem. Schema sau modelul logic reprezint descrierea organizrii logice a nregistrrilor bazei de date. Subschema sau modelul extern este o substructur (perspectiv, view) a schemei bazei de date, relevant pentru o aplicaie. Relaiile logice reprezint asociaiile dintre mai multe entiti. Catalogul de sistem sau dicionarul de date sau meta-date reprezint descrierea datelor, adic date despre date, mulimea descrierilor obiectelor bazei de date, structurat i administrat ca baz de date. Sistemul de gestiune a bazelor de date (SGBD) este un sistem de programe care permite construirea unor baze de date, introducerea informaiilor n bazele de date i dezvoltarea de aplicaii privind bazele de date. Administratorul bazei de date este o persoan sau un grup de persoane responsabile cu analiza, proiectarea, implementarea i gestionarea bazei de date8. Conceptele de baz ale modelului entitate-relaie includ: a) Tipuri de entiti Entitile sunt obiecte sau concepte identificate ca avnd o existen independent. Ele reprezint un set de obiecte ce au aceleai proprieti. Entitatea, n funcie de dependena fa de alt entitate, poate fi: - slab, atunci cnd depinde de existena altei entiti (copil, dependent, subordonat);
8

www.trendix.ro

14

- tare, atunci cnd nu depinde de existena altei entiti (printe, dominant). b) Tipurile de relaii Relaiile sunt seturi de asocieri ntre dou sau mai multe tipuri de entiti.Relaia este o instan a unui tip de relaie care e unic identificabil. Gradul unei relaii reprezint numrul de entiti participante ntr-o relaie. Clasificarea relaiilor n funcie de grad este urmtoarea: 1) de gradul nti sau unar, caz n care relaia este recursiv 2) de gradul doi sau binar, relaie cel mai des ntlnit 3) de gradul trei sau ternar 4) de gradul patru sau cvadrupl. Relaia recursiv este o entitate care particip de dou sau mai multe ori ntr-o relaie; fiecare participare are un nume de rol. Raportul de cardinalitate al relaiilor descrie numrul de relaii posibile pentru fiecare entitate participant. Se disting urmtoarele tipuri de relaii: relaia unu-la-unu, cu un raport de cardinalitate 1:1, este relaia n care o entitate este asociat unei singure entiti; relaia unu-la-muli, cu un raport de cardinalitate 1:M, este relaia n care o entitate asociat la una sau mai multe entiti; relaia muli-la-muli, cu un raport de cardinalitate M:N, este relaia n care mai multor entiti le sunt asociate mai multe entiti, situaie care implic descompunerea n dou entiti unu-la-muli. c) Atribute Clasificarea atributelor n funcie de numrul de componente este urmtoarea: - simple atunci cnd au o singur component ce are o existen independent - compuse atunci cnd au mai multe componente, fiecare avnd existen independent. Domeniul atributului reprezint mulimea de valori pe care le poate lua un atribut. Clasificare domeniilor atributelor n funcie de numrul de valori este urmtoarea: - cu o singur valoare, atunci cnd au o singur valoare pe care o pot lua; - cu valori multiple; - derivate, ale cror valori depind de valoarea altui atribut. II.2.4 Modelarea grafic a bazelor de date relaionale O tehnic de modelare verificat pentru reprezentarea grafic a activitilor este modelul ERD (Entity Relationship Diagram - diagrama relaiei dintre entiti). Diagrama ERD documenteaz cerinele informaionale ale companiei ntr-un format clar i precis. Fiecare entitate e reprezentat sub forma unui dreptunghi. Entitatea slab se reprezint sub forma unui dreptunghi cu laturi duble.Cheia primar se subliniaz.Reprezentarea relaiei se face printrun romb. Conexiunea dintre o entitate slab i una tare se reprezint printr-un romb cu linii duble. Fiecare atribut se reprezint printr-un oval. Pentru simplificarea diagramei sunt afiate numai atributele cheie primar, iar uneori nici mcar acestea. Aceast abordare grafic a modelrii o face uor de neles, iar simplificarea modelului l face uor de utilizat.

II.3 Analiza detaliat a proiectrii bazei de date relaionale care va gestiona stocurile unei farmacii LA CAPITOLUL 2
Proiectarea unei baze de date relaional reprezint procesul parcurs n vederea pregtirii crerii fizice a unei baze de date. Etapele acestui proces necesit identificarea operaiunilor comerciale pe care le va gestiona baza de date, precum i crearea proiectului fizic al bazei de date. Proiectarea 15

corespunztoare a bazei de date este vital pentru buna funcionare a bazei de date i a oricrei aplicaii care utilizeaz baza de date. n lipsa unei proiectri corecte a bazei de date, aceasta poate prezenta urmtoarele deficiene: integritatea datelor este compromis deoarece restriciile de integritate nu pot fi proiectate sau implementate corect; datele devin redundante, iar aplicaiile individuale se aglomereaz n ncercarea de a se asigura sincronizarea datelor; performanele sunt afectate deoarece este posibil ca pentru finalizarea unei instruciuni select s fie necesare interogri suplimentare. Condiiile impuse la proiectarea unei baze de date relaionale sunt urmtoarele: reducerea redundanelor prin identificarea informaiilor comune i alctuirea corespunztoare a aplicaiilor; eliminarea inconsistenelor ce rezult din reducerea redundanelor; utilizarea simultan a datelor de mai muli utilizatori; standardizarea informaiilor; asigurarea securitii bazelor de date, n sensul acordrii i urmririi modului de acces al utilizatorilor la diferite pri componente ale bazelor de date; asigurarea integritii bazelor de date, n sensul pstrrii corectitudinii informaiilor coninute n baza de date prin testele aplicate datelor introduse n aceasta; asigurarea sincronizrii n cazul utilizrii bazei de date simultan de mai muli utilizatori sau a distribuirii informaiei pe mai multe sisteme. La proiectarea unei baze de date se procedeaz la urmtoarele9: - identificarea datelor (entiti i atribute); - identificarea relaiilor dintre date; - identificarea constrngerilor; - identificarea regulilor ce descriu principalele caracteristici ale datelor; - implicarea utilizatorilor n realizarea modelului de date. Astfel, proiectarea de baze de date relaionale implic transpunerea modelului logic ntr-un set de tabele i constrngeri, selectarea structurilor de stocare i a metodelor de acces specifice, asigurarea securitii datelor. Pentru a crea o baz de date relaional este necesar parcurgerea urmtoarelor etape: Etapa I - crearea unui model al activitii farmaciei Aceast prim etap presupune strngerea de informaii despre micarea medicamentelor care fac obiectul stocurilor unei farmacii i procesele aferente pe care le va susine baza de date. Scopul este stabilirea modului curent de derulare a activitii farmaciei, iar dac exist deficiene, stabilirea posibilitilor de mbuntire sau de extindere a activitii. Pentru a dodndi o bun cunoatere a activitii farmaciei i a proceselor aferente, se ntreprind urmtoarele: Intervievarea urmtoarelor persoane: (a) Manageri i supervizori ai activitilor farmaciei; (b) Poteniali utilizatori finali ai programului de gestiune de stocuri ale farmaciei; (c) Poteniali beneficiari finali ai programului de gestiune de stocuri. Acetia sunt persoanele care s-ar putea s nu utilizeze direct baza de date, ns urmeaz s primeasc informaii i s beneficieze de existena bazei de date. Stabilirea obiectivului declarat al activitii. Este util cunoaterea gestiunii stocurilor farmaciei astfel nct baza de date i aplicaia s fie concepute n vederea deservirii acesteia. Definirea obiectivul aplicaiei. Este obligatorie stabilirea preteniilor farmaciei referitoare la ceea ce urmeaz s fac baza de date i aplicaia. Analizarea specificaiilor de sistem curente. Identificarea viitoarelor specificaii de sistem pentru baza de date. Programul va avea ca scop nregistrarea ntregii activiti a unei farmacii, fr a se ocupa ns i de partea financiar, care este n general gestionat de aplicaii dedicate, punnd ns la dispoziia acestora toate datele necesare pentru contabilitate.
9

Eugen ignescu Dorin Mitru - Bazele cercetrii operaionale

16

Dup ce au fost stabilite datele de proiectare, informaiile culese vor determina modul de prezentarea al formularelor, manualelor, rapoartelor, nsemnrilor, precum i a altor informaii conexe activitii de proiectare. Etapa II - crearea unui model al datelor Dup ce au fost strnse informaiile precedente, trebuie s construim un model sau o reprezentare grafic a necesitilor i regulilor farmaciei. De exemplu, presupunem c s-au aflat urmtoarele informaii despre activitatea farmaciei n timpul interviurilor anterioare: farmacia are nevoie s tie ce furnizor ofer fiecare tip de medicament; trebuie cunoscute datele de identificare ale furnizorului; vor s aib posibilitatea gsirii informaiei despre un anumit furnizor sau medicament. Diagrama entitate-relaie a programului de gestiune a stocurilor este artat n Fig.2. Etapa III - crearea unui proiect de baze de date de gestiune a stocurilor La acest pas se pun bazele tabelelor din programul de gestiune a stocurilor. Baza de date, pentru a satisface cerinele farmaciei, va avea cinci tabele i anume: furnizori: cod_furnizor, denumire, adresa, nr_telefon; intrari: cod_furnizor, nr_intrare, data_intrarii,; medicamente: nr_intrare, data_intrarii, denumire, cantitate, pret_unitar, valoare, valoare_TVA, valoare_totala, valabilitate, pret_vanzare, cod_medicament; arhiva vanzari: cod_medicament, numar_v, denumire, cantitate, pret_unitar_v, valoare_v, valoare_TVA_v, valoare_totala_v, valoare_compensare, pret_facturat, factura, data_facturii; vanzari: factura, data_facturii. Tabelele au fost trecute n ordinea n care sunt i legate, aa cum se vede i din diagrama entitate-relaie artat n Fig.1, cmpurile scrise cu litere ngroate reprezentnd cheile primare, iar cele scrise cu litere cursive reprezentnd simple atribute. n tabelele intrari i vanzari cheile primare sunt formate din cte dou cmpuri, astfel nct s nu fie obinute nregistrri ne-individualizate, dar i pentru ca datele completate n formulare s fie completate automat i n sub-formulare, deci i n tabelele medicamente, respectiv arhiva vanzari, pentru c n felul acesta utilizatorul nu este obligat s introduc de la tastatur de fiecare dat aceleai informaii, cum ar fi data facturii sau numrul acesteia. Dup ce toate tabelele au fost create, s-a trecut la construirea interogrilor i a rapoartelor i abia dup aceea a formularelor, avndu-se n vedere scopul ca baza de date s poat fi utilizat n ntregime numai prin intermediul acestora. Etapa IV - crearea definiiei tabelelor relaionale i a bazei de date de gestiune de stocuri Pentru crearea tabelelor fizice, este folosit instruciunea create table. Mulimea acestor tabele, mpreun cu consideraiile privind securitatea reprezint fundamentul bazei de date relaionale. Pentru crearea i utilizarea unei baze de date relaionale se folosete un limbaj de programare. Comenzile pentru implementarea, selecia, modificarea sau tergerea datelor, ct i acelea pentru realizarea schimbrilor n baza de date, sunt incluse ntr-un singur limbaj, standardizat, de exemplu SQL. SQL este un limbaj standard pentru bazele de date, utilizat pentru a accesa o baz de date relaional i poate fi folosit, atunci cnd este necesar, de fiecare instrument de gestiune a bazelor de date (Access, Oracle, SQL-Server, MySQL, etc.).10

10

http://www.ea.upm.ro/cip/elearning

17

denum ire

cod _furnizor

furnizori
adresa nr telefon

cod _furnizor

nr _intrare cod _furnizor

intrari
data _intrarii

nr_intrare data _intrarii denumire , cantitate , pret _unitar , valoare , valoare _TVA , valoare _totala , valabilitate , pret _vanzare nr _intrare

m edicam ente
cod _m edicam ent data _intrarii

cod _m edicam ent num _v, denumire , cantitate , pret _unitar _v, ar valoare _v, valoare _TVA _v, valoare _totala _v, valoare _com pensare , pret _facturat factura

arhiva vanzari
cod _m edicam ent data _facturii

factura data _facturiii

factura

vanzari
data _facturiii

Fig.2. Diagrama entitate-relaie a programului de gestiune a stocurilor unei farmacii

Capitolul III : Realizarea programului de gestiune a stocurilor unei farmacii n Microsoft Access 2000
III.1 Prezentare Access11
Programul Microsoft Access 2000 face parte din pachetul de programe Microsoft Office 2000 i este destinat proiectrii i gestiunii bazelor de date, fiind bazat pe modelul logic relaional. Sistemul de gestiune al bazelor de date Access permite realizarea mai multor operaii specializate, cum ar fi: proiectarea structurii bazei de date; ncrcarea datelor, regsirea ulterioar, modificarea datelor, tergerea datelor; generarea de rapoarte n scopul tipririi la imprimant a datelor introduse n baza de date;
11

Claudia Crstea Proiectarea bazelor de date. Mediul de programare Microsoft Access, Ed. Omnia UNI S.A.S.T., Braov 2007

18

crearea de formulare, ca modalitate de manevrare a datelor prin intermediul unei interfee mai prietenoase pentru operator; relaionarea bazelor de date i lucrul cu combinaii de baze de date; programare pentru crearea de sisteme de gestiune de uz particularizat; controlul integritii i securitii datelor. Microsoft Office Access 2000 are urmtoarele tipuri de obiecte de baz de date: tabela este un obiect definit de utilizator n care sunt stocate datele primare; formularul este un obiect care permite introducerea datelor, afiarea acestora sau controlul ntregii aplicaii; cererea de interogare este un obiect care permite formatarea i tiprirea informaiilor obinute prin prelucrarea datelor din una sau mai multe tabele; pagina web de accesare a datelor reprezint un obiect care include un fiier HTML i alte fiiere suport n vederea furnizrii accesului la date prin intermediul browser-elor internet; comanda Macro reprezint un obiect care conine o definiie structural a uneia sau mai multor aciuni pe care Access le realizeaz ca rspuns la un anumit evenimet; modulul este un obiect care conine proceduri definite de utilizator, scrise n limbajul de programare Visual Basic. Tipurile de date specifice programului Microsoft Access sunt urmtoarele12: Text - n celulele unui cmp de acest tip se vor putea introduce texte, deci orice niruire de caractere, numrul maxim admis fiind de 255 de caractere. Lungimea implicit este de 50 de caractere. Memo - n celulele unui cmp de acest tip se vor putea introduce orice ir de caractere, ns cantitatea de text este limitat la 65535 de caractere. Acest tip de date este asemntor cu cel text. Number - datele introduse pot fi numai valori numerice, ele fiind utilizabile n calcule matematice. n cazul n care se dorete introducerea de valori reale care s nu fie rotunjite automat, trebuie ales de la rubrica Field size, tabul General, varianta Double. Autonumber - n cmpul de acest timp se produce o completare automat cu valori numerice incrementate cu 1. Incrementarea se produce de fiecare dat cnd o nou nregistrare este introdus n tabel. Yes/No - n acest cmp pot fi introduse date care au doar dou stri posibile: adevarat/fals, da/nu, pornit/oprit, etc. Ole Object - prin cmpurile de acest tip se permite accesul la obiecte de diverse naturi, ca de exemplu foi de calcul tabelar Excel, reprezentri grafice, fiiere imagine i documente Word Hyperlink - n cmp pot fi introduse iruri de caractere care reprezint adrese de pagini web Lookup Wizard - n acest cmp pot fi introduse valori care sunt alese dintr-o list aflat n alt tabel. Date/Time - n cmp nu pot fi introduse dect informaii care constau n dat calendaristic sau or.

III.2 Crearea bazei de date de gestiune a stocurilor unei farmacii


Pentru a crea o nou baz de date se va deschide aplicaia Microsoft Access i se selecteaz Balnk Access database din fereastra de start, de unde i dm un nume i alegem locul unde va fi stocat aa cum se vede i n Fig. 3.

12

Claudia Crstea Proiectarea bazelor de date. Mediul de programare Microsoft Access, Ed. Omnia UNI S.A.S.T., Braov 2007

19

Fig. 3. Fereastra File New Database- precizarea locului i numelui bazei de date O dat creat, baza de date este pregtit pentru crearea tabelelor, iar tabul care apare implicit primul este cel al tabelelor. Exist trei posibiliti pentru a crea un tabel: prin introducerea datelor, obinndu-se un tabel oarecum asemntor cu cele din Excel, prin intermediul unui Wizard, sau direct n Design view, unde putem decide pentru fiecare cmp n parte cum se va numi i pentru ce tip de date este definit (Fig. 4). Dup ce sunt completate toate rubricile planificate, unul din cmpuri trebuie s fie marcat drept cheie primar, care are rolul de individualiza nregistrrile. Cheia primar poate fi ns format i din mai multe cmpuri, pentru a fi stabilit trebuind selectate toate cmpurile dorite, dup care se efectueaz clic dreapta pe unul dintre ele i se selecteaz opiunea primary key, sau se apas pe butonul de pe bara de comand care are aceeai funcie (fig. 5). Pentru a aduga sau terge nregistrri este necesar deschiderea tabelului n Design view, fie prin clic dreapta i selectarea opiunii, fie normal, dup care se selecteaz Design view prin butonul de pe bara de comand. Pentru a aduga un cmp n tabel, trebuie selectat cmpul care trebuie s-l urmeze pe cel nou, apoi se selecteaz Insert Rows de pe bara de comand, sau din meniul ce apare dup un clic dreapta (fig. 6).

Fig. 4. Crearea unui tabel n modul Design view 20

Fig. 5. Stabilirea cheii primare pentru un anumit cmp

Fig. 6. Introducerea unui nou rnd deasupra cmpului valoare_total

tergerea unui anumit cmp al unui tabel se poate face asemntor cu introducerea unui nou rnd, sau se apas butonul delete de pe tastatur. Prin tergerea cmpului din tabel sunt terse i toate datele care au fost memorate n acest cmp n tabel pn n momentul tergerii. Cmpurile cheie primar nu pot fi terse atta timp ct exist relaii cu alte tabele prin intermediul lor. Tipul de date care este stocat ntr-un anumit cmp poate fi modificat prin selectarea cmpului respectiv i selectarea din list a unui alt tip. Pe de alt parte, dac deja au fot introduse date n tabel, anumite schimbri nu vor mai putea fi fcute i n majoritatea cazurilor schimbarea tipului de date nu este indicat. De exemplu, dac tipul numr va fi transformat n text, atunci numerele memorate n respectivul cmp vor fi tratate ca simple iruri de caractere, deci nu vor mai putea fi implicate n calcule matematice. Tot n modul Design view atributele anumitor cmpuri pot fi stabilite cu rigurozitate pentru a proteja integritatea datelor sau pentru a face baza de date compatibil cu scopul pentru care a fost creat. n fig. 7 este prezentat modul n care valoarea introdus n cmpul cantitate al tabelului medicamente este restricionat la valori pozitive, att pentru a se evita erorile de tastare care ar putea duce la valori negative, ct i pentru a evita vnzarea mai multor medicamente dect se afl n stoc la un moment dat. Ca regul de validare pentru acest cmp valorile trebuie s fie mai mari sau egale cu 0.

Fig. 7. Atributele cmpului cantitate Pentru gestionarea unei farmacii sunt ns necesare mai multe date dect cele strict legate de medicamentele aflate n stoc la un moment dat. Astfel, n mod asemntor cu tabelul medicamente, sunt create tabelele furnizori, intrri, vnzri (care nregistreaz numai data i numrul facturii, de intrare, sau ieire, precum i furnizorul, n cazul tabelului intrri) i tabelul arhiv vanzari, care nregistreaz toate tranzaciile dintre farmacie i cumprtori (fig 8-10). Odat ce toate tabelele necesare au fost create, trebuie stabilite relaiile dintre tabele. ntre tabele pot exista relaii de unul la mai muli, relaii de unu la unu i relaii de mai muli la mai muli, care reprezint de fapt dou relaii de unu la mai muli conjugate, combinate prin intermediul unul tabel secundar. Aceste relaii mpreun cu integritatea referenial care este asigurat de Access, fac din ntreinerea bazei de date un lucru mult mai simplu. Este suficient modificarea datelor ntr-un tabel pentru ca datele care se afl n legtur cu cele modificate s se schimbe i ele, iar tergerea unei 21

nregistrri dintr-un tabel va duce la tergerea datelor direct legate de aceasta din tabelele care se afl n legtur cu acesta.

Fig. 8. Tabelul furnizori (Design view)

Fig. 9. Tabelul intrri (Design view)

Fig. 10. Tabelul vnzri (Design view)

Fig. 11. Tabelul arhiva vanzari (Design view)

Fig. 12. Relaie unu la mai muli ntre tabelul furnizori i tabelul intrari

Fig. 13. Relaiile dintre tabelele bazei de date de gestiune a stocurilor ntre tabelele medicamente i arhiva vanzari integritatea referenial nu este selectat pentru ca datele stocate cu privire la vnzri s nu fie terse atunci cnd medicamentele la care fac referire sunt scoase din stoc. Relaiile ntre tabele se fac selectnd cmpul dintr-un tabel i executnd drag-and-drop pe cmpul pereche din cellalt tabel. Relaiile pot fi terse prin selectarea liniilor care leag tabelele i apsare pe delete i pot fi modificate prin selectarea relaiilor cu clic dreapta i intrarea n editare. Dup ce au fost stabilite relaiile dintre tabele, trecem la introducerea datelor n baza de date. Prima metod pe care o putem folosi este introducerea direct a datelor n tabele, ns aceast metod se poate dovedi ceva mai greoaie, mai ales c n acest caz anumite faciliti ale Access nu pot fi folosite. O soluie mult mai eficient o reprezint formularele. Formularele sunt soluii de introducere i extragere a datelor pe ecran, nregistrrile fiind prezentate sub form de cartele index, cte una o dat. 22

De asemenea, formularele pot s aib n componen sub-formulare, care s conin informaii suplimentare referitoare la nregistrarea din formular, pot cpta o interfa personalizat n funcie de dorinele utilizatorului prin adugarea de imagini i text i pot conine butoane, care s ntreprind anumite aciuni prestabilite, sau s ruleze un macro sau un modul de cod Visual Basic.13 Formularele pot fi create tot n dou moduri, prin proiectare direct (Design view), sau prin intermediul unui Wizard. Formularele prezint numeroase atribute, ceea ce face din ele cele mai flexibile obiecte Access i pot avea numeroase destinaii. Pentru a crea un formular cu ajutorul programului Wizard, se selecteaz tabul Forms n fereastra principal a bazei de date i se face dublu clic pe opiunea create form by using wizard. n fereastra care apare este ales din list tabelul pe baza cruia dorim s crem formularul i apoi trecem din fereastra stng n cea dreapt cmpurile care trebuie s fac parte din formular (fig. 14).

Fig. 14. Selectarea cmpurilor care trebuie s apar n formular n continuare alegem modul n care dorim s fie organizat formularul (dup coloane, dup linii, tip foaie de calcul, sau pe rubrici) i apoi alegem stilul de grafic pe care l preferm, dintre cele predefinite. n final, alegem numele formularului (implicit va fi numele tabelului pe care este bazat) i dac dorim s l deschidem pentru a vizualiza i introduce date, sau pentru a-i modifica atributele.

Fig. 15. Alegerea numelui i a modului n care va fi deschis automat formularul

Fig. 16. Formular creat cu ajutorul Wizard

Pentru a crea un formular care s aib un sub-formular n componen, la primul pas al crerii unui formular, n loc s alegem cmpuri numai dintr-un tabel, alegem cmpuri din dou. La urmtorul pas suntem ntrebai dac dorim s crem un formular cu sub-formular, sau dou formulare legate ntre
13

Claudia Crstea Sisteme informatice de gestiune, Ed. Omnia UNI S.A.S.T., Braov 2007

23

ele. n cazul n care alegem prima variant, trebuie s alegem care dintre cele dou tabele va fi baz pentru formular i care pentru sub-formular. Urmtorii pai sunt aceeai cu cei necesari crerii unui formular simplu, cu singura diferen c la ultimul pas este cerut i un nume pentru sub-formularul component. Numele implicit pentru acesta va fi dat de numele tabelului pe care se bazeaz urmat de cuvntul subform. Sub-formularele sunt vzute n tabul Forms ca orice formular normal. Avantajele sub-formularelor pot fi observate i din chiar exemplul formularului intrri , care are n componen sub-formularul medicamente (fig. 18).

Fig. 17. Pregtirea unui formular pe baza tabelului intrri, care s aib n componen un sub-formular bazat pe tabelul medicamente

Fig. 18. Formularul intrri i sub-formularul medicamente, sub aspect de tabel Folosind aceleai metode este creat i formularul vnzri, numai c legtura dintre acesta i medicamente este fcut indirect, prin intermediul tabelului arhiva vanzari. Datorit acestui lucru i al faptului c integritatea referenial nu este activat ntre tabelul medicamente i tabelul arhiva vanzari, n acesta din urm rmn nealterate toate nregistrrile care sunt introduse de-a lungul timpului n facturile de vnzare, ceea ce permite inerea evidenei vnzrilor pe o perioad teoretic nelimitat. Astfel, prin intermediul a numai trei formulare, utilizatorul nu mai trebuie s deschid direct tabele niciodat, lucrnd tot timpul cu o interfa mult mai prietenoas i uor de folosit.

III.3 Crearea de filtre, interogri i rapoarte


Cea mai simpl operaie de ntreinere a unei baze de date este aceea de a organiza datele dintrun anumit cmp ntr-o anumit ordine, cresctoare sau descresctoare, ordine alfabetic, etc.

24

Fig. 19. Sortarea n ordine alfabetic a denumirilor medicamentelor aflate n stoc. Dup cum se observ i din fig. 19, pentru a sorta ascendent sau descendent informaiile stocate n baza de date, unul din cmpurile dup care trebuie sortat baza de date trebuie s fie selectat i apoi n meniul records se selecteaz sort i tipul de sortare pe care o dorim. Pe lng metodele de sortare, tot n meniul records avem filtre, care pot ndeplini mai multe aciuni, cum ar fi obinerea unui tabel secundar care s conin numai nregistrrile care au cmpurile identice cu cmpul selectat (filter by selection). Putem obine un tabel secundar care s conin numai nregistrrile care au cmpurile diferite de cmpul selectat (filter excluding selection), informaiile pot fi filtrate ntr-un mod asemntor cu modul filter by selection, dar alegnd dintr-o list cmpul dup care se dorete fcut filtrarea sau poate fi creat o interogare de selecie (advanced filter/sort).

Fig. 20. Meniul filter cu metodele de filtrare predefinite Pentru o sortare n funcie de mai multe variabile sau condiii i dac sunt necesare operaii complexe de meninere a bazelor de date, cum ar fi tergerea automat a unor nregistrri nvechite, sau actualizarea tuturor n funcie de necesiti, precum i organizarea lor n moduri care s fac uoar vizualizarea lor, vom folosi interogrile. Interogrile sunt de mai multe tipuri, n funcie de destinaia lor i ca i formularele, sunt bazate pe tabele, dar i pe alte interogri. Interogarea de baz, este interogarea de selecie, care are rolul de a filtra datele din tabelele pe care le are la baz n funcie de criteriul ales, de a le combina, afind n final numai cmpurile care sunt dorite. Interogrile de selecie sunt utile atunci cnd datele trebuie organizate n funcie de unul sau mai muli parametri. Parametrii sunt variabile care, trecute n tabul de criterii in locul acestora, utilizatorul fiind ntrebat nainte de a rula interogarea care este valoarea parametrului, pentru a selecta din tabel numai nregistrrile dorite. Parametrii trebuie scrii ntre paranteze ptrate, avnd ca denumire un alt nume dect numele cmpului pentru care servesc drept criteriu de sortare (fig. 21). Alt tip de interogare este interogarea de tergere, care terge automat toate nregistrrile din tabelele asociate ei, n cazul n care anumite criterii sunt ndeplinite. Pentru a crea o interogare de tergere trebuie creat mai nti o interogare simpl, dup care n meniul Query se selecteaz opiunea delete query. n acest moment anumite cmpuri ale interogrii de selecie dispar i apare unul nou i anume delete unde este specificat modul de tergere, adic acolo unde este ndeplinit condiia, sau ncepnd de acolo de unde este ndeplinit condiia. La criterii este trecut condiia care trebuie 25

ndeplinit pentru ca tergerea s aib loc, pentru cmpul dorit. n momentul n care interogarea este rulat, utilizatorul este atenionat c dac va continua aciunea, datele vor fi terse definitiv din baza de date. De asemenea, n fereastra de atenionare este specificat i numrul de nregistrri care urmeaz s fie terse. O interogare care are un mecanism de funcionare asemntor cu cel al interogrii de tergere este interogarea de actualizare sau update query. Aceast interogare are rolul de a modifica datele din toate tabelele asociate, n cmpurile specificate, acestea fiind nlocuite cu datele care sunt introduse n cmpul update to, sau rezultatul unei expresii care este introdus n acelai cmp (fig. 24).

Fig. 21. Interogare de selecie care afieaz numai nregistrrile care au n cmpul denumire valoarea pe care o introduce utilizatorul de la tastatur

Fig. 22. Csua unde este cerut parametrul dup care va fi efectuat sortarea

Fig. 23. Tabelul query, disponibil la deschiderea unei interogri n Design view

Fig. 24. Interogare de tergere a nregistrrilor din tabelul medicamente, care au completat n cmpul cantitate valoarea 0, ceea ce nseamn c nu mai exist medicamente de tipul respectiv n stoc

26

Pentru a crea o interogare de actualizare se procedeaz ca n cazul interogrii de tergere, n meniul Query selectndu-se varianta update Query. Ca i n cazul interogrii de tergere utilizatorul este atenionat nainte s o ruleze c datele din tabel vor fi modificate definitiv i este specificat i numrul de nregistrri care vor fi afectate. Din valoarea care este stocat n acest cmp este sczut valoarea care se refer la medicamentul respectiv, din arhiva vanzari, adic din factura de ieire. Legtura cu aceasta este fcut prin intermediul parametrului [nr_factura], care face ca datele care vor fi modificate s fie cele care se regsesc i pe factura dorit, numrul acesteia fiind introdus de utilizator precum valoarea oricrui parametru. Pentru a scrie expresia, numele tabelelor i cmpurilor sunt trecute n paranteze drepte, ceea ce justific faptul c un parametru, care este scris dup aceeai sintax, trebuie s fie denumit altfel dect numele cmpului la care face referire, n special i altfel dect numele oricrui cmp din tabelul la care face referire, n general.

Fig. 25. Interogare de actualizare din tabelul medicamente, la nivelul cmpului cantitate Alte trei tipuri de interogri ce pot fi utilizate sunt interogarea de adugare (append query), interogarea crosstab i interogarea cu ajutorul creia poate fi construit un nou tabel pe baza unuia sau mai multor tabele deja existente. Interogarea de adugare are un rol asemntor cu cea de actualizare, numai c prin intermediul acesteia pot fi adugate nregistrri n continuarea tabelului pe care l specific utilizatorul, sau pot fi adugate date n cmpurile dorite. Interogarea tip crosstab combin dou sau mai multe tabele pentru a obine o foaie tip tabel, unde cmpurile de intersecie dintre liniile i coloanele specificate conin informaia dorit, sau doar sunt bifate.

Fig. 26. Csua care solicit introducerea numelui tabelului la care s fie adugate date n cazul unei interogrii de adugare (append query) Opiunea totals poate fi gsit sub meniul View n timp ce interogarea se afl n Design view, ajutorul creia avem acces la funcii uzuale, cum ar fi cele de nsumare a valorilor numerice din toate cmpurile unei nregistrri i afiarea rezultatului ntr-un cmp separat, gsirea automat a valorii minime i maxime dintr-o nregistrare, afiarea primului sau ultimului cmp care ndeplinete condiia trecut n tabul de criterii, sau numrarea elementelor specificate, care se regsesc ntr-o nregistrare. Opiunea totals poate crea cmpuri adiionale n interogare, care s conin valori ce sunt rezultatul 27

unor expresii. Expresiile pot fi utilizate i n cazul celorlalte tipuri de interogri (fig. 27), dar sunt utile n cazul interogrilor care au selectat opiunea totals.

Fig. 27. Exemplu de interogare care utilizeaz o expresie Expresia DateDiff("m",[data_intrarii],Now()) are rolul de a calcula diferena dintre data calendaristic actual i data care corespunde intrrii n stoc a medicamentului respectiv, rezultatul fiind afiat n luni. n combinaie cu condiia >[valabilitate]-1 interogarea filtreaz medicamentele i le afieaz numai pe cele care mai au o lun pn cnd expir. n cazul farmaciei, datele care sunt stocate n tabelele de intrri i vnzri trebuie imprimate pentru a elibera facturi, pentru care vom folosi rapoarte, care reprezint pagini tipizate. Rapoartele se bazeaz pe unul sau mai multe tabele, dar i pe una sau mai multe interogri, astfel nct datele imprimate s fie rezultatul unei filtrri (de exemplu, n cazul unei facturi, trebuie afiate numai datele referitoare la acestea, pe cnd, dac raportul ar fi construit pe baza tabelului, el ar conine toate datele de pe toate facturile). De asemenea, rapoartele prezint un numr de funcii predefinite. De exemplu, pe un raport utilizatorul poate alege ca valorile memorate s fie nsumate, sau ca valoarea maxim dintre acestea s fie afiat, ca i n cazul funciilor totals din cazul interogrilor. Pentru a crea un raport recurgem la Design view sau la programul Wizard, care va conduce, ca i n cazul formularelor i interogrilor, prin pai simpli la raportul dorit. Primul pas presupune alegerea tabelelor sau interogrilor pe care se bazeaz raportul i selectarea cmpurilor care trebuie s apar n raport (fig. 28). Urmtorul pas presupune alegerea modului n care va fi organizat raportul, funcie foarte important n cazul n care acesta se bazeaz pe mai multe tabele sau interogri. n cadrul acestei etape se stabilete ce nivel ierarhic ocup fiecare tabel n parte, fiind posibil setarea a maxim patru de nivele (fig. 29).

Fig. 28. Primul pas care trebuie urmat pentru a crea un raport

28

Fig. 29. Fereastra unde este stabilit ierarhia tabelelor n formular

Microsoft Access permite i o ierarhizare mai minuioas, care ine de organizarea cmpurilor n pagin i care poate duce de exemplu la crearea unui parametru, pe baza cruia va fi construit raportul (fig. 30). Cmpul nr_intrare din tabelul intrri are prioritate i cum acelai cmp este prezent i n tabelul medicamente, raportul la deschidere va cere introducerea numrului facturii de intrare pe care utilizatorul o dorete imprimat.

Fig. 30. Pasul trei al programului Wizard pentru crearea unui raport

n cadrul pasului urmtor utilizatorul decide dac pe raport va fi prezent de exemplu suma tuturor preurilor medicamentelor sau informaii de alt natur care pot fi adugate n mod automat (fig. 31 i 32). De asemenea, n cadrul aceluiai pas, poate fi stabilit un filtru de sortare al datelor, numrul maxim de sortri concomitente fiind de patru. Fereastra summary options, permite utilizatorului s decid dac raportul su va conine i valori calculate automat de baza de date. n cazul exemplificat, raportul va afia suma valorilor memorate n cmpurile valoare i pret_facturat. n continuare alegem stilul n care va fi organizat raportul din punct de vedere grafic, dac acesta va fi creat pe o pagin tip vedere sau tip portret i apoi numele i modul n care va fi deschis raportul, adic pentru a previzualiza pagina nainte de imprimare, sau pentru a-i modifica setrile i elementele componente.

29

Fig. 31. Metode de sortare

Fig. 32. Fereastra summary options

Fig. 33. Modul de elementelor n pagina de tip vedere sau de tip portret

organizare al

Fig. 34. Numele raportului i modul de afiare

Fig. 35. Csua care solicit parametrul

30

III.4 Crearea unei interogri crosstab


O interogare crosstab este folosit n cazul n care vrem s reprezentm o interogare de tip agregat, cu dou coloane de grupare, la rezultat avnd una dintre coloane reprezentat n stnga, iar cea de-a doua coloan n partea de sus. Vrem s obinem cantitile zilnice ale unor medicamete care se comercializeaz n farmacie. Trebuie s apelm la o interogare agregat, care s calculeze cantitile de medicamente necesare dup dou cmpuri: dup cantitatea vndut pentru fiecare tip de mediacament i dup zile. Crem tabela stocuri, cu cheia primar codul medicamentului, n care sunt contorizate n mod automat la intrarea i ieirea din gestiune micrile de stoc, pe zile, cantitile intrate i ieite din fiecare medicament, prezentat n Fig. 36, care arat n modul Design view ca n Fig. 38.

Fig.36. nregistrrile din tabela stocuri Cu ajutorul interogrii crosstab vom obine un rezultat mai elegant i mai clar asupra micrii stocurilor de medicamente, datele putnd fi vizualizate ca n Fig. 37.:

Fig. 37. Tabela stocuri dup o interogare crosstab

31

Fig. 38. Tabela stocuri vzut n modul Design view Observm cum una din coloanele de grupare cantitate medicament conine tipurile de medicamente, n timp ce cealalt coloan zile din tabelul iniial este folosit pentru definirea coloanelor din noua interogare. La convergena dintre cele dou coloane de grupare va apare cantitatea rmas n stoc obinut prin scderea cantitii vndute din cantitatea aflat n stoc, pentru fiecare medicament n parte. Acest tip de interogri pot fi create n modul design view, dar prin intermediul Wizard le putem crea mult mai uor. Pentru a folosi crosstab query wizard trebuie s intrm n fereastra Database, n obiectul Queries. Apsm click pe butonul New din fereastra Database, dup care selectm opiunea Crosstab Query Wizard din csua de dialog care va apre, aa cum se vede i n Fig..39.

Fig.39. Crearea unei interogri crosstab folosind modul Wizard 32

Prima fereastr care va apre, din acest tip de wizard, este Fig. 40.:

Fig.40. Fereastra Crosstab query n acest moment, sistemul ne cere s alegem sursa interogrii, adic tabelul sau interogarea de unde vom extrage datele. n seciunea View putem selecta obiectele pe care vrem s le vizualizm, fie ele tabele, fie interogri, sau ambele tipuri de obiecte. Dac interogarea pe care dorim s o definim trebuie s extrag date din toate nregistrrile unui tabel , vom folosi acest tabel ca surs, iar n cazul n care va trebui s definim o interogare normal, pentru a combina anumite date din tabele, vom folosi aceast nou interogare ca surs pentru interoparea crosstab. Pasul urmtor ar fi s selectm sursa dorit i s apsm pe butonul Next>, pentru a merge la urmtoarea ferestr.

Fig. 41. Alegerea cmpurilor linie 33

n ferestra de mai sus, Fig. 41., wizard-ul ne va cere s alegem cmpurile linie (adic denumirile care permite identificarea valorilor pe linie). Una dintre coloanele unui tabel poate fi folosit ca nume de linie, iar alta ca i cap de tabel. Dac una dintre aceste dou coloane conine mult mai multe date diferite dect cea de-a doua, vom selecta prima coloan ca nume de linie, iar a doua ca nume de coloan(cap de tabel). Pentru a alege un nume de linie, trebuie s acionm cu un click asupra butonului . Astfel, cmpul selectat se va transfera n seciunea Selected fields. n acela timp apare, n partea de jos a ferestrei, un mic model, care ne va arta o parte din schema rezultatului interogrii. Dac am selectat cmpul greit, cu ajutorul butonului putem repara aceast greeal. Putem selecta pn la trei cmpuri. Dac selectm mai mult de un cmp, pentru a fi nume de linie, valorile pe care le vom avea n liniile rezultat, vor aprea n funcie de combinaiile dintre acele cmpuri. Butonul cu dou sgei ne permite transferul tuturor cmpurilor, dintr-un singur click, dintr-o seciune n alta. n cazul n care dorim s continum, dup ce am introdus toate datele, apsm pe butonul Next>. Urmtoarea ferestr care va aprea este artat n Fig.42.

Fig. 42. Selecatarea cmpurilor n Crosstab query n aceast nou fereastr, wizardul ne va cere s introducem capul de tabel. n acest moment putem alege doar un singur cmp i pentru fiecare valoare diferit din surs se va genera cte un cap de tabel. n partea de jos a ferestrei se poate vedea rezultatul. n cazul figurii de mai sus se observ c n urma alegerii unui cmp din tabel, s-a generat automat capul de tabel. n cazul n care selectm, pentru cap de tabel, un cmp de tip dat-timp, acest wizard ne permite s redefinim capurile de tabel n felul urmtor, dup se observ i din Fig.43.

34

Fig.43. Definirea capului de tabel n cazul cmpului de tip dat n cazul n care tipul de dat pe care l are cmpul ales la capul de tabel este de tip dat, vrem de cele mai multe ori s obinem nite rezultate grupate pe zile. Aceast facilitate ne este oferit de vrjitorul crosstab. Se observ apariia unor cinci coloane care descriu datele necesare interogrii, aa cum sunt ilustrate i n Fig.44. Dup definirile capurilor de linie i coloan trecem la pasul urmtor cu ajutorul butonului Next>:

Fig. 44. Definirea afirii cantitii rmase n stoc prin Crosstab query wizard Aceast nou fereastr care apare ne cere s stabilim ce rezultat se va afia la intersecia dintre linie i coloan. n lista Functions vom selecta funcia de agregare pe care o vom folosi pentru a calcula valoare pe care o vom afia, iar n lista Field vom selecta cmpul asupra cruia vom aciona. De exemplu, vrem s afim cantittea rmas n stoc dintr-un anumit medicament, ca n Fig. 44. Dup aceasta, printr-un click pe butonul Next>,vom ajunge la ultima fereastr a acestui wizard, , fereastr n care vom introduce numele interogrii, rmas n cazul nostru implicit Query 3, dup cum se vede i din Fig. 45. 35

Fig.45. Denumirea interogrii crosstab . nainte de a da un click pe butonul Finish putem alege, caz n care vom vizualiza rezultatele interogrii, ca n Fig. 46., sau putem alege Modify the design, caz n care va apre fereastra Query design, Fig. 47, care ne va oferi posibilitatea de a modifica definiia interogrii.

Fig. 46. Vizualizarea rezultatelor interogrii crosstab n cazul View the query

Fig. 47. Vizualizarea rezultatelor interogrii crosstab n cazul Query design Modul design view al acestui tip de interogare este similar modului design view aferent interogrilor crosstab. Astfel, pentru a defini o interogare de acest tip, avem nevoie de o nou linie introdus n grid: linia Crosstab. Aceast nou linie servete la definirea conceptelor pe care le-am ntlnit n cazul wizard-ului. 36

Pentru a interpreta mai uor rezultatele vom apela la modul de afiare grafic PivotChart View din meniul View al Microsoft Access 2000., aa cum se vede i din Fig.48.

Fig. 48. Vizualizarea rezultatelor unei interogri crosstab n modul PivotChart View n funcie de opiunile de afiare, putem avea o imagine de ansamblu asupra ponderii micrii medicamentelor din stoc, dup cum se observ i din Fig. 49 i Fig. 50.

Fig. 49. Vizualizarea rezultatelor unei interogri crosstab n modul PivotChart View, folosind diferite moduri grafice de afiare

37

Fig. 50. Vizualizarea rezultatelor unei interogri crosstab n modul PivotChart View, folosind diferite moduri grafice de afiare

III.5 Utilizarea programului de gestiune a stocurilor unei farmacii realizat n Microsoft Access 2000
Un program de gestiune a stocurilor are ca scop nregistrarea ntregii activiti a intreprinderii, inclusiv din punct de vedere al contabilitii primare de gestiune.14 Programul realizat i prezentat n proiectul de fa nu se ocupa ns i de partea financiar, care este n general gestionat de aplicaii dedicate, dar are posibilitatea de a pune la dispoziia acestora toate datele necesare pentru o bun contabilitate. S-a avut n vedere nu numai nregistrarea traficului de medicamente din farmacie, ci i fluidizarea acestuia i nregistrarea tuturor pailor, dup facturile de intrare i de ieire. Interogrilor utilizate de baza de date, tipul lor i funcia pe care o au sunt urmtoarele: cautare_medicament (select query): afieaz toate datele referitoare la medicamentul a crui denumire este introdus de la tastatur, avnd parametru n cmpul denumire. Se bazeaz pe tabelul medicamente; factura intrare (select query): afieaz toate datele referitoare la medicamentele aflate pe o anumit factur de intrare, al crei numr este introdus de la tastatur, cerut de un parametru din cmpul nr_intrare. Se bazeaz pe tabelele medicamente i intrari; eliminare intrari goale (delete query): terge din tabelul medicamente nregistrrile care au n cmpul cantitate valoarea zero. Se bazeaz pe tabelul medicamente;
14

http://www.asecib.ase.ro/Mitrut%20Dorin/Curs/bazeCO

38

cautare vanzari (select query): afieaz toate datele referitoare la medicamentele aflate pe o anumit factur de ieire, al crei numr este introdus de la tastatur, cerut de un parametru din cmpul factura. Se bazeaz pe tabelele arhiva vanzari i vanzari; intrari goale (select query): afieaz toate nregistrrile din tabelul medicamente, care au n cmpul cantitate valoarea zero. Se bazeaz pe tabelul medicamente; pericol expirare (select query): afieaz toate nregistrrile din tabelul medicamente care au proprietatea c se refer la medicamente care mai au o lun pn cnd expir. Se bazeaz pe tabelul medicamente; pret (select query): afieaz preul de vnzare, codul i cantitatea disponibil dintr-un medicament a crui denumire este introdus de la tastatur, cerut de un parametru n cmpul denumire. Se bazeaz pe tabelul medicamente; stergere (delete query): terge nregistrrile din tabelul medicamente care au proprietatea c se refer la medicamente care deja au expirat. Se bazeaz pe tabelul medicamente; test_valabilitate (select query): afieaz nregistrrile din tabelul medicamente care au proprietatea c fac referire la medicamente care deja au expirat. Se bazeaz pe tabelul medicamente. update (update query): scoate din stoc cantitatea de medicamente vndute scznd din cmpul cantitate aflat n tabelul medicamente valoarea care se afl n cmpul cantitate din tabelul arhiva vanzari. Se bazeaz pe tabelele arhiva vanzari i medicamente.

Rapoartele care se regsesc n program au att rolul de a pregti datele pentru imprimare ntrun format adecvat, ct i rolul de a servi drept mijloace de informare pentru a calcula valorile facturilor de intrare i de ieire. Rapoartele utilizate sunt: factura intrare: strnge datele de pe factura de intrare cu numrul specificat de la tastatur nainte de deschidere i calculeaz valoarea sa total. Se bazeaz pe interogarea factura intrare; cautare_vanzari: strnge datele de pe factura de ieire cu numrul specificat de la tastatur nainte de deschidere i calculeaz valoarea sa total. Se bazeaz pe interogarea cautare vanzari; medicamente: afieaz toate medicamentele care se afl la momentul apelrii n stoc. Se bazeaz pe tabelul medicamente.

Fig. 51. Interogarea test_valabilitate n Design view.

39

Fig. 52. Tabul Reports i rapoartele utilizate de baza de date de gestiune de stocuri

Fig. 53. Capul raportului medicamente, cu rubricile organizate n funcie de data de intrare n primul rnd i de numrul facturii de intrare n al doilea rnd n momentul n care toate interogrile i rapoartele au fost create, s-a trecut la creearea formularelor. n primul rnd au fost create formularele principale: furnizori, intrari (mpreun cu subformularul medicamente), medicamente i vanzari (mpreuna cu sub-formularul arhiva vanzari. Formularul furnizori Formularul furnizori are rolul de a facilita nregistrarea furnizorilor cu care are contracte farmacia i operaiile de ntreinere care trebuie fcute la acest nivel. Formularul intrari Formularul intrari reprezint modalitatea de a introduce medicamente n stoc, prin cumprare. Prin intermediul sub-formularului medicamente, medicamentelele sunt adugate automat n stoc, iar rubricile nr_intrare i data_intrarii nu mai necesit completare. Formularul medicamente Formularul medicamente este locul unde pot fi efectuate toate operaiile de ntreinere a bazei de date n ceea ce privete stocul de medicamente. O parte din facilitile acestui formular presupun operaii de tergere, ceea ce nseamn c lucrul cu el necesit un spor de atenie. Este posibil ca intrrile care fac referire la medicamente care nu mai exist n stoc s fie necesare mai trziu, deci intrrile goale nu ar trebui terse imediat ce un medicament a fost epuizat din 40

stoc. Pe de alt parte, dup o anumit perioad de timp (o dat pe zi, o dat pe sptmn, sau chiar mai rar n funie de spaiul de memorare de pe hard disk) acestea trebuie terse pentru a nu ngreuna funcionarea bazei de date n mod inutil. Formularul vanzari Formularul vanzari reprezint modalitatea de a scoate medicamentele din stoc, prin vnzare. Prin intermediul sub-formularului medicamente, medicamentele vndute sunt adugate automat n tabelul arhiva vanzari, iar rubricile nr_intrare i data_intrarii nu mai necesit completare. Medicamentele nu sunt scoase direct din stoc, ci prin intermediul tabelului arhiva vanzari. La scoaterea medicamentelor din stoc utilizatorul trebuie s fie foarte atent ca datele din factur s fie corecte. n cazul n care se ncearc scoaterea din stoc a mai multor medicamente dect exist, atunci procedura de scoatere va fi ntrerupt. De asemenea, scoaterea medicamentelor din stoc trebuie efectuat o singur dat pentru fiecare factur n parte. Prin intermediul sub-formularului medicamente, medicamentele sunt introduse automat n stoc, timp n care sunt introduse i n formularul intrari, ceea ce duce la ndeplinirea a dou funcii n acelai timp: completarea stocului i organizarea medicamentelor n funcie de numrul de intrare i dat la care acestea sunt cumprate de la furnizori. De asemenea, numrul de intrare i data sunt completate automat, utilizatorul nefiind obligat s le introduc de fiecare dat cnd adaug un nou medicament pe factur. Interogarea crosstab are rolul de a putea urmri mai uor micrile de stocuri pentru fiecare medicament n parte i se va folosi n momentul n care se dorete emiterea unei comenzi ctre un furnizor de medicamente. Se lanseaz din Queries, prin deschiderea interogrii Query 3 .

41

Concluzii
Din cele prezentate mai sus rezult c proiectul a realizat o prezentare teoretic i ilustreaz o modalitatea practic de creare pe fundamente tiiifice contabile a unei baze de date simpl, care s beneficieze de filtre i funciile contabile n desfurarea unei activiti curente de gestiune real a stocurilor unei farmacii. Prin intermediul unui Macro pot fi executate aciuni complexe, cum ar fi deschiderea unui formular, deschiderea unei interogri, salvarea datelor din interogare, nchiderea acesteia i nchiderea formularului, toate prin apsarea unui singur buton sau prin selectarea unui anumit cmp. De asemenea, din cele prezentate mai sus rezult c programul de gestiune a stocurilor unei farmacii respect cerinele de proiectare prezentate n capitolul dedicat proiectrii bazei de date. Utilizarea programului de gestiune a stocurilor unei farmacii are n concluzie urmtoarele avantaje fa de gestiunea neinut pe un supor informatic, avantaje care sunt de fapt funcii ale sistemului informatic, materializate prin urmtoarele faciliti: Faciliti ale formularului furnizori: - adugarea unei noi nregistrri sau unui nou furnizor; - cutarea unui furnizor pe baz de parametri multipli; - tergerea nregistrrii care este selectat. Faciliti ale formularului intrari: - calcularea automat a valorilor din cmpurile valoare, valoare_TVA i valoare_total; - pregtirea facturii de intrare pentru tiprire, atunci cnd este deschis raportul factura intrare1; - tiprirea raportului pregtit; - adugarea unei noi nregistrri: - un link ctre tabelul medicamente pentru a avea acces direct la facilitile de acolo; - posibilitatea de a salva factura de intrare n format extern, astfel nct s existe copii de siguran. Faciliti ale formularului medicamente: - afiarea tuturor medicamentelor care se gsesc n stoc, prin utilizarea raportului medicamente; - afiarea tuturor medicamentelor din stoc care au denumirea introdus de utilizator de la tastatur, caz n care se folosete interogarea cautare medicament; - cutarea unui anumit medicament n funcie de mai muli parametri - gsirea medicamentelor care au expirat, prin folosirea interogrii test_valabilitate - gsirea medicamentelor care mai au o lun pn cnd expir, utiliznd interogarea pericol_expirare - eliminarea din baza de date a intrrilor care fac referire la medicamente care nu mai exist n stoc, rulnd interogarea eliminare intrari goale - eliminarea din baza de date a intrrilor care fac referire la medicamente care nu mai sunt valabile, folosind interogarea stergere - afiarea nregistrrilor din baza de date care fac referire la medicamente care nu mai exist n stoc, utiliznd interogarea intrari goale - posibilitatea de a schimba preul de vnzare al unui medicament n funcie de fluctuaiile pieei. Faciliti ale formularului vanzari: - calcularea automat a valorilor din cmpurile valoare_v, valoare_TVA_v, valoare_totala_v, pret_facturat; - afiarea datelor necesare n vederea vnzrii despre medicamentele solicitate, atunci cnd se folosete interogarea pret; - pregtirea facturii de ieire pentru tiprire, prin deschiderea raportului cautare_vanzari; - afiarea tuturor intrrilor care au n cmpul denumire valoarea introdus de la tastatur, atunci cnd este folosit interogarea cautare_medicament; - existena unui link ctre formularul medicamente, pentru a avea acces direct la anumite funcii de ntreinere (de exemplu verificarea strii de valabilitate a unui medicament); -adugarea unei noi nregistrri. Prin utilizarea interogrii crosstab i interpretarea rezultatelor furnizate de ea, fie sub exprimare valoric ct fie sub exprimare grafic, se poate estima necesarul de stoc pentru fiecare medicament n parte, astfel nct farmacia s-i poat deservi clienii fr riscul unei supradimensionri a stocurilor ,care ar nsemna un efort financiar mai mare dar i creterea riscului de a depi termenele de valabilitate a medicamentelor nevndute.

42

BIBLIOGRAFIE

1. Claudia Crstea Sisteme informatice de gestiune, Ed. Omnia UNI S.A.S.T., Braov 2007 2. Claudia Crstea Proiectarea bazelor de date. Mediul de programare Microsoft Access, Ed. Omnia UNI S.A.S.T., Braov 2007 3. Pleea Doru - Bazele contabilitii, vol. II, Ed. Omnia Uni SAST, Braov, 2005 4. Petre Brezeanu - Gestiunea financiar a intreprinderii, Ed. Cavallioti, 2002 5. Gheorghe Basanu - Managementul aprovizionrii i desfaceri, Ed. Economica, 1996 Mihai Pricop 6. Radu Emilian - Managementul operaiunilor n intreprinderile de servicii Gabriela Tigu 7. Eugen ignescu - Bazele cercetrii operaionale Dorin Mitru 8. www.trendix.ro 9. http://www.market-mentor.ro 10. http://www.biblioteca.ase.ro/eresurse/reviste/contabilitate 11. http://www.asecib.ase.ro/MitruDorin/Curs/bazeCO 12. http://www.ea.upm.ro/cip/elearningi

43

Exist posibilitatea ca site-urile indicate n bibliografie s se regseasc ntr-o form diferit de cea existent la data cnd s-a realizat prezentul proiect