Вы находитесь на странице: 1из 57

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 Test de inteligenta

Îndrumator: Elev:
Profesor: Antal Lenke

2011
I. INTRODUCERE

În epoca informaţiei, totul se desfăsoară într-un ritm nemaiîntâlnit vreodată.


Bibliotecile, instituţii prin tradiţie conservatoare, sunt si ele supuse unei presiuni sociale si
culturale intense, cu consecinţe imprevizibile asupra profesiei însăsi, precum si asupra
instituţiei bibliotecare.
Toată lumea este astăzi de acord că biblioteca actuală oferă servicii fizice si
servicii virtuale. Biblioteca publică deţine colecţii enciclopedice si categorii extrem de
diverse de
cititori încearcă si ea să răspundă dezideratelor actuale.
Conform celor mai avizaţi specialisti, biblioteca publică contemporană trebuie
să îndeplinească astăzi următoarele cerinţe:
• să pună la dispoziţia cititorilor documente culturale si de informare
• actualizate, sub diferite formate si astfel organizate încât accesul la ele să fie foarte
rapid;
• să dispună de personal calificat;
• să dispună de programe informatizate care să răspundă normelor internaţionale;
• să aibă acces la reţele naţionale si internaţionale de informare.

Rolul său tradiţional ca instituţie de cultură si de educaţie nu va dispărea, ci va fi


extins prin serviciile moderne de informare si consiliere. Biblioteca publică trebuie să
funcţioneze drept un centru cultural local la care populaţia apelează pentru nevoi culturale
si intelectuale.
Documentele din biblioteci sunt astăzi disponibile sub mai multe formate si pe diferite
suporturi. Serviciile de informare de care trebuie să dispună bibliotecile trebuie organizate
în asa fel încât să poată fi exploatate optim de către utilizatori, îndeosebi aceste noi
suporturi informaţionale.
Pentru a-si îndeplini misiunea, biblioteca publică trebuie să răspundă solicitărilor
deopotrivă la nivel local, regional, naţional si internaţional. Fiecare nivel trebuie să preia
si să dezvolte acele activităţi care sunt imperios cerute de utilizatori.

2
1. Baze 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,
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.

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

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

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

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

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

4. Clasificarea bazelor de date


După orientare:
- generalizate;
- specializate.
După modelul de date:
- ierarhice;
- relaţionale;
- orientate pe obiect.
După distribuţia biografică:
- locale;

6
- distribuite:
o cu accces distribuit;
o cu distribuire geografică.
Numin sistem de gestiune a bazelor de date (SGBD) un sistem software care
permite pe de o parte definirea, crearea şi întreţinerea bazei de date, iar pe de altă parte
accesul controlat la informaţiile din baza de date.
Un sistem de gestiune este format dintr-un:
- limbaj ce permite definirea datelor în care administratorul bazei de date sau
utilizatorul descrie şi denumeşte entităţtile, precum şi relaţiile dintre acestea;
- limbaj de manipulare al datelor ce cuprind operaţii de inserare, ştergere, modificare
şi regăsire a datelor în baza de date.

5. Abstractizarea datelor
Un scop important al unui sitem de estiune a bazelor de date (SGBD) este aceea că
oferă o viziune abstractă asupra realităţii. Este necesar să se reţină din mulţimea vastă de
informaţii doar acelea legate de aplicaţia curentă. Pentru aceasta s-a propus stuctura pe
trei nivele a unui sistem de date. Cele trei nivele sunt:
- nivelul logic, denumit şi sistemul extern, este dat de programatorul aplicaţiilor ce
folosesc baze de date;
- nivelul conceptual, sau global, care este dat de viziunea administratorului bazei de
date care realizează structura cnceptuală corespunzătoare descrierii întregii baze de
date;
- nivelul fizic, denumit şi nivelul intern, şi care este dat de viziunea inginerului de
sistem care realizează structura fizică corespunzătoare descrierii interne a datelor,
adică dimensiunea spaţiului de memorie, dreptul de acces, etc.
Descrierea unei baze de date se numeşte schema bazei de date. Pentru fiecare dintre
cele trei nivele există o schemă corespunzătoare, iar între scheme există legături.
Numin instanţa unei baze de date, datele aflate la un moment dat în descrierea
schemei bazei de date.

7
Organizarea datelor într-o bază de date
Arhitectura internă a unui sistem de baze de date conform standardului
ANSI/X3/SPARC (1975) conţine trei niveluri funcţionale. O caracteristică fundamentală
a bazelor de date este aceea că produce câteva niveluri de abstractizare a datelor prin
ascunderea (transparenţa) detaliilor legate de stocarea datelor, utilizatorilor.
Se defineşte modelul datelor, ca un set de concepte utilizat în descrierea structurii datelor.
Prin structura bazei de date se înţelege tipul datelor, legătura dintre ele, restricţiile
aplicate datelor. O structură de date asociată unei baze de date poate fi reprezentată pe trei
niveluri, Figura 2, astfel:

• Nivelul intern – constituit din schema internă ce descrie structura de stocare fizică a
datelor în baza de date, utilizând un model al datelor fizice. La acest nivel se
descriu detaliile complete ale stocării şi modul de acces la date.

• Nivelul conceptual – sau schema conceptuală, descrie structura întregii baze de date
pentru o cumunitate de utilizatori. La nivel conceptual se face o descriere completă
a bazei de date ascunzându-se detaliile legate de stocarea fizică şi detaliind
descrierea entităţilor, tipurilor de date, relaţiile dintre ele şi restricţiile asociate.

Nivelul extern – sau nivelul vizual (utilizator), include o colecţie de scheme externe ce
descriu baze de date prin prisma diferiţilor utilizatori.
8
În multe SGBD nu se poate face o distincţie clară între cele trei niveluri, de multe ori
nivelul conceptual este puternic dezvoltat şi suplineşte aparent celelalte niveluri. De
asemenea, la dezvoltarea aplicaţiilor se remarcă o contopire a nivelului extern cu cel
conceptual.
De la modelul conceptual, cererile sunt adresate modelului intern pentru a fi procesate şi
aplicate datelor stocate. Procesul de transfer a cererilor şi rezultatelor între nivele se
numeşte cartografiere (mapping).
În funcţie de categoria de personal implicată în folosirea bazei de date, datele dintr-o bază
de date pot fi structurate pe trei niveluri:

• nivelul conceptual (global) – exprimă viziunea administratorului bazei de date asupra


datelor. Acestui nivel îi corespunde structura conceptuală (schema) a bazei de date,
prin care se realizează o descriere a tuturor datelor, într-un mod independent de
aplicaţii, ce face posibilă administrarea datelor.

• nivelul logic – exprimă viziunea programatorului de aplicaţie asupra datelor. La acest


nivel se realizează o descriere a datelor corespunzătoare unui anumit program de
aplicaţie.

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


Corespunde schemei interne a bazei de date prin care se realizează o descriere a
datelor pe suport fizic de memorie.

9
II. MEMORIU TEHNIC

1. Modelul relaţional al datelor


Un sistem de gestiune a bazelor de date relaţionale se defineşte ca fiind un sistem de
gestiune care utilizează organizarea datelor conform modelului relaţional. Conceptul de
bază al modelului relaţional este acela de relaţie/tabelă (limbajul SQL specializat în
comenzi de manipulare la nivel de tabelă).
Structura relaţională a datelor cuprinde următoarele componente.
Domeniul – este ansamblul de valori caracterizat printr-un nume (domeniu de valori). El
poate fi precizat explicit – prin enumerarea tuturor valorilor care aparţin domeniului – sau
implicit prin precizarea proprietăţilor pe care le au valorile din domeniu. Pentru un
ansamblu de valori produsul cartezian al acestora reprezintă ansamblul tuplurilor
nDD,...,1()nvv,...,1, unde v1 este o valoare din D1, v2 este o valoare din D2, etc., iar tuplura
corespunde unei linii din tabelă.
Relaţia (tabela) – este un subansamblu al produsului cartezian al mai multor domenii,
caracterizat prin nume şi care conţine tupluri cu semnificaţie (tabelă). Într-o relaţie,
tuplurile trebuie să fie distincte – nu se admit duplicate. O reprezentare a relaţiei este
tabelul bidimensional (tabela de date) în care liniile reprezintă tuplurile, iar coloanele
corespund domeniilor. Numărul tuplurilor dintr-o tabelă este cardinalul tabelei, numărul
valorilor dintr-un tuplu este gradul tabelei. Pentru a diferenţia coloanele care conţin valori
ale aceluiaşi domeniu, eliminând dependenţa de poziţie, se asociază fiecărei coloane un

10
nume distinct – atribut. În timp ce tuplurile sunt unice, un domeniu poate apărea de mai
multe ori în produsul cartezian pe baza căruia este definită tabela.

1. 2 Baze de date relaţionale


Modelul relaţional a fost propus de către IBM şi a revoluţionat reprezentarea
datelor făcând trecerea la generaţia a doua de baze de date.
Modelul este simplu, are o solidă fundamentare teoretică fiind bazat pe teoria
seturilor (ansamblurilor) şi pe logica matematică. Pot fi reprezentate toate tipurile de
structuri de date de mare complexitate, din diferite domenii de activitate.
Modelul relaţional este definit prin: structura de date, operatorii care acţionează
asupra structurii şi restricţiile de integritate.
Conceptele utilizate pentru definirea structurii de date sunt: domeniul, tabela
(relaţia), atributul, tuplul, cheia şi schema tabelei.
Domeniu este un ansamblu de valori caracterizat printr-un nume. El poate fi
explicit sau implicit.
Tabela/relaţia este un subansamblu al produsului cartezian al mai multor domenii,
caracterizat printr-un nume, prin care se definesc atributele ce aparţin aceleaşi clase de
entităţi.
Atributul este coloana unei tabele, caracterizată printr-un nume.
Cheia este un atribut sau un ansamblu de atribute care au rolul de a identifica un
tuplu dintr-o tabelă. Tipuri de chei: primare/alternate, simple/comune, externe.
Tuplul este linia dintr-o tabelă şi nu are nume. Ordinea liniilor (tupluri) şi
coloanelor (atribute) dintr-o tabelă nu trebuie să prezinte nici-o importanţă.

Schema tabelei este formată din numele tabelei, urmat între paranteze rotunde de
lista atributelor, iar pentru fiecare atribut se precizează domeniul asociat.
Schema bazei de date poate fi reprezentată printr-o diagramă de structură în care sunt
puse în evidenţă şi legăturile dintre tabele. Definirea legăturilor dintre tabele se face logic
construind asocieri între tabele cu ajutorul unor atribute de legătură. Atributele implicate
în realizarea legăturilor se găsesc fie în tabelele asociate, fie în tabele distincte construite
special pentru legături. Atributul din tabela iniţială se numeşte cheie externă iar cel din

11
tabela finală este cheie primară. Legăturile posibile sunt 1:1, 1:m, m:n. Potenţial, orice
tabelă se poate lega cu orice tabelă, după orice atribute

1. 3 Concepte utilizate în organizarea datelor


Atunci când dorim să realizăm o bază de date relaţională trebuie să ştim clar ce avem
de făcut, adică să stabilim obiectivele activităţii noastre. În acest sens, câteva dintre cele
mai importante obiective, le prezentăm în continuare:

• Partiţionarea semnifică faptul că aceleaşi date trebuie să poată fi folosite în


moduri diferite de către diferiţi utilizatori;
• Deschiderea se referă la faptul că datele trebuie să fie uşor adaptabile la
schimbările care pot apărea (actualizarea structurii, tipuri noi de date etc.);
• Eficienţa are în vedere stocarea şi prelucrarea datelor, care trebuie
să se facă la costuri cât mai scăzute, costuri care să fie inferioare beneficiilor
obţinute;
• Reutilizarea înseamnă faptul că fondul de date existent trebuie să poată fi
reutilizat în diferite aplicaţii informatice;
• Regăsirea este o actvitate frecventă pe bazele de date şi de aceea cererile de
regăsire trebuie să poată fi adresate uşor de către toate categoriile de utilizatori,
după diferite criterii;
• Accesul înseamnă modul de localizare a datelor şi acest lucru trebuie să poată fi
realizat prin diferite moduri de acces, rapid şi uşor;
• Modularizarea presupune faptul că realizarea BDR trebuie să se poată face
modular pentru generalitate şi posibilitatea lucrului în echipă;
• Protecţia bazei de date trebuie asigurată sub ambele aspecte: securitatea şi
integritatea datelor;
• Redundanţa se asigură în limite acceptabile prin implementarea unui model de
date pentru baze de date şi prin utilizarea unei tehnici de proiectare a BDR. Se
asigură astfel, o redundanţă minimă şi controlată;

12
• Independenţa datelor faţă de programe trebuie asigurată atât la nivel logic cât şi
şi fizic.
Bazele de date relaţionale au evoluat ca un tip special de aplicaţii informatice, şi
anume cele care au organizarea datelor în memoria externă conform unui model de date
specific. De aceea, în metodologia de realizare a BDR se parcurg, în cea mai mare parte,
cam aceleaşi etape ca la realizarea unei aplicaţii informatice, cu o serie de aspecte
specifice. Pe de altă parte, în literatura de specialitate, sunt diferite propuneri de
metodologii de realizare a bazelor de date.
Ţinând cont de cele două aspecte de mai sus, sunt propuse câteva actvivităţi care trebuie
parcurse la realizarea unei baze de date. Aceste activităţi vor fi regăsite, sub aceeaşi
denumire sau sub denumiri diferite, în majoritatea metodologiilor de realizare a bazelor
de date, din literatura de specialitate.

1.4 Activităţile (etapele) parcurse pentru realizarea unei BDR


Etapele parcurse sunt: analiza de sistem, proiectarea noului sistem, realizarea
componentelor logice, punerea în funcţiune, dezvoltarea.
1.4.1) Scopul analizei de sistem este de a evidenţia cerinţele aplicaţiei şi resursele
utilizate (studiul), precum şi de a evalua aceste cerinţe prin modelare (analiza).

Studiul situaţiei existente se realizează prin: definirea caracteristicilor generale ale


unităţii, identificarea activităţilor desfăşurate, identificarea resurselor existente
(informaţionale, umane, energetice, echipamente, financiare etc.), identificarea
necesităţilor de prelucrare.
Analiza este o activitate de modelare (conceptuală) şi se realizează sub trei aspecte:
structural, dinamic şi funcţional.
a) Analiza structurală evidenţiază, la nivel conceptual, modul de structurare a datelor şi a
legăturilor dintre ele. Cea mai utilizată tehnică este entitate-asociere. Aceasta conţine:
• Identificarea entităţilor: fenomene, procese, obiecte concrete sau abstracte
(substantivele din prezentarea activităţii descrise) (exemple de entităţi: Persoane,
Produse, Beneficiari).

13
• Identificarea asocierilor dintre entităţi ca fiind legăturile semnificative de un
anumit tip (verbele din prezentarea activităţii descrise).
• Identificarea atributelor ce caracterizează fiecare entitate în parte (exemple de
atribute: Marca, Nume, Adresă).
• Stabilirea atributelor de identificare unică a realizărilor entităţii, drept chei.

Rezultatul analizei structurale este modelul static (structural) numit şi diagrama entitate-
asociere. Diagrama entitate-asociere (Entity-Relationship) poate fi generată cu produse
software tip CASE (Computer Aided Software Engineering), ca de exemplu Oracle
Designer. Pornind de la o astfel de diagramă, se pot construi, în actvitatea de proiectare,
schemele relaţiilor (tabelelor).
b) Analiza dinamică evidenţiază comportamentul elementelor sistemului la anumite
evenimente. Una din tehnicile utilizate este diagrama stare-tranziţie. Aceasta presupune:
• Identificarea stărilor în care se pot afla componentele sistemului.
• Identificarea evenimentelor care determină trecerea unei componente dintr-o
stare în alta.
• Stabilirea tranziţiilor admise între stări.
• Construirea diagramei stare-tranziţie.
Rezultatul analizei dinamice este modelul dinamic.
c) Analiza funcţională evidenţiază modul de asigurare a cerinţelor informaţionale (fluxul
prelucrărilor) din cadrul sistemului, prin care intrările sunt transformate în ieşiri. Cea mai
utilizată tehnică este diagrama de flux al datelor. Conform acestei tehnici se delimitează:
• Aria de cuprindere a sistemului.
• Se identifică sursele de date: Se identifică modul de circulaţie şi prelucrare a datelor.
• Se identifică apoi rezultatele obţinute: Rezultatul analizei funcţionale este modelul
funcţional.

1.4.2) Proiectarea structurii bazei de date se face pe baza modelelor realizate în


activitatea de analiză. Inainte de proiectarea bazei de date se alege tipul de sistem de
gestiune a bazei de date. Alegerea SBGD-ului se face ţinând cont de două aspecte:
cerinţele aplicaţiei (utilizatorului) şi performanţele tehnice ale SGBD-ului.

14
Cerinţele aplicaţiei se referă la: volumul de date estimat a fi memorat şi prelucrat în BDR;
complexitatea problemei de rezolvat; ponderea şi frecvenţa operaţiilor de intrare/ieşire;
condiţiile privind protecţia datelor; operaţiile necesare (încărcare/validare, actualizare,
regăsire etc.); particularităţile activităţii pentru care se realizează baza de date.
Performanţele tehnice ale SGBD-ului se referă la: modelul de date pe care-l
implementează; ponderea utilizării SGBD-ului pe piaţă şi tendinţa; configuraţia de calcul
minimă cerută; limbajele de programare din SGBD; facilităţile de utilizare oferite pentru
diferite categorii de utilizatori; limitele SGBD-ului; optimizările realizate de SGBD;
facilităţile tehnice; lucrul cu mediul distribuit şi concurenţa de date; elementele
multimedia; instrumentele CASE; interfeţele de comunicare; posibilitatea de
autodocumentare; instrumentele specifice oferite.
Proiectarea BDR se realizează prin proiectarea schemelor BDR şi proiectarea modulelor
funcţionale specializate.
Schemele bazei de date sunt: conceptuală, externă şi internă.
a) Proiectarea schemei conceptuale porneşte de la identificarea setului de date necesar
sistemului. Aceste date sunt apoi integrate şi structurate într-o schemă (exemplu: pentru
BDR relaţionale cea mai utilizată tehnică este normalizarea). Pentru acest lucru se
parcurg paşii:

• Stabilirea schemei conceptuale iniţiale care se deduce din modelul entitate-


asociere (vezi analiza structurală). Pentru acest lucru, se transformă fiecare
entitate din model într-o colecţie de date (fişier), iar pentru fiecare asociere se
definesc cheile aferente. Dacă rezultă colecţii izolate, acestea se vor lega de alte
colecţii prin chei rezultând asocieri (1:1, 1:m, m:n).
• Ameliorarea progresivă a schemei conceptuale prin eliminarea unor anomalii
(exemplu: cele cinci forme normale pentru BDR relaţionale).

• Stabilirea schemei conceptuale finale trebuie să asigure un echilibru între


cerinţele de actualizare şi performanţele de exploatare (exemplu: o formă
normală superioară asigură performanţe de actualizare, dar timpul de răspuns va
fi mai mare).

15
Tehnica de normalizare este utilizată în activitatea de proiectare a structurii BDR şi
constă în eliminarea unor anomalii (neajunsuri) de actualizare din structură.
Anomaliile de actualizare sunt situaţii nedorite care pot fi generate de anumite tabele în
procesul proiectării lor:

• Anomalia de ştergere semnifică faptul că stergând un tuplu dintr-o tabelă, pe


lângă informaţiile care trebuie şterse, se pierd şi informaţiile utile existente în
tuplul respectiv;

• Anomaliile de adăugare semnifică faptul că nu pot fi incluse noi informaţii


necesare într-o tabelă, deoarece nu se cunosc şi alte informaţii utile (de exemplu
valorile pentru cheie);

• Anomalia de modificare semnifică faptul că este dificil de modificat o valoare a


unui atribut atunci când ea apare în mai multe tupluri.

1.5 Normalizarea
Este o teorie construită în jurul conceptului de forme normale (FN), care ameliorează
structura BDR prin înlăturarea treptată a unor neajunsuri şi prin imprimarea unor facilităţi
sporite privind manipularea datelor.
Normalizarea utilizează ca metodă descompunerea (top-down) unei tabele în două sau
mai multe tabele, păstrând informaţii (atribute) de legătură.
Forma normală unu (FN1). O tabelă este în FN1 dacă toate atributele ei conţin valori
elementare (nedecompozabile), adică fiecare tuplu nu trebuie să aibă date la nivel de grup
sau repetitiv. Structurile de tip arborescent şi reţea se transformă în tabele cu atribute
elemntare.
O tabelă în FN1 prezintă încă o serie de anomalii de actualizare datorită eventualelor
dependenţe funcţionale incomplete.
Fiecare structură repetitivă generează (prin descompunere) o nouă tabelă, iar atributele la
nivel de grup se înlătură, rămânând doar cele elemntare.

16
Forma normală doi (FN2). O tabelă este în FN2 dacă şi numai dacă este în FN1 şi
fiecare atribut noncheie al tabelei este dependent funcţional complet de cheie. Un atribut
B al unei tabele depinde funcţional de atributul A al aceleiaşi tabele, dacă fiecărei valori a
lui A îi corespunde o singură valoare a lui B, care îi este asociată în tabelă. Un atribut B
este dependent funcţional complet de un ansamblu de atribute A în cadrul aceleiaşi tabele,
dacă B este dependent funcţional de întreg ansamblul A (nu numai de un atribut din
ansamblu).
O tabelă în FN2 prezintă încă o serie de anomalii de actualizare, datorită eventualelor
dependenţe tranzitive.
Eliminarea dependenţelor incomplete se face prin descompunerea tabelei iniţiale în două
tabele, ambele conţinând atributul intermediar (B).

Forma normală trei (FN3). O tabelă este în FN3 dacă şi numai dacă este în FN2 şi
fiecare atribut noncheie depinde în mod netranzitiv de cheia tabelei. Într-o tabelă T, fie
A,B,C trei atribute cu A cheie. Dacă B depinde de A (A �B) şi C depinde de B (B �C)
atunci C depinde de A în mod tranzitiv. Eliminarea dependenţelor tranzitive se face prin
descompunerea tabelei iniţiale în două tabele, ambele conţinând atributul intermediar (B).
O tabelă în FN3 prezintă încă o serie de anomalii de actualizare, datorate eventualelor
dependenţe multivaloare.
O definiţie mai riguroasă pentru FN3 a fost dată prin forma intermediară BCNF (Boyce
Codd Normal Form): o tabelă este în BCNF dacă fiecare determinant este un candidat
cheie.Determinantul este un atribut elementar sau compus faţă de care alte atribute sunt
complet dependente funcţional.

Forma normală (FN4). O tabelă este în FN4 dacă şi numai dacă este în FN3 şi nu
conţine două sau mai multe dependenţe multivaloare. Într-o tabelă T, fie A,B,C trei
atribute. În tabela T se menţine dependenţa multivaloare A dacă şi numai dacă mulţimea
valorilor lui B ce corespunde unei perechi de date (A,C), depinde numai de o valoare a lui
A şi este independentă de valorile lui C.

17
Forma normală cinci (FN5). O tabelă este în FN5 dacă şi numai dacă este în FN4 şi
fiecare dependenţă joncţiune este generată printr-un candidat cheie al tabelei. În tabela T
(A,B,C) se menţine dependenţa joncţiune (AB, AC) dacă şi numai dacă T menţine
dependenţa multivaloare A -->> B sau C.
Dependenţa multivaloare este caz particular al dependenţei joncţiune. Dependenţa
funcţională este caz particular al dependenţei multivaloare.
a) Proiectare schemei externe are rolul de a specifica viziunea fiecărui utilizator asupra
BDR. Pentru acest lucru, din schema conceptuală se identifică datele necesare fiecărei
viziuni. Datele obţinute se structurează logic în subscheme ţinând cont de facilităţile de
utilizare şi de cerinţele utilizator. Schema externă devine operaţională prin construirea
unor viziuni (view) cu SGBD-ul şi acordarea drepturilor de acces. Datele într-o viziune
pot proveni din una sau mai multe colecţii şi nu ocupă spaţiul fizic.
b) Proiectarea schemei interne presupune stabilirea structurilor de memorare fizică a
datelor şi definirea căilor de acces la date. Acestea sunt specifice fie SGBD-ului (scheme
de alocare), fie sistemului de operare. Proiectarea schemei interne înseamnă estimarea
spaţiului fizic pentru BDR, definirea unui model fizic de alocare (a se vedea dacă SGBD-
ul permite explicit acest lucru) şi definirea unor indecşi pentru accesul direct, după cheie,
la date.
Proiectarea modulelor funcţionale ţine cont de concepţia generală a BDR, precum
şi de schemele proiectate anterior. În acest sens, se proiectează fluxul informaţional,
modulele de încărcare şi manipulare a datelor, interfeţele specializate, integrarea
elementelor proiectate cu organizarea şi funcţionarea BDR.

1.6 Regulile lui Codd


E.F. Codd (cercetător la IBM) a formulat 13 reguli care exprimă cerinţele maximale
pentru ca un SGBD să fie relaţional. Regulile sunt utile pentru evoluarea performanţelor
unui SGBDR. Acestea sunt:
R0. Gestionarea datelor la nivel de relaţie: limbajele utilizate trebuie să opereze cu relaţii
(unitatea de informaţie).
R1. Reprezentarea logică a datelor: toate informaţiile din BDR trebuie stocate şi prelucrate
ca tabele.

18
R2. Garantarea accesului la date: LMD trebuie să permită accesul la fiecare valoare
atomică din BDR (tabelă, coloană, cheie).
R3. Valoarea NULL: trebuie să se permită declararea şi prelucrarea valorii NULL ca date
lipsă sau inaplicabile.
R4. Metadatele: informaţiile despre descrierea BDR se stochează în dicţionar şi tratează ca
tabele ,la fel ca datele propiu-zise.
R5. Limbajele utilizate: SGBDR trebuie să permită utilizarea mai multor limbaje, dintre
care cel puţin unul să permită definirea tabelelor (de bază şi virtuale), definirea
restricţiilor de integritate, manipularea datelor, autorizarea accesului, tratarea tranzacţiilor.
R6. Actualizarea tabelelor virtuale: trebuie să se permită ca tabelele virtuale să fie şi
efectiv actualizabile, nu numai teoretic actualizabile (exemplu atributul “valoare” dintr-o
tabelă virtuală nu poate fi actualizat).
R7. Actualizările în baza de date: manipularea unei tabele trebuie să se facă prin operaţii
de regăsire dar şi de actulizare.
R8. Independenţa fizică a datelor: schimbarea stucturii fizice a datelor (modul de
reprezentare (organizare) şi modul de acces) nu afectează programele.
R9. Independenţa logică a datelor: schimbarea structurii de date (logice) a tabelelor nu
afectează programele.
R10. Restricţiile de integritate: acestea, trebuie să fie definite prin LDD şi stocate în
dicţionarul (catalogul) BDR.
R11. Distribuirea geografică a datelor: LMD trebuie să permită ca programele de aplicaţie
să fie aceleaşi atât pentru date distribuite cât şi petru date centralizate (alocarea şi
localizarea datelor vor fi în sarcina SGBDR-ului).
R12. Prelucrarea datelor la nivel de bază (scăzut): dacă SGBDR posedă un limbaj de nivel
scăzut (prelucrarea datelor se face la nivel de înregistrare), acesta nu trebuie utilizat
pentru a evita restricţiile de integritate.

Regulile lui Codd sunt greu de indeplinit în totalitate de către SGBDR. Pornind de
la cele 13 reguli de mai sus, au fost formulate o serie de criterii (cerinţe) pe care trebuie să
le îndeplinească un SGBD pentru a putea fi considerat relaţional într-un anumit grad. S-a
ajuns astfel, la mai multe grade de relaţional pentru SGBDR: cu interfaţă relaţională

19
(toate datele se reprezintă în tabele, există operatorii de selecţie, proiecţie şi joncţiune
doar pentru interogare), pseudorelaţional (toate datele se reprezintă în tabele, există
operatorii de selecţie, proiecţie şi joncţiune fără limitări), minimal relaţional (este
pseudorelaţional şi în plus, operaţiile cu tabele nu fac apel la pointeri observabili de
utilizatori), complet relaţional (este minimal relaţional şi în plus, există operatorii de
reuniune, intersecţie şi diferenţă, precum şi restricţiile de integritate privind unicitatea
cheii şi restricţia referenţială).

În concluzie, SGBDR este un sistem software complet care implementeză


modelul de date relaţional şi respectă cerinţele impuse de acest model. El este o
interfaţă între utilizatori şi baza de date.

2. DESCRIEREA GENERALĂ A BAZEI DE DATE


Baza de date relaţională are următoarea structură: 4 tabele şi 2 vederi

Tabelele sunt următoarele: intrebări, rezultat, client, test


Structura tabelelor este următoarea:

20
• Tabela client:

• Tabela test:

• Tabela rezultat:

21
• Tabela clientrez

2.1 Protecţia datelor


Aspectele privind protecţia datelor sunt foarte importante pentru un sistem de bază
de date şi ele trebuie implementate de către SGBDR. Protecţia bazei de date se referă la
integritatea datelor (integritatea semantică, concurenţa la date, salvarea/restaurarea) şi
securitatea datelor (autorizarea accesului, viziunile, procedurile speciale, criptarea).

a) Integritatea semantică. Definirea restricţiilor de integritate se face, conform cerinţelor


modelului relaţional, în LDD (exemplu CREATE TABLE, ALTER TABLE). Utilizarea
restricţiilor de integritate se face cu ajutorul unor mecanisme care controlează validitatea
regulilor pentru fiecare nouă stare a BD. Aceste mecanisme sunt metode de detectare a
inconsistenţei datelor (se verifică restrciţiile de integritate) la sfârşitul tranzacţiilor, care se
realizează automat de SGBDR şi puncte de verificare a integrităţii fixate de utilizator,
acolo unde doreşte el în program.

22
b) Concurenţa la date (coerenţa). Unitatea de lucru pentru asigurarea coerenţei datelor
este tranzacţia. Aceasta este un ansamblu de comenzi tratate unitar. Tranzacţia se execută
în totalitate sau deloc. Coerenţa poate fi afectată la actualizarea concurentă sau la
incidente.
Mecanismele utilizate de SGBDR pentru asigurarea coerenţei datelor (controlul accesului
concurent) sunt:
• Blocarea la diferite niveluri: bază de date, tabelă, tuplu, atribut;
• Definirea unor puncte de salvare în interiorul tranzacţiilor (exemplu comanda
savepoint);
• Tranzacţii explicite (begin şi end transaction) şi implicite (comenzile de actualizare);
• Fişiere jurnal.

III. MEMORIU JUSTIFICATIV

Am realizat aceasta aplicatie pentru distractie si pentru a verifica cunostintele generale


a utilizatorilor.Este o aplicatie complexa pentru ca spre deosebire de aplicatiile de pe
internet cu teste de inteligenta aceasta aplicatie ofera si posibi-litatea sa vada raspunsurile
pe care le-a dat si raspunsurile corecte. Din acest motiv aplicatia ofera posibilitatea ca
utilizatorul sa adauge intrebari pe care le doreste si sa le invete mai usor pentru un
examen sau un test prin simpla par-curgere a chestionarului.

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.
Am ales ca sistem de gestiune si realizare a aplicatiei Visual FoxPro 9, avand in vedere
maleabilitatea acestui sistem.

23
Majoritatea aplicaţiilor informatice presupun necesitatea memorării anumitor date.
Un sistem informatic care necesita o bază de date are un scop fundamental: accesarea
datelor de către utilizatorii aplicaţiei.
O bază de date poate fi definită ca un ansamblu da date elementare sau structurate,
accesibile. Este un ansamblu de fişiere intercorelate, care conţine nucleul de date necesare
unui sistem informatic (aplicaţie informatică).
Un fişier este un ansamblu de înregistrări fizice, omogene din punct de vedere al
conţinutului şi al prelucrării. O înregistrare fizică este unitatea de transfer între memoria
internă şi cea externă a calculatorului. Aceasta este formată din una sau mai multe
înregistrări logice. O înregistrare logică este unitatea de prelucrare din punct de vedere al
programului utilizator. Aceasta este formată din dintr-un ansamblu de câmpuri, care
descriu o anumită realitate.
Crearea, actualizarea şi consultarea unei baze de date este permisă prin intermediul
unui sistem de gestiune a bazelor de date, care constituie o interfaţă între utilizatori şi
baza de date. Astfel, un sistem de gestiune a bazelor de date este un instrument de
asamblare, codificare, aranjare, protecţie şi regăsire a datelor în baza de date.
Consultarea unei baze de date trebuie să se deruleze ca principiu în mai multe etape
care se succed într-o ordine bine stabilită:
1 programul de aplicaţie emite o cerere de consultare a unei date simple sau grupate din
baza de date;
2 cererea este recepţionată de sistemul de gestiune a bazelor de date, care consultă
schema aferentă programului de aplicaţie care a emis cererea;
3 sistemul de gestiune a bazelor de date obţine descrierea logică a datei solicitate, pe
care o compară cu descrierea acesteia în schema conceptuală;
4 acelaşi sistem lansează cereri către sistemul de operare, care prin metodele sale de
acces caută înregistrarea fizică aferentă şi o pune la dispoziţia sistemului de gestiune
a bazelor de date;
5 sistemul de gestiune a bazelor de date proiectează şi, eventual, converteşte
înregistrarea logică, după care transferă datele în zona de legătură a programului de
aplicaţie;

24
6 programul de aplicaţie primeşte de la sistemul de gestiune a bazelor de date în zona
de legătură informaţii privind modul de realizare al transferului.
O clasificare a problemelor rezolvate cu ajutorul calculatorului, tinand cont
de volumul datelor si al prelucrarilor implicate in rezolvare ar putea fi urmatoarea :
− probleme care implica prelucrari putine asupra unui volum mare de date
− probleme a caror rezolvare presupune un volum mediu de prelucrari asupra unui
volum mediu de date
− probleme in rezolvarea carora intra un volum mic de date asupra lor efectuandu-se un
volum mare de prelucrari.
Sistemele de gestiune a bazelor de date (SGBD) reprezinta sisteme informatice
specializate in stocarea si prelucrarea unui volum mare de date, in rezolvarea problemelor
de primul tip, din clasificarea anterioara. Termenul de « baza de date » se va referi la
datele de prelucrat, la modul de organizare a acestora pe suportul fizic de memorat iar
termenul de « gestiune » se va referi la actiunea de memorare si prelucrare a acestor date.
Un SGBD trebuie sa asigure urmatoarele functiuni elementare, referitoare la bazele de
date :
− definirea bazei de date
− introducerea datelor (adaugarea de noi date la baza de date)
− modificarea unor date existente in baza de date
− stergerea unor date
− interogarea bazei de date, adica extragerea informatiilor stocate in aceasta
Pe masura dezvoltarii acestor sisteme lista s-a completat cu facilitati importante cum
ar fi :
− generare de rapoarte
− modalitati noi de interogare a bazei de date (de exemplu un limbaj de tip SQL)
− noi tipuri de organizare a bazelor de date si noi tipuri de acces (de exemplu accesul
indexat)
FOXPRO 9.0 este un sistem de gestiune al bazelor de date relational iar in comparatie
cu concurentii sai directi se mentine in frunte datorita performantelor sale. Principalele
sale atuuri sunt modul relaiv simplu de lucru si limpezimea sintaxei, ceea ce il face si
utilizat si in scop didactic.

25
Proiectarea aplicaţiei

Majoritatea bazelor de date din domeniul juridic sunt baze de date relaţionale; de
aceea, vom descrie succint etapele proiectării acestora. Proiectarea bazelor de date
presupune fixarea structurii bazei de date şi a metodelor de prelucrare a datelor. Dacă, în
mod obişnuit, baza de date îşi schimbă frecvent conţinutul, structura ei rămâne
nemodificată pe lungi perioade de timp.
Prin proiectare se determină un model semantic, care să reflecte cât mai fidel
lumea reală, construit astfel:
1. Se identifică o mulţime de concepte semantice (entităţi, tipuri de entităţi,
proprietăţi ale entităţilor, identificatorii entităţilor, relaţii între entităţi) ce dau informaţii
despre lumea reală.
2. Se asociază obiecte simbolice formale, prin care sunt reprezentate conceptele
semantice.
3. Se defineşte o mulţime de operatori formali ce pot să transforme obiectele
formale.
Etapele construirii unei baze de date sunt următoarele:
1. Studiul de fezabilitate, ce constă în cercetarea sistemelor existente, evaluarea
costurilor pe diversele alternative.
2. Cercetarea sistemului existent (tipuri de date, dimensiuni etc.).
3. Analiza sistemului prin determinarea cauzelor diferitelor evenimente şi a
adoptării metodelor şi a alternativelor posibile.
4. Proiectarea sistemului prin determinarea celui mai bun model de reprezentare şi
prelucrare a datelor, de asigurare a securităţii şi integrităţii.
5. Dezvoltarea sistemului prin stabilirea detaliilor asociate datelor prevăzute a fi
luate în considerare, a relaţiilor dintre ele şi a modului de reprezentare fizică.
6. Implementarea sistemului prin proiectarea, scrierea şi testarea programelor,
antrenarea utilizatorilor, alcătuirea documentaţiei, crearea şi încărcarea fişierelor.

26
7. Revizuire şi întreţinere prin probe de lucru ale noului sistem, efectuarea unor
eventuale modificări, adăugarea de noi componente şi urmărirea procesului de
prelucrare a datelor.
Proiectarea urmăreşte obţinerea de baze de date care să întrunească următoarele
calităţi: corectitudine, consistenţă, distribuire, flexibilitate.
Criteriile de clasificare pentru determinarea modelului logic de date optim
corespunzător unei baze de date sunt:
- Validare structurală - reflectarea consistentă a modului de utilizare a informaţiilor
în lumea reală;
- Simplitate - uşurinţa înţelegerii structurilor chiar de către utilizatori fără o
pregătire specială;
- Neredundanţă - eliminarea, pe cât posibil, a reprezentării de mai multe ori a
aceleiaşi informaţii sau a informaţiilor ce se pot deduce logic din altele;
- Distribuire - un model general aplicabil mai multor domenii, fără caracteristici
specifice unor aplicaţii sau tehnologii particulare;
- Extensibilitate - posibilitatea de a dezvolta noi componente cu efecte minime
asupra bazei de date existente;
- Integritate - consistenţa în modul de utilizare şi întreţinere a valorilor din
informaţii.
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.

27
Fig. 2.1
Crearea unui
proiect

Acest proiect 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);
• 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

28
î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:

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.

2.2 Crearea 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
29
acestora, editarea valorilor, redenumirea tabelelor si distrugerea. Comenzile pot fi date in
fereastra Command, sau folosind a doua posibilitate, fereastra Project manager.

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

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


putere deosebita, atat datorita eficientei si comoditatii cu care se lucreaza cu aceste
elemente, ci si datorita aspectului deosebit de placut pe care cele doua elemente il ofera
programelor de aplicatii si mediului FoxPro.

Formularul reprezinta un element FoxPro prin care se ofera utilizatorului


posibilitatea selectarii unei anumite optiuni, dintr-o multime finita de optiuni posibile,
afisata pe ecran total sau partial, urmand ca, in functie de selectarea facuta, sa se
declanseze anumite actiuni, corespunzatoarea optiunii alese.

30
Am preferat utilizarea meniului datorita interfatei mai prietenoase si a posibilatilor
inserari de iamgini. Fiecare formular contine la randul lui anumite “optiuni”.

3. DESCRIEREA APLICAŢIEI

Aplicţia se dechide cu un ecran de pornire, ecran ce conţine bara de meniuri.


Aplicaţia afişează permanent această bară de meniuri, cu ajutorul căreia se navigheayă
printre formularele aplicaţiei.
Modul de funcţionare este următorul: se apasa dubluclick pe fiserul service Teste
de Inteligenta.exe, nu este necesara instalarea unei variante de FOX PRO.
- Utilizand butoanele formularelor se navigheza intre paginile proiectului.

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:

31
Aplicatia are un meniu in partea de sus a ecranului compus din cinci operatii care
realizeaza o intretinere interactiva a bazelor de date.
Prima optiune de pe meniul principal este reprezentata de „Intrebare” in care se
realizeaza adaugarea si respectiv modificarea datelor unei intrebari si dea-semenea
stergerea unei intrebari din baza de date

Prima optiune este reprezentata de „Adaugare intrebare” care realizeaza inre-


gistrarea unei intrebari in baza de date. In cazul in care unul dintre campurile considerate
obligatorii nu este completat atunci va aparea une mesaj de aten-tionare si inregistrarea nu

32
se va efectua.Dar daca campurile sunt completate atunci inregistrarea se va efectua corect
si va aparea un mesaj pe ecran de in-formare precum ca inregistrarea s-a realizat cu
succes.

A doua optiune este reprezentata de „Modifica date intrebare” care realizeaza


modificarea datelor unei intrebari in cazul in care utilizatorul vrea sa mai aduge ceva la
intrebare sau a gresit intrebarea.Intai se realizeaza o cautare dupa codul intrebarii si apoi
se modifica datele dorite.Si in acest caz programul realizeaza cateva verificari.In cazul in
care un camp a fost sters de informatie si se doreste realizarea modificarii aceasta nu se va
realiza,in cazul celalalt in care toate campurile au fost modificate si exista informatie pe
fiecare camp modificarea se va realiza cu succes.
33
A treia optiune este cea de stergere a unei intrebari din baza de date care se va
realiza numai dupa ce a fost cautata regiunea in baza de date dupa codul sau.

34
La selectarea comenzii Cauta client se deschide forma prezentată în imaginea de
mai jos. Se introduce seria şi numărul actului de identitate şi se apasă butonul CAUTA
CLIENT. Dacă clientul nu există în baza de date se poate adăuga acesând butonul
ADAUGĂ.
A doua optiune de pe meniul principal este reprezentata de „Chestionar” in care
se realizeaza obtinerea unui chestionar, afisarea raspunsurilor oferite de utilizator si
deasemenea raspunsurile corecte date de utlizator.

Prima optiune este reprezentata de „Incepe testul” care realizeaza afisarea unor
intre-bari aleatoarea apasand prima data butonul ‚Start’ si apoi apasand butonul

35
‚Urmatoarea’ pana cand utilizatorul va considera ca e suficient setul de intrebari.
Principala problema pe care trebuie sa o respecte programul acesta este ca numarul de
intrebari sa fie in jurul numarului 100,pentru ca generarea codului se face in intervalul
[1,100].Daca nu aveti destule intrebari la apasarea butonului ‚Urmatoarea’ si intrebarea
nu se va schimba nu inseamna ca programul nu merge ci doar ca codul generat nu exista
in baza de date.

A doua opţiune din meniul Chestionar, este Rezultat care va afişa rezultatul
evaluării ultimului test parcurs, punctajul obţinut pentru fiecare întrebare precum şi
puncatjul total obţinut.

36
Optiunea a treia din meniu, Adauga Rezultat, deschide un formular prin
intermediul căruia putem asocia în baza de date a persoanelor testate, punctajul obţinut
pentru fiecare persoană testată (Doar dacă şi-a înregistrat datele personale în baza de date)

37
A patra optiune este reprezentata de „Afisare raspunsuri corecte” care afiseaza
raspunsurile corecte date de utlizator in urma parcurgerii chestionarului.

A cincea optiune este cea de afisare a tuturor raspunsurilor date de utilizator .

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


figura de mai jos, şi conţine opţiuni pur informative, pe baza de rapoarte:

38
Prima optiune este reprezentata de „Intrebari” afiseaza intrebarile si codul intrebarilor.

A doua optiune este reprezentata de „Raspunsuri corecte” care realizeaza afisare


raspunsurilor corecte la intrebarile din baza de date.

39
A treia optiune este reprezentata de „Persoane din BD” care realizeaza afisarea
persoanelor care s-au înscris în baza de date, care au parcurs testul de inteligenţă sau care
îl vor parcurge.

40
Opţiunile din meniul patru sunt operative, permiţând înregistrarea unuei persoane
venite, căutarea existenţei persoanei in baza de date precum şi afişarea rezultatelor
anterioare, înregistrate în baza de date.

Opţiunea Adaugă persoana 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 persoana se deschide forma prezentată în imaginea


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

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

La selectarea opţiunii Rezultate anterioare se va deschide un raport care permite


afişarea rezultatelor anterioare, înregistrate în baza de date.

Ultima optiune din meniul principa este reprezentata de iesirea din program.

42
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

În acest capitol sunt prezentate unele aspecte care sunt considerate mai importante în
legătură cu prezenta aplicaţie.
Am realizat aceasta aplicatie pentru distractie si pentru a verifica cunostintele generale
a utilizatorilor.Este o aplicatie complexa pentru ca spre deosebire de aplicatiile de pe
internet cu teste de inteligenta aceasta aplicatie ofera si posibi-litatea sa vada raspunsurile
pe care le-a dat si raspunsurile corecte. Din acest motiv aplicatia ofera posibilitatea ca
utilizatorul sa adauge intrebari pe care le doreste si sa le invete mai usor pentru un
examen sau un test prin simpla par-curgere a chestionarului.
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.
Am ales ca sistem de gestiune si realizare a aplicatiei Visual FoxPro 9, avand in vedere
maleabilitatea acestui sistem.

43
Datorită faptului că informaţiile pe care le prelucreayă nu sunt utilizate de o mare
varietate de persoane şi de module, iar datele de care are nevoie nu necesită informaţii
primite de la distanţă, aplicaţia nu a fost proiectată ca şi o aplicaţie distribuită.
Această abordare are ca principal avantaj viteza de acces la datele de stocare.
Datorită personalului restrâns care va utiliza programul, principalul dezavantaj, şi anume
acela al limitării la un anumit număr de clienţi ce poate fi suportat de aplicaţie şi a
volumului de date ce poate fi stocat în tabele, dispare.,,
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;

• 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

44
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ă..

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

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

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

46
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
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=""

47
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
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)

48
*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

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!..")

49
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
_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

50
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
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

51
_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
_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

52
_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
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'

53
_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,;
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)")

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

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

55
CUPRINS
I. INTRODUCERE...................................................................................................1
1.1. 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

56
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

57

Вам также может понравиться