78
MINISTERUL EDUCAŢIEI, CERCETĂRII, TINERETULUI ŞI SPORTULUI INSPECTORATUL ŞCOLAR JUDEŢEAN CLUJ COLEGIUL TEHNIC TURDA Profil: Mecatronica si Informatica Specialitatea: Analist Programator Proiect de Diplomă Realizarea unui centralizator de materiale

centralizator materiale

Embed Size (px)

Citation preview

Page 1: centralizator materiale

MINISTERUL EDUCAŢIEI, CERCETĂRII, TINERETULUI ŞI SPORTULUIINSPECTORATUL ŞCOLAR JUDEŢEAN CLUJCOLEGIUL TEHNIC TURDAProfil: Mecatronica si InformaticaSpecialitatea: Analist Programator

Proiect de DiplomăRealizarea unui centralizator de materiale

Îndrumator: Elev:Profesor: Iclezan Dan Claudiu

2011

Page 2: centralizator materiale

I. INTRODUCERE

În ultimii cincizeci de ani, producţia şi utilizarea tehnicii de calcul – harware şi

software – a cunoscut o dezvoltare dramatică. Ea reprezintă o parte semnificativă din

produsul naţional brut al ţărilor industrializate; În SUA, de exemplu, peste 50% din

capitalul investit este cheltuit pe tehnologie de calcul. Costul “informaţiei" a ajuns la 1

trilion de dolari SUA (aproximativ produsul naţional brut al Marii Britanii) în anul 2000

şi este estimat la peste 1,5 trilioane în 2005 (prognoză realizată de Michael Spindler – fost

preşedinte la Apple Computer).

Produsele program au depăşit de mult teritoriul centrelor de calcul. Ele sunt

încorporate şi controlează echipamente industriale (linii tehnologice automate, maşini cu

comandă numerică, roboţi), mijloace de transport şi de comunicaţii, tranzacţii financiare

şi bancare, reţele energetice, sisteme de apă rare naţională, etc. Odată cu perfecţionarea

tehnicilor “virtual realty” şi multimedia, calculatorul este tot mai folosit ca mijloc didactic

sau de divertisment şi în activităţi de concepţie.

Tehnologia informaţiilor face permanente modificări mijloacelor de muncă în

întreaga lume. Informaţii care erau altădată stocate în depozite pline de dulapuri pot fi

accesate acum la o singură apăsare a butonului mouse-ului. Pentru a stoca informaţii în

orice mediu imaginabil în zilele noastre sunt folosite sisteme de baze de date. De la

bazele mari de date, cum ar fi sistemele de rezervare a biletelor ale companiilor aeriene şi

până la colecţia de fişe dintr-un cabinet medical, sistemele de baze de date sunt folosite

pentru memorarea şi distribuirea datelor de care încep să depindă vieţile noastre. Până în

urmă cu câţiva ani, sistemele mari de baze de date puteau fi executate numai pe

calculatoare de tip mainframe. În mod obişnuit, era foarte costisitor să fie proiectate,

achiziţionate şi întreţinute aceste maşini. O dată cu apariţia calculatoarelor din clasa

staţiilor de lucru, care sunt puternice şi ieftine, programatorii au posibilitatea de a proiecta

rapid şi ieftin produse software pentru întreţinerea şi distribuirea datelor.

Cel mai folosit model de stocare a datelor este baza de date relaţională. Acest nou

model s-a dezvoltat pornind de la un articol, “A Relational Model of Data for Large

Shared Data Banks” (Un model relaţional al datelor pentru bănci mari de date folosite în

1

Page 3: centralizator materiale

comun), scris de Dr. E. F. Codd în anul 1970. Ideea lui Codd pentru un sistem de

administrare a bazelor de date relaţionale foloseşte conceptele matematice de algebră

relaţională pentru a grupa datele în mulţimi şi a stabili relaţii între submulţimile

(domeniile) comune.

În plus faţă de dezvoltarea unui model de bază de date relaţională, alte două

tehnologii au condus la dezvoltarea rapidă a ceea ce acum este numit un sistem de baze

de date client/server.

Prima tehnologie importantă a fost calculatorul personal, care a făcut posibil ca

aplicaţii ieftine, uşor de folosit, să permită utilizatorilor crearea documentelor şi

administrarea datelor rapid şi corect. Utilizatorii s-au obişnuit să modernizeze continuu

sistemele, deoarece rata schimbului a fost echilibrată rapid de scăderea preţului celor mai

avansate sisteme.

A doua tehnologie importantă a fost dezvoltarea reţelelor locale de calculatoare

(LAN). Deşi utilizatorii erau obişnuiţi cu terminalele conectate la calculatorul mainframe

comun, acum fişierele procesate puteau fi stocate local şi accesate de la orice calculator

ataşat în reţea. Totodată, cantităţi mari de date puteau fi transferate la serverele de date

departamentale.

În acest context, sistemul, denumit client/server deoarece procesarea este separată

între calculatoarele client şi un server de baze de date, constituie o modificare radicală de

la programarea aplicaţiilor bazată pe calculatoarele mainframe. Această arhitectură este

total recursivă, pe rând serverele putând deveni clienţi şi cere servicii de la alte servere

din reţea.

Datorită puterii crescute a hardware-ului calculatoarelor personale, informaţiile

critice (importante) ale bazei de date pot fi memorate pe un server independent, care

poate fi înlocuit mai târziu cu foarte puţine (sau chiar fără) modificări.

Ultima dintre arhitecturile dezvoltate este cea a aplicatiilor distribuite pe web.

Clientul devine o aplicatie cat mai simpla posibil, accesata de obicei printru banal

browser de internet. Serverul de date si cel de aplicatii web preiau cea mai mare parte a

sarcinilor, fiind plasate in general pe calculatoare puternice. Se revine astfel la structura

(oarecum) centralizata, dar pe o spirala evidenta a tehnologiei.

2

Page 4: centralizator materiale

Complexitatea actuală a aplica ţiilor de management al bazelor de date face

necesară o combinaţie a procesării tranzacţiilor on-line, a încărcării şi a creşterii

sprijinului decizional. În scopul satisfacerii acestor necesităţi, este nevoie de baze de date

scalabile şi performante care pot fi ajustate dinamic pentru a realiza un compromis între

bazele de date (mai mari) şi utilizatorii simultani (mai mulţi). De asemenea, sunt necesare

tehnologii pentru baze de date proiectate pentru a maximiza capacităţile configuraţiei

hardware/software disponibile (incluzând arhitecturi simplu şi multi-procesor), precum şi

pentru valorificarea unor arhitecturi hardware (cum ar fi clustere cuplate larg şi maşini

paralele puternice). Serverele de date de astăzi se apropie de aceste cerinţe - o arhitectură

paralelă (de nouă generaţie) a bazelor de date care furnizează scalabilitate,

manevrabilitate şi performanţă; o regie minimală a sistemului de operare; şi o distribuire

automată a încărcărilor de lucru. Arhitectura multifilară este proiectată pentru a utiliza cât

mai bine resursele hardware şi poate fi reconfigurată dinamic on-line pentru a urmări

cererile în schimbare.

Performanţa este aspectul critic al succesului, şi având în vedere creşterea

dramatică a numărului de utilizatori, date fiind aplicaţiile de comerţ electronic şi noile

modele de calcul, presiunea exercitată asupra bazelor de date este mai mare ca oricând.

1.1. Ce este o bază de date? Dar un sistem de gestiune a bazelor de date?

Baza de date reprezintă una sau mai multe colecţii de date aflate în interdependenţă

împreună cu descrierea datelor şi a relaţiilor dintre ele.

Colecţia de date reprezintă un ansamblu de date organizat după anumite criterii.

Descrierea datelor se întâlneş te sub denumirile de catalog de sistem, dicţionar de date sau

meta-date ceea ce reprezintă date despre date.

Relaţiile logice reprezintă asociaţiile dintre mai multe entităţi.

O entitate este un obiect distinct ce trebuie reprezentat în baza de date.

Un atribut este o proprietate ce descrie un anumit aspect al obiectului ce se înregistrează

în baza de date.

În sistemele de baze de date definirea datelor se separă de programele aplicaţie,

utilizatorii văd doar definiţia externă a unui obiect fără a cunoaşte modul în care e definit

3

Page 5: centralizator materiale

acesta şi cum funcţ ionează. În acest mod, definiţia internă a obiectului poate fi

modificată fără a afecta utilizatorii acestuia dacă nu se modifică definiţia externă. De

exemplu, dacă sunt adăugate noi structuri de date sau sunt modificate cele existente,

atunci programele aplicaţie nu sunt afectate dacă nu depind direct de ceea ce se modifică.

În bazele de date are loc o integrare a datelor, în sensul că mai multe fiş iere sunt

privite în ansamblu, eliminându-se pe cât posibil informaţiile redondante. De asemenea,

se permite accesul simultan la aceleaş i date, situate în acelaşi loc sau distribuite spaţial, a

mai multor persoane de pregătiri diferite, fiecare cu stilul personal de lucru.

Sistemul de programe care permite construirea unor baze de date, introducerea

informaţiilor în bazele de date şi dezvoltarea de aplicaţii privind bazele de date se

numeşte sistem de gestiune a bazelor de date (SGBD).

Un SGBD dă posibilitatea utilizatorului să aibă acces la date folosind un limbaj de

nivel înalt, apropiat de modul obişnuit de exprimare, pentru a obţine informaţii,

utilizatorul făcând abstracţie de algoritmii aplicaţi privind selecţionarea datelor implicate

şi a modului de memorare a lor. SGBD-ul este o interfaţă între utilizatori şi sistemul de

operare.

În esenţă un SGBD permite:

1. definirea bazei de date printr-un limbaj de definire a datelor (DDL) prin care se

specifică tipurile de date şi structurile precum şi constrângerile asupra datelor.

2. extragerea, inserarea, ştergerea şi actualizarea datelor din baza de date cu ajutorul

unui limbaj de manipulare a datelor (DML) care oferă o facilitate de interogare

generală a datelor, denumită limbaj de interogare. Acest limbaj elimină dificultăţile

sistemelor bazate pe fişiere unde utilizatorul este constrâns să lucreze cu un set fix

de interogări pentru a evita apariţia de programe noi ce creează probleme majore

privind gestionarea lor.

Componentele unui SGBD sunt:-Hardware, software, date , proceduri, resurse umane

a. Componenta hardware poate fi reprezentată de un singur calculator personal, un singur

calculator mainframe sau o reţea de calculatoare.

De obicei se aplică următoarea schemă într-o reţea de calculatoare:

• un calculator principal pe care se află programele back-end - adică partea din

4

Page 6: centralizator materiale

SGBD care administrează şi controlează accesul la baza de date;

• mai multe calculatoare aflate în diferite locaţii pe care se află programele front-

end - adică partea din SGBD ce constituie interfaţa cu utilizatorul.

În această schemă, numită client-server, programele back-end reprezintă serverul

iar cele front-end reprezintă clienţii.

b. Componenta software - cuprinde:

1. programele SGBD;

2. programele aplicaţie - în limbaje de programare de generaţia a III-a (C, Pascal,

Cobol) sau SQL încorporat într-un limbaj de generaţia a III-a;

3. sistemul de operare;

4. software de reţea.

c. Datele - acţionează ca o punte între componentele maşină (hardware şi software) şi

componenta umană. Baza de date conţine atât datele operaţionale (setul de înregistrări pe

care se lucrează) cât şi metadatele. Structura bazei de date e numită schemă.

d. Procedurile - reprezintă instrucţiunile şi regulile aplicate în proiectarea şi utilizarea

bazei de date. Acestea pot fi:

1. deschiderea unei sesiuni de lucru în SGBD;

2. pornirea sau oprirea SGBD;

3. utilizarea unui program de aplicaţie sau a unei funcţii SGBD;

4. efectuarea de copii de siguranţă;

5. tratarea defecţiunilor hard şi soft;

6. modificarea structurii unui tabel, reorganizarea bazei de date, îmbunătăţirea

performanţelor, arhivarea datelor.

e. Resursele umane sunt reprezentate de:

1. Administratorul de date - responsabil de gestionarea resurselor de date şi

proiectarea conceptual / logică a bazei de date;

2. Administratorul bazei de date - responsabil de realizarea fizică a bazei de date

ce implică proiectarea şi implementarea acesteia;

3. Proiectanţii de baze de date - ei pot fi:

- Proiectant de BD logice: identifică datele (entităţi şi atribute); identifică

5

Page 7: centralizator materiale

relaţiile dintre date ; identifică constrângerile ; identifică regulile ce

descriu principalele caracteristici ale datelor; implică utilizatori în

realizarea modelului de date

- Proiectant de BD fizice: transpune modelul logic într-un set de tabele şi

constrângeri; selectează structuri de stocare şi metode de acces specific;

asigură securitatea datelor

4. Programatorii de aplicaţii

5. Utilizatorii finali

Pentru a uşura munca administratorului de sistem, un SGBD conţine o serie de

componente ce permit:

• încărcarea (crearea unei versiuni iniţiale a bazei de date plecând de la unul sau

mai multe fişiere);

• salvarea şi reîncărcarea (efectuarea de copii periodice şi posibilitatea refacerii

bazei de date plecând de la aceste copii);

• reorganizarea (rearanjarea datelor pentru a obţine performanţe superioare);

• statistici, analize şi altele.

1.2. O scurtă istorie a bazelor de date

Sisteme de baze de date sunt folosite pentru a stoca informaţ ii în orice mediu

imaginabil din zilele noastre. Până în urmă cu câţiva ani, sistemele mari de baze de date

puteau fi executate numai pe calculatoare de tip mainframe. În mod obişnuit, era foarte

costisitor să fie proiectate, achiziţionate şi întreţinute aceste maşini. O dată cu apariţia

calculatoarelor din clasa staţiilor de lucru, care sunt puternice şi ieftine, programatorii au

posibilitatea de a proiecta rapid şi ieftin produse software pentru întreţinerea şi

distribuirea datelor.

1.2.1. Evoluţia organizării datelor

Datele sunt fapte culese din lumea reală pe bază de observaţii şi măsurători. Ele constituie

orice mesaj primit de la un receptor sub o anumită formă.

Colecţia de date reprezintă un ansamblu de date organizat după anumite criterii.

Fişierul reprezintă o colecţie de date organizată după criterii calitative, de prelucrare şi

scop.

6

Page 8: centralizator materiale

Organizarea datelor - reprezintă procesul de definire şi structurare a datelor în colecţii,

gruparea lor precum şi stabilirea elementelor de legătură între componentele colecţiei şi

între colecţii.

Evoluţia în timp a metodelor de organizare a datelor e legată de soluţiile tehnice de

înmagazinare a datelor şi cuprinde nivelele:

1. Nivelul I - organizarea datelor în fişiere clasice

2. Nivelul II - organizarea mixtă în fişiere

3. Nivelul III - organizarea datelor în bazele de date clasice

4. Nivelul IV - organizarea datelor în bazele de date relaţionale

5. Nivelul V - organizarea datelor în baze de date distribuite

1.2.2 Avantajele şi dezavantajele sistemelor de gestiune a bazelor de date

Avantaje faţă de sistemele clasice, cu fişiere:

1. Controlul redundanţei datelor

Risipa de spaţiu care se face prin stocarea aceloraşi informaţii în mai multe fişiere e

mult diminuată prin utilizarea bazelor de date, dar nu complet eliminată datorită altor

cereri de îmbunătăţire a performanţelor.

2. Coerenţa datelor

Dacă un articol de date e înmagazinat de mai multe ori trebuie să se garanteze că toate

copiile lui vor fi actualizate dacă se reactualizează o valoare a sa (valoarea articolului e

aceeaşi pentru toate copiile sale).

3. Mai multe informaţii de la aceeaşi cantitate de date

Se pot obţine prin integrarea fişierelor ce conţin informaţii diferite despre aceleaşi

date.

4. Partajarea datelor

Datele pot fi utilizate de către mai mulţi utilizatori în acelaşi timp. De asemenea se pot

face modificări sau adăugiri la baza de date existentă fără a fi necesară definirea

repetată a tuturor cerinţelor referitoare la acestea.

5. Integritatea crescută a datelor

• se referă la validitatea şi coerenţa datelor înmagazinate

7

Page 9: centralizator materiale

• se exprimă prin constrângeri (= reguli de corerenţă)

• constrângerile se pot aplica:

6. Securitatea crescută

Se realizează prin atribuirea unor nume de utilizatori şi parole ce permit identificarea

persoanelor autorizate să folosească baza de date şi impun modalitatea de utilizare a

acestor date.

7. Aplicarea standardelor

Se referă la formatul datelor, convenţiile privind denumirile, documentarea,

procedurilor de reactualizare, regulile de acces.

8. Reducerea costurilor

Prin realizarea integrării se alocă fonduri centralizat şi nu separat fiecărui

departament.

9. Rezolvarea conflictelor

Fiecare utilizator va avea propriile cerinţe ce pot intra în conflict cu ale altora.

Administratorul bazei de date poate lua decizii ce duc la utilizarea optimă a resurselor.

10. Creşterea accesibilităţii datelor şi a capaciţăţii de răspuns

Se realizează prin intermediul utilizării limbajelor de programare din generaţia a IV-a

(ex. SQL, QBE).

11. Creşterea productivităţii

Prin furnizarea unor funcţii ce permit manipularea fişierelor şi a introducerii

limbajelor de programare din generaţia a IV-a ce reduc mult timpul de programare.

12. Independenţa datelor

Duce la creşterea capacităţii de întreţinere prin faptul că descrierile datelor sunt

separate de aplicaţii.

13. Controlul concurenţei este îmbunătăţit

Se garantează că dacă 2 sau mai mulţi utilizatori accesează simultan aceleaşi date nu

se pierd informaţii sau nu se alterează integritatea acestora.

14. Asigurarea salvării de siguranţă şi a refacerii

Prin recuperarea ultimei stări coerente a bazei de date în cazul apariţiei unei defecţiuni

hard sau soft.

8

Page 10: centralizator materiale

Dezavantaje:

1. Complexitatea

Trebuie avute în vedere o serie de mai multe probleme referitoare la date decât în

cazul aplicaţiilor clasice. Se face mai întâi o analiză amănunţită a datelor şi apoi a

aplicaţiei propriu-zise.

2. Dimensiunea

SGBD-urile ocupă mult spaţiu pe disc.

3. Costul

a) sistemelor SGBD;

b) elementelor hard achiziţionate;

c) conversiei aplicaţiilor existente la noul SGBD şi noua configuraţie hard.

4. Performanţa redusă în cazul utilizării SGBD-urilor care au un caracter mai general, în

locul unei aplicaţii simple bazată pe fişiere care apelează o singură funcţie.

5. Efectul unei defecţiuni e mult mai mare datorită centralizării (o defecţiune minoră

afectează toţi utilizatorii).

II. MEMORIU TEHNIC

Cu siguranţă că FoxPro reprezintă cel mai popular subiect românesc în privinţa bazelor de

date. În materie de proceduri stocate, disponibile altadata doar pe serverele de baze de

date, complexe si costisitoare, Visual FoxPro este de ani buni in fata concurentilor xBase

si chiar a rivalului ce detine gloria SGBD-urilor personale.

9

Page 11: centralizator materiale

Segmentul de piata caria i se adreseaza este tot mai inghesuit din mai multe directii, pe de

o parte de un Accses mult mai ieftin si mai pretentios cu utilizatorii, iar pe de alta parte,

cea a SGBD-ului profesionale, unde lucrurile au evoluat spectaculos si aproape imposibil

de crezut ca Visual FoxPro ar putea spera sa atinga gradul de viteza, scalabilitate si

securitate din Oracle, SQL Server, Informix. Ultimi ani au popularizat ceea ce noi

consideram actualmente a fi inamicul numarul public numarul unu al VFP: SGBD-urile

de tip free. Simple si puternice, din ce in ce mai sigure, si sa nu uitam gratuite, SGBD-

urile free constituie una din putinele solutii pentru dezvoltarea de aplicatii.

Visual FoxPro, produs de firma Microsoft, este un pachet software din categoria

sistemelor de gestiune a bazelor de date destinat microcalculatoarelor. FoxPro a evoluat

de la un SGBD simplu cu oarecare facilităţi de realizarea a aplicaţiilor, la un adevărat

mediu integrat de dezvoltare. În accepţinea clasică, un mediu de dezvoltare constă dintr-

un editor de texte pentru scrierea codului-sursă într-un limbaj dat, un compilator pentru

limabjul respectiv şi câteva facilităţi de natura depanatoarelor, pentru verificarea

aplicaţiei. O dată cu perfecţionările în domeniul hardware-ului şi cu creşterea atât a

numărului de limbaje şi de variante ale acestora, cît şi a numărului de dezvoltatori de

aplicaţii, aceste instrumente s-au diversificat şi îmbunătăţit, integrând noi facilităţi.

Am incercat sa atenuez problema relatata anteror cu privire la cantitatea insemnata

de date, privind realizarea unui centralizator de materiale, folosind Visual FoxPRo si nu

alte sisteme cum ar fi Acces, datorita problemelor pe care acesta le relateaza, probleme

amintite anterior. Deasemenea si bibliografia, care ne-a fost pusa la dispozitie, relateaza si

demonstreaza acest lucru.

Problema amintita anterior, am incercat sa-i gasesc solutii, ajungand la concluzia

de a alege limbajul de programare Visual FoxPro pentru creearea aplicatiei, deoarece

acest limbaj are un viitor in domeniul economic, de gestiune a bazelor de date, dar si

pentru modul placut de lucru.

Visual FoxPro este un Sistem de Gestiune a Bazelor de Date, SGBD, cunoscand in

prezent o larga raspandire datorita aplicatiilor dezvoltate pentru domenii din cele mai

diverse, cat si pentru interfata, meniuri,ferestre de dialog si alte caracteristici, care

faciliteaza comunicarea usoara cu utilizatorul.

10

Page 12: centralizator materiale

SGBD-ul reprezinta sisteme informatice specializate in stocarea si prelucrarea unui

volum mare de date. El trebuie sa asigure urmatoarele functii elementare relative la bazele

de date: definirea structurii, crearea bazei de date, introducerea datelor in bazele de date,

modificarea unor date deja existente in bazele de date, stergerea datelor din bazele de

date, consultarea bazelor de date.

O serie de facilitatii ale SGBD-ului Visual FoxPro sunt date prin componentele

specializate numite generatoare. Acestea ofera un mod de lucru comod si rapid, in ferestre

specializate, utilizatorul acestor componente nu trebuie sa fie neaparat specializat in

informatica si nu trebuie sa cunoasca foarte multe lucruri despre bazele de date. Cele mai

utilizate generatoare sunt: generatoare de rapoarte, generatoare de meniuri, generatoare

de ecran.

2.1. Tehnologiile aplicatiei

Bazele de date sau băncile de date reprezintă un sistem de organizare şi prelucrare,

respectiv teleprelucrare, adica prelucrare la distanţă a informaţiei, constituit din

următoarele 3 elemente:

• colecţie de date aflate în interdependenţă, creare baza de date ;

• descrierea datelor şi a relaţiilor dintre ele;

• un sistem de programe care asigură exploatarea bazei de date, actualizare si

interogare

Arhitectura sistemului de baza de date este formată din următoarele componente:

• bazele de date, reprezintă componenta de tip date a sistemului, colecţiile de date

propriu-zise, indecşii ;

• sistemul de gestiune a bazelor de date reprezinta asamblul de programe prin care

se asigură

gestionarea şi prelucrarea complexă a datelor şi care reprezintă componenta software a

sistemului de baze de date numit, Sistem de Gestiune a Bazelor de Date – SGBD;

• alte componente, proceduri manuale sau automate, inclusiv reglementări

administrative, destinate bunei funcţionări a sistemului, dicţionarul bazei de date, care

11

Page 13: centralizator materiale

conţine informaţii despre date, structura acestora, elemente de descriere a semanticii,

statistici, documentaţii, mijloacele hardware utilizate, personalul implicat.

Datele dintr-o bază de date pot fi structurate pe 3 niveluri, în funcţie de categoria

de personal implicată:

• nivelul conceptual sau global, exprimă viziunea administratorului bazei de date,

asupra datelor, acestui nivel îi corespunde structura conceptuală, adica schema bazei de

date, prin care se

realizează o descriere a tuturor datelor, într-un mod independent de aplicaţii, ce face

posibilă administrarea datelor.

• nivelul logic, exprimă viziunea programatorului de aplicaţie asupra datelor, la

acest nivel se realizează o descriere a datelor corespunzătoare unui anumit program de

aplicaţie.

• nivelul fizic, care exprimă viziunea inginerului de sistem asupra datelor,

corespunde schemei interne a bazei de date prin, care se realizează o descriere a

datelor pe suport fizic de memorie.

Modelul de date reprezintă ansamblul de concepte şi instrumente necesare pentru a

construi o schemă a bazei de date. Modelarea datelor poate viza totalitatea datelor din

cadrul bazei de date, schema datelor, sau o parte a acestora, subscheme ale bazei de date.

Schema şi subschema bazei de date sunt modelele logice ale bazei de date, care au

asociate principii generale pentru gestionarea, respectiv structurarea datelor, manipularea

şi asigurarea integrităţii datelor, fără a reflecta modul de reprezentare şi stocare a acestor

date pe suportul de memorie,care sunt atributele modelului fizic.

Se cunosc mai multe tipuri de baze de date după modul de organizare, modul de

dispunere pe suport magnetic a informaţiei şi a elementelor componente:

• modele primitive, datele sunt organizate la nivel logic în fişiere, structura de bază

este înregistrarea, astfel mai multe înregistrări fiind grupate în structuri de tip fişier;

• baze de date ierarhice, legăturile dintre date sunt ordonate unic, accesul se face

numai prin vârful ierarhiei, un subordonat nu poate avea decât un singur superior direct şi

nu se poate ajunge la el decât pe o singură cale;

12

Page 14: centralizator materiale

• baze de date în reţea, datele sunt reprezentate ca într-o mulţime de ierarhii, în

care un membru al ei poate avea oricâţi superiori, iar la un subordonat se poate ajunge pe

mai multe căi;

• baze de date relaţionale, structura de bază a datelor este aceea de relaţi, tabel,

limbajul SQL, Structured Query Language, este specializat în comenzi de manipulare la

nivel de tabel. Termenul relaţional a fost introdus de un cercetător al firmei IBM dr. E. F.

Codd cel care a enunţat cele 13 reguli de bază necesare pentru definerea unei baze de date

relaţionale. Baza de date relaţională reprezintă o mulţime structurată de date, accesibile

prin calculator, care pot satisface în timp minim şi într-o manieră selectivă mai mulţi

utilizatori. Această mulţime de date modelează un sistem sau un proces din lumea reală şi

serveşte ca suport unei aplicaţii informatice;

• baze de date distribuite, sunt rezultatul integrării tehnologiei bazelor de date cu

cea a reţelelor de calculatoare, sunt baze de date logic integrate, dar fizic distribuite pe

mai multe sisteme de calcul.

Integrarea bazei de date distribuite se face cu ajutorul celor 3 tipuri de de scheme

care sunt implementate ;schema globală, defineşte şi descrie toate informaţiile din baza de

date distribuită în reţea. Urmatoarea este schema de fragmentare,aceasta descrie legăturile

dintre o colecţie globală şi fragmentele sale si este de tipul unu la mai mulţi avand forma

unei ierarhii. Ultima este schema de alocare,care descrie modul de distribuire a

segmentelor pe calculatoarele, nodurilor din reţea. Fiecare segment va avea o alocare

fizică pe unul sau mai multe calculatoare. Schema de alocare introduce o redundanţă

minimă şi controlată, astfel un anumit segment se poate regăsi fizic pe mai multe

calculatoare.

Utilizatorul unei asemenea baza de date o vede ca pe o bază de date unică,

compactă cu toate că în realitate ea este distribuită pe mai multe calculatoare legate în

reţea.

Această organizare a dus la o creştere substanţială a vitezei de acces la o bază de

date într-o reţea de calculatoare. Anumite date stocate pe un server local sunt mult mai

rapid accesate decât dacă ele sar afla pe un server la distanţă, unde baza de date ar fi fost

stocată în întregime.

13

Page 15: centralizator materiale

Pentru gestionarea acestor baze de date sau creat sisteme informatice specalizate.

Sistemele de gestiune a bazalor de date ,SGBD, sunt sisteme informatice specializate în

stocarea şi prelucrarea unui volum mare de date, numărul prelucrărilor fiind relativ mic.

Termenul de bază de date se va referi la datele de prelucrat, la modul de organizare

a acestora pe suportul fizic de memorare, iar termenul de gestiune va semnifica totalitatea

operaţiilor ce se aplică asupra datelor din baza de date.

Un SGBD trebuie să asigure următoarele funcţii:

• definirea, respectiv crearea bazei de date;

• introducerea, respectiv adăugarea datelor în baza de date;

• modificarea unor date deja existente în baza de date;

• ştergerea datelor din baza de date;

• consultarea bazei de date, interogare respectiv extragerea datelor.

În plus un SGBD mai asigură şi alte servicii:

• suport pentru limbaj de programare;

• interfaţă cât mai atractivă pentru comunicare cu utilizatorul;

• tehnici avansate de memorare, organizare, accesare a datelor din baza de date;

• utilitare încorporate: sistem de gestiune a fişierelor, liste, tabele etc.;

• “help” pentru ajutarea utilizatorului în lucrul cu baza de date.

Apariţia şi răspândirea reţelelor de calculatoare a dus la dezvoltarea SGBD-urilor

în direcţia multiuser; mai mulţi utilizatori folosesc simultan aceeaşi bază de date.

Principalul avantaj al reţelelor a fost eficienţa mult sporită de utilizare a resurselor

sistemelor de calcul: la o bază de date, aflată pe un server central au acces simultan mai

mulţi utilizatori, situaţi la distanţă de server, de unde rezultă o bună utilizare a resurselor

server-ului şi o economie de memorie datorată memorării unice a bazei de date.

Un SGBD este dotat cu un limbaj neprocedural de interogare a bazei de date SQL

care permite accesul rapid şi comod la datele stocate în baza de date. În arhitectura unui

sistem de baze de date SGBD ocupă locul central. El este un ansamblu complex de

programe care asigură interfaţa între o bază de date şi utilizatorii acesteia. SGBD este

componenta software a unui sistem de baze de date care interacţionează cu toate celelalte

componente ale acestuia asigurând legătura şi interdependenţa între ele.

14

Page 16: centralizator materiale

Un SGBD trebuie să asigure următoarele activităţi:

• definirea şi descrierea structurii bazei de date, se realizează printr-un limbaj

propriu, limbaj de definire a datelor, LDD, conform unui anumit model de date;

• încărcarea datelor în baza de date, se realizează prin comenzi în limbaj propriu,

limbaj de manipulare a datelor, LMD;

• accesul la date, se realizează prin comenzi specifice din limbajul de manipulare a

datelor.

Acest acces la date se referă la operaţiile de interogare si actualizare.

Interogarea este complexă şi presupune vizualizarea, consultarea, editarea unor

situaţii de ieşire, rapoarte, liste.

Actualizarea presupune 3 operaţiuni: adăugare, modificare efectuate prin

respectarea restricţiilor de integritate ale BD şi ştergere;

• întreţinerea bazei de date,se realizează prin utilitare proprii ale SGBD;

• reorganizarea bazei de date, se face prin facilităţi privind actualizarea structurii

de date şi modificarea strategiei de acces. Se execută de către administratorul bazei de

date;

• securitatea datelor, se referă la asigurarea confidenţialităţii datelor prin

autorizarea şi controlul la date, criptarea datelor.

Obiectivele unui SGBD, are rolul de a furniza suportul software complet pentru

dezvoltarea de aplicaţii informatice cu baze de date. Astfel trebuie să asigure:

• minimizarea costului de prelucrare a datelor,

• reducerea timpului de răspuns,

• flexibilitatea aplicaţiilor,

• protecţia datelor.

Pentru satisfacerea performanţelor enumerate, SGBD trebuie să asigure un minim

de obiective.

Asigurarea independenţei datelor, trebuie privită din două puncte de vedere:

independenţa logică, se referă la posibilitatea adăgării de noi tipuri de înregistrări de date

sau extinderea structurii conceptuale, fără a determina rescrierea programelor de aplicaţie;

15

Page 17: centralizator materiale

independenţa fizică, adica modificarea tehnicilor fizice de memorare fără a determina

rescrierea programelor de aplicaţie.

Asigurarea redundanţei minime şi controlate a datelor respective stocarea

informaţiilor în bazele de date se face astfel, încât datele să nu fie multiplicate. Totuşi,

pentru a îmbunătăţi performanţele legate de timpul de răspuns, se acceptă o anumită

redundanţă a datelor, controlată, pentru a asigura coerenţa bazei de date şi eficienţa

utilizării resurselor hardware.

Asigurarea facilităţilor de utilizare a datelor, presupune ca SGBD-ul să aibă

anumite componente specializate pentru: folosirea datelor de către mai mulţi utilizatori de

la o aplicaţie aplicaţii, care trebuie să poată fi utilizate şi în alte aplicaţii; accesul cât mai

simplu al utilizatorilor la date, fără ca ei să fie nevoiţi să cunoască structura întregii baze

de date; această sarcină cade în seama administratorului bazei de date; existenţa unor

limbaje performante de regăsire a datelor , care permit exprimarea interactivă a unor

cereri de regăsire a datelor; sistemul de gestiune trebuie să ofere posibilitatea unui acces

multicriterial la informaţiile din baza de date spre deosebire de sistemul clasic de

prelucrare pe fişiere unde există un singur criteriu de adresare, cel care a stat la baza

organizării fişierului.

Asigurarea securităţii datelor împotriva accesului neautorizat.

Asigurarea coerenţei şi integrităţii datelor împotriva unor ştergeri intenţionate sau

neintenţionate, se realizează prin intermediul unor proceduri de validare, a unor

protocoale de control concurent şi a unor proceduri de refacere a bazei de date.

Asigurarea partajabilităţii datelor, se referă pe de o parte la asigurarea accesului

mai multor utilizatori la aceleaşi date şi de asemenea la posibilitatea dezvoltării unor

aplicaţii fără a se modifica structura bazei de date.

Asigurarea legăturilor între date, corespund asocierilor care se pot realiza între

obiectele unei aplicaţii informatice. Orice SGBD trebuie să permită definirea şi descrierea

structurii de date, precum şi a legăturilor dintre acestea, conform unui model de date, de

exemplu modelul relaţional.

16

Page 18: centralizator materiale

Administrarea şi controlul datelor, sunt asigurate de SGBD, în sensul că datele pot

fi folosite de mai mulţi utilizatori în acelaşi timp, iar utilizatorii pot avea cerinţe diferite şi

care

pot fi incompatibile. SGBD trebuie să rezolve probleme legate de concurenţă la date,

problemă care apare mai ales în lucrul în mediu de reţea de calculatoare.

In activitatea sa SGBD-ul trebuie sa indeplineasca următoarele funcţii:

funcţia de descriere a datelor, se face cu ajutorul LDD, realizându-se des-

crierea atributelor din cadrul structurii BD, legăturile dintre entităţile BD

definesc eventualele criterii de validare a datelor, metode de acces la date,

integritatea datelor.

Concretizarea acestei funcţii este schema BD.

funcţia de manipulare, este cea mai complexă şi realizează actualizarea şi

regăsirea datelor.

funcţia de utilizare, asigură mulţimea interfeţelor necesare pentru

comunicare a tuturor utilizatorilor cu BD.

funcţia de administrare, administratorul este cel care realizează schema

conceptuală a bazei de date, iar în perioada de exploatare a BD autorizează

accesul la date, reface baza în caz de incident.

funcţia de protecţie a bazei de date, ansamblul de măsuri necesare pentru

asigurarea integrităţii, semantică, acces concurent, salvare, restaurare şi se-

curităţii datelor, autorizare acces, utilizare viziuni, criptare.

In procesul de prelucrare a datelor apar anomalii la rezolvarea carora a avut

deosebita activitate A.F. Codd, care propune solutii pentru eliminarea acestor neajunsuri,

proces de structurare a bazei de date fiind denumit normalizare. Este procesul prin care se

elimină redundanţa datelor în proiectul bazei de date şi se construieşte un model de bază

de date care susţine diverse cerinţe funcţionale şi structuri alternative ale bazei de date.

Sunt aplicate în normalizarea unei baze de date următoarele trei reguli.

Toate atributele trebuie specificate o singură dată, aceasta este forma intâi normală.

Un atribut trebuie să depindă în întregime de identificatorul unic al entităţii pe care

o descrie, aceasta este forma a doua normală. Se pun atributele într-o tabelă în care

17

Page 19: centralizator materiale

depind exclusiv de o cheie primara. Nu se utilizează tabele în care atributele să nu

depindă exclusiv de o singură cheie.

Pentru a fi în forma normală a treia, fiecare tabelă trebuie să posede o singură

cheie primară, iar datele din tabelă trebuie să depindă exclusiv de cheia primară a tabelei.

2.2 Dezvoltarea iterativă

Analiza, proiectarea şi dezvoltarea unei aplicaţii sunt prezentate de cele mai multe ori ca

fiind procese exclusive, în sensul că unul nu poate începe până când nu se termină

precedentul.. Analiza durează până la obţinerea unui nivel de cunoştinţe, apoi începe

proiectarea. În cursul proiectării apar întrebări despre părţi neacoperite din analiză, ceea

ce determină revenirea asupra ei. Ulterior se reproiectează, cel puţin parţial, aplicaţia.

După ce proiectarea aplicaţiei este finalizată, începe dezvoltarea efectivă. Şi în mod

inevitabil se descoperă omisiuni sau chiar erori în proiectare, ceea ce determină revenirea

la proiectarea aplicaţiei.

2.3 Analiza aplicaţiei

Trebuie să ţin cont de dorinţa clientului, dar trebuie să fac un compromis între ce vrea

clientul şi ceea ce ştiu eu. Clientul nu poate cere ceva ce nici nu ştie că există! Este foarte

posibil ca el să nu înţeleagă conotaţiile rezultate din datele de intrare pe care le

furnizează. O aplicaţie bine proiectată trebuie să pună la dispoziţia utilizatorului mult mai

mult decât o imagine, şi câteva formulare; ea trebuie să aibă o interfaţă coerentă şi

ergonomică care tratează mult mai multe aspecte interne.

2.4 Ce-ar trebui să conţină aplicaţia

Există câteva lucruri care ar trebui să apară în orice aplicaţie. Fiecare componentă a unei

aplicaţii oferă servicii utilizatorului sau altor componente. De exemplu, interfaţa permite

utilizatorului să interacţioneze cu programul. Dar există componente care oferă numai

servicii. Sarcina lor este doar de a coordona funcţionarea internă a programului. Mai jos

18

Page 20: centralizator materiale

sunt enumerate câteva din serviciile de sistem pe care trebuie să le conţină o aplicaţie.

Lista nu este completă şi nici obligatorie, pentru că fiecare programator şi-o face singur în

funcţie de necesităţi.

Iniţializarea aplicaţiei

Operaţiunile care se execută la început: stabilirea căilor de căutare, încărcarea

bibliotecilor de clase şi a procedurilor, lansarea în execuţie a meniului sau a unui mod

similar de apelare a componentelor aplicaţiei, iniţializarea tratării evenimentelor, etc..

Securitate şi identificare utilizator

Desi este arhicunoscut faptul ca Visual FoxPro nu ofera securitate de nici un fel asupra

datelor totusi se poate „implementa „ un anumit sistem de protectie care consta in

restrictionarea drepturilor pentru fisiere, autorizarea editarilor anumitor linii ale unei

tabele.

Configuraţia globală

Aceasta este o sumă de informaţii care descriu comportarea aplicaţiei, cum ar fi: reguli de

validare a datelor, căile de căutare implicite, setarea font-urilor, eventuale configurări

speciale sau partajare fişiere, etc..

Tratarea erorilor

Putem spune, pe scurt ca erorile dintr-un program sunt de doua mari categorii :de sintaxa

(pot fi depistate deoarece impiedica etapele de compilare si de executie) si erori de

executie, care nu pot fi descoperite inainte de executia programului.Este necesara testarea

pentru descoperirea erorilor si depanarea ( cu instrumentul Debugger) pentru izolarea si

corectarea acestora.

Servicii pentru programator

Nu trebuie omis faptul că aplicaţia trebuie să se comporte într-un fel atunci când rulează

la client şi altfel când rulează în calculatorul programatorului. Dar asta nu necesită două

meniuri. Pot să afişez sau nu o anumită opţiune, în funcţie de modul de lansare al

aplicaţiei.Se pot încapsula serviciile globale într-o multitudine de componente mai mici.

În acest fel, atunci când este nevoie să modific doar puţin unul dintre serviciile de sistem,

de interfaţă sau pentru programator dau componenta respectivă afară şi pun alta în locul

ei.

19

Page 21: centralizator materiale

III. MEMORIU JUSTIFICATIV

3.1 Justificarea temei alese

Am utilizat limbajul de programare Visual FoxPro pentru creearea lucrarii de

diplomă, deoarece acest limbaj are un viitor in domeniul economic (de gestiune a bazelor

de date), dar si pentru modul placut de lucru.

Dupa cele relatate in introducere, alegerea temei aplicatiei este strins legata de domeniul

unde aş dori să imi desfasor activitatea profesionala. La acest nivel datorita cantitatii mari

de informatie legate de un depozit, cerintelor numeroase si rapide de intocmire a unor

situatii, m-am gandit ca ar fi necesara realizarea unei aplicatii,care sa pastreze si pelucreze

aceasta informatie.

Am ales ca sistem de gestiune si realizare a aplicatiei Visual FoxPro 9, avand in vedere

maleabilitatea acestui sistem.

20

Page 22: centralizator materiale

Majoritatea aplicaţiilor informatice presupun necesitatea memorării anumitor date.

Un sistem informatic care necesita o bază de date are un scop fundamental: accesarea

datelor de către utilizatorii aplicaţiei.

O bază de date poate fi definită ca un ansamblu da date elementare sau structurate,

accesibile. Este un ansamblu de fişiere intercorelate, care conţine nucleul de date necesare

unui sistem informatic (aplicaţie informatică).

Un fişier este un ansamblu de înregistrări fizice, omogene din punct de vedere al

conţinutului şi al prelucrării. O înregistrare fizică este unitatea de transfer între memoria

internă şi cea externă a calculatorului. Aceasta este formată din una sau mai multe

înregistrări logice. O înregistrare logică este unitatea de prelucrare din punct de vedere al

programului utilizator. Aceasta este formată din dintr-un ansamblu de câmpuri, care

descriu o anumită realitate.

Crearea, actualizarea şi consultarea unei baze de date este permisă prin intermediul

unui sistem de gestiune a bazelor de date, care constituie o interfaţă între utilizatori şi

baza de date. Astfel, un sistem de gestiune a bazelor de date este un instrument de

asamblare, codificare, aranjare, protecţie şi regăsire a datelor în baza de date.

Consultarea unei baze de date trebuie să se deruleze ca principiu în mai multe etape

care se succed într-o ordine bine stabilită:

1 programul de aplicaţie emite o cerere de consultare a unei date simple sau grupate din

baza de date;

2 cererea este recepţionată de sistemul de gestiune a bazelor de date, care consultă

schema aferentă programului de aplicaţie care a emis cererea;

3 sistemul de gestiune a bazelor de date obţine descrierea logică a datei solicitate, pe

care o compară cu descrierea acesteia în schema conceptuală;

4 acelaşi sistem lansează cereri către sistemul de operare, care prin metodele sale de

acces caută înregistrarea fizică aferentă şi o pune la dispoziţia sistemului de gestiune

a bazelor de date;

5 sistemul de gestiune a bazelor de date proiectează şi, eventual, converteşte

înregistrarea logică, după care transferă datele în zona de legătură a programului de

aplicaţie;

21

Page 23: centralizator materiale

6 programul de aplicaţie primeşte de la sistemul de gestiune a bazelor de date în zona

de legătură informaţii privind modul de realizare al transferului.

O clasificare a problemelor rezolvate cu ajutorul calculatorului, tinand cont

de volumul datelor si al prelucrarilor implicate in rezolvare ar putea fi urmatoarea :

probleme care implica prelucrari putine asupra unui volum mare de date

probleme a caror rezolvare presupune un volum mediu de prelucrari asupra unui

volum mediu de date

probleme in rezolvarea carora intra un volum mic de date asupra lor efectuandu-se un

volum mare de prelucrari.

Sistemele de gestiune a bazelor de date (SGBD) reprezinta sisteme informatice

specializate in stocarea si prelucrarea unui volum mare de date, in rezolvarea problemelor

de primul tip, din clasificarea anterioara. Termenul de « baza de date » se va referi la

datele de prelucrat, la modul de organizare a acestora pe suportul fizic de memorat iar

termenul de « gestiune » se va referi la actiunea de memorare si prelucrare a acestor date.

Un SGBD trebuie sa asigure urmatoarele functiuni elementare, referitoare la bazele de

date :

definirea bazei de date

introducerea datelor (adaugarea de noi date la baza de date)

modificarea unor date existente in baza de date

stergerea unor date

interogarea bazei de date, adica extragerea informatiilor stocate in aceasta

Pe masura dezvoltarii acestor sisteme lista s-a completat cu facilitati importante cum

ar fi :

generare de rapoarte

modalitati noi de interogare a bazei de date (de exemplu un limbaj de tip SQL)

noi tipuri de organizare a bazelor de date si noi tipuri de acces (de exemplu accesul

indexat)

FOXPRO 9.0 este un sistem de gestiune al bazelor de date relational iar in comparatie

cu concurentii sai directi se mentine in frunte datorita performantelor sale. Principalele

22

Page 24: centralizator materiale

sale atuuri sunt modul relaiv simplu de lucru si limpezimea sintaxei, ceea ce il face si

utilizat si in scop didactic.

3.2 Crearea proiectului Depozit

O etapa extrem de importanta din ciclul de viata al unui sistem informatic este faza de

implementare. Acum programatorii trebuie sa transpuna intr-un limbaj de programare

toate specificatiile formulate in faza de proiectare.

In general, elaborarea unei aplicatii intr-un mediu integrat de dezvoltare consta in

construirea unui proiect care trebuie sa gestioneze o serie de componente. Aceste

componente se concretizeaza intr-un mare numar de fisiere memorate pe disc, iar aici

Visual FoxPro asigura plasarea acestora intr-un ansamblu structurat de directoare. Crearea

acestora se realizeaza automat, folosind aplicatia expert(wizard), lansarea acestuia

facandu-se selectand File / New. În noua fereastra am introdus denumirea proiectului

racova si am selectat folderul in care se va crea structura de directoare mentionata.

Fig. 2.1

Crearea unui

proiect

Acest prioect trebuie sa gestioneze o serie de componente cum ar fi:

structurile de date utilizate de aplicatie, cum ar fi schemele de baze de date;

componente care vor genera interfata aplicatiei:meniuri, formulare, rapoarte

componente dedicate exclusiv structurarii logicii de prelucrare specifice

aplicatiei:module de cod (proceduri);

23

Page 25: centralizator materiale

diverse biblioteci refolosibile (clase), utile in standardizarea aplicatiilor si

cresterea productivitatii dezvoltarii.

3.3 Crearea bazei de date

Majoritatea aplicaţiilor informatice presupun necesitatea memorării anumitor date.

Un sistem informatic care necesita o bază de date are un scop fundamental: accesarea

datelor de către utilizatorii aplicaţiei.

O bază de date poate fi definită ca un ansamblu da date elementare sau structurate,

accesibile. Este un ansamblu de fişiere intercorelate, care conţine nucleul de date necesare

unui sistem informatic (aplicaţie informatică).

Un fişier este un ansamblu de înregistrări fizice, omogene din punct de vedere al

conţinutului şi al prelucrării. O înregistrare fizică este unitatea de transfer între memoria

internă şi cea externă a calculatorului. Aceasta este formată din una sau mai multe

înregistrări logice. O înregistrare logică este unitatea de prelucrare din punct de vedere al

programului utilizator. Aceasta este formată din dintr-un ansamblu de câmpuri, care

descriu o anumită realitate.

Crearea, actualizarea şi consultarea unei baze de date este permisă prin intermediul

unui sistem de gestiune a bazelor de date, care constituie o interfaţă între utilizatori şi

baza de date. Astfel, un sistem de gestiune a bazelor de date este un instrument de

asamblare, codificare, aranjare, protecţie şi regăsire a datelor în baza de date.

Creare bazei de date, se face folosind butonul New din fereastra Project Manager:

24

Page 26: centralizator materiale

De regula seva selecta New Database, deoarece structura acesteia este strans legata

de aplicatia, rezovata, deci ea va fi definita treptat, in timpul construirii acesteia. Apare

onoua fereastra ce va indica numele noii baze de date.

3.4 Structrura tabelelor

Dupa crearea bazei de date, etapa urmatoare este cearea tabelelor. Cu acest sistem

care dispune de un numar mare de comenzi, crearea tabelelor, modificarea structurii

acestora, editarea valorilor, redenumirea tabelelor si distrugerea. Comenzile pot fi date in

fereastra Command, sau folosind a doua posibilitate, fereastra Project manager.

Pentru celele 6 tabele existente in baza de date Materiale vom prezenta doar schema

structurii și relațiile stabilite intre aceste tabele:

25

Page 27: centralizator materiale

În aplicaţia descrisă, la crearea bazei de date materiale s-au stabiliti relaţii de

tipul one to many . Acet tip de relaţie este cel mai frecvebt întâlnit şi stă la baza modelului

relaţional elaborat de Codd. Cheile primare din cele 6 tabele sunt vizibile mai sus.

O cheie străină dintr-un tabel permite regăsirea unei linii dintr-un tabel asociat. În

tabelul asociat, cheia străină din primul tabel este de regulă cheie primară.

În funcţionarea bazelor de date au apărut anomalii de funcţionare, determinate de

existenţa informaţiilor redundante care predispuneau la erori greu de depistat. În anii 60

A.F.Codd cercetător la I.B.M. a studiat posibilitatea ameliorării modului de stocare a

datelor în fişiere. Prin produsul de software realizat, numit Oracle, Codd promovează o

firmă Oracle Corporation şi propune suluţii pentru eliminarea acestor anomalii prin

modelul elaborat. Procesul de structurare a bazei de date în vederea eliminării anomaliilor

evidenţiate mai sus poartă numele de normalizare, care constă în aducerea bazei de date

într-una din formele normale, cele mai importante fiind următoarele 3 forme: prima formă

normală, a doua formă normală şi a trei formă normală.

Pentru a satisface cerinţele impuse de cele 3 forme normale, informaţiile sunt de

regulă păstrate într-un ansamblu de tabele între care există relaţii de diferite tipuri :  relaţii

1 la mai mulţi (one to many) , relaţii 1 la 1 (one to one), relaţii mai mulţi la mai mulţi

(many to many).

26

Page 28: centralizator materiale

3.5 Elemente ale limbajului Foxpro folosite in aplicatie

O etapa extrem de importanta din ciclul de viata al unui sistem informatic este faza

de implementare. Acum programatorii trebuie sa transpuna intr-un limbaj de programare

toate specificatiile formulate in faza de proiectare.

Comenzile FOXPRO permit descrierea tuturor functiunilor generale ale unui

SGBD, anume :

1. gestionarea structurii conceptuale a bazei de date separat de structura fizica

(CREATE, MODIFY STRUCTURE, COPY STRUCTURE, DISPLAY

STRUCTURE, CREATE TABLE)

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

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

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

criterii complexe de selectie, cit si prin folosirea unor chei de acces (FIND, SEEK,

LOCATE)

4. afisarea datelor in diferite modalitati (CREATE/MODIFY REPORT,

CREATE/MODIFY LABEL, CREATE/MODIFY SCREEN)

5. programare structurata (IF, CASE, DO WHILE, SCAN)

6. modularizare si parametrizare (PROCEDURE, FUNCTION)

7. facilitati ale utilizatorilor in organizarea mediului de lucru (SET COLOR,

DEFINE WINDOW, DEFINE MENU).

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

Un element important al mediului FoxPro este formularul, care reprezinta o

portiune a ecranului tratata ca un unic element, cu anumite caracteristici ce determina

actiunile ce se pot executa asupra acesteia. Formularele sunt definite de catre utilizator de

catre utilizator, care pot fi utilizate in programele de aplicatii create sub mediul FoxPro.

Modul de lucru cu aceste formulare este urmatorul:

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

care se precizeaza si atributele lor( poza de fond, dimensiunea ferestrei modul

de deschidere);

27

Page 29: centralizator materiale

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

PRO, butoane care sa faca legatura intre formulare

aceasta legatura se formeaza prin secventa de instructiuni:

thisform.relese()

do form [nume formular]

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

la abonatii firmei, abonamentele acestora ( clientii pot sa aiba mai multe

abonamnete fiecare), costul suplimentar (pe langa cel al abonamntului)

Alaturi de formulare, rapoartele FoxPro dau acestui mediu si acestui limbaj o

putere deosebita, atat datorita eficientei si comoditatii cu care se lucreaza cu aceste

elemente, ci si datorita aspectului deosebit de placut pe care cele doua elemente il ofera

programelor de aplicatii si mediului FoxPro.

Formularul reprezinta un element FoxPro prin care se ofera utilizatorului

posibilitatea selectarii unei anumite optiuni, dintr-o multime finita de optiuni posibile,

afisata pe ecran total sau partial, urmand ca, in functie de selectarea facuta, sa se

declanseze anumite actiuni, corespunzatoarea optiunii alese.

Am preferat utilizarea formularului in locul meniului datorita interfatei mai

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

anumite “optiuni”.

3.6 Modul de functionare

Facilitati oferite de program

Modul de funcționare este următorul: se apasa dubluclick pe fiserul service

depozit.exe, nu este necesara instalarea unei variante de FOX PRO.

- Utilizand butoanele formularelor se navigheza intre paginile proiectului.

Acest proiect isi propune sa realizeze gestiunea unui depozit de materiale. Pentru a

indeplni aceasta sarcina, proiectul contine o baza de date unde se inregistreaza materialele

care intra in depozit, cantitatea acestor materiale, unitatea de masura, pretul si data (ziua,

luna si anul), producatorii de materiale, distribuitorii de materiale, clientii depozitului.

28

Page 30: centralizator materiale

Pentru a mijloci dialogul utilizatorului cu baza de date, este disponibila o interfata

grafica.

Fereastra principală a aplicației este cea afișată mai jos:

29

Page 31: centralizator materiale

Mai sus este prezentata modalitatea de lucru cu instrumentele programului Vvisual

Foxpro 9.0.

Opţiunile din primul meniu sunt operative, permiţând înregistrarea unui client nou

venit, căutarea existenței clientului in baza de date precum și asocierea unui client

materialele selectate, existente in baza de date.

Opțiunea Client nou permite introducerea unui nou client in baza de date. Se

introduc datele cum sunt: numele, prenumelele, nationalitatea, localitatea de domiciliu,

strada, tara de resednta, data sosirii, actul de identitate.

30

Page 32: centralizator materiale

La selectarea comenzii Cauta client se deschide forma prezentată în imaginea de

mai jos. Se introduce seria și numărul actului de identitate și se apasă butonul CAUTA

CLIENT. Dacă clentul nu există în baza de date se poate adăuga acesând butonul

ADAUGĂ.

Se poate asocia fiecărui client existent în baza de date o serie de materiale

aleatoare, accesând opțiunea 3 a primului meniu. Tot această opțiune permite vizulaizarea

unui raport care conține materialele rămase în depozit în urma comenzilor făcute de către

clienți, precum și un raport ce cuprinde centralizarea materialelor pe fiecare client.

31

Page 33: centralizator materiale

Meniul al doilea al ferestrei principale, Rapoart+eEvidente, conţine opţiunile prezentate în figura de mai jos, şi conţine opţiuni pur informative, pe baza de rapoarte:

Meniul al treilea al ferestrei principale, Stoc conţine opţiunile prezentate în figura

de mai jos.

Opţiunea Afiseaza material, permite afisarea informatiilor despre un material

introdus de la tastatura.

32

Page 34: centralizator materiale

Meniul al patrulea al ferestrei principale, Gestiune, contine opţiunile prezentate în figura de mai jos

33

Page 35: centralizator materiale

Formele aferente opțiunilor sunt prezentate in imaginile de mai jos:

Aceasta formă permite modificarea informațiilor existente în baza de date

referitoare la un material.

34

Page 36: centralizator materiale

Opțiunile prezente în forma de mai sus permit ștergere unui material existent în

tabela depozit. Se parcurg înregistrările din tabelă, și înregistrarea activă poate fi ștearsă.

Forma de mai sus permite introducerea unui nou distribuitor in tabela distribuitori

a bazei de date. După introducerea datelor poate fi vizualizat conținutul tabelei prin

accesarea butonului Vizualizare.

35

Page 37: centralizator materiale

Forma de mai sus permite introducerea unui nou distribuitor in tabela producători a

bazei de date. După introducerea datelor poate fi vizualizat conținutul tabelei prin

accesarea butonului Vizualizare.

Meniul cinci al ferestrei principale, Campuri Tabelei conţine opţiunile prezentate

în figura de mai jos:

Opțiunile din acest meniu permit afișarea în formulare diferite, lista câmpurilor

care constituie structura tabelelor: depozit, client, producatori, distribuitori

36

Page 38: centralizator materiale

37

Page 39: centralizator materiale

38

Page 40: centralizator materiale

Utilizand astfel aceste instrumente (tabele, formulare, rapoarte, interogări) ale Fox

Pro-ului reusim sa cream o aplicatie stabila care sa asigure o organizare precisa a datelor

si o interfata prietenoasa cu utilizatorul.

IV. CONCLUZIE

Această aplicaţie cuprinde informaţii despre REALIZAREA UNUI

CENTRALIZATOR DE MATERIALE, oferind posibilitatea stocării şi prelucrării

datelor cu privire la materialele din depozit. . Aplicaţia poate fi dezvoltată prin

completarea bazei de date cu noi tabele in functie de datele noi apărute, având în vedere

fluctuaţia de materiale. Baza de date poate fi îmbunătăţită cu noi tipuri de formulare iar

pe măsură ce depozitul îşi largeşte sfera de servicii, se pot adăuga noi informaţii şi se

poate astfel lărgi oferta de mărfuri a depoyitului de materiale.

Desigur, aceasta ar presupune dezvoltarea mult mai pe larg a aplicaţiei.

Se poate realiza un sit pentru efectuarea înscrierilor online, ceea ce presupune si

accesarea unei baze de date existente pe un server.

Acest proiect, este un program destinat utilizării în cadrul societatii datorită faptului că pe

tot parcursul proiectării am avut în vedere următoarele aspecte:

39

Page 41: centralizator materiale

modelul utilizatorului trebuie să corespundă cu modelul programului meu;

clientul n-are manual, sau dacă-l are nu-l citeşte şi chiar dacă ar putea, n-ar

face-o (exceptând faptul în care nu are absolut nici o altă alternativă);

alegerea trebuie să fie dictată de modelul utilizator, fiind sarcina mea să fac ca

modelul programului să corespundă cu cel al utilizatorului;

modelul utilizatorului nu este niciodată complex; când oamenii fac presupuneri

despre modul în care funcţionează un program, presupunerile lor sunt simple;

nu se gândesc niciodată la lucruri complexe,

A rezultat o interfaţă coerentă, ergonomică, prietenoasă, uşor de folosit şi care să nu dea

mari bătăi de cap clientului. Astfel, după cum s-a cerut, aplicaţia permite:

inregistrarea unui client:

o inregistrarea sosirii unui client prin introducerea unor date despre client

precum: nume, prenume, data nasterii, locul nasterii, nationalitate, localitate de

domiciliu, strada, numarul, tara, data sosirii, data plecarii, tipul actului de

identitate, seria si numarul C.I.

o asocierea materialelor disponbile pentru clientul nou venit, și pentru orice client

existent in baza de date

o căutarea unui client in baza de date după datele furnizate in actul de identitate

sau pasaport

Rapoarte/ evidențe privind lista clienților, lista materialelor disponibile în depozit, lista

comenzilor efectuată de către un client, lista distribuitorilo, lista producătorilor de

nateriale diverse, centralizator client-materiale

Vizualizarea stocului disonibil după diverse criterii

Adăgare de materiale în depozit, adaăgare de producători, adăuhgare distribuitori,

modificarea informațiilor aferente unui material, ștergerea unui material din depozit.

Prin imbunatatirea viitoare

40

Page 42: centralizator materiale

o mai buna evidenta si gestiune a depozitului prin realizarea unei

conexiuni intre depozitele din zona din zonă..

V. BIBLIOGRAFIE

1. Gabriel si Mihai DIMA, “FOXPRO”, Editura TEORA, 1998.

2. Mariana, Ionut si Ioana Pantiru, Manual pentru clasa a XIIa, Editura L&S INFOMAT,

2002

3. Damian M., Vălean H., Miclea L, Revnic I. “Crearea si exploatarea bazelor de date

relationale”, U.T.PRES, Cluj-Napoca, 2006

4. www.msdn.microsoft.com

5. Cursurile oferite de COLEGIUL TEHNIC TURDA, Scola Postliceală

41

Page 43: centralizator materiale

VI. ANEXA-LISTING PROGRAM

Oferim in cele ce urmeaza secvente de cod cu explicatii sumare:

--introducere material in depozit

if used("depozit")select depozit

elseselect 0use depozitselect depozit

endifappend blankreplace codm with thisform.text8.valuereplace material with thisform.text1.valuereplace cantitate with thisform.text2.valuereplace um with thisform.text4.valuereplace pret with thisform.text3.valuereplace zi with thisform.text5.valuereplace luna with thisform.text6.valuereplace an with thisform.text7.valuereplace coddistr with dis

if used ("prodmat")select prodmatelseselect 0use prodmatselect prodmat

42

Page 44: centralizator materiale

endif

set order to cod_prodgo bottomappend blankreplace cod_prod with proreplace codm with thisform.text8.value

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

*show get sr, 1 disableshow gets

--adaugare distribuitor nou

do casecase this.value=1 &&introducere

if used("distribuitori")select distribuitori

elseselect 0use distribuitoriselect distribuitori

endif

set order to cod_distrgo bottomcoddis=cod_distr + 1append blankreplace cod_distr with coddisreplace nume with firmareplace adresa with adrreplace telefon with telthisform.text1.value=""thisform.edit1.value=""thisform.text2.value=""thisform.text1.setfocus

case this.value=2 &&vizualizarebrowse fields cod_distr, nume, adresa, telefon freeze nume

case this.value=3 &&iesirethisform.release

endcase

--adaugare producator nou

do casecase this.value=1 &&introducere

if used("producatori")select producatori

elseselect 0use producatoriselect producatori

43

Page 45: centralizator materiale

endif

set order to cod_prodgo bottomcodpro=cod_prod + 1append blankreplace cod_prod with codproreplace nume_prod with cinefreplace adresa with pundereplace telefon with calnrthisform.text1.value=""thisform.edit1.value=""thisform.text2.value=""thisform.text1.setfocus

case this.value=2 &&vizualizarebrowse fields cod_prod, nume_prod, adresa, telefon freeze

nume_prod

case this.value=3 &&iesirethisform.release

endcase

--afișare preț, cantitate, pentru un material introdus de la tasatatura existent in baza de

date

thisform.List1.clearthisform.List2.clearif used("depozit")

select depozitelseselect 0use depozitselect depozitendif

go topscan

if (upper(thisform.text1.value)=upper(material)) then*!* thisform.Combo1.AddItem(table1.camp1)

*thisform.List2.AddlistItem(depozit.pret)thisform.text2.value=(depozit.cantitate)thisform.text3.value=(depozit.pret)thisform.List1.AddlistItem(thisform.text2.text)thisform.List2.AddlistItem(thisform.text3.text)else

endif

endscan

--afișare stoc limită

thisform.List1.clear

sele depozitgo topscan

if (depozit.cantitate<=thisform.text1.value) then

44

Page 46: centralizator materiale

*!* thisform.Combo1.AddItem(table1.camp1)thisform.List1.AddItem(depozit.material)

else

endif

endscan

asociere materiale-clienti

do casecase this.value=1

if used("centraliz")select centralizelseselect 0use centralizselect centraliz

endifgo bottomappend blankreplace codc with c1replace codm with c2replace cantitate with val(thisform.text1.value)if used("depozit")

select depozitelseselect 0use depozitselect depozit

endifreplace depozit.cantitate with depozit.cantitate-

val(thisform.text1.value)replace centraliz.pretfaratva WITH

depozit.pret*centraliz.cantitatereplace centraliz.tva WITH 24/100*centraliz.pretfaratvareplace centraliz.prettotal WITH

centraliz.pretfaratva+centraliz.tvamessagebox("Ok...s-a efectuat operatiunea cu succes!..")

case this.value=2thisform.releaseendcase

--căutare client

if used("client") select client

elseselect 0use clientselect clientendifLOCATE FOR UPPER(_seria)=seria AND _numar=numarIF FOUND()_nume=nume_prenume=prenume_national=national_localitate=localitate

45

Page 47: centralizator materiale

_strada=strada_nr=nr_actid=actid_tara=tara_data_ven=data_ven_seria=seria_numar=numarthisform.Refresh ELSEMESSAGEBOX("Acest client nu este in baza noastra de date!")MESSAGEBOX("Verificati datele si spatiile lasate in fata numarului de la actul de identitate!")ENDIF

-afișare materiale pe clienti

PUBLIC codclient

if used("client")select client

else select 0use clientselect clientendif

set order to codcgo topthisform.combo1.value=client.numecodclient=codcthisform.list1.setfocus

--modifică informațiile existente despre un material

if used("depozit")select depozitelseselect 0use depozitselect depozit

endifgo recno()x=recno()

replace material with thisform.text1.valuereplace cantitate with thisform.text2.valuereplace pret with thisform.text3.valuereplace um with thisform.text4.valuereplace zi with thisform.text5.valuereplace luna with thisform.text6.valuereplace an with thisform.text7.value

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

46

Page 48: centralizator materiale

_screen.activeform.text7.value=0

if x>reccount() go x-1elsego xendif

if used("depozit")select depozitelseselect 0use depozitselect depozit

endif

do casecase b=1

go topcase b=2

if recno()<>1go recno()-1

endifcase b=3

if recno()<>reccount()go recno()+1

endifcase b=4

go bottomendcase

go recno()

_screen.activeform.text1.value=material_screen.activeform.text2.value=cantitate_screen.activeform.text3.value=pret_screen.activeform.text4.value=um_screen.activeform.text5.value=zi_screen.activeform.text6.value=luna_screen.activeform.text7.value=an

show get sr,1 enableshow gets

--ștergere material existent

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

47

Page 49: centralizator materiale

_screen.activeform.text1.refresh_screen.activeform.text2.refresh_screen.activeform.text3.refresh_screen.activeform.text4.refresh_screen.activeform.text5.refresh_screen.activeform.text6.refresh

if x>reccount() go x-1elsego xendif

if used("depozit")select depozitelseselect 0use depozitselect depozit

endifdo casecase b=1

go topcase b=2

if recno()<>1go recno()-1

endifcase b=3

if recno()<>reccount()go recno()+1

endifcase b=4

go bottomendcase

go recno()

_screen.activeform.text1.value=material_screen.activeform.text2.value=cantitate_screen.activeform.text3.value=pret_screen.activeform.text4.value=um_screen.activeform.text5.value=zi_screen.activeform.text6.value=luna_screen.activeform.text7.value=an

show get sr,1 enableshow gets

--înregistrare client nou în tabela

if used ("client") select clientelseSELECT 0 use client select client

48

Page 50: centralizator materiale

endifIF EMPTY(_nume) OR EMPTY(_prenume) OR EMPTY(_national) OR EMPTY(_localitate);OR EMPTY(_strada) OR EMPTY(_nr) OR EMPTY(_tara);OR EMPTY(_seria) OR EMPTY(_numar)MESSAGEBOX("Nu ati completat datele necesare pentru a reusi inregistrarea clientului in baza de date!!")ELSEset order to codcgo bottomcod=codc+1APPEND BLANK replace codc with cod replace nume with PROPER(ALLTRIM(_nume)),prenume WITH PROPER(ALLTRIM(_prenume)),actid WITH _actid replace national with PROPER(ALLTRIM(_national)) replace localitate with PROPER(ALLTRIM(_localitate)) replace strada with PROPER(_strada) replace nr with _nr replace tara with PROPER(ALLTRIM(_tara)) replace data_ven with _data_ven replace seria with UPPER(ALLTRIM(_seria)) replace numar with ALLTRIM(_numar) replace data_ven with date() seria1=_seria numar1=_numar MESSAGEBOX("Clientul a fost introdus in baza de date!")_actid='B.I'_nume=SPACE(25)_prenume=SPACE(25)_national=SPACE(15)_localitate=SPACE(15)_strada=SPACE(15)_nr=SPACE(6)_tara=SPACE(10)_data_ven=DATE()_seria=SPACE(3)_numar=SPACE(10)DO FORM asociereclientmaterialEndif

_actid='B.I'_nume=SPACE(25)_prenume=SPACE(25)_national=SPACE(15)_localitate=SPACE(15)_strada=SPACE(15)_nr=SPACE(6)_tara=SPACE(10)_data_ven=DATE()_seria=SPACE(3)_numarul=SPACE(10)thisform.optiongroup1.Value=1thisform.RefreshIF _act=1.00 _actid='B.I' ELSE IF _act=2.00 _actid='Permis' ELSE

49

Page 51: centralizator materiale

_actid='Pasaport' ENDIF ENDIF

--codul Sql-vedere2

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

DBSetProp(ThisView,"View","SendUpdates",.F.)DBSetProp(ThisView,"View","BatchUpdateCount",1)DBSetProp(ThisView,"View","CompareMemo",.T.)DBSetProp(ThisView,"View","FetchAsNeeded",.F.)DBSetProp(ThisView,"View","FetchMemo",.T.)DBSetProp(ThisView,"View","FetchSize",100)DBSetProp(ThisView,"View","MaxRecords",-1)DBSetProp(ThisView,"View","Prepared",.F.)DBSetProp(ThisView,"View","UpdateType",1)DBSetProp(ThisView,"View","UseMemoSize",255)DBSetProp(ThisView,"View","Tables","materiale!client")DBSetProp(ThisView,"View","WhereType",3)

DBSetProp(ThisView+".codc","Field","DataType","N(5)")DBSetProp(ThisView+".codc","Field","UpdateName","materiale!client.codc")DBSetProp(ThisView+".codc","Field","KeyField",.T.)DBSetProp(ThisView+".codc","Field","Updatable",.F.)

DBSetProp(ThisView+".prenume","Field","DataType","C(25)")DBSetProp(ThisView+".prenume","Field","UpdateName","materiale!client.prenume")DBSetProp(ThisView+".prenume","Field","KeyField",.F.)DBSetProp(ThisView+".prenume","Field","Updatable",.T.)

DBSetProp(ThisView+".nume","Field","DataType","C(25)")DBSetProp(ThisView+".nume","Field","UpdateName","materiale!client.nume")DBSetProp(ThisView+".nume","Field","KeyField",.F.)DBSetProp(ThisView+".nume","Field","Updatable",.T.)

DBSetProp(ThisView+".material","Field","DataType","C(10)")DBSetProp(ThisView+".material","Field","UpdateName","materiale!depozit.material")DBSetProp(ThisView+".material","Field","KeyField",.F.)DBSetProp(ThisView+".material","Field","Updatable",.F.)

DBSetProp(ThisView+".pret","Field","DataType","N(10)")DBSetProp(ThisView+".pret","Field","UpdateName","materiale!depozit.pret")DBSetProp(ThisView+".pret","Field","KeyField",.F.)DBSetProp(ThisView+".pret","Field","Updatable",.F.)

DBSetProp(ThisView+".um","Field","DataType","C(10)")DBSetProp(ThisView+".um","Field","UpdateName","materiale!depozit.um")DBSetProp(ThisView+".um","Field","KeyField",.F.)

50

Page 52: centralizator materiale

DBSetProp(ThisView+".um","Field","Updatable",.F.)

DBSetProp(ThisView+".cantitate","Field","DataType","N(10)")DBSetProp(ThisView+".cantitate","Field","UpdateName","materiale!centraliz.cantitate")DBSetProp(ThisView+".cantitate","Field","KeyField",.F.)DBSetProp(ThisView+".cantitate","Field","Updatable",.F.)

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

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

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

--cod SQL-interogare 2

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

51

Page 53: centralizator materiale

CUPRINS

I. INTRODUCERE...................................................................................................1

1.2. Ce este o bază de date? Dar un sistem de gestiune a bazelor de date?..........3

1.2. O scurtă istorie a bazelor de date.......................................................................6

1.2.1. Evoluţia organizării datelor.............................................................................7

1.2.2 Avantajele şi dezavantajele sistemelor de gestiune a bazelor de date ...........7

II. MEMORIU TEHNIC..........................................................................................10

2.1. Tehnologiile aplicatiei.......................................................................................11

2.5 Dezvoltarea iterativă...........................................................................................18

2.6 Analiza aplicaţiei.................................................................................................19

2.7 Ce-ar trebui să conţină aplicaţia..........................................................................19

III. MEMORIU JUSTIFICATIV..............................................................................21

3.1 Justificarea temei alese.......................................................................................21

3.2 Crearea proiectului Depozit...............................................................................23

3.3 Crearea bazei de date..........................................................................................24

3.4 Structrura tabelelor.............................................................................................25

3.5 Elemente ale limbajului Foxpro folosite in aplicatie.........................................27

3.6 Modul de functionare, Facilitati oferite de program:... ....................................29

IV. CONCLUZIE.....................................................................................................40

V. BIBLIOGRAFIE..................................................................................................42

52

Page 54: centralizator materiale

VI. ANEXA-LISTING PROGRAM.........................................................................43

53