Sunteți pe pagina 1din 52

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

Îndrumator: Elev:
Profesor: Iclezan Dan Claudiu

2011
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
comun), scris de Dr. E. F. Codd în anul 1970. Ideea lui Codd pentru un sistem de

2
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.
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

3
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
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,

4
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
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.

5
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ă
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

6
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.
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

7
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
• 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,

8
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.
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;

9
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.
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
10
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.
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.

11
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
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,

12
corespunde schemei interne a bazei de date prin, care se realizează o descriere a
datelor pe suport fizic de memorie.
Modelul de date reprezintă ansamblul de concepte şi instrumente necesare pentru a
construi o schemă a bazei de date. Modelarea datelor poate viza totalitatea datelor din
cadrul bazei de date, schema datelor, sau o parte a acestora, subscheme ale bazei de date.
Schema şi subschema bazei de date sunt modelele logice ale bazei de date, care au
asociate principii generale pentru gestionarea, respectiv structurarea datelor, manipularea
şi asigurarea 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;
• 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.

13
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.
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;

14
• 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.
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;

15
• 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;
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.

16
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.
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
descrierea 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
securităţii datelor, autorizare acces, utilizare viziuni, criptare.

17
In procesul de prelucrare a datelor apar anomalii la rezolvarea carora a avut
deosebita activitate A.F. Codd, care propune solutii pentru eliminarea acestor neajunsuri,
proces de structurare a bazei de date fiind denumit normalizare. Este procesul prin care se
elimină 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
depind exclusiv de o cheie primara. Nu se utilizează tabele în care atributele să nu
depindă exclusiv de o singură cheie.
Pentru a fi în forma normală a treia, fiecare tabelă trebuie să posede o singură
cheie primară, iar datele din tabelă trebuie să depindă exclusiv de cheia primară a tabelei.

Dezvoltarea iterativă

Analiza, proiectarea şi dezvoltarea unei 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.

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

18
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.

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
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
19
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.

III. MEMORIU JUSTIFICATIV


3.1 Justificarea temei alese

Am utilizat limbajul de programare Visual FoxPro pentru creearea lucrarii de


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

20
situatii, m-am gandit ca ar fi necesara realizarea unei aplicatii,care sa pastreze si pelucreze
aceasta informatie.
Am ales ca sistem de gestiune si realizare a aplicatiei Visual FoxPro 9, avand in vedere
maleabilitatea acestui sistem.
Majoritatea 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;

21
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;
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)

22
FOXPRO 9.0 este un sistem de gestiune al bazelor de date relational iar in comparatie
cu concurentii sai directi se mentine in frunte datorita performantelor sale. Principalele
sale atuuri sunt modul relaiv simplu de lucru si limpezimea sintaxei, ceea ce il face si
utilizat si in scop didactic.

Crearea proiectului Depozit


O etapa extrem de importanta din ciclul de viata al unui sistem informatic este faza de
implementare. Acum programatorii trebuie sa transpuna intr-un limbaj de programare
toate specificatiile formulate in faza de proiectare.

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


construirea unui proiect care trebuie sa gestioneze o serie de componente. Aceste
componente se concretizeaza intr-un mare numar de fisiere memorate pe disc, iar aici
Visual FoxPro asigura plasarea acestora intr-un ansamblu structurat de directoare. Crearea
acestora se realizeaza automat, folosind aplicatia expert(wizard), lansarea acestuia
facandu-se selectand File / New. În noua fereastra am introdus denumirea proiectului
racova si am selectat folderul in care se va crea structura de directoare mentionata.

Fig. 2.1
Crearea 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
• diverse biblioteci refolosibile (clase), utile in standardizarea aplicatiilor si
cresterea productivitatii dezvoltarii.

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
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
Î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).

3.5 Elemente ale limbajului Foxpro folosite in aplicatie

26
O etapa extrem de importanta din ciclul de viata al unui sistem informatic este faza
de implementare. Acum programatorii trebuie sa transpuna intr-un limbaj de programare
toate specificatiile formulate in faza de proiectare.

Comenzile FOXPRO permit descrierea tuturor functiunilor generale ale unui


SGBD, anume :
1. gestionarea structurii conceptuale a bazei de date separat de structura fizica
(CREATE, MODIFY STRUCTURE, COPY STRUCTURE, DISPLAY
STRUCTURE, CREATE TABLE)
2. gestionarea datelor : incarcare (APPEND, INSERT), modificare (REPLACE, EDIT,
CHANGE), stergere (DELETE, ZAP, PACK, RECALL)
3. satisfacerea cerintelor de regasire rapida a datelor, fie prin specificarea unor
criterii complexe de selectie, cit si prin folosirea unor chei de acces (FIND, SEEK,
LOCATE)
4. afisarea datelor in diferite modalitati (CREATE/MODIFY REPORT,
CREATE/MODIFY LABEL, CREATE/MODIFY SCREEN)
5. programare structurata (IF, CASE, DO WHILE, SCAN)
6. modularizare si parametrizare (PROCEDURE, FUNCTION)
7. facilitati ale utilizatorilor in organizarea mediului de lucru (SET COLOR,
DEFINE WINDOW, DEFINE MENU).
8. protectie (SET LOCK, SET EXCLUSIVE, SET ENCRYPTION)

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


portiune a ecranului tratata ca un unic element, cu anumite caracteristici ce determina
actiunile ce se pot executa asupra acesteia. Formularele sunt definite de catre utilizator de
catre utilizator, care pot fi utilizate in programele de aplicatii create sub mediul FoxPro.
Modul de lucru cu aceste formulare este urmatorul:
 mai intai acestea se creeaza, cu ajutorul comenzii CREATE FORM,
moment in care se precizeaza si atributele lor( poza de fond, dimensiunea
ferestrei modul de deschidere);
 dupa definire se vor creea pe ecran, folosind modelul grafic propus de FOX
PRO, butoane care sa faca legatura intre formulare

27
 aceasta legatura se formeaza prin secventa de instructiuni:
thisform.relese()
do form [nume formular]
 se vor crea de asemenea si tabele in care se vor depunde informatiile cu
privire la abonatii firmei, abonamentele acestora ( clientii pot sa aiba mai multe
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.
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:

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

29
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.

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

30
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.

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:

31
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
Meniul al patrulea al ferestrei principale, Gestiune, contine opţiunile prezentate în
figura de mai jos

33
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
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
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
37
38
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:
• modelul utilizatorului trebuie să corespundă cu modelul programului meu;

39
• 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

• o mai buna evidenta si gestiune a depozitului prin realizarea unei


conexiuni intre depozitele din zona din zonă..

40
V. BIBLIOGRAFIE

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


2. Mariana, Ionut si Ioana Pantiru, Manual pentru clasa a XIIa, Editura L&S INFOMAT,
2002
3. Damian M., 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
VI. ANEXA-LISTING PROGRAM
Oferim in cele ce urmeaza secvente de cod cu explicatii sumare:
--introducere material in depozit
if used("depozit")
select depozit
else
select 0
use depozit
select depozit
endif
append blank
replace codm with thisform.text8.value
replace material with thisform.text1.value
replace cantitate with thisform.text2.value
replace um with thisform.text4.value
replace pret with thisform.text3.value
replace zi with thisform.text5.value
replace luna with thisform.text6.value
replace an with thisform.text7.value
replace coddistr with dis

if used ("prodmat")
select prodmat
else
select 0
use prodmat
select prodmat
endif

set order to cod_prod


go bottom
append blank
replace cod_prod with pro

42
replace codm with thisform.text8.value
_screen.activeform.text8.value=""
_screen.activeform.text1.value=""
_screen.activeform.text2.value=0
_screen.activeform.text3.value=0
_screen.activeform.text4.value=""
_screen.activeform.text5.value=0
_screen.activeform.text6.value=0
_screen.activeform.text7.value=0

*show get sr, 1 disable


show gets
--adaugare distribuitor nou
do case
case this.value=1 &&introducere
if used("distribuitori")
select distribuitori
else
select 0
use distribuitori
select distribuitori
endif

set order to cod_distr


go bottom
coddis=cod_distr + 1
append blank
replace cod_distr with coddis
replace nume with firma
replace adresa with adr
replace telefon with tel
thisform.text1.value=""
thisform.edit1.value=""
thisform.text2.value=""
thisform.text1.setfocus
case this.value=2 &&vizualizare
browse fields cod_distr, nume, adresa, telefon freeze nume

case this.value=3 &&iesire


thisform.release
endcase

--adaugare producator nou


do case
case this.value=1 &&introducere
if used("producatori")
select producatori
else
select 0
use producatori
select producatori
endif

set order to cod_prod


go bottom
codpro=cod_prod + 1
append blank

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

case this.value=3 &&iesire


thisform.release
endcase

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


date
thisform.List1.clear
thisform.List2.clear
if used("depozit")
select depozit
else
select 0
use depozit
select depozit
endif
go top
scan
if (upper(thisform.text1.value)=upper(material)) then
*!* thisform.Combo1.AddItem(table1.camp1)

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

endif

endscan

--afișare stoc limită


thisform.List1.clear

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

else

endif

44
endscan

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

case this.value=2
thisform.release
endcase

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

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

-afișare materiale pe clienti


PUBLIC codclient

if used("client")
select client
else
select 0
use client
select client
endif

set order to codc


go top
thisform.combo1.value=client.nume
codclient=codc
thisform.list1.setfocus

--modifică informațiile existente despre un material

if used("depozit")
select depozit
else
select 0
use depozit
select depozit
endif
go recno()
x=recno()

replace material with thisform.text1.value


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

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

if x>reccount()
go x-1

46
else
go x
endif
if used("depozit")
select depozit
else
select 0
use depozit
select depozit
endif

do case
case b=1
go top
case b=2
if recno()<>1
go recno()-1
endif
case b=3
if recno()<>reccount()
go recno()+1
endif
case b=4
go bottom
endcase

go recno()

_screen.activeform.text1.value=material
_screen.activeform.text2.value=cantitate
_screen.activeform.text3.value=pret
_screen.activeform.text4.value=um
_screen.activeform.text5.value=zi
_screen.activeform.text6.value=luna
_screen.activeform.text7.value=an

show get sr,1 enable


show gets

--ștergere material existent


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

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

47
_screen.activeform.text6.refresh

if x>reccount()
go x-1
else
go x
endif
if used("depozit")
select depozit
else
select 0
use depozit
select depozit
endif
do case
case b=1
go top
case b=2
if recno()<>1
go recno()-1
endif
case b=3
if recno()<>reccount()
go recno()+1
endif
case b=4
go bottom
endcase

go recno()

_screen.activeform.text1.value=material
_screen.activeform.text2.value=cantitate
_screen.activeform.text3.value=pret
_screen.activeform.text4.value=um
_screen.activeform.text5.value=zi
_screen.activeform.text6.value=luna
_screen.activeform.text7.value=an

show get sr,1 enable


show gets

--înregistrare client nou în tabela

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

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

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

49
Centraliz.tva, Centraliz.prettotal;
FROM ;
materiale!client ;
INNER JOIN materiale!centraliz ;
ON Client.codc = Centraliz.codc ;
INNER JOIN materiale!depozit ;
ON Centraliz.codm = Depozit.codm;
ORDER BY Client.codc

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

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

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

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

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

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

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

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

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

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

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

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

51
CUPRINS
I. INTRODUCERE...................................................................................................1
1.2. Ce este o bază de date? Dar un sistem de gestiune a bazelor de date?..........3
1.2. O scurtă istorie a bazelor de date.......................................................................6
1.2.1. 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
Dezvoltarea iterativă...........................................................................................18
Analiza aplicaţiei.................................................................................................19
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
VI. ANEXA-LISTING PROGRAM.........................................................................43

52

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