Sunteți pe pagina 1din 17

Rent a Cart

Jun. 6
1








Proiect la disciplina Baze de date
Rent a Car
- Gestiune activitii unei firme de nchirieri auto -









ndrumtor: Student:
Prep. Ing. Crciun Elena Gina Lanciu Ctlina-Elena
Grupa 1131B,Calculatoare

Rent a Cart


Jun. 6
2


Cuprins

1.Descrierea temei .......................................................................................................................................... 3
2. Noiuni elementare de proiectare a bazelor de date ................................................................................ 3
2.1 Concepte generale .............................................................................................................................. 4
2.2 Concepte specifice Visual FoxPro ..................................................................................................... 4
3. Funcionalitate ........................................................................................................................................... 6
3.1 n cazul n care un utilizator folosete aplicaia : ............................................................................. 7
3.2 n cazul n care un administrator folosete aplicaia : ..................................................................... 8
4. Proiectare conceptual (Diagrama ER).................................................................................................... 13
5. Proiectare logic (Schema relaional) .................................................................................................... 13
5.1 Descrierea cmpurilor ...................................................................................................................... 14
5.2 Legturile dintre tabele .................................................................................................................... 15
6. Cocluzie ..................................................................................................................................................... 16
7. Bibliografie ................................................................................................................................................ 17











Rent a Cart


Jun. 6
3




1.Descrierea temei

Aplicaia const n realizarea unei baze de date n scopul gestionrii activitii unei firme de
nchirieri auto. Prin intermediul acestei aplicaii se realiza urmtoarele operaii:
operaia de inserare a informaiilor n tabele ;
operaia de tergere a nregistrrilor din baza de date ;
operaia de modificare a informaiilor din tabele ;
vizualizarea n diferite forme a datelor memorate.


2. Noiuni elementare de proiectare a bazelor de date

Pentru proiectarea bazei de date este necesar nelegerea exact a informaiilor ce se
doresc memorate i a modului n care un sistem de gestiune a bazelor de date relaional
memoreaz datele.
Procesul de realizare a unei baze de date parcurge urmtoarele faze:
analiza sistemului pentru care se construiete baza de date;
proiectarea i crearea structurii bazei;
ncrcarea datelor n baz;
exploatarea i ntreinerea bazei de date.

Faza proiectrii structurii bazei de date cuprinde urmtorii pai:
se determin scopul bazei de date;
se determin ce tabele sunt necesare;
se determin , pentru fiecare tabel , ce cmpuri sunt necesare;
se stabilesc legturile ntre tabele;
se rafineaz proiectul.
Rent a Cart


Jun. 6
4




2.1 Concepte generale

Sistem de gestiune a bazelor de date (SGBD) (Database Management System
(DBMS)) : un pachet de module software care permit crearea i ntreinerea unei baze de date.
Sistem de baze de date (Database System): soft-ul corespunztor unui SGBD mpreun cu
datele corespunztoare. Uneori sunt incluse i aplicaiile.
Date: fapte cunoscute care pot fi nregistrate i care au o semnificaie implicit.
Subiecte (mini-world, real-world):Anumite pri ale lumii reale despre care se memoreaz
date n baza de date.
Entitate: o realitate de sine stttoare. Poate fi considerat obiectul unei informaii. ntre
Entiti pot fi stabilite diverse legturi (asocieri, relaii).

2.2 Concepte specifice Visual FoxPro

Proiect VisualFoxPro :o colecie de fiiere, date, documente i obiecte salvate ntr-un
fiier cu extensia .pjx.
Baza de date (database) reprezint un set de tabele legate unele de altele prin intermediul
unor cmpuri comune. Un fiier baz de date are extensia .dbc i poate conine tabele, vederi,
conexiuni la surse de date la distan i proceduri stocate.
Tabelul (table)- structura fundamental a bazei de date. Tabelele stocheaz date n cadrul
nregistrrilor (linii, rnduri) ntr-o colecie de cmpuri (coloane). ntr-un tabel trebuie s se
stocheze date corespunztoare unui anumit tip de entiti sau unui tip de legturi ntre entiti.
Rent a Cart


Jun. 6
5

Descrierea datelor este dat de structura tabelelor. Aceasta const n combinaia dintre
numele tabelului i numele cmpurilor mpreun cu descrierea datelor memorate n fiecare cmp:
tip, dimensiune, etc.
Vedere (View) : tabel logic creat prin specificarea uneia sau mai multor operaii relaionale
care se aplic unuia sau mai multor tabele. Pot fi vederi construite pe baza tabelelor locale bazei de
date (local view) sau vederi care folosesc date din tabele asociate altor baze de date (remote view).
Conexiune : o definiie stocat ntr-o baz de date care specific numele unei surse de date.
Procedur stocat : o procedur stocat n baza de date. Procedura poate conine orice
comenzi i funcii permise.
Visual FoxPro lucreaz cu dou tipuri de tabele: tabele asociate unei baze de date i
tabele independente (( Free tables) sunt tabele care nu fac parte dintr-o baz de date i
sunt memorate n fiiere cu extensia .dbf.)
Interogarea (Query) : reprezint procesul de extragere a datelor dintr-o baz de date i de
prezentare a lor n vederea utilizrii. Poate fi privit ca un set specific de instruciuni care permite
extragerea repetat a anumitor date. In Visual Fox Pro, interogrile de tip Query sunt implementate
prin comenzi SQL SELECT salvate ca fiiere text cu extensia .qpr.
Formular (Form) fereastr cu zone predefinite pentru introducerea sau modificarea
datelor. Este un " filtru" vizual pentru datele respective i ofer avantajul unei mai bune organizri
i afiri a acestora. In Visual FoxPro formularele sunt utilizate pentru afiarea i editarea
coninutului tabelelor.
Raport (Report): prezentarea informaiilor generate ca rspuns la o interogare a bazelor
de date ntr-o form tiprit.
Etichete (Labels): rapoarte special formatate pentru a fi tiprite ca etichete.


Rent a Cart


Jun. 6
6


3. Funcionalitate

Proiectul este realizat n mediul de programare Visual FoxPro versiunea 9.0 de la Microsoft i este
intitulat INCHIRIERI_AUTO.pjx. Proiectul conine 5 tabele, 12 formulare i 4 rapoarte.
La rularea aplicaiei va aprea pe ecran un meniu pentru selectarea opiunii dorite ca cel din
imaginea urmtoare:


Acest formular , intitulat index.scx este formularul principal al aplicaiei i conine 4 butoane de
selecie a opiunii dorite pentru gestiunea bazei de date . Toate butoanele sunt active pe toat perioada
rulrii, iar n momentul in care ducem cursorul mouse-ului pe unul din ele, aceasta i schimb stilul.
Toate formularele conin n partea din stnga o imagine cu un autovehicul marca Audi, model R8
i cu un label care conine numele firmei Rent a Car,i cte un buton de Ieire (thisform.Release) prin
care se poate nchide formularul curent.
Aplicaia este conceput astfel nct s poat fi folosit atat de un client ct i de un
administrator.



Rent a Cart


Jun. 6
7

3.1 n cazul n care un client folosete aplicaia :

Clientul poate face click pe butonul intitulat Client ,buton care prin comanda DO FORM
client.scx va deschide un alt formular care conine un pageframe cu patru cadre care au semnificaia dup
cum urmeaz:
Primul cadru este cel de Generaliti, care conine informaii despre serviciul de nchirieri
auto. Informaiile sunt puse ntr-un format de tip jpg i ncadrate corespunztor n cadru.
Al doilea cadru ,intitulat Cutare main ofer posibilitatea clientului s poat verifica
dac autovehiculul cu caracteristicile dorite alese de el ,printr-o serie de Combo Box-uri ,
se afl sau nu n baza de date .Prin selectarea butonului Cauta , aplicaia face o serie de
verificri i ntoarce un mesaj corespunztor. Codul aferent cutarii este :
if used('SomeAlias')
select SomeAlias
else
select 0
use Autovehicul AGAIN ALIAS SomeAlias
ENDIF
IF (marca=thisform.pageframe1.page2.combo1.Value AND
modelul=thisform.pageframe1.page2.combo2.Value AND
caroserie=thisform.pageframe1.page2.combo3.Value AND
culoare=thisform.pageframe1.page2.combo4.Value AND
combustibil=thisform.pageframe1.page2.combo5.Value AND
an_fab=thisform.pageframe1.page2.combo6.Value AND
viteza=thisform.pageframe1.page2.combo7.Value AND total>=1) THEN
thisform.pageframe1.page2.label10.Caption="Modelul solicitat se afla pe stoc!"
ELSE
thisform.pageframe1.page2.label10.Caption="Modelul solicitat nu se afla pe stoc,
momentan!"
ENDIF

Al treilea cadru nregistrare client conine o serie de textbox-uri cu label-urile
corespunztoare care formeaz un tip de formular n care un client se poate nregistra n
baza de date a aplicaiei prin simpla apsare a butonului nregistreaz, care are la baz
urmtorul cod:
if used('SomeAlias')
select SomeAlias
else
select 0
use Client AGAIN exclusive ALIAS SomeAlias
ENDIF
IF(VAL(thisform.pageframe1.page3.text3.Value)>0 AND
VAL(thisform.pageframe1.page3.text4.Value)>0 AND
VAL(thisform.pageframe1.page3.text4.Value)<13 AND
Rent a Cart


Jun. 6
8
VAL(thisform.pageframe1.page3.text5.Value)>0 AND
VAL(thisform.pageframe1.page3.text5.Value)<32 AND
VAL(thisform.pageframe1.page3.text6.Value)>0 AND
VAL(thisform.pageframe1.page3.text6.Value)<2013)
APPEND BLANK
replace nume WITH thisform.pageframe1.page3.text1.Value
replace prenume WITH thisform.pageframe1.page3.text2.Value
replace ddn WITH DATE (VAL(thisform.pageframe1.page3.text6.Value) ,
VAL(thisform.pageframe1.page3.text5.Value),
VAL(thisform.pageframe1.page3.text4.Value))
replace telefon WITH thisform.pageframe1.page3.text4.Value
replace adresa WITH thisform.pageframe1.page3.edit1.Value
MESSAGEBOX("Inregistrare cu succes!")
ELSE
MESSAGEBOX("Date incorecte!")
ENDIF

Ultimul cadru intitulat Oferte conine o serie de informaii despre cteva maini care se
afl n baza de date pentru nchiriere ,dar i label-uri cu numele i tariful de nchiriere pe o
zi a unui autovehicul.

3.2 n cazul n care un administrator folosete aplicaia :

Acesta are acces la toate datele, inclusiv la cele menionate mai sus n cazul clientului, dar n
momentul n care face click pe butonul Administrator este obligat s cunoasc un nume de utilizator i
o parol ,din motive de securitate a datelor din baza de date, pentru a se putea loga.
Formularul de logare este prezentat n figura urmtoare:

Pentru a putea face toate verificarile necesare unui formular de autentificare a fost necesar creerea
unui tabel cu utilizatori care s conin utilizatorul i parola acestuia.
Rent a Cart


Jun. 6
9

n cazul n care utilizatorul sau parola este introdus greit se va afia un messagebox cu un mesaj
ca n figura urmtoare:


Dac utilizatorul i parola corespund atunci se afieaz un messagebox cu mesajul Bine ai venit
urmat de numele utilizatorului i se deschide urmtorul formular:


Formularul de administrare conine 4 butoane n care administratorul poate insera, terge,
modifica i vizualiza tabelele din baza de date.
Pentru Autovehicul, formularul are forma:

Rent a Cart


Jun. 6
10



Inserarea unui nou autovehicul se face prin completarea fiecrui testbox iar apoi se face
click pe butonul Insereaz. Dac datele sunt introduse corect atunci inserarea se face cu
succes, altfel se afieaz un messagebox cu eroarea respectiv.
if used('SomeAlias')
select SomeAlias
else
select 0
use Autovehicul AGAIN ALIAS SomeAlias
ENDIF
IF (val(thisform.pageframe1.page1.text6.Value)>0 and
val(thisform.pageframe1.page1.text7.Value)>0 and
val(thisform.pageframe1.page1.text8.Value)>0 and
val(thisform.pageframe1.page1.text9.Value)>0)
APPEND BLANK
replace marca WITH thisform.pageframe1.page1.text1.Value
replace modelul WITH thisform.pageframe1.page1.text2.Value
replace caroserie WITH thisform.pageframe1.page1.text3.Value
replace culoare WITH thisform.pageframe1.page1.text4.Value
replace combustibil WITH thisform.pageframe1.page1.text5.Value
replace an_fab WITH VAL(thisform.pageframe1.page1.text6.Value)
replace viteza WITH VAL(thisform.pageframe1.page1.text7.Value)
replace pret WITH VAL(thisform.pageframe1.page1.text8.Value)
replace total WITH VAL(thisform.pageframe1.page1.text9.Value)
thisform.pageframe1.page1.label10.Caption="Adaugare cu succes!"
ELSE
Rent a Cart


Jun. 6
11
thisform.pageframe1.page1.label10.Caption="Date introduse
incorect!"
ENDIF

tergerea datelor este mult mai simpl dect inserarea deoarece se lucreaz direct cu
datele din baza de date prin completarea corespunztoare a cmpului ControlSource,care
specific sursa datei prin care un obiect este legat,al ComboBox-ului.
CLOSE TABLES
OPEN DATABASE auto
USE Autovehicul EXCLUSIVE
DELETE FOR marca = thisform.pageframe1.page2.text1.value AND modelul =
thisform.pageframe1.page2.text2.value
PACK
thisform.pageframe1.page2.label10.Caption="Stergere cu succes!"

Modificarea datelor. Nu mai e necesar un buton de modificare deoarece controalelor text
nu mai au proprietatea de read-only, iar astfel se pot modifica datele din tabelul bazei de
date iar modificrile sunt permanente.
Vizualizarea datelor. Aici remarcm faptul c aceast afiare este realizat de ctre un
control grid ce are structura tabelului din baza de date. Acest control este setat pe read-
only pentru a nu se putea modifica datele din tabel.




Rent a Cart


Jun. 6
12

Rapoartele


Efectund click pe unul din butoane se va deschide o fereastr cu datele dorite. Pentru a nchide
sau minimiza fereastra se acceseaz butoanele din partea dreapta-sus a formei. Aceast variant
realizeaz deschiderea celor patru rapoarte existente n baza de date. . Codul pentru vizualizarea unui
raport este: REPORT FORM autovehicul.frx preview

Rent a Cart


Jun. 6
13

4. Proiectare conceptual (Diagrama ER)

Diagrama entitate-relatie a bazei de date este urmatoarea:


5. Proiectare logic (Schema relaional)

Baza de date conine cinci tabele: Autovehicul, Client,AgentVnzri, Contractnchiriere,
Utilizatori

Autovehicul(id_auto, marca, modelul, caroserie, culoare, combustibil, an_fab, viteza, pret)
Client ( id_client, nume, prenume, adresa, telefon, ddn )
AgentVnzri ( id_agent, nume, prenume, adresa, telefon, ddn, tip_post, data_ang)
Contractnchiriere ( id_auto, id_agent, id_client, data_inc, data_rest, nr_zile, total)
Rent a Cart


Jun. 6
14

5.1 Descrierea cmpurilor

Tabelul AgentVnzri
Denumire Tip Semnificaie Observaii
Id_agent Integer(AutoIncrement
(4))
Id-ul unic al agentului
de vanzari
Cheie primar
Nume Character (20) Numele agentului
Prenume Character (20) Prenumele agentului
Telefon Character (13) Telefonul agentului
Tip_post Character (100) Ce tip de post are
agentul

ddn Date(8) Data de nastere a
agentului

Data_ang Date(8)
adresa Character (200)


Tabelul Autovehicul
Denumire Tip Semnificaie Observaii
Id_auto Integer(AutoIncrement
(4))
Id-ul unic al
autovehiculului
Cheie primar
Marca Character (20) Marca autovehiculului
Modelul Character (20) Modelul autovehiculului
Caroserie Character (10) Tipul caroseriei
Culoare Character (15) Culoarea
autovehiculului

Combustibil Character (10) Tipul de combustibil
An_fab Integer(4) Anul de fabricatie al
mainii

Viteza Numeric(3) Viteza maxim
Pret Numeric(5) pretul de inchiriere al
autovehiculului pe zi

Total Numeric(3) Numarul total de
autovehicule




Rent a Cart


Jun. 6
15

Tabelul Client
Denumire Tip Semnificaie Observaii
Id_cient Integer(AutoIncrement
(4))
Id-ul unic al clientului Cheie primar
Nume Character (20) Numele clientului
Prenume Character (20) Prenumele clientului
adresa Character (200) Adresa clientului
telefon Character (13) Telefonul clientului
ddn Date(8) Data de natere a
clientului


Tabelul Contractnchiriere
Denumire Tip Semnificaie Observaii
Id_agent Integer (4) Id-ul unic al agentului
de vanzari
Cheie straina
Id_auto Integer (4) Id-ul unic al
autovehiculului
Cheie straina
Id_client Integer (4) Id-ul unic al clientului Cheie straina
Data_inc Date(8) Data inceperii
contractului

Data_rest Date(8) Data restituirii
Nr_zile Numeric(4) Numrul total de zile
nchiriate

Total Numeric(5) Suma total

Tabelul Utilizatori
Denumire Tip Semnificaie Observaii
User Character (10) Numele utilizatorului Cheie primar
pass Character (10) parola

5.2 Legturile dintre tabele

ntre Autovehicul i Contractnchiriere (id_auto->id_auto) legtur unu la mai muli;
ntre Client i Contractnchiriere (id_client->id_client) legtur unu la mai muli;
ntre AgentVnzri i Contractnchiriere (id_agent->id_agent) legtur unu la mai muli.


Rent a Cart


Jun. 6
16



6. Cocluzie

Pentru realizarea acestui proiect au fost folosite diverse controale, dintre care amintim:
Label, Text, Button, Combo, Grid, Pageframe etc. Aceste controale sunt utilizate n cadrul evenimentelor:
Load, Click, etc. Scopul aplicaiei de a fi uor de utilizat i neles a fost atins, programul reflectnd ct se
poate de real gestiunea activitii unei firme de nchirieri auto.
n urma realizarii proiectului am reusit sa aprofundez cunostiintele referitoare la baze de
date i am reusit s m familiarizez mai bine cu mediul de programare Visual FoxPro 9.0.
Proiectul poate fi mbuntit prin repararea unor posibile bug-uri dei acestea au fost
verificate, prin mbuntirea design-ului aplicaiei, prin adugarea a noi butoane i operaii etc.


Rent a Cart


Jun. 6
17

7. Bibliografie


http://eed.usv.ro/~mdanub/cursuri/Baze_de_date/
http://www.scribd.com/doc/11341838/Car-Rental-System-Documentation
http://www.autoboca.ro/
http://en.wikipedia.org/wiki/Wiki
Analiza, proiectarea si implementarea bazelor de date - aplicatii in Visual
FoxPro
Comentarii la FoxPro. Teste si aplicatii, Elvira Nicoleta Bazdoaca, Nicu
George Bazdoaca, Stoica Gradinaru, Adriana Giju, Delia Magdalena Ruicu, Rodica
Paunescu

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