disertate 2012 facuta de mine
Post on 06-Apr-2018
218 Views
Preview:
TRANSCRIPT
-
8/3/2019 Disertate 2012 facuta de mine
1/78
[Type the documenttitle][Type the document subtitle]
[Type the abstract of the document here. The abstract is typically a short
summary of the contents of the document. Type the abstract of the document
here. The abstract is typically a short summary of the contents of the document.]
[Year]
Florin Andreai
Facultatea De Matematic i Informatic, Universitatea Bucureti
[Pick the date]
-
8/3/2019 Disertate 2012 facuta de mine
2/78
pg. 1
CUPRINS DISERTATIE
INTRODUCERE ............................................................................................ 2
ALEGEREA TEMEIAGENIE IMOBILIAR .............................................................................................. 2
TEHNOLOGII FOLOSITE ............................................................................ 4
INTRODUCERE N BAZE DE DATE....................................................................................... 4MIC GHID MYSQL.......................................................................................................... 11
TEHNOLOGII .NET DE ACCESARE A BAZEI DE DATE I DEZVOLTARE A APLICAIEI................. 15
SCHEMA RELAIONAL ......................................................................... 24
TABELELE IMPLICATE..................................................................................................... 24MODUL DE GNDIRE BAZAT PE CEEA CE AVEM LA NDEMN.............................................. 34
MANUALUL UTILIZATORULUI ................................................................. 35
PROCESUL DE INSTALARE.............................................................................................. 35RULARE INTERFA UTILIZATORI..................................................................................... 35RULARE INTERFA MANAGER........................................................................................ 46
CODUL DIN SPATELE AFIRII ............................................................. 56
LOGIN.CS ..................................................................................................................... 58ANGAJATI.CS ................................................................................................................ 62MANAGER.CS ............................................................................................................... 68RAPOARTEANGAJATI.CS................................................................................................ 70GRAFIC.CS ................................................................................................................... 75
BIBLIOGRAFIE .......................................................................................... 77
-
8/3/2019 Disertate 2012 facuta de mine
3/78
pg. 2
Introducere
Alegerea Temei Agenie Imobiliar
Am ales aceast tem prin prisma faptului ca a fi agent imobiliar ntr-un ora maresau ntr-o localitate din ar este o activitate destul de des ntlnit i cror multe
persoane, care tiu s se descurce, le poate aduce n scurt timp un profit frumuel care
sa merite ntreaga investiie. Se tie totodat c datorit crizei care exist n ar
lumea s-a orientat mai mult ctre cldirile cu pre mic sau ctre investiiile de nchiriere
sau de subnchiriere.
Cu acestea n minte am pornit s m gndesc la ce anume a avea nevoie pentru
a realiza acest proiect i ce anume ar trebui s fac ca s-l fac realizabil. Cum ideea erai este aceea de a scoate un profit repede si de a crea o relaie cu clientul care s
aduc beneficii de ambele pri n timp am ales s merg pe direcia de nchiriere a
locaiilor.
Ca orice firm care se respect exist cteva segmente pe care se va orienta i
acest program. Pentru nceput avem un Super-utilizator cruia i-am spus Manager i
care va avea acces la anumite rapoarte privind angajaii, activitatea firmei si de ce nu la
proprietile care aduc sau nu profit firmei imobiliare. n primul rnd se tie c
managerul trebuie s gestioneze activitatea firmei astfel nct cheltuielile i preul cerut
s aduc intr-adevr profit firmei. A doua parte a firmei am gndit-o ca sa aduc o
oarecare interaciune a agentului imobiliar cu programul de gestiune, astfel nct eu ca
i ef s pot gestiona activitatea firmei mele i de ce nu s pot urmri pe baza datelor
introduse de acestea ce anume se ntmpla.
Pornind de la aceste dou direcii vom avea:
Managerul care:
Poate crea uniti sau filiale noi pe care dorete s le gestioneze i care astfel ivor permit s exist activitatea firmei mai mult n teritoriu, sau s deschid mai multe
filiale chiar acolo n oraul n care opereaz firma, dar la adrese diferite;
-
8/3/2019 Disertate 2012 facuta de mine
4/78
pg. 3
Poate decide ce angajai mai rmn i care angajai nu mai rmn si totodat s-i
gestioneze i astfel cnd va angaja pe cineva se va crea un nou user in baza de date
care s aib acces la ea i s se conecteze n funcie de postul ocupat;
Poate s gestioneze anunurile care sunt postate pn n acel moment n pres
astfel nct s gestioneze apariia acestora, frecvena sau modul n care se vor afia +
numr de caractere care tim c atunci cnd facem publicare ntr-un ziar conteaz;
Raportarea care desigur n activitatea unui manager este o activitate separat
n funcie de rapoartele pe care le scoate poate vedea ce i cum merg cu adevrat
lucrurile n firm. Raportarea se axeaz pe angajai, anunuri, proprieti si desigur
profit, care trebuie s existe cu adevrat.
Angajatul care:
Trebuie s vad proprietile care exist n gestiunea firmei , astfel nct s nu secreeze duplicate i s fie de un real ajutor noua proprietate pe care el o introduce;
Are acces la clienii pe care el ii aduce n firm i care permite astfel firmei sa-i
aduc profit. Totodat se face aici i indexare dup tipul numrul de identificare al celui
logat. Astfel dac dam s introducem un client nou acela va reprezenta un client nou
adus de mine, cel care sunt logat in aplicaia mea de gestiune;
nchirieri putem vedea ce proprietate este sau nu nchiriat, proprietate care s
ne permit s vedem de cnd si pn cnd a fost nchiriat i cum ar trebui s fiegestionat pe viitor n funcie de acest lucru;
Vizionrile care se fac ntr-o anumit locaie astfel nct mai ncolo, la rapoarte
putem genera un raport pentru client ca s-i artm ci clieni am dus pentru vizionare
la el, s-i dovedim productivitatea noastr clientului;
Proprietari aici n modelul nostru conceptual am creat o seciune a proprietarilor
pentru c uneori conteaz proprietarul n sine pentru c acesta la final poate deine mai
multe proprieti pe care dorete s le gestioneze firma noastr pentru nchiriere;
Seciunea de rapoarte, dar de data asta privit din punctul de vedere al
angajatului, care dorete sa-i gestioneze singur activitatea pe care o ntreprinde i
astfel va putea scoate rapoarte pentru: proprieti sau proprieti date i desigur pentru
numrul de contracte pe care le-a fcut, lucru care ii va permite s-i gestioneze singur
i activitatea lui.
-
8/3/2019 Disertate 2012 facuta de mine
5/78
pg. 4
Tehnologii Folosite
Introducere n Baze de date
Introducere n baze de date
n ultimii cincizeci de ani, producia i utilizarea tehnicii de calcul harware i
software a cunoscut o dezvoltare dramatic. Ea reprezint o parte semnificativ din
produsul naional brut al rilor industrializate; n SUA, de exemplu, peste 50% din
capitalul investit este cheltuit pe tehnologie de calcul. Costul informaiei" a ajuns la 1
trilion de dolari SUA (aproximativ produsul naional brut al Marii Britanii) n anul 2000 i
este estimat la peste 1,5 trilioane n 2005 (prognoz realizat de Michael Spindler fost
preedinte la Apple Computer).Produsele program au depit de mult teritoriul centrelor de calcul. Ele sunt
ncorporate i controleaz echipamente industriale (linii tehnologice automate, maini
cu comand numeric, roboi), mijloace de transport i de comunicaii, tranzacii
financiare i bancare, reele energetice, sisteme de aprare naional, etc. Odat cu
perfecionarea tehnicilor virtual reality i multimedia, calculatorul este tot mai folosit ca
mijloc didactic sau de divertisment i n activiti de concepie.
Tehnologia informaiilor face permanente modificri mijloacelor de munc n
ntreaga lume. Informaii care erau altdat stocate n depozite pline de dulapuri pot fi
accesate acum la o singur apsare a butonului mouse-ului. Pentru a stoca informaii n
orice mediu imaginabil n zilele noastre sunt folosite sisteme de baze de date. De la
bazele mari de date, cum ar fi sistemele de rezervare a biletelor ale companiilor aeriene
i pn la colecia de fie dintr-un cabinet medical, sistemele de baze de date sunt
folosite pentru memorarea i distribuirea datelor de care ncep s depind vieile
noastre. Pn n urm cu civa ani, sistemele mari de baze de date puteau fi executate
numai pe calculatoare de tip mainframe. n mod obinuit, era foarte costisitor s fie
proiectate, achiziionate i ntreinute aceste maini. O dat cu apariia calculatoarelor
din clasa staiilor de lucru, care sunt puternice i ieftine, programatorii au
posibilitatea de a proiecta rapid i ieftin produse software pentru ntreinerea i
distribuirea datelor.
-
8/3/2019 Disertate 2012 facuta de mine
6/78
pg. 5
Cel mai folosit model de stocare a datelor este baza de date relaional. Acest
nou model s-a dezvoltat pornind de la un articol, A Relational Model of Data for Large
Shared Data Banks (Un model relaional al datelor pentru bnci mari de date folosite n
comun), scris de Dr. E. F. Codd n anul 1970. Ideea lui Codd pentru un sistem de
administrare a bazelor de date relaionale folosete conceptele matematice de
algebr relaional pentru a grupa datele n mulimi i a stabili relaii ntre
submulimile (domeniile) comune. n plus fa de dezvoltarea unui model de baz de
date relaional, 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 fcut posibil ca
aplicaii ieftine, uor de folosit, s permit utilizatorilor crearea documentelor i
administrarea datelor rapid i corect. Utilizatorii sau obinuit s modernizeze continuusistemele, deoarece rata schimbului a fost echilibrat rapid de
scderea preului celor mai avansate sisteme.
A doua tehnologie important a fost dezvoltarea reelelor locale de calculatoare
(LAN). Dei utilizatorii erau obinuii cu terminalele conectate la calculatorul mainframe
comun, acum fiierele procesate puteau fi stocate local i accesate de la orice
calculator ataat n reea. Totodat, cantiti mari de date puteau fi transferate la
serverele de date departamentale. n acest context, sistemul, denumit client/serverdeoarece procesarea este separat ntre calculatoarele client i un server de baze de
date, constituie o modificare radical de la programarea aplicaiilor bazat pe
calculatoarele mainframe. Aceast arhitectur este total recursiv, pe rnd serverele
putnd deveni clieni i cere servicii de la alte servere din reea. Datorit puterii crescute
a hardware-ului calculatoarelor personale, informaiile critice (importante) ale bazei de
date pot fi memorate pe un server independent, care poate fi nlocuit mai trziu cu
foarte puine (sau chiar fr) modificri.
Ultima dintre arhitecturile dezvoltate este cea a aplicaiilor distribuite pe web.
Clientul devine o aplicaie cat mai simpla posibil, accesat de obicei printru banal
browser de internet. Serverul de date si cel de aplicaii 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.
-
8/3/2019 Disertate 2012 facuta de mine
7/78
pg. 6
Complexitatea actual a aplicaiilor de management al bazelor de date face
necesar o combinaie a procesrii tranzaciilor on-line, a ncrcrii i a creterii
sprijinului decizional. n scopul satisfacerii acestor necesiti, 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 muli). De asemenea, sunt
necesare tehnologii pentru baze de date proiectate pentru a maximiza capacitile
configuraiei hardware/software disponibile (incluznd arhitecturi simplu i multi-
procesor), precum i pentru valorificarea unor arhitecturi hardware (cum ar fi clustere
cuplate larg i maini paralele puternice). Serverele de date de astzi se apropie de
aceste cerine - o arhitectur paralel (de nou generaie) a bazelor de date care
furnizeaz scalabilitate, manevrabilitate i performan; o regie minimal a sistemului
de operare; i o distribuire automat a ncrcrilor de lucru. Arhitectura este proiectatpentru a utiliza ct mai bine resursele hardware i poate fi reconfigurat dinamic on-line
pentru a urmri cererile n schimbare.
Performana este aspectul critic al succesului, i avnd n vedere creterea
dramatic a numrului de utilizatori, date fiind aplicaiile de comer electronic i noile
modele de calcul, presiunea exercitat asupra bazelor de date este mai mare ca
oricnd.
Ce este o baz de date? Dar un sistem de gestiune a bazelor de date?
Baza de date reprezint una sau mai multe colecii de date aflate n
interdependen mpreun cu descrierea datelor i a relaiilor dintre ele. Colecia de
date reprezint un ansamblu de date organizat dup anumite criterii. Descrierea datelor
se ntlnete sub denumirile de catalog de sistem, dicionar de date sau meta-date
ceea ce reprezint date despre date. Relaiile logice reprezint asociaiile dintre
mai multe entiti. 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 aplicaie, utilizatorii vd doar definiia extern a unui obiect fr a
cunoate modul n care e definit acesta i cum funcioneaz. n acest mod, definiia
intern a obiectului poate fi modificat fr a afecta utilizatorii acestuia dac nu se
-
8/3/2019 Disertate 2012 facuta de mine
8/78
pg. 7
modific definiia extern. De exemplu, dac sunt adugate noi structuri de date
sau sunt modificate cele existente, atunci programele aplicaie 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 fiiere sunt
privite n ansamblu, eliminndu-se pe ct posibil informaiile redondante. De asemenea,
se permite accesul simultan la aceleai date, situate n acelai loc sau distribuite
spaial, a mai multor persoane de pregtiri diferite, fiecare cu stilul personal de lucru.
Sistemul de programe care permite construirea unor baze de date, introducerea
informaiilor n bazele de date i dezvoltarea de aplicaii privind bazele de date se
numete 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 obinuit de exprimare, pentru a obine informaii,utilizatorul fcnd abstracie de algoritmii aplicai privind selecionarea 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 constrngerile asupra datelor.
2. extragerea, inserarea, tergerea i actualizarea datelor din baza de date cuajutorul unui limbaj de manipulare a datelor (DML) care ofer o facilitate de interogare
general a datelor, denumit
limbaj de interogare. Acest limbaj elimin dificultile sistemelor bazate pe fiiere
unde
utilizatorul este constrns s lucreze cu un set fix de interogri pentru a evita
apariia de
programe noi ce creeaz probleme majore privind gestionarea lor.Limbajul ofer accesul controlat la baza de date furniznd:
a) un sistem de securitate ce previne accesarea bazei de date de utilizatori
neautorizai;
b) un sistem de integritate ce menine concordana datelor (coerena);
-
8/3/2019 Disertate 2012 facuta de mine
9/78
pg. 8
c) un sistem de control al concurenei ce permite accesul partajat la baza de
date;
d) un sistem de control al refacerii ce permite restaurarea bazei de date ntr-o
stare precedent
coerent ca urmare a unei defeciuni hardware sau software;
e) un catalog accesibil utilizatorilor ce conine descrieri ale datelor din baza de
date.
Spre deosebire de limbajele de programare obinuite, n care declararea datelor
este fcut n acelai loc cu prelucrarea lor, bazele de date prevd limbaje separate
pentru declarare i prelucrare. Acestea, deoarece ntr-un program obinuit datele exist
efectiv numai pe timpul rulrii programului, pe cnd ntr-o baz de date, n general,
datele sunt definite o dat pentru totdeauna i nu mai sunt necesare redefiniri ulterioarela fiecare prelucrare.
Limbajele DDL i DML sunt, de cele mai multe ori, extinderi ale unor limbaje de
programe numite limbaje gazd. Compilarea succesiunilor de comenzi pentru
descrierea datelor sau pentru operarea cu date se reduce, n acest caz, la o
precompilare, adic transformarea acestor comenzi ntr-o succesiune de instruciuni ale
limbajului gazd care, prin executare, s dea efectul dorit. O alt modalitate de operare
este aceea a transformrii comenzilor n lansri de programe executabile. Comenzilesunt descrise prin sintaxe specifice fiecrui tip de SGBD, iar interpretarea i activarea
lor se face automat, prin rutine scrise, de obicei, n limbajul gazd. n acest fel, calitile
SGBD-ului depind n mare msur de calitile limbajului gazd utilizat.
Componentele unui SGBD sunt:
a. Hardware
b. Software
c. Dated. Proceduri
e. Resurse umane
a. Componenta hardware poate fi reprezentat de un singur calculator personal,
un singur calculator mainframe sau o reea de calculatoare. De obicei se aplic
urmtoarea schem ntr-o reea de calculatoare:
-
8/3/2019 Disertate 2012 facuta de mine
10/78
pg. 9
1 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 locaii pe care se afl programele front-
end adic partea din SGBD ce constituie interfaa cu utilizatorul. n aceast schem,
numit client-server, programele back-end reprezint serverul iar cele front-end
reprezint clienii.
b. Componenta software - cuprinde:
1. programele SGBD;
2. programele aplicaie - n limbaje de programare de generaia a III-a (C, Pascal,
Cobol) sau SQL ncorporat ntr-un limbaj de generaia a III-a;
3. sistemul de operare;
4. software de reea.SGBD-ul poate avea ncorporate instrumente din generaia a IV-a, cum ar fi SQL
ce permit:
dezvoltarea rapid de aplicaii;
mbuntirea semnificativ a productivitii;
realizarea unor programe uor de ntreinut.
c. Datele - acioneaz ca o punte ntre componentele main (hardware i
software) i componenta uman. Baza de date conine att datele operaionale (setulde nregistrri pe care se lucreaz) ct i metadatele. Structura bazei de date e
numit schem.
d. Procedurile - reprezint instruciunile 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 aplicaie sau a unei funcii SGBD;
4. efectuarea de copii de siguran;
5. tratarea defeciunilor hard i soft;
6. modificarea structurii unui tabel, reorganizarea bazei de date, mbuntirea
performanelor, arhivarea datelor.
e. Resursele umane sunt reprezentate de:
-
8/3/2019 Disertate 2012 facuta de mine
11/78
pg. 10
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. Proiectanii de baze de date - ei pot fi:
- Proiectant de BD logice:
- identific datele (entiti i atribute)
- identific relaiile dintre date
- identific constrngerile
- 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 constrngeri- selecteaz structuri de stocare i metode de acces specific
- asigur securitatea datelor
4. Programatorii de aplicaii
5. Utilizatorii finali
Dintre sarcinile pe care le ndeplinete gestionarul bazelor de date fac parte i
urmtoarele:
Reducerea redundanelor prin identificarea informaiilor comune i alctuireacorespunztoare a aplicaiilor.
Eliminarea inconsistenelor ce rezult din reducerea redundanelor.
Utilizarea simultan a datelor de mai muli utilizatori.
Standardizarea informaiilor.
Asigurarea securitii bazelor de date, n sensul acordrii i urmririi modului de
acces al utilizatorilor la diferite pri componente ale bazelor de date.
Asigurarea integritii bazelor de date, n sensul pstrrii corectitudinii
informaiilor coninute n baza de date prin testele aplicate datelor introduse n aceasta.
Asigurarea sincronizrii n cazul utilizrii bazei de date simultan de mai muli
utilizatori sau a distribuirii informaiei pe mai multe sisteme.
Cele mai multe SGBD-uri conin i o colecie de utilitare folosite n diferitele
aplicaii, cum sunt:
-
8/3/2019 Disertate 2012 facuta de mine
12/78
pg. 11
procesoare pentru limbaje de cereri
editoare de rapoarte
subsisteme de reprezentri grafice
posibiliti de lucru tabelat
procesoare de limbaje naturale
programe statistice
posibiliti de copiere
generatoare de aplicaii (procesoare inteligente de tip "4GL")
i alte posibiliti de dezvoltare a unor aplicaii de tip CASE (computer-aide
software engineering)
Pentru a uura munca administratorului de sistem, un SGBD conine o serie de
componente ce permit: ncrcarea (crearea unei versiuni iniiale a bazei de date plecnd de la unul sau
mai multe fiiere);
salvarea i rencrcarea (efectuarea de copii periodice i posibilitatea refacerii
bazei de date plecnd de la aceste copii);
reorganizarea (rearanjarea datelor pentru a obine performane superioare);
statistici, analize i altele.
Mic ghid MySql
Introducere
MySql este un sistem de gestiune a bazelor de date. Mai mult chiar, MySql este
un sistem de gestiune a bazelor de date relaionale i este distribuit n regim Open
Source.
MySql software este Open Source a ceasta nseamn c MySql poate fi
descrcat de pe Internet, poate fi folosit fr a plti ceva i, dac se dorete, codul
surs poate fi studiat i i se pot aduce modificri necesare.Serverul de baze de date MySql este foarte rapid, fiabil i uor de utilizat. Iniial a
fost dezvoltat pentru a manipula baze de date de dimensiuni mari mult mai rapid dect
soluiile existente. Conectivitatea sa, viteza i securitatea fac ca Serverul MySql s fie
potrivit pentru accesarea bazelor de date prin Internet.
-
8/3/2019 Disertate 2012 facuta de mine
13/78
pg. 12
MySql Database Software este un sistem client/server ce const ntr-un server
MySql multithreaded care suport diferite programe client i biblioteci, unelte
administrative i o gam larg de interfee pentru programarea aplicaiilor (Application
Programming Interfaces APIs).
Caracteristici de baz ale MySql
- Scris n C i C++;
- Testat cu o gam larg de compilatoare diferite;
- Funcioneaz pe diferite platforme;
- Dispune de API pentru C, C++, Eiffel, Java, Perl, PHP, Pyton, Ruby i Tcl;
- Complet multi-threaded folosind thread-uri de kernel. Acest lucru nseamn c poate
lucra cu uurin pe mai multe procesoare dac sunt disponibile
- Ofer motoare tranzacionale i non-tranzacionale de stocare a datelor;
- Un sistem de alocare a memoriei foarte rapid i bazat pe thread-uri;
- Join-uri ale tabelelor foarte rapide;
- Folosete tabele temporare stocate n memorie
- Funciile SQL sunt implementate folosind o bibliotec de clase optimizat i sunt
foarte rapide. De obicei, nu are loc alocare a memoriei dup iniializarea
interogrilor;- Serverul este disponibil ca program separat ce poate fi folosit ntr-un mediu de reea
de tip client/server. De asemenea, este disponibil i ca bibliotec ce poate fi inclus
n aplicaii de sine stttoare.
- MySql dispune de multe tipuri de date pentru coloane: numere ntregi de 1,2,3,4 i 8
byte lungime cu/fr semn, FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB,
DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET, ENUM, i tipuri geometrice
OpenGIS;- nregistrri cu lungime fix i cu lungime variabil.
Comenzi i funcii
- Suport complet pentru operatori i funcii n clauzele SELECT i WHERE ale
interogrilor.
-
8/3/2019 Disertate 2012 facuta de mine
14/78
pg. 13
- Suport pentru clauzele GROUP BY i ORDER BY, i pentru funcii de grup
(COUNT(), COUNT(DISTINCT ...), AVG(), STD(), SUM(), MAX(), MIN(), i
GROUP_CONCAT()).
- Suport pentru LEFT OUTER JOIN i RIGHT OUTER JOIN.
- Suport pentru alias-uri de tabele i coloane.
- DELETE, INSERT, REPLACE i UPDATE returneaz numrul de rnduri
modificate.
- Comanda SHOW specific pentru MySql poate fi folosit pentru a obine informaii
despre bazele de date, tabele i indeci.
- Numele funciilor nu intr n conflict cu numele tabelelor sau ale coloanelor.
- ntr-o aceeai interogare se pot folosi tabele din baze de date diferite
Securitate,Conectivitate, Scalabilitate i Limite, Localizare, Clieni i unelte
- Un sistem de privilegii i parole foarte flexibil i sigur care permite verificarea pe
baza host-ului.
- Parolele sunt sigure deoarece tot traficul legat de parole este criptat cnd are loc
conectarea la server.
- Manipuleaz baze de date de dimensiuni mari. MySql este folosit cu baze de date
care conin 50 de milioane de nregistrri.- Sunt permii pn la 32 de indeci pentru un tabel. Fiecare index poate consta din
una pn la 16 coloane sau pri de coloane.
- Clienii se pot conecta la serverul MySql folosind socket-uri TCP/IP pe orice
platform.
- Interfaa Connector/ODBC ofer suport MySql pentru programe client care folosesc
conexiuni ODBC (Open Database Conectivity).
- Interfaa Connector/JDBC ofer suport MySQL pentru programe client Java carefolosesc conexiuni JDBC (Java Database Conectivity).
- Serverul poate s prezinte mesaje de eroare clienilor n multe limbi.
- Suport complet pentru diferit seturi de caractere.
- Toate datele sunt salvate folosind un set de caractere specificat. Toate comparaiile
pentru coloane de tip ir obinuit de caractere sunt case-insensitive.
-
8/3/2019 Disertate 2012 facuta de mine
15/78
pg. 14
- Sortarea este realizat n concordan cu setul de caractere ales.
- Serverul MySQL are suport inclus pentru instruciuni SQL care verific, optimizeaz
i repar tabelele. Aceste instruciuni sunt disponibile n linia de comand prin
intermediul clientului mysqlcheck.
- Toate programele MySql pot fi invocate cu opiunea help sau -? Pentru a obine
suport online.
Fundamente MySql
Conectarea i Deconectarea de la Server
Pentru a realiza conectarea la server trebuie specificat un nume de utilizator i,
de cele mai multe ori, o parol. Dac serverul ruleaz pe un alt calculator trebuie
specificat i un hostname. Conectarea se realizeaz astfel:shell> mysql -h host -u user -p
Enter password: ********
unde host i user reprezint hostname-ul unde ruleaz serverul MySQL i respectiv
numele unui cont MySQL, iar ******** reprezint parola care trebuie introdus.
Dac conectarea se realizeaz cu succes n continuare sunt afiate informaii
introductive, urmate de prompt-ul mysql>
shell> mysql -h host -u user pEnter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 25338 to server version: 4.0.14-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Aceasta nseamn c MySql este gata pentru a primi comenzile introduse.
Deconectarea de la serverul MySQL se poate realiza oricnd prin
introducerea comenzii QUIT (sau \a) la prompt-ul MySql.
mysql> QUIT
bye
-
8/3/2019 Disertate 2012 facuta de mine
16/78
pg. 15
Introducerea Interogrilor
Urmtoarea comand este o interogare simpl care cere serverului informaii precum
versiunea curent i data curent:
mysql> SELECT VERSION(), CURRENT_DATE;
+--------------+--------------+| VERSION() | CURRENT_DATE |+--------------+--------------+| 3.22.20a-log | 1999-03-19 |+--------------+--------------+1 row in set (0.01 sec)mysql>
Aceast interogare ilustreaz cteva lucruri despre mysql
n mod normal, o comand const ntr-o declaraie SQL urmat de semnul punct i
virgul .Ct se lanseaz o comand, mysql o trimite serverului spre execuie i afieazrezultatele, apoi afieaz din nou prompt-ul mysql> pentru a indica c este gata s
accepte alte comenzi. Mysql afieaz rezultatul interogrilor ntr-o form tabelar. Prima
linie conine etichetele coloanelor, iar liniile urmtoare sunt rezultatele interogrii.
Mysql afieaz i numrul de rnduri returnate i ct timp a fost necesar pentru
execuia interogrii.
Tehnologii .NET de accesare a bazei de date i dezvoltare a aplicaiei
Generaliti
.NET prezint integrarea inter-limbaj i tratare a excepiilor, servicii de depanare i
profilare, securitate mbuntit, lucru mai eficace cu versiunile i instalare la
beneficiar mai eficient. El ofer un model cu totul nou pentru interaciunea ntre
componente i mai mult ateptata bibliotec de clase -.NET Framework. .NET unific
modelul de programare, fcnd din alegerea limbajului o problem n principal de
preferin personal. La dispoziia tuturor aplicaiilor .NET st o singur bibliotec declase, comun, coerent i elegant.
ASP.NET este o tehnologie Microsoft pentru crearea de aplicaii web i servicii web.
ASP.NET este succesorul lui ASP (Active Server Page) i beneficiaz de puterea
-
8/3/2019 Disertate 2012 facuta de mine
17/78
pg. 16
platformei de dezvoltare .NET i de setul de instrumente oferite de mediul de
dezvoltarea al aplicaiei Visual Studio .NET.
Cteva dintre avantajele ASP .NET sunt:
ASP .NET are un set larg de componente, bazate pe XML, oferind astfel un model
de programare orientat obiect (OOP).
ASP .NET ruleaz cod compilat, ceea ce crete performanele aplicaiei web. Codul
sursa poate fi separat n dou fiiere, unul pentru codul executabil, iar un altul pentru
coninutul paginii (codul HTML i textul din pagin) .
.NET este compatibil cu peste 20 de limbaje diferite, cele mai utilizate fiind C# i
Visual Basic.
ADO.NET este o mulime de biblioteci orientate obiect care permit interaciunea cu
sistemele de stocare a informaiilor. De obicei aceste sisteme sunt reprezentate debazele de date, dar pot fi i fiiere text, fiiere XML, fiiere Excel, etc.
Niveluri ale paginilor ASP.NET
Cu toate c .NET Framework este o ierarhie supl i elegant de clase pentru
dezvoltarea proiectelor Web, programatorii au de-a face cu blocuri de cod i informaii
se structur dificil de manipulat, iar atunci cnd complexitatea unei componente
software depete un anumit prag, posibilitatea reutilizrii i ncapsulrii devin
probleme serioase. Acest fenomen aprut a fost numit n programare cod spaghetti.
Iniial cod spaghetti se referea la amestecul nclcit de linii Basic care rezult din
folosirea ce generozitatea instruciunilor GoTo i a unui stil de programare modular.
Termenul este i o descriere potrivit pentru paginile ASP nestructurate i mult
prea complexe.
ASP.Net nu ncurajeaz deloc codul spaghetti. ASP.NET este riguros bazat pe
obiecte i este construit deasupra unei familii de controale server uor extensibile.
Structura unei pagini ASP.NET este extrem de modular avnd trei seciuni:Directivele de pagin configureaz mediul n care va rula pagina, specific modul
n care runtime-ul Http trebuie s proceseze pagina i determin ce presupuneri se pot
face n siguran privind pagina. Directivele permit importarea de spaii de nume pentru
a simplifica scrierea codului, ncrcarea de assembly-uri care nu se afl la momentul
-
8/3/2019 Disertate 2012 facuta de mine
18/78
pg. 17
curent n cache-ul global de assembly-uri(GAC1), i nregistrarea de controale noi cu
nume pentru etichete i prefixe pentru spaiul de nume personalizate.
Seciunea de cod, avnd derutantul nume pentru etichete , conine orice
cod surs care ine de pagin.
Structura grafica paginii, reprezint un schelet al paginii, care se completeaz
n exterior folosind cod surs.
Abordarea Code-Behind
O soluie pentru separarea codului de structura grafic n aplicaiile ASP.NET ar fi
fiierele code-behind. Prin separarea codului i a structurii grafice se poate exploata
orientarea nativ spre obiecte din .NET Framework pentru a construi o ierarhie de clase
pentru pagini care ofer funcii din ce n ce mai specializate.
n abordarea code-behind, directivele i structura grafic a paginii se stocheaz ntr-
un fiier .ASPX, iar codul pentru ele ntr-un fiier separat scris n Microsoft Visual Basic
sau Visual C#.
Legtura ctre un fiier cod-behind este definit utiliznd un atribut al directivei
@Page.
Facilitatea ASP.NET code-behind este activat prin adugarea a dou atribute n
spe Inherits i Src, n directiva @Page. Atributul Inherits conine numele clasei cod-
behind _Statistici din care este derivat pagina curent.
Cnd se direcioneaz browserele ctre pagina .ASPX, fiierul clas code-behind al
clasei este rulat i produce dinamic rezultatul necesar paginii. Cnd este solicitat
pagina, fiierul code-behin este ncrcat i tratat ca o parte integrat a paginii.Un avantaj practic al acestei abordri este c el permite ca doi programatorii sau
doua echipe de programatori s lucreze simultan la dezvoltarea unei pagini Web Forms.
Dup ce structura unei pagini este definit n termeni de numr, nume i tipuri de
controale server constituente, designerii HTML pot lucra la aspectul fiierului .ASPX,
1 Global Assembly Cache
-
8/3/2019 Disertate 2012 facuta de mine
19/78
-
8/3/2019 Disertate 2012 facuta de mine
20/78
pg. 19
Apare n momentul n care se leag un control list sau un control iterativ la una sau
mai multe coloane de date. Controalele list includ DropDownList, CheckBoxList,
RadioButtonList i ListBox. Controalele iterative sunt Repeater, DataList i DataGrid.
Metode De Acces
i Prezentare A Datelor
Structura fizic. Modelul funcional al aplicaiei este structurat pe trei nivele:
Nivelul Client (Browser, IE 5.0)
Nivelul Web (IIS)
Nivelul Database (Microsoft SQL
Server)
Nivelul Client Nivelul Web. Aplicaia client - browser accept i prezint formatul
ASP al datelor furnizate de nivelul serverului Web (IIS) (aici contribuind i tehnologia de
formatare a datelor ADO), dar i avnd posibilitatea de transport de la browser la
serverul Web.
NivelulDatabase Nivelul Web. Providerii OLE-DB2 pot face acum transport de date
ctre baza de date i invers i pot transporta date provenind din baza de date.
Comunicarea datelor ntre nivele.Tehnicile de acces i schimb de date sunt:
ntre client i IIS - Comunicarea se face prin Browser;
ntre IIS i SQL Server - Comunicarea se face prin ADO (toate paginile ASP care
acceseaz datele se conecteaz la serverul SQL folosind tehnologia ADO)
Comunicarea ADO-SQL - Procedurile SQL pot primi ca parametri comenzi ASP, iar
procedurile SQL pot returna recordset-uri. Comunicarea ASP-IE - Paginile ASP trimit
ctre client cereri care sunt transformate pe client folosind ODBC3. n pagina ASP,
cererea ctre SQL Server este trimis prin ADO i rezultatul este preluat ntr-un obiect
de tip Recordset.
Avantajul metodei const n faptul c datele aduse n momentul de execuie a
comenzilor din paginile ASP pot fi prelucrate cu ajutorul unor obiecte externe serverului
2 Object Linking And Embedding Data Base3 Open Data Base Connectivity
-
8/3/2019 Disertate 2012 facuta de mine
21/78
pg. 20
Web sau corelate cu surse de date externe serverului de date (exemplu corelarea
unor date provenind din SQL Server cu surse de date externe de tipul unor site-uri
furnizoare de date).
Nivel Client (IE)
Nivel Web(IIS)
Nivel Database(SQL Server)
Nivelul Prelucrare Date
(proceduri stocate)
Nivel Logistic
(proceduri stocate)
Nivel Datelor
Nivel Prezentare
*.ASP
Nivel Prezentare
(DHTML, MSXML)
ASPASP
ASPASP
ODBC
ASP
Figura 2.4.3 -1 Structura fizic a sistemului
Formatarea datelor pe server
Se utilizeaz ODBC ca metod de baz de tranzacionare a datelor. Folosirea Asp-
ului pentru transformarea pe server a datelor aduce pe o parte ncrcarea excesiv a
serverului web, dar pe de alt parte nu impune o instalare special pe client a unei
versiuni de browser. Abordarea faciliteaz de asemenea integrarea paginilor de tip ASP
n sistem n cazurile cnd aceasta se impune. Metoda presupune formatarea datelor pe
-
8/3/2019 Disertate 2012 facuta de mine
22/78
pg. 21
server, ns are avantajul de a aborda o metod unic (prin accesarea unei funcii
definit ntr-o pagin ASP inclus n celelalte pagini care o folosesc).
Formatarea datelor pe client
Abordarea este orientat pe ASP. Aceast metod are randamentul maxim din
punctul de vedere al ncrcrii serverului i al vitezei de formatare. Comparativ cu
metoda prelucrrii datelor pe server, n acest caz vor fi transportate pe client datele,
urmnd ca apoi formatarea s fie executat de aplicaia browser.
Integrarea Tehnologiei ADO n paginile i aplicaiile de Web Utilizarea
conexiunii
ADO are la baz un model bazat pe obiecte care expune colecii, metode iproprieti necesare pentru accesarea i utilizarea unei baze de date. Acest model este
disponibil n cadrul codului ASP i lucreaz mpreun cu nivelurile OLE-DB. ADO este
responsabil n acelai timp pentru stabilirea conexiunilor ODBC, conlucrarea cu OLE-
DB i asigurarea utilitii i lizibilitii codului. n cadrul ASP, ADO utilizeaz un driver
ODBC pentru a se conecta la SQL Server.
Obiectul Recordset definete cmpurile i proprietile asociate dintr-o baz de
date.Obiectul Command integreaz parametrii i proprietile asociate cu comenzile pe
care le trimitem ctre server, fie c se apeleaz proceduri stocate, fie c ordoneaz
serverului efectuarea unor operaii de administrare.
Colecia general Errors este cea care ne permite s aflm dac au aprut
probleme la executarea unei interogri sau la accesarea serverului. Aceast colecie
este indispensabil pentru crearea unei aplicaii responsabile, care s aib capacitatea
de a reaciona la problemele ce pot aprea pe durata utilizrii sale.
Obiectul Connection se definete de regul la nivel de pagin, pentru a stabili o
conexiune funcional cu furnizorul de baz de date. Aceast conexiune reprezint
canalul care se folosete pentru a trimite i a primi informaii de la baza de date. Este
obiectul guvernant care controleaz interaciunea cu baza de date. O conexiune se
stabilete indicnd mai nti proprietile acesteia i apoi apelnd metoda OPEN.
-
8/3/2019 Disertate 2012 facuta de mine
23/78
pg. 22
Colecia general Properties pentru obiectul Connection conine informaii despre
conexiunea cu serverul. Printre aceste proprieti se afl numele utilizatorului,
identificatorul de conectare i alte elemente care definesc o conexiune la SQL Server.
Caracteristicile asociate unui obiect Connection
Caracteristicile unei conexiuni controleaz modul n care se realizeaz conexiunea
ntre aplicaia client i server. n cazul unei aplicaii ADO pentru Web, acestea
controleaz interaciunea dintre nivelurile OLE-DB i interfaa ODBC. Caracteristicile
utilizate n implementare au fost:
CommandTimeOut. Avnd valoarea implicit de 30 de secunde, aceast
proprietate este folosit frecvent i se dovedete a fi util n mai multe domenii. n
primul rnd, este o modalitate de a reaciona la un trafic masiv pe server. Aceastvaloare poate fi micorat n cazul unor interogri mai simple. Dac interogrile
necesit un timp redus de execuie, acestei proprieti i se poate atribui o valoare mai
mare. Este bine s stabilim o limit superioar pentru aceast valoare pe baza
experienelor avute cu rularea manual a unei interogri n cauz, deoarece astfel se va
evita expunerea utilizatorilor la ateptri foarte ndelungate. S-a luat n consideraie nu
numai traficul de pe Internet, ci i traficul de pe controlul de domeniu asociat cu SQL
Server.ConnectionString. Caracteristica ConnectionString permite s se specifice irul
transmis la iniializarea furnizorului de OLE-DB din ODBC. Aceast proprietate pentru
OLE-DB poate s conin fie numele unei surse de date deja definite n cadrul
sistemului, fie parametrii individuali folosii pentru crearea conexiunii. Pentru o
flexibilitate n sensul ajustrii unora din parametrii asociai conexiunii, soluia cea mai
potrivit este specificarea tuturor parametrilor n cadrul irului.
DefaultDatabase. La accesarea SQL Server exist trei modaliti diferite de a
determina baza de date activ. Prima modalitate este la nivel de utilizator, acolo unde
desemnm o baz de date implicit n funcie de informaiile de conectare a
utilizatorului. A doua modalitate const n indicarea bazei de date implicite n cadrul
configuraiei ODBC. Ultima posibilitate este specificarea bazei de date prin intermediul
proprietii DefaultDatabase a conexiunii. Stabilind aceast proprietate ne asigurm c
-
8/3/2019 Disertate 2012 facuta de mine
24/78
pg. 23
baza de date dorit este i cea accesat implicit la deschiderea conexiunii. Este bine
ca n comanda de deschidere a conexiunii baza de date s fie indicat n irul de
conectare alturi de toate detaliile i nu ca proprietate. Dac irul de conectare const
n numele sursei de date trebuie folosit neaprat proprietatea DefaultDatabase.
Mode. Asemeni multor alte proprieti asociate unei conexiuni, proprietatea Mode se
stabilete nainte de deschiderea conexiunii i se folosete pentru a controla tipul de
acces la baza de date aflat dedesubt, precum i o anumit optimizare a conexiunii.
Aceast optimizare poate fi o consecin a alegerii modului de citire exclusiv (de
exemplu), prin care motorul de baze de date este informat c nu vor fi efectuate
modificri. Astfel se poate obine o cretere a performanei, deoarece de multe ori
motorul de baze de date nu mai menine acelai nivel de detaliu asupra conexiunii n
cazul n care nu se mai ateapt la modificri. nchiderea conexiunii cu baza de date prin metoda Close. Aceast metod nchide
conexiunea cu baza de date, astfel toate obiectele Recordset fiind nchise automat.
-
8/3/2019 Disertate 2012 facuta de mine
25/78
pg. 24
Schema Relaional
Folosind MySql trebuia pentru aceasta creat o baz de date care s poate fi
integrata sistemului nostru i totodat modului nostru de gndire i care mai trziu s ne
permit s putem asigura portabilitatea i integritatea bazei noastre de date. Astfel ne
vom baza pe mai multe segmente care nsumate s ne ofere ntregul de care avem noi
nevoie. Suma tuturor i a conceptului de gndire concretizndu-se n fiierul:
recreerebaza.sql
Am creat astfel o baza de date imobiliar prin comanda : CREATE DATABASE IF
NOT EXISTS imobiliar; USE imobiliar; - aceast baz de date fiind folosit ca un
container pentru datele care vor circula ntre angajai pe acelai nivel i ntre angajai si
manageri.
Tabelele implicate
1. CREATE TABLE `angajati` (
`id_angajat` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nume_angajat` varchar(45) DEFAULT NULL,
`adr_angajat` varchar(100) DEFAULT NULL,
`post_angajat` varchar(45) DEFAULT NULL,
`salariu_angajat` double DEFAULT NULL,
`id_sef` int(10) unsigned NOT NULL,
`id_suc` int(10) unsigned NOT NULL,
PRIMARY KEY (`id_angajat`),
KEY `FK_angajati_1` (`id_suc`),
CONSTRAINT `FK_angajati_1` FOREIGN KEY (`id_suc`) REFERENCES `sucursale`
(`id_suc`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
ROW_FORMAT=DYNAMIC;
unde vom avea astfel:
-
8/3/2019 Disertate 2012 facuta de mine
26/78
pg. 25
- id_angajat dat de tip numeric int care se autoincrementeaz i de lungime
10. autoincrementarea asigur ca de fiecare dat cnd cineva va ncerca s
introduc o dat nou n sistem aceasta s fie diferit de cea anterioar i
totodat s creasc cu unu. Astfel asigurm dac cineva vine i ne terge un
angajat atunci vom avea un altul( dac va fi necesar s angajm) care va avea
un cod diferit;
- nume_angajat dat de tip sir de caractere (varchar) de lungime 45 care este
nula By Default ca sa asigurm c la prima afiare sa nu fie afiat nimic i
totodat aici se va stoca numele angajatului sediului firmei noastre;
- adr_angajat dat de tip ir de caractere(varchar) de lungime 100 care este tot
nula By Default pentru a asigura ca la afiare nu se vede nimic. n acest cmp
vom stoca adresa angajatului pe care dorim s-l angajm;- post_angajat dat de tip ir de caractere (varchar) de lungime 45 , nul By
Default, n care vom stoca funcia pe care angajatul nostru o ocup: sef,
manager, secretara, etc.;
- salariu_angajat dat de tip real care este nul By Default i n care vom stoca
salariul angajatului nostru, salariu trecut cu cifre;
- id_sef dat de tip int(10) in care este trecut id-ul efului persoanei respective.
Aici pstrm echilibrul cu ce am creat anterior ca toi angajaii au un cod asignati chiar i eful unui angajat este angajat la firma noastr;
- id_suc dat de tip numr ntreg(int) de lungime 10 n care se va stoca id_ul
sucursalei unde lucreaz angajatului nostru;
Aa cum era de ateptat am creat o cheie primar pentru id_angajat ca sa se
poat face indexare i cutare dup aceasta i totodat am creat i o cheie extern
care implic direct tabela sucursale , astfel evitm s introducem angajai n sucursale
care nu exist.
Pentru introducere folosim codul :
INSERT INTO `angajati`
(`id_angajat`,`nume_angajat`,`adr_angajat`,`post_angajat`,`salariu_angajat`,`id_se
f`,`id_suc`) VALUES
(1,'FLORIN','BUCURESTI','agent',1000,0,1),
-
8/3/2019 Disertate 2012 facuta de mine
27/78
pg. 26
(3,'MANAGER','Tecuci','sef',500,2,1); - pentru a ilustra maniera n care introducem,
ca prim etap la creare ( nc nu suntem n interfaa grafic i totodat nu am rulat
programul nostru) , datele n tabelul nostru de abia creat.
2. CREATE TABLE `anunturi` (
`id_anunt` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nume_ziar` varchar(45) NOT NULL,
`tel_ziar` varchar(45) NOT NULL,
`contact_ziar` varchar(45) NOT NULL,
`id_proprietate` int(10) unsigned NOT NULL,
`data_publicarii` datetime NOT NULL,
`cost_anunt` double DEFAULT NULL,
PRIMARY KEY (`id_anunt`),KEY `FK_anunturi_1` (`id_proprietate`),
CONSTRAINT `FK_anunturi_1` FOREIGN KEY (`id_proprietate`) REFERENCES
`proprietati` (`id_prop`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
unde vom avea astfel:
- id_anunt dat de tip numr ntreg de lungime 10 n care vom stoca un id de
anun care s ne permit sa-l identificm i s-l gsim mai trziu;- nume_ziar dat de tip ir de caractere, de lungime 45 , in care se va trece
numele ziarului n care se regsete anunul nostru imobiliar;
- tel_ziar, contact_ziar - dat de tip ir de caractere de lungime 10 n care se va
trece modalitatea de contact a ziarului respectiv;
- id_proprietate dat de tip ntreg de lungime 10 n care se va trece id-ul
proprietii pentru care s-a dat anunul n ziar, nu poate fi niciodat nula;
- data_publicrii - dat de tip datetime care nu poate fi niciodat nul i n care
se va trece data la care s-a fcut contractul cu ziarul pentru a se publica anunul
nostru;
- cost_anunt dat de tip real n care se va stoca costul anunului pe care l-am
publicat n ziar;
-
8/3/2019 Disertate 2012 facuta de mine
28/78
pg. 27
- Aa cum era de ateptat , din denumire, am transformat id_anunt in cheie
primara si id_prop n cheie extern care va fi preluat din tabelul proprietati.
3. CREATE TABLE `clienti` (
id_client` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nume_client` varchar(45) DEFAULT NULL,
`tel_client` varchar(45) DEFAULT NULL,
`tip_preferat` varchar(4) DEFAULT NULL,
`max_chirie` double DEFAULT NULL,
`id_angajat` int(10) unsigned NOT NULL,
`data_introducerii` datetime DEFAULT NULL,
PRIMARY KEY (`id_client )
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=latin1; unde vomavea:
- id_client dat de tip numr ntreg de lungime 10 n care vom stoca id-ul
clientului nostru astfel nct s nu avem doi clieni care au acelai cod de client.
Se observ c nu poate fi nul i valoarea lui se modifica, autoincrementeaz,
odat cu introducerea unei noi nregistrri;
- nume_client dat de tip ir de caractere de lungime 45 n care se va trece
numele complet al clientului nostru;- telefon_client dat de tip ir de caractere n care vom stoca numrul de telefon
al clientului nostru;
- tip_preferat dat de tip varchar de lungime 4 n care se va trece tipul de
apartament preferat pe care l prefer clientul nostru;
- max_chirie dat de tip real care va stoca preul maxim n euro pe care clientul
nostru dorete sa-l plteasc;
- id_angajat dat de tip numr ntreg de lungime 10, care nu poate fi nul i n
care se trece codul angajatului firmei care se ocupa de nchirierea respectiva;
- data_introducerii dat de tip datetime care la fel nu este nul i care face
referire la data la care se va ncepe sa se stea;
- Aa cum era de ateptat cheia primar este id_client;
-
8/3/2019 Disertate 2012 facuta de mine
29/78
pg. 28
4. CREATE TABLE `contracte` (
`id_contract` int(10) unsigned NOT NULL AUTO_INCREMENT,
`id_client` int(10) unsigned NOT NULL,
`id_proprietate` int(10) unsigned NOT NULL,
`mod_plata` int(10) unsigned DEFAULT '1',
`avans` double DEFAULT NULL,
`durata` int(10) unsigned NOT NULL,
`data_start` datetime NOT NULL,
PRIMARY KEY (`id_contract ),
KEY `FK_contracte_1` (`id_client ),
KEY `FK_contracte_2` (`id_proprietate`),
CONSTRAINT `FK_contracte_1` FOREIGN KEY (`id_client`) REFERENCES `clienti`(`id_client`),
CONSTRAINT `FK_contracte_2` FOREIGN KEY (`id_proprietate`) REFERENCES
`proprietati` (`id_prop`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1; unde vom
avea:
- id_contract dat de tip numr ntreg care se va autoincrementa i n care vom
trece numrul contractului. Se autoincrementeaza ca si celelalte pentru a nu daacelai numr de contract la contracte diferite;
- id_client dat de tip numeric de lungime 10 care are aceleai proprieti ca
descrierile de mai sus;
- id_proprietate dat de tip numeric de lungime 10 n care se va trece numrul
de identificare al proprietii;
- mod_plat dat de tip numeric de lungime 10 in schimb de data asta are
valoarea iniial egal cu 1;
- avans dat de tip real care iniial este nul i ne va specifica dac s-a dat sau
nu avans;
- durata dat de tip numeric de lungime 10 n care se va meniona durata pe
care este fcut contractul de nchiriere;
-
8/3/2019 Disertate 2012 facuta de mine
30/78
pg. 29
- data_start dat de tip datetime n care se va trece data la care va intra n
vigoare contractul, data de nceput;
- Avem indexare cupa doua chei externe id_client si id_proprietate cu
constrngerile de rigoare astfel nct s nchiriem o proprietate care nu o avem
sau care nu exista;
5. CREATE TABLE `proprietari (
`id_proprietar` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nume_proprietar` varchar(45) DEFAULT NULL,
`adresa_proprietar` varchar(45) DEFAULT NULL,
`tel_proprietar` varchar(45) DEFAULT NULL,
`domeniu_ec` varchar(45) DEFAULT NULL,`contact` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id_proprietar`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1; unde avem
c:
- id_proprietar dat de tip numeric de lungime 10 n care se va introduce codul
unic de identificare al proprietarului pentru o cutare i o indexare mai uoar;
- nume_proprietar dat de tip sir de caractere de lungime 45 n care se va trecenumele complet al proprietarului;
- adresa_proprietar dat de tip ir de caractere de lungime 45 n care se va
trece adresa proprietarului;
- tel_proprietar dat de tip ir de caractere de lungime 45 n care se va trece
numrul de telefon al proprietarului;
- domeniu_ec dat de tip ir de caractere n care se va trece domeniul
economic al proprietarului;
- contact dat de tip ir de caractere de lungime 45 n care se va trece
modalitatea de contact a proprietarului;
- Vom avea totodat ca i cheie primar, pentru indexare i s nu existe dou
nregistrri care s aib aceeai valoare, cmpul id_proprietar.
-
8/3/2019 Disertate 2012 facuta de mine
31/78
pg. 30
6. CREATE TABLE `proprietati` (
`id_prop` int(10) unsigned NOT NULL AUTO_INCREMENT,
`adresa_prop` varchar(100) DEFAULT NULL,
`tip_prop` int(1) unsigned DEFAULT NULL,
`nr_camere` int(10) unsigned DEFAULT NULL,
`chirie` double DEFAULT NULL,
`id_proprietar` int(10) unsigned NOT NULL,
`descriere` varchar(1000) DEFAULT NULL,
`poza` varchar(500) DEFAULT NULL,
PRIMARY KEY (`id_prop`),
KEY `FK_proprietati_1` (`id_proprietar`),
CONSTRAINT `FK_proprietati_1` FOREIGN KEY (`id_proprietar`) REFERENCES`proprietari` (`id_proprietar`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1; unde vom
avea:
- id_prop data de tip numeric de lungime 10 care se autoincrementeaz i care
se va folosi pentru a da un numr de identificare unic pentru fiecare proprietate
n parte;
- adresa_prop dat de tip ir de caractere de lungime 100 care se va folosipentru a stoca adresa proprietii pe care noi vom dori s o nregistrm;
- tip_prop dat de tip numr ntreg de lungime 1 care va stoca tipul proprietii
noastre, lucru descris un pic mai trziu cnd vom vorbi despre programul creat;
- nr_camere data de tip numr ntreg de lungime 10 n care se va trece numrul
de camere pe care l are proprietatea care urmeaz a fi nchiriat;
- chirie dat de tip real n care se va stoca valoarea care se va dori a fi pltit
pentru chiria lunar;
- id_proprietar dat de tip numr ntreg de lungime 10 n care se va trece
numrul de identificare al proprietarului care ofer spre nchiriere proprietatea
respectiv;
- descriere dat de tip ir de caractere de lungime 1000 n care se poate trece o
descriere mai larga a proprietii;
-
8/3/2019 Disertate 2012 facuta de mine
32/78
pg. 31
- poza dat de tip ir de caractere n care se va stoca path-ul pn la poz astfel
nct calculatorul s tie de unde s ia poza pentru a putea astfel s o afieze;
- Vom avea totodat ca i cheie primar id_proprietar si ca cheie extern
id_proprietar care se va lega cu id_proprietar din tabela proprietari.
7. CREATE TABLE `sucursale` (
`id_suc` int(10) unsigned NOT NULL AUTO_INCREMENT,
`adresa_suc` varchar(100) DEFAULT NULL,
`tel_suc` varchar(45) DEFAULT NULL,
`id_manager` int(10) unsigned NOT NULL,
`data_ang` datetime DEFAULT NULL,
`bonus` double DEFAULT NULL,PRIMARY KEY (`id_suc`),
KEY `FK_sucursale_1` (`id_manager`),
CONSTRAINT `FK_sucursale_1` FOREIGN KEY (`id_manager`) REFERENCES
`angajati` (`id_angajat`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1; unde vom
avea:
-
id_suc - dat de tip numeric de lungime 10 care se i autoincrementeaz iastfel pentru fiecare sucursal care se va crea vom avea o alt valoarea;
- adresa_suc dat de tip ir de caractere de lungime 100 n care vom trece
adresa sucursalei noi pe care noi ne dorim s o crem;
- tel_suc dat de tip ir de caractere n care se vor trece numerele de contact
pentru sucursala respectiv;
- id_manager dat de tip numr ntreg de lungime 10 n care se va trece codul
de identificare al managerului care conduce sucursala respectiv;
- data_angaj dat de tip datetime n care se va trece data la care s-a nfiinat
sucursala;
- bonus dat de tip real n care se va trece bonusul realizat de respectiva
sucursal fa de alte sucursale;
-
8/3/2019 Disertate 2012 facuta de mine
33/78
pg. 32
- Vom avea totodat i cheia externa id_manager care se va lega de un id_angajat
deoarece nu putem avea un manager care nu este angajat la firma noastr;
8. CREATE TABLE `useri` (
`ID_USER` int(10) NOT NULL AUTO_INCREMENT,
`USERNAME` varchar(45) NOT NULL,
`PAROLA` varchar(100) NOT NULL,
`LEVEL` int(10) NOT NULL DEFAULT '1',
`ID_ANG` int(10) unsigned NOT NULL,
KEY ID_USER` (`ID_USER`),
KEY FK_useri_1` (`ID_ANG`),
CONSTRAINT `FK_useri_1` FOREIGN KEY (`ID_ANG`) REFERENCES `angajati`(`id_angajat`) ON DELETE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1
ROW_FORMAT=DYNAMIC
Aceast tabel este i creat pentru a crea utilizatori care s aib acces la baza noastr
de date astfel o parte din ei sa fie manageri de filiale i o alt parte s fie angajai care
s aib acces. Astfel vom avea:
-
id_user dat de tip numr ntreg de lungime 10 care se i autoincrementeaz. Aici se va trece id_ul utilizatorului creat pentru a avea acces la baza de date.
Este folosit pentru indexare i sortare;
- username - dat de tip ir de caractere de lungime 45 care se folosete pentru
a declara un nume de utilizator pentru logarea n aplicaie;
- parola dat de tip ir de caractere de lungime 100 care va fi folosit pentru a
stoca parola care ii trebuie utilizatorului pentru logare;
- Level dat de tip int de lungime 10 care se folosete pentru a declara nivelul
de acces pe care l va avea un utilizator n aplicaie. Nivelul 1 este setat ca
Default i reprezint nivelul de acces al unui utilizator obinuit si managerul are
nivel 2 de acces;
- id_ang dat de tip numr ntreg de lungime 10 n care se va trece id-ul de
angajat pentru care au fost creai utilizatorii i parola;
-
8/3/2019 Disertate 2012 facuta de mine
34/78
pg. 33
- Vom avea i cheia extern id_ang care va face legtura cu tabela angajai
elementul id_angajat;
9. CREATE TABLE `vizionari` (
`id_vizionare` int(10) unsigned NOT NULL AUTO_INCREMENT,
`id_client` int(10) unsigned NOT NULL,
`id_proprietate` int(10) unsigned NOT NULL,
`data_vizionare` datetime NOT NULL,
`comentarii` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id_vizionare`),
KEY `FK_vizionari_1` (`id_client`),
KEY `FK_vizionari_2` (`id_proprietate`),
CONSTRAINT `FK_vizionari_2` FOREIGN KEY (`id_proprietate`) REFERENCES`proprietati` (`id_prop`),
CONSTRAINT `FK_vizionari_1` FOREIGN KEY (`id_client`) REFERENCES
`clienti` (`id_client`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; unde vom
avea:
- id_vizionare dat de tip numr ntreg n care se va trece numrul de
identificare al vizionrii pentru a putea fi cutat i identificat mai uor;- id_client dat de tip numr ntreg de lungime 10 n care se va trece codul
clientului care va nchiria proprietatea;
- id_proprietate dat de tip numr ntreg de lungime 10 n care se va trece
codul de identificare al proprietii care urmeaz a fii vizionate;
- data_vizionare dat de tip datetime n care se va stoca data la care se face
vizionarea proprietii;
- comentarii dat de tip ir de caractere n care se vor stoca eventualele
comentarii fcute n timpul vizionrii att de ctre agentul imobiliar ct i de ctre
clientul n sine pentru c tim c uneori conteaz ceea ce se ntmpl n timpul
unei vizionri;
-
8/3/2019 Disertate 2012 facuta de mine
35/78
pg. 34
- Aa cum era de ateptat avem i constrngerile de cheie primar la cmpul
id_vizionare si totodat avem constrngeri de cheie extern la cmpurile
id_proprietate i respectiv id_client.
Modul de gndire bazat pe ceea ce avem la ndemn
innd cont c mi trebuia s creez o aplicaie care s fie totui portabil m-am
gndit pe aceast cale s folosesc cunotinele acumulate n anii de studiu la Master
pentru a reui s realizez tot ceea ce i dorete acest proiect s realizeze. Mai nti de
toate a trebuit s m gndesc cum asigur conexiunea cu baza de date deschis i cum
pot s i folosesc ceea ce mi este necesar.
Pentru nceput am pornit cu instalarea programului MySql care mi-a permis
crearea serverului i a bazei de date de care aveam nevoie pentru a rula aplicaia mea.
Nimic mai simplu pn aici pentru c odat ce am stabilit planul de implementat n
documentul MySql creat am dat i l-am rulat. Pan aici lucrurile au mers destul de
simplu numai c mai rmnea crearea unei conexiuni care s rmn totui deschis
atunci cnd lucrez cu serverul sau doar atunci cnd dorina mea este numai de a realiza
rapoarte. Am ncercat s vad ce se poate face n schimb pentru legtura cu Visual
Studio mi trebuia o aplicaie de legtura care s-mi permit utilizarea unui
ConnectionString care s se conecteze la baza noastr de date. Pentru aceasta am
ales aplicaia dcmysqlfree care mi va permite s personalizez i s relaionez aceast
legtur. Dup ce totul a fost la locul lui i astfel gndit am pornit la implementarea
efectiv prin VisualStudio.
-
8/3/2019 Disertate 2012 facuta de mine
36/78
pg. 35
Manualul Utilizatorului
Procesul de instalare
Ca orice program am dorit ca un inginer de software, sau cineva de la it s poat
instala aplicaia i totodat s tie ce setri trebuie fcute pentru ca utilizatorii s aib
acces la acest site. Astfel voi descrie n pai simpli cum ar trebui instalat, referin
fcnd totodat i la ce declarri am fcut eu pentru ca programul s mearg.
Pasul 1. Include faptul c nainte de toate trebuie s avem MySql-ul instalat care
s ne permit s gestionm baza de date i totodat s efectueze n background
operaiile ulterioare pe care utilizatorii programului le vor face. Astfel codul din interfaa
grafic va rula operaiile care vor asigura modificri, n funcie de nivelul de acces ,
direct n baza noastr de date create i astfel dac se vor face modificri ntr-o parte(daca vom dori vreodat s asigurm partajarea bazei noastre de date ) aceste
modificri vor fi vizibile de oriunde.
Dup instalarea programului am inclus i rulat fiierul recreerebaza.exe din
fiierul sqldatarun ca s ne creeze baza de date i desigur s ne refac nregistrrile.
Acolo se gsesc i cei doi utilizatori iniiali: florin i Manager care vor avea parola florin
i care vor avea acces direct n baza de date i desigur cnd s-a creat pentru prima
dat mysql s-a creat root-ul cu parola florin.Pas. 2 Dup ce am terminat de creat baza de date, ca i instalator , trebuie apoi
s rulm programul dcmzsqlfree.exe din programul de instalat i acolo sa permitem ca
portul i baza de date cu acelai utilizator i parol s fie conectat la baza de date
creat prin MySql.
Pas. 3 Rmne partea de rulare care se va baza momentan, prin prisma
cunotinelor pe care le-am acumulat pn acum , pe Visual Studio i pe seciunea de
rulare pe care acesta o are inclus n acest moment. i cu acest pas instalarea este
terminat.
Rulare interfa utilizatori
Vom ncepe cu utilizatorii pentru c ei vor avea n primul rnd ansa s ruleze
programul pe calculatorul propriu i desigur s cear majoritatea datelor. Desigur prin
utilizator n cadrul firmei mele imobiliare m refer la agenii imobiliari care s-au angajat
-
8/3/2019 Disertate 2012 facuta de mine
37/78
pg. 36
pn n acel moment la firm i crora desigur li s-au creat user i parol pentru
aplicaie.
Pornim rularea i primul lucru care l vom vedea va fi interfaa de logare unde
vom introduce datele utilizatorului pe care l-am creat ca s fie agent imobiliar i s aib,pentru trening, acces n baza noastr de date, astfel se va introduce Florin ca nume de
utilizator si parola tot florin. Per ansamblu i logarea a fost personalizat cu o imagine
sugestiv care s reflecte faptul c vorbim despre agenia mea imobiliar i totodat ca
s fie plcut att pentru utilizator ct i pentru persoanele care sunt n jurul acesteia.
Astfel dac un client este prin preajm nu ne va fi fric sa o deschidem.
Interfaa de logare
Dup ce am introdus datele mai sus menionate, fie dnd Enter, fie cu click pe butonul
intr n cont vom accesa urmtorul meniu care ne va duce la fiecare ramur pe care
ulterior o vom descrie.
-
8/3/2019 Disertate 2012 facuta de mine
38/78
pg. 37
Astfel :
1. Cu click pe fiier avem acces la Butonul de Ieire a crui singur scop va fi sa ne
scoat din aplicaie si astfel s reintrm n sistemul de operare a mainii pe care
avem instalat aplicaia s ruleze.
Figura cu proprieti
2. Dac dm click pe butonul proprieti, ca i utilizator vom avea acces la
proprietile pe care eu ca i agent imobiliar le gestionez , sau pe care le-am
gestionat, aceast interfa fiind folosit att ca o interfa destinat crerii de
-
8/3/2019 Disertate 2012 facuta de mine
39/78
pg. 38
noi nregistrri ct i ca o interfa pentru a vedea proprietile care deja mi-au
fost atribuite.
De acolo atunci cnd vom da un click pe captul din stnga vom observa c
cmpurile noastre Adresa, Tip de Locuin, Numr camere, Proprietar si descrierea sevor popula cu datele care se regsesc n acea nregistrare i apoi vor putea fi uor
editate.
Astfel pentru a edita o proprietate deja existent trebuie mai nti s o selectm
ca s ne populeze zonele, apoi s modificm ce avem de modificat i apoi s selectm
butonul pe care scrie Editeaz care va asigura updatarea informaiilor din tabel i
totodat salvarea acestora.
Atenie a nu se da click pe salveaz pentru c apoi acel buton creeaz o
nregistrare nou cu aceleai date, dar totodat modificat id-ul de proprietate.
Se observ totodat c mai avem butoanele de : Proprietate noua care ne va
asigura c dac sunt selectate date anterior atunci urmeaz ca toate TextBoxurile s
aib coninutul golit pentru a putea astfel introduce mai uor datele unei noi proprieti i
desigur atunci cnd dm salvare aceasta s se i salveze ca o nregistrare nou n
baza noastr de date, nregistrare ce va fi din nou disponibil la o urmtoare logare;
Upload Imagine desigur c lucrm cu chirii sau c lucrm cu altceva, elementul final
l reprezint tot o proprietate i cum adeseori o imagine face mai mult dect o mie de
cuvinte este bine ca proprietatea s fie nsoit i de un element vizual i de aceea am
creat acest buton. Atunci cnd este acionat imaginea pe care o avem salvat n
calculator se va muta (prin crearea unei copii) n folderul photos al bazei noastre de
date; Stergere desigur nu putea lipsi acest buton pentru c dac am introdus din
greeal o nregistrare greit sau dac nu mai avem proprietatea respectiv n
gestiune trebuie s o eliminm.
3. Totodat ca orice agent care se respect nu pute lipsi seciunea de clieni ai
agentului. Astfel de aici fiecare agent i va putea gestiona proprii clieni care fie
vor dori s ofere spre nchiriere o proprietate, fie au o proprietate pe care doresc
-
8/3/2019 Disertate 2012 facuta de mine
40/78
-
8/3/2019 Disertate 2012 facuta de mine
41/78
pg. 40
- a doua seciune este bazat pe preferine si astfel vom avea : tip proprietate
preferat n care selectm ce tip de proprietate prefer clientul, apoi avem ca i
dat chiria maxim pe care clientul nostru dorete s o ofere, ca i valoare
aceasta fiind consemnat n euro.
O dat selectat o nregistrare cmpurile din tabel se populeaz cu aceasta i
vom putea folosi tot butonul: Editeaz pentru a edita nregistrarea dup selecie, Client
Nou i Salveaz pentru a crea o nou nregistrare i de ce nu dac persoana respectiv
nu mai dorete s ne fie client s putem s o tergem din baza noastr de date ca sa
nu o mai populeze inutil.
4. Avem clieni i avem i proprietile i astfel ne mai trebuie o interfa care s
asigure legtura dintre acetia. Unde cererea se ntlnete cu oferta trebuie sputem ncheia un contract. Astfel dac dm click pe nchirieri c pe acest lucru
se bazeaz activitatea noastr de firm, va aprea urmtorul formular:
Figur nchirieri
-
8/3/2019 Disertate 2012 facuta de mine
42/78
pg. 41
Aici datele sunt relaionate pentru c avem partea stnga care pune accent pe
clieni si dac dm click pe sgeata din dreptul Labelului client vom vedea numele
tuturor clienilor introdui de noi n baza de date a firmei si astfel celelalte cmpuri ( din
partea stng )se vor ncrca automat dup selecia unui client cu datele acestuia de
contact i seleciile selectate anterior , completate atunci cnd a luat decizia s devin
clientul firmei noastre. Pe cealalt parte, n dreapta, avem seciunea Proprietate care va
utiliza datele salvate la proprieti si astfel dac selectm din dropdownList-ul care se
afla n dreptul Labelului Proprietate o proprietate - cmpurile din partea dreapt se vor
popula i ele. Dac clientul este hotrt, bate palma dorind s ncheie un contract de
nchiriere cu noi, dup ce selectm ce proprietate a ales clientul nostru putem da
salveaz contract i astfel pe id_ul nostru de agent va aprea un nou contract activat.
Este o interfa care ne permite foarte uor s salvm nregistrrile i totodat s cremnoi contracte.
Figura Vizionri
5. Cum la fiecare apartament trebuie s ducem clieni pentru vizionare am creat o
tabel care s stocheze datele de vizionare pentru orice proprietate. Datele
acestea vor fi salvate i vor putea fi folosite n momentul n care clientul ne cere
-
8/3/2019 Disertate 2012 facuta de mine
43/78
-
8/3/2019 Disertate 2012 facuta de mine
44/78
-
8/3/2019 Disertate 2012 facuta de mine
45/78
pg. 44
b) Proprieti aceast seciune este total diferit de cea anterioar pentru ca se
ocup de afiarea unui raport privind anumite condiii si astfel vom avea i vom
putea scoate un raport cnd vine vorba de : tipul de proprietate, cte camere are
, chirie maxim care dorim a fi pltit, dac este disponibil sau nu , i dac
avem nevoie i detaliile proprietarului.
Tot ce avem noi de fcut este s facem selecia i apoi s dm click pe butonul
genereaz raport pentru ca apoi n seciunea de jos a formularului s ni se
genereze un raport care s respecte condiiile introduse de noi atunci cnd am
fcut cutarea. n cazul de fa raportul este gndit ca o cutare pentru ca este
cel mai uor de scos datele.
Mai jos este totodat trecut maniera de prezentare a raportului i modul n care
a fost gndit ca s se prezinte pentru utilizatorul final.
Figur Raport Proprieti
c) Proprietate Data este denumit un pic mai sugestiv i nu reprezint proprietate
dat aa cum s-ar considera doar din citirea numelui. Anterior stocam datedespre vizionri i despre persoane care ar putea fi posibili clieni si deci
nregistra contracte cu noi. Ziceam c atunci cnd un client vine la noi , noi
trebuie sa-i artm despre ce este vorba n proprietatea noastr i cu ce l
avantajeaz pe el cel mai mult colaborarea cu noi.
-
8/3/2019 Disertate 2012 facuta de mine
46/78
pg. 45
Figura Raport Proprietate Data
i cum se observ n partea stng noi am selectat proprietatea pe care eu o
gestionez ca i agent i apoi n partea dreapt am selectat vizionri i posibili
cumprtori s fie afiai. Dac proprietatea avea o poz aceasta va aprea ca
preview n imaginea care ne este prezentat drept nlocuitor pn la o selecie
prealabil. Totodat putem vedea foarte uor la vizionri comentariile pe care le-
au avut potenialii clieni n privina nchirierii sau a locului n sine.
d) Ultimul raport care trebuia neaprat generat i creat pentru a ne putea evalua activitatea
este raportul privind contractele ncheiate care se deschide ca i interfa prin selecia
Meniului Clienti-Contracte.
i aici se va observa clar c ne-am orientat pe perioada n care au fost ncheiate
contractele pentru ca ne dorim s tim ct mai sunt valabile i dac aceste contracte au
fost sau nu onorate de ctre noi. Totodat in raport vedem numele clientului i putem
vedea dac din greeal aceeai proprietate a fost asignata unui alt angajat al firmei,
lucru care ar duce la disput ntre colegi.
-
8/3/2019 Disertate 2012 facuta de mine
47/78
pg. 46
Figur ClieniContracte
Cu acesta am terminat seciunea care se ocup de utilizator i astfel vom selecta
Inapoi i pe urm ieire ca s ies din aplicaie. Pornind de la ceast structur am
conceput structuri n plus i pentru manager, structuri aa cum menionam anterior c le
vom descrie imediat. Este important totodat de tiut c managerul are mult mai mult
putere i deci el poate modifica i angajaii firmei.
Rulare interfa manager
Interfaa grafic pentru acesta este dup cum urmeaz, asta dup ce ne-am logat n
prealabil cu utilizatorul Manager i parola florin:
Acesta este meniul cu iconul personalizat ca s se observe mai bine unde am intrat. n
funcie de selecia din meniu un Manager poate face urmtoarele dup cum urmeaz (
a se ine cont c am pstrat totodat aceeai interfa i organizare ca i la seciunea
anterioar):
1. Sucursale reprezentnd locurile unde actualul manager, cel logat nu
managerul de pe alt firm a altei sucursale, este efectiv manager i are drept de
modificare. Astfel dac un manager atribuie o anumit sucursal unui alt
manager sau nu o mai gestioneaz el trebuie atunci s tearg acea nregistrare
-
8/3/2019 Disertate 2012 facuta de mine
48/78
-
8/3/2019 Disertate 2012 facuta de mine
49/78
pg. 48
click pe butonul Salveaz atunci sucursala respectiv va intra n baza de date i va fi
vizibil i de ceilali manageri. Avem desigur si nelipsitele butoane de Editeaz i terge
numai c aceste butoane merg doar dac este selectat una din datele care apar mai
in jos pentru c tergerea se face n funcie de o dat deja existent i totodat nu
dorim s apar erori care apoi ne vor scoate din program fiind nevoii s ne relogm din
nou.
2. Am ajuns la seciunea angajailor n care eu ca manager pot s vad oamenii care
lucreaz sub conducerea mea sau egali cu mine, astfel nct s iau uor la
cunotin de oamenii i colegii cu care muncesc.
Figur angajai
i astfel se observ c pot sa generez ( s creez ) un angajat nou prin apsareabutonului nou, pot dac selectez un angajat din cei deja existeni ,prin click pe sgeata
din seciunea de jos, pot sa-i fac modificri i apoi cu Editeaz s se modifice
respectiva nregistrare i n baza noastr de date, apoi pot s terg ( odat selectat un
angajat) prin apsarea butonului terge.
-
8/3/2019 Disertate 2012 facuta de mine
50/78
pg. 49
Se observ totodat ca avem la Superior s pstreze id-ul efului care i este
superior angajatului nostru , avem nc o dat sucursala la care angajatul nostru
lucreaz, i desigur datele de contact ale acestuia : nume, adresa de domiciliu i postul
ocupat. M-am gndit totodat s trec i salariul brut deoarece se tie c angajai diferii
pot avea salarii diferite pe care se pot baza i totodat n multe sectoare de activitate
salariul este si trebuie s fie confidenial chiar i ntre angajai.
3. Urmtoarea seciune se bazeaz pe anunuri deoarece este important ca firma
s dea anunuri n ziarele locale astfel nct s se fac cunoscut fa de
poteniali clieni si totodat ca sa se identifice ( prin textul mesajelor ) cu o
identitate comerciala. Important este c noi ca manageri putem s supervizm
aceste anunuri mai ales c angajaii notri le aduc i totodat noi trebuie s le
filtrm astfel nct textul s corespund standardelor i imaginii pe care ne dorim
s o promovm.
Figur anunuri
-
8/3/2019 Disertate 2012 facuta de mine
51/78
pg. 50
Astfel pentru a publica un anun nou avem mai multe lucruri de fcut. Astfel mai
nti ca i utilizatori va trebui s selectm din partea dreapt proprietatea pentru care
dorim s concepem un nou anun i astfel se va popula imaginea din dreapta cu
imaginea proprietii i la proprietate cu cost anun. Apoi la date de contact la Nume se
va trece numele i telefonul de contact al agentului care se ocup de proprietatea
respectiv astfel nct s avem o consistent n date. Dup ce am introdus ct ne-a
cerut ziarul ca i pre pentru anun ( aici costul fiind in Ron) si mai avem data la care s-a
publicat i astfel pltind o taxa pentru o sptmn putem fi siguri c anunul va fi
publicat.
Se pune desigur problema republicrii, dac n timp de o sptmn proprietatea
noastr nu s-a dat i astfel nc mai avem anunul postat va trebui s-l republicm i
putem face aceasta fcnd o selecie pe anun si apoi pe ziarul i apariia s-a i astfel ,
dac este necesar, s modificm data i preul la publicare si apoi cu editeaz s
tergem salvrile. Dac n schimb nu mai ne dorim ca anunul nostru sa fie publicat ntr-
un anumit ziar putem terge asta prin click pe anun si apoi tergere. Atenie c se
terg anunurile i nu proprietatea i deci dac dorim s tergem proprietatea o putem
face direct din proprieti, aa cum s-a descris mai devreme n acest manual.
4. O seciune particulara, la fel cum era i la agentul imobiliar , o reprezint
rapoartele care suntem nevoii s le facem pentru a ne gestiona mai bine
activitatea. Astfel prin click pe Rapoarte din meniul descris se descrie un alt
meniu care va avea structura data de mine format n felul urmtor:
i vom descrie mai n detaliu aceste seciuni pentru c fiecare este centrat pe o
anumit arie de interes care ne poate face s ne dm seama de orientarea firmei itotodat ne permite s gndim numeric strategia pe care dorim s o abordm pentru a
reui pe viitor i strategia n care ne dorim s avem ncredere.
a) ncepem cu nceputul cu seciunea de Cont Profit i pierdere astfel dac dm
click pe aceast seciune va aprea n felul urmtor:
-
8/3/2019 Disertate 2012 facuta de mine
52/78
pg. 51
Figur contorizare Venituri, Profit i Pierdere Firm
i astfel se tie c profitul se obine din formula simpl Profit = ncasri
Cheltuieli i astfel dac suntem pe plus nseamn c firma obine profit, n schimb dac
suntem pe minus va reprezenta c suntem n pierdere i astfel va trebui s ne
schimbm strategia i modalitatea de abordare astfel nct s ajungem cu profitul napoi
pe cretere i s nu dm faliment.
Astfel cnd vom acea click pe butonul Calculeaz Venituri ni se va Calcula
Totalul ,generat n Ron, n TextBox-ul care apare lng Labelul Venituri din chirii i
astfel ce apare acum cu alb se va popula cu respectiva valoare. Iar jos n schem ne va
aprarea acele tranzacii care au creat veniturile pentru noi.
Pe cealalt parte avem cheltuielile care se fac i astfel, pentru a pstra unitatea,am creat pentru fiecare Label i un TextBox care s ne arate valoarea n Ron, ca
seciuni ( prin prisma a ceea ce am parcurs anterior din manual) vom avea: Cheltuieli
generate de salarizarea n valoare bruta pentru c pn la valoarea net se pierde n
procesul de salarizare, Cheltuielile cu publicitatea fiecare anun dat are un anumit pre
-
8/3/2019 Disertate 2012 facuta de mine
53/78
pg. 52
si astfel cu fiecare anun exist riscul s ne scad profitul dac nu avem succes,
Renumeraii proprietari se refer la ct trebuie s acordm i noi proprietarilor n urma
procesului de intermediere, si avem i seciunea Total cheltuieli care face lista de
cheltuieli la toate.
Aa se prezint cnd selectm ambele seciuni i apoi n josul paginii vedem realizat
diferena aa cum am spus, diferen care ne va arta dac obinem profit sau nu. n
cazul de fat se constata ca exista profit i mai trziu o s artm i formula .
b) Terminnd cu profitul, n datele de teste se vede c am ntlnit situaia ideal n
care se dovedete c suntem pe profit, trecem mai departe pe seciunea de
angajai dar departe de lucrurile cu care suntem obinuii aici se vor calcula
rapoarte care ne vor arata de fapt care angajai merit s investim n ei i carenu. Totui dorim s scoatem profit si nu altceva.
Vom avea pe partea stng seciunea care va determina care este cel mai bun
angajat din firma noastr pe fiecare sucursal i totodat dac angajatul face parte din
sucursala noastr i se va scrie numele i n seciunea de jos la angajai. Se observ c
-
8/3/2019 Disertate 2012 facuta de mine
54/78
pg. 53
angajatul cu cele mai mari realizri, n cazul datelor de intrare introduse aici nu se va
regsi din filiala mea, lucru care m face s m ntreb cum pot face s fiu un manager
mult mai bun.
Figur angajat cel mai bun
Deci se observ clar c Florin este angajatul lunii numai c jos fiind nepopulat
nseamn c nu face parte dintre angajaii mei care se gsesc n aceast filial.
Apoi pe partea dreapt vom avea seciunea cu ncasrile care se realizeaz lanivel de sucursal i care ne vor ajuta s determinm care este situaia. Astfel avem
dou CheckBox-uri astfel: Angajatii acestei sucursale care ne va arta ce ctiguri au
angajaii pe care eu i gestionez se va observa totodat c la aceast sucursal nu
avem nici un angajat cu realizri (alegnd aceasta variant pentru a ne arta exact ce
se ntmpl dac avem angajai de la noi sau din alt parte), n schimb dac voi
-
8/3/2019 Disertate 2012 facuta de mine
55/78
pg. 54
introduce un angajat pe aceast filial prin introducerea unui angajat nou n maniera
descris mai devreme voi obine i umplerea raportului aici; apoi avem toi angajaii la
FlorinImob care lucreaz pentru mine i care sunt n toate sucursalele. Dac facem
selecie aa ni se va popula zona care se regsete n partea de jos a paginii si astfel n
seciunea productivitatea angajailor vom avea angajatul si profitul pe care acesta l-a
adus pentru firma noastr.
Figur raport productivitate angajai
i astfel ne putem face o idee despre activitatea firmei.
c) Acum ne dorim totodat s inem o eviden a anunurilor pe care firma le are cu
diverse ziare locale sau aa cum se tie modalitatea n care este prezentat.
Totodat ce este interesant la acest raport este c am stabilit sa-mi scoat data
la care anunul a fost dat spre publicare i totodat pentru a se afia mai multe
detalii.
-
8/3/2019 Disertate 2012 facuta de mine
56/78
pg. 55
Modul n care opereaz pagina este oarecum circular. Astfel mai nti putem
selecta o dat de la care s ncepem s scoatem rapoartele, acest lucru este opional
pentru c dac dorim s vedem toate anunurile nregistrate pn atunci trebuie s le
vedem, iar lng avem formatul n care putem face acest lucru. Pasul urmtor este s
dm click pe Butonul generare raport astfel nct zona de jos cu proprieti numr de
anunuri s se populeze, se observ totodat cte anunuri avem n total postate pentru
respectiva proprietate adic ne va scoate n cte ziare se gsete de fapt n acest
moment anunul nostru. Dup ce am terminat cu asta dac ne dorim s vedem i care
sunt ziarele unde se gsete anunul nostru este suficient s selectm proprietatea pe
partea stng ca s se populeze partea dreapt care ne va arta n ce ziare mai exact
este postat anunul.
Aceast gndire se folosete adeseori pentru a evidenia detalierea stratificat i
legtura ntre baza noastr de date i nregistrrile pe care le conine sau le-ar putea
conine. Aici, cum se va vedea i n figura urmtoare avem urmtoarele, neselectnd
nimic am obinut singurul nostru anun care a fost i publicat n ziar. Astfel din prima
parte aflm c anunul cu numrul de identificare 4 care se gsete n Bacu a aprut
ntr-un ziar. Selectm apoi nregistrarea i constatm c ziarul n care a fost postat se
numete favorit, ca o apariie ne cost opt lei, vedem si data de introducere i totodat
agentul care se ocup de acest anun i al crui nume de contact se gsete acolo.
Figur Raport Anunuri
-
8/3/2019 Disertate 2012 facuta de mine
57/78
pg. 56
d) Ultima seciune este bazat pe un grafic care s ne arate profitul care s-a realizat
lunar i astfel o s avem.
Grafic Venituri Lunare
Acest grafic care ne arat c am avut un venit mai mare pe la jumtatea luniiIanuarie 2011. Este necesar un grafic pentru a arta evoluia, dar cum sunt puine
nregistrri programul ne va arta doar evoluia profitului pe Ianuarie.
Codul din spatele afirii
Am creat aceast seciune pentru a specifica i modul n care vom realiza codul
i modul n care a fost gndit n spatele seciunii de program. Aceast seciune este
necesar pentru a meniona totodat de ce avem nevoie de anumite afiri sau de ce
este bine s facem ca lucrurile s ruleze n spate i totodat pentru a arta cum am
realizat anumite operaii care au fost gndite.
-
8/3/2019 Disertate 2012 facuta de mine
58/78
pg. 57
Figur Soluie Explorer
Astfel se observ din aranjarea fiierelor c avem un fiier de resurse, unul de
referine , avem o iconi pentru aplicaie si totodat pe ce ne-am axat efectiv. Astfel n
program am creat: Angajati.cs care se deschide atunci cnd ne logm cu user-ul de
angajat florin i parola florin i este o fereastr care conine mai multe formulare, ce
sunt ilustrate i
top related