Documente Academic
Documente Profesional
Documente Cultură
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
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.
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
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).
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.
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.
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.
Fig. 2.1
Crearea unui
proiect
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.
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).
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.
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”.
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.
30
CLIENT. Dacă clentul nu există în baza de date se poate adăuga acesând butonul
ADAUGĂ.
31
Meniul al treilea al ferestrei principale, Stoc conţine opţiunile prezentate în figura
de mai jos.
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:
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.
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
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;
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
40
V. BIBLIOGRAFIE
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
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
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
*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
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
if used("client")
select client
else
select 0
use client
select client
endif
if used("depozit")
select depozit
else
select 0
use depozit
select depozit
endif
go recno()
x=recno()
_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
_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
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
IV. CONCLUZIE.....................................................................................................40
V. BIBLIOGRAFIE..................................................................................................42
VI. ANEXA-LISTING PROGRAM.........................................................................43
52