Disertate 2012 facuta de mine

  • Upload
    eximusc

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

  • 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