Crearea Unei Baze de Date Moderne cu Interfata Accesibila Pentru O Intreprindere Imobiliara Prin Implementarea Unor Instrumente Actuale Ca Web Design Ul

Foaia de titlu

Cuprins

INTRODUCERE

i. SISTEMUL INFORMATIONAL

NOȚIUNI GENERALE

MODALITĂȚI DE STOCARE A INFORMAȚIEI ȘI DATELOR

BAZE DE DATE

SISTEME DE GESTIUNE A BAZELOR DE DATE

ii. pROIECTAREA BAZEI DE DATE

LIMBAJUL SQL

MYSQL

CREAREA UNEI BAZE DE DATE

DIAGRAMA ENTITATE-RELAȚIE

iii. CREAREA INTERFEȚEI

LIMBAJUL PHP

Crearea și descrierea metodei de creare a aplicației

Importarea bazei de date

INTERFAȚA CU UTILIZATORUL

Formularul de logare

Ieșirea din aplicație

TIPURI DE UTILIZATORI

Administratorul bazei de date

MENIUL APLICAȚIEI

Pagima principală

Meniul Apartamente

Meniul Cumpărători

Meniul Cumpărări

Meniul Vânzători

Meniul Vânzări

Meniul Chiriași

Meniul Închirieri

CONCLUZII

BIBLIOGRAFIE

INTRODUCERE

Datorită dezvoltării rapide din ultima perioadă a resurselor software și hardware din domeniul IT, se oferă o mai bună comunicare și un acces mult mai rapid la toate categoriile de date.

Motivația alegerii lucrării constă in contribuția la crearea unei baze de date moderne cu interfata accesibila pentru o intreprindere imobiliara prin implementarea unor instrumente actuale ca Web design-ul, Internetul, Bazele de date și SGBD(Sistem de Gestiune a Bazelor de Date).

Importanța lucrării și actualitatea temei. La momentul actual nu există companii care să nu fie înzestrate cu calculatoare și diferite programe prin care aceste companii lucrează. Să ne gândim numai la bănci, casierii, hoteluri, magazine, toate folosesc calculatoare pentru a-și ține evidențele, trasferul de date și multe altele.

Agentiile imobiliare folosesc calculatoare pe care sunt instalate diferite programe care ușurează munca lor, comunicarea dintre agenti și clienti la calculator face ca clientul sa acumuleze cat mai multă informație. Aplicatia finala va lucra cu baze de date în care sunt înregistrate toate informatiile legate de apartamentele disponibile unui client. Este destinată special pentru informarea clientilor cu ofertele disponibile, cit si evidenta disponibilitatii pentru agentie. Prin intermediul acestei aplicații agentiei ii este foarte ușor să țină evidența disponibilității apartamentelor și să aiba toate informațiile despre clienti.

Teza de Licenta cuprinde aspecte teoretice și practice ale modalităților de concepere și implementare a unei baze de date.

Teza este structurată în Introducere, 3 capitole, Concluzie si Bibliografie, fiecare capitol, la rândul lui având mai multe subcapitole.

Introducere reprezintă partea introductivă a lucrării, prezentarea domeniului din care face parte proiectul, a temei propriu-zise și structurarea aplicației.

Capitolul 1 – constă dintr-o scurtă introducere a principalelor noțiuni legate de Sistem Informational, Baze de date, Sistem de Gestiune a Bazelor de Date. Noțiunile de bază ale bazelor de date relaționale.

Capitolul 2 – constă in descrierea modalității de creare a bazei de date, utilizarea limbajului SQL. Este prezentat modul de utilizare a MySQL, conectarea și deconectarea de la server, crearea și selectarea bazelor de date, crearea tabelelor și introducerea interogărilor.

Capitolul 3 – reprezintă descrierea creării interfeței. Implementarea acesteia a fost realizată folosind limbajul de server side scripting PHP datorită flexibilității acestuia și a faptului că poate fi folosit gratuit, fără restricții. De asemenea, a fost ales sistemul de gestiune a bazelor de date relațioale MySQL datorită faptului că și acesta poate fi folosit gratuită, Open Source este cel mai potrivit produs pentru accesarea și administrarea bazelor de date prin Internet.

De asemenea, este prezentat modul de creare a bazei de date a aplicației Agentie Imobiliara, crearea unor tabele (ex : admin si clienti).

Interfața grafică a aplicației este construită pe baza unui template, pe care toate paginile site-ului îl folosesc pentru a păstra același layout pe întregul site. De asemenea, pentru setarea modalităților de afișare a diferitelor elemente HTML, pentru alegerea stilului site-ului s-a folosit un fișier .css, acesta putând fi modificat sau înlocuit și întregul site își schimbă automat înfățișarea.

Concluzii prezintă opinia personală despre aplicația realizată.

CAPITOLUL 1. SISTEMUL INFORMATIONAL

NOTIUNI GENERALE

În zilele noastre toate domeniile de activitate se bazează pe utilizarea, într-o măsură mai mare sau mai mică, a tehnologiilor informatice și a calculatorului. A devenit omniprezentă utilizarea mijloacelor TIC (Tehnologia Informației și Comunicațiilor) în desfășurarea activităților celor mai diverse și pentru luarea deciziilor care au la bază informații ce sunt obținute din prelucrarea unor date culese cu privire la obiectul activității respective.

Un sistem informațional se poate defini ca fiind ansamblul de elemente implicate în procesul de colectare, de transmisie, prelucrare de informație, informației revenindu-i rolul central din sistem. În cadrul sistemului informațional se regăsesc : informația vehiculată, documentele purtătoare de informații, personalul, mijloace de comunicare, sistemele de prelucrare (de regulă, automată) a informației, etc. Printre posibilele activități desfășurate în cadrul acestui sistem, pot fi enumerate : achiziția de informații din sistemul de bază, completarea documentelor și transferul acestora între diferite compartimente, centralizarea datelor, etc.

În sensul cel mai larg, un sistem informațional se referă la diversele interacțiuni dintre oameni, procese, date și tehnologii; astfel, termenul nu se referă numai la aspectele legate de TIC pe care o organizație le utilizează, cât și la modul în care oamenii interacționează cu tehnologia în scopul de a oferi suport pentru procesele de afacere. Sistemul informațional reprezintă un ansamblu de fluxuri și circuite informaționale organizate într-o concepție unitară. În orice domeniu de activitatea economică sau socială, există un flux informațional pe baza căruia se desfășoară orice activitate.

La nivelul unui agent economic, sistemul informațional asigură legătura dintre sistemul decizional și cel operațional (sistem de conducere și sistem de execuție); astfel, funcționarea sistemului informațional presupune desfășurarea următoarelor activități: – introducerea datelor cu privire la sistemul operațional – prelucrarea datelor în scopul asigurării de informații utile în procesul de decizie – obținerea informațiilor solicitate, ca apoi să se adopte decizii ce vor fi transmise sistemului operațional – efectuarea controlului și urmăririi respectării deciziilor.

MODALITĂȚI DE PRELUCRARE A DATELOR SI INFORMAȚIILOR

Datele reprezintă atribute cantitative sau calitative ale unei variabile sau mulțimi de variabile. Datele sunt în general rezultatul unor măsurători și pot constitui o bază pentru crearea de grafice, imagini sau observații cu privire la o mulțime de variabile. Pentru a deveni informații, datele privitoare la obiectul de activitate respectiv trebuie prelucrate în concordanță cu cerințele informaționale. Acest lucru presupune culegerea datelor de la diverse surse, prelucrarea propriu-zisă și distribuirea rezultatelor prelucrării (informațiile) către locul unde sunt solicitate. În consecință, obiectivul prelucrării datelor constă în convertirea datelor în informații care să stea la baza luării deciziilor.

Diferențele principale între date și informații sunt:

– datele reprezintă atribute primare colectate din diverse locuri, nedefinite sau neorganizate într-o formă care să stea la baza luării deciziilor;

– informațiile sunt mesaje obținute prin prelucrarea datelor, aceste mesaje trebuie să fie concise, actuale, complete și clare, astfel încât să răspundă cerințelor informaționale în scopul cărora au fost prelucrate datele.

Astăzi datele sunt prelucrate, de regulă, automat, prin folosirea unor echipamente electronice de prelucrare automată a datelor (sisteme cunoscute generic sub denumirea SPAD – Sistem de Prelucrare Automată a Datelor).

Introducerea datelor – reprezintă, în principal, procesul de culegere, verificare, codificare și transmitere a datelor

Prelucrarea datelor – poate presupune diverse activități de clasificare, sortare, efectuare de calcule aritmetico-logice, arhivare selectivă a datelor și rezultatelor prelucrării, în vederea regăsirii și prelucrării ulterioare a acestora.

Extragerea informațiilor – are de regulă trei etape:

– regăsirea rezultatelor din memorie

– decodificarea rezultatelor și prezentarea într-o formă accesibilă utilizatorului

– transmiterea informațiilor la locul solicitat de către utilizator (distribuirea).

Mecanismul de reglare (feedback) Informațiile obținute în urma prelucrării pot corespunde cerințelor sau nu; în acest sens poate avea loc o evaluare a rezultatelor prelucrării în funcție de care se vor efectua o serie de modificări în faza de introducere sau de prelucrare a datelor. Se poate considera că această fază are rolul unui mecanism de feedback ce relgează buna funcționare a sistemului, conferindu-i caracterul unui sistem cibernetic.

BAZE DE DATE

În ultimii ani, dezvoltarea sistemelor de baze de date reprezintă unul dintre cele mai importante aspecte în domeniul tehnologiei informației, având un impact decisiv asupra modului de organizare și funcționare a numeroaselor instituții și servicii. Acestea sunt companiile de comunicație, intreprinderile de comerț, serviciile bancare, serviciile de transport, asigurările, universitățile etc. Acestea sunt dependente de funcționarea corectă și neîntreruptă a sistemelor de baze de date. Sistemele de baze de date sunt o componentă importantă a vieții de zi cu zi în societatea modernă.

Zilnic, majoritatea persoanelor desfășoară activități care implică interacțiunea cu o bază de date: depunerea sau extragerea unei sume de bani din bancă, rezervarea biletelor de tren sau de avion, căutarea unei cărți într-o bibliotecă computerizată, gestiunea angajaților dintr-o firmă, cumpărarea unor produse etc.

Bazele de date pot avea mărimi (număr de înregistrări) și complexități extrem de variate, de la câteva zeci de înregistrări (de exemplu, baza de date pentru o agendă de telefon a unei persoane) sau pot ajunge la milioane de înregistrări (de exemplu, baza de date pentru cărțile dintr-o bibliotecă, baza de date cu stocarea angajaților unei firme sau baza de date unde se păstrează informații despre situația studenților etc). Marea majoritate a sistemelor de baze de date existente în momentul de față sunt relaționale și există un număr mare de astfel de sisteme comerciale care pot fi achiziționate și folosite pentru propriile dezvoltări. Modelul relațional de baze de date a fost introdus în anul 1970 de către E.F.Codd.

Utilizatorii unei baze de date au posibilitatea să efectueze mai multe categorii de operații asupra datelor stocate aici:

• Introducerea de noi date (insert)

• Ștergerea unor date existente în baza de date(delete)

• Actualizarea datelor stocate(update)

• Interogarea bazei de date (query) pentru regăsirea anumitor informații, selectate după un criteriu ales.

În sensul larg, o bază de date (database) este o colecție de date corelate din punct de vedere logic, care reflectă un anumit aspect al lumii reale și este destinat unui anumit grup de utilizatori. În acest sens, bazele de date pot fi create și menținute manual (un exemplu ar fi fișele de evidență a cărților dintr-o bibliotecă, așa cum erau folosite cu ani în urmă) sau computerizat așa cum sunt majoritatea bazelor de date în momentul de față.

O definiție într-un sens mai restrâns a unei baze de date este următoarea: O bază de date este o colecție de date centralizate, creată și menținută computerizat, în scopul prelucrării datelor în contextul unui set de aplicații. Prelucrarea datelor se referă la operațiile de introducere, ștergere, actualizare și interogare a datelor. Simple colecții de fișe (documente pe hârtie) sau fișiere de date care conțin date, dar nu permit operații de interogare nu sunt considerate baze de date. De exemplu, bazele de date pot fi create și menținute manual (un exemplu ar fi fișele de evidență a cărților dintr-o bibliotecă, așa cum erau folosite cu ani în urmă) sau computerizat așa cum sunt majoritatea bazelor de date în momentul de față.

O definiție într-un sens mai restrâns a unei baze de date este următoarea: O bază de date este o colecție de date centralizate, creată și menținută computerizat, în scopul prelucrării datelor în contextul unui set de aplicații. Prelucrarea datelor se referă la operațiile de introducere, ștergere, actualizare și interogare a datelor. Simple colecții de fișe (documente pe hârtie) sau fișiere de date care conțin date, dar nu permit operații de interogare nu sunt considerate baze de date. De exemplu, datele memorate în fișiere pe disc într-o aplicație de calcul tabelar (Microsoft Excel) sau documentele memorate de un editor de texte (ca Microsoft Word) nu sunt considerate baze de date.

Orice bază de date are următoarele proprietăți implicite:

• Baza de date este o colecție logică coerentă de date ce are cel puțin un înțeles.

• Baza de date este destinată, construită și populată de date despre un domeniu bine precizat. Ea are un grup de utilizatori și se adresează unui anumit grup de aplicații.

• O bază de date reprezintă câteva aspecte ale lumii reale creând orizontul propriu. Schimbările orizontului sunt reflectate în baza de date.

Față de vechile metode de înregistrare a datelor privind diferite activități pe fișe (documente scrise) sau chiar în fișiere pe disc, sistemele de baze de date oferă avantaje considerabile, ceea ce explică extinsa utilizare a acestora. Câteva dintre avantajele oferite sunt:

• Controlul centralizat al datelor, putând fi desemnată o persoană ca responsabil cu administrarea bazei de date

• Viteză mare de regăsire și actualizare a informațiilor

• Sunt compacte: volumul ocupat de sistemele de baze de date este mult mai redus decât documetele scrise

• Flexibilitatea ce constă în posibilitatea modificării structurii bazei de date fără a fi necesară modificarea programelor de aplicație

• Redundanță scăzută a datelor memorate, care se obține prin partajarea datelor între mai mulți utilizatori și aplicații. În sistemele de baze de date, mai multe aplicații pot folosi date comune, memorate o singură dată. De exemplu, o aplicație pentru gestionarea personalului dintr-o universitate și o aplicație pentru gestionarea rezultatelor la examene din aceeași universitate care folosește o singură bază de date, pot folosi aceleași informații referitoare la structurarea facultăților.

• Posibilitatea introducerii standardelor privind modul de stocare a datelor, ceea ce permite interschimbarea datelor între organizații

• Menținerea integrității datelor prin politica de securitate (drepturi de acces diferențiate în funcție de rolul utilizatorilor), prin gestionarea tranzacțiilor și prin refacerea datelor în caz de funcționare defectuoasă a diferitelor componente hardware sau software.

• Independența datelor față de suportul hardware utilizat. Sistemul de gestiunea a bazelor de date oferă o vizualizare a datelor, care nu se modifică atunci când se schimbă suportul de memorare fizic, ceea ce asigură imunitatea structurii bazei de date și a aplicațiilor la modificări ale sistemului hardware utilizat.

Majoritatea sistemelor de baze de date actuale sunt realizate în modelul de date relațional sau în modelul de date orientat obiect. Dezvoltarea continuă a acestor modele a condus către o nouă categorie de baze de date numite obiect-relaționale, care combină caracteristicile modelului relațional cu caracteristicile modelului orientat obiect.

Modelul de date relațional (Relational Model) se bazează pe noțiunea de relație din matematică, care corespunde unei entități de același tip și are o reprezentare ușor de înțeles și de manipulat, ce constă dintr-un tabel bidimensional, compus din linii și coloane. Fiecare linie din tabel reprezintă o entitate și este compusă din mulțimea valorilor atributelor entității respective, fiecare atribut corespunzând unei coloane a tabelului.

Modelul de date relațional a fost propus de cercetătorul E.F.Codd de la compania IBM, care a publicat în 1970 lucrarea “Un model relațional de date pentru bănci mari de date partajate”. Alte lucrări ale lui Codd, ca și ale altor cercetători ca R. Boyce, J.D. Ullman etc au perfecționat modelul de date relațional și au permis dezvoltarea sistemelor de baze de date.

Chiar dacă noțiunile de relație și tabel diferă în esența lor, relația reprezentând o mulțime de entități și tabelul o reprezentare vizuală a acesteia, cele două denumiri se pot folosi, în general pentru același scop.

Pe baza acestor noțiuni, se poate sintetiza esența modelului relațional prin următoarele caracteristici:

• Datele sunt percepute de utilizatori ca tabele

Operatorii relaționali care pot fi folosiți pentru prelucrarea datelor generează un tabel rezultat din tabelele operanzi

• Asocierea dintre tabele se realizează prin intermediul egalității valorilor unor atribute comune, ceea ce permite rezolvarea oricărei interogări.

Pe lângă avantajul unui model de date precis și simplu, sistemele de baze de date relaționale mai beneficiază și de un limbaj de programare recunoscut și acceptat, limbajul SQL (Structured Query Language), pentru care au fost emise mai multe standarde de către Organizația Internațională de Standardizare (International Standardization Office-ISO). Majoritatea sistemelor de gestiune a bazelor de date relaționale actuale implementează versiunea din anul 1992 a standardului pentru limbajul SQL, denumită SQL 92 sau SQL2.

SISTEME DE GESTIUNE A BAZELOR DE DATE

Sistemul de gestiune a bazelor de date (SGBD) este un sistem de programe ce permite definirea, crearea și întreținerea bazei de date precum și accesul controlat la acesta.

Din punct de vedere conceptual, gestiunea bazelor de date se bazează pe ideea separării structurii bazei de date de conținutul acesteia. În sistemele de baze de date definirea datelor se separă de programele aplicație, astfel încât utilizatorii văd doar definiția externă a unui obiect fără a cunoaște modul în care e definit acesta și cum funcționează. În acest mod, definiția internă a obiectului poate fi modificată fără a afecta utilizatorii acestuia dacă nu se modifică definiția externă. De exemplu, dacă sunt adăugate noi structuri de date sau sunt modificate cele existente, atunci programele aplicație nu sunt afectate dacă nu depind direct de ceea ce se modifică.

Sistemele de gestiune a bazelor de date sunt alcătuite dintr-o serie de module ce îndeplinesc diverse funcționalități. Anumite funcționalități sunt îndeplinite împreună cu sistemul de operare pe care este folosit sistemul respectiv. Principalele componente ale unui sisteme de gestiune al bazelor de date sunt:

Administratorul de fișiere gestionează alocarea spațiului pe disc precum și structurile de date utilizate la reprezentarea datelor pe disc. Acesta transmite cererea către metoda de acces corespunzătoare care fie citește datele din buffer-ul sistemului, fie le scrie în acesta.

Administratorul bazei de date acceptă interogările și examinează schemele externe și conceptuale pentru a determina ce înregistrări sunt necesare pentru a satisface o anumită cerere, după care apelează administratorul de fișiere pentru a efectua cererea.

Procesorul de interogare transformă interogările într-o serie de instrucțiuni de nivel jos adresate administratorului de baze de date.

Exemple de SGBD

În momentul de față, pe piață există o ofertă foarte mare de sisteme de gestiune a bazelor de date, de la sisteme care se pot folosi gratuit (fără licență sau cu licență publică), până la sisteme de înaltă performanță, a căror utilizare necesită cumpărarea de licențe. Pentru aceste sisteme există pe site-urile producătorilor versiuni de test numite trial version, pentru care nu se plătește licență, durata folosirii respectivului produs fiind limitată la un număr de zile (30, 60 zile, în funcție de producător).

Microsoft SQL Server este sistemul de gestiune a bazelor de date relaționale multi-utilizator dezvoltat de firma Microsoft pentru sistemele de operare Windows. Au existat mai multe versiuni, cea actuală fiind SQLServer 2000 (SQL Sever 2003 fiind încă în faza de testare). În toate versiunile, acest sistem de baze de date suportă standardul SQL2, cu implementarea perfomantă a trăsăturilor avansate de stocare și prelucrare a datelor. Există o interfață grafică pentru interacțiunea cu utilizatorul, pentru folosirea tuturor opțiunilor: de export/ import date, de creare și manipulare a tabelelor, pentru popularea cu date a tabelelor, de creare a interogărilor, a procedurilor stocate, a triggerelor etc. Pentru a obține gratuit o versiune de test, accesați adresa http://www.microsoft.com.

Microsoft Access este unul din cele mai cunoscute sisteme de gestiune a bazelor de date relaționale pe platforme de calculatoare personale. Microsoft Access dispune de un sistem de control al bazei de date (database engine) și o intefață grafică pentru interacțiunea cu utlizatorul. Aplicațiile de baze de date în MS Access se pot dezvolta cu multă ușurință datorită generatoarelor de aplicații (wizards) care permit proiectarea vizuală a bazelor de date, a formularelor (forms) pentru interfețele grafice și a rapoartelor (reports). MS Access este folosit în special pentru aplicații personale sau pentru mici afaceri și licența acestuia se cumpără odată cu cumpărarea licenței produsului Microsoft Office. Acest sistem este cel folosit de noi în capitolele următoare.

Sistemul Oracle este un sistem de gestiune al bazelor de date multi-utilizator foarte puternic, cu implementări pe toate platformele (Windows, Linux, Unix), care oferă atât performanțe de execuție ridicate, cât și un grad mare de protecție și securitate a datelor. În toate versiunile, Oracle oferă implementarea completă a caracteristicilor modelului relațional, conform standardului SQL2, iar ultimele versiuni (Oracle8i, Oracle9i etc) sunt sisteme de gestiune obiect-relaționale distribuite, implementând extensiile orientate obiect prevăzute în standardul SQL3 și oferind posibilitatea de dezvoltare a bazelor de date distribuite. De la adresa http://www.oracle.com se poate obține o versiune a sistemului de gestiune Oracle, dar și a diferitelor instrumente de dezvoltare a aplicațiilor de baze de date. Termenii licenței permit utilizarea gratuită a acestor sisteme în scopuri necomerciale pe o perioadă nelimitată, pentru utliizarea în scopuri comerciale trebuie plătite licențele corespunzătoare.

MySQL este un sistem de gestiune a bazelor de date relaționale cu implementări pentru sistemele de operare Linux, Unix, Windows. Acest sistem se poate utiliza gratuit, fiind open source. Ultima versiune și documentația sistemului de gestiune a bazelor de date MySQL se poate descărca de la adresa http://www.mysql.com. Acest sistem este compatibil cu standardul SQL2, dar unele prevederi ale standardului fiind implementate parțial.

Visual FOX PRO este un limbaj de programare complet, care acceptă un mediu interactiv și un mediu compilat la rulare. Visual FOX PRO este compatibil cu toate versiunile anterioare de FoxPro. Stilul de proiectare a interfeței FoxPro a fost întotdeauna orientat către flexibilitate și ușurință în utilizare. Pe de altă parte, forța și viteza brută au reprezentat dintotdeauna punctul forte al lui FoxPro. Nici un produs creat de celelalte companii axate pe baze de date, care au făcut trecerea la modelul orientat obiect nu a putut rivaliza cu FoxPro în ce privește viteza de execuție a funcțiilor specifice bazelor de date . Și acest mediu conține vrăjitori (Wizard) pentru gestionarea mai multor taskuri.

IBM DB2 este un sistem de gestiune al bazelor de date al firmei IBM. Acest sistem asigură integritatea datelor, oferă o securitate sporită pentru date, are o interfață grafică pentru gestionarea bazei de date. Dispune, ca și Microsoft SQL Sever și Oracle de posibilitatea creării de proceduri stocate, acestea fiind niște proceduri care rulează pe server și asigură o viteză mai mare de răspuns. Are mai multe versiuni în funcție de dorințele și necesitățile utilizatorilor.

CAPITOLUL 2. PROIECTAREA BAZEI DE DATE

2.1. LIMBAJUL SQL

SQL (Structured Query Language – Limbaj Structurat de Interogare) , apărut în 1970 este un limbaj de programare specific lucrului cu bazele de date, devenit un standard în domeniu (standardizat ANSI-ISO), fiind cel mai popular limbaj utilizat pentru creearea, modificarea, regăsirea și manipularea datelor de către SGBD-urile (Sistemele de Gestiune a Bazelor de Date) relaționale.

Caracteristici generale:

SQL conține atât componența de descriere a datelor (LDD), cât și componența de manipulare a datelor (LMD);

Manipularea (interogarea) este partea extinsă;

Limbaj neprocedural: secvența de comenzi (instrucțiuni), fiecare comandă este transmisă SGBD-ului, este interpretată și returnează un rezultat.

Prezentarea limbajului SQL

     Standardul SQL3 (SQL ’98) definește modelul obiect-relațional de baze de date.
    Structura sintactica: limbajul este compus din instrucțiuni (comenzi). O comandă SQL este o secvență de elemente componente (token). Elementele componente pot fi: cuvinte cheie, identificatori, caractere speciale și constante (literali).

Cuvintele cheie și identificatorii

Aceștia au o structură lexicală identică. Lexical, un cuvânt cheie sau un identificator inseamnă o secvență de litere și caracterul ‘_’.
    Din punct de vedere semantic, cuvintele cheie sunt elemente cu semnificație fixa în limbaj:

nume de comenzi (clauze): SELECT, INSERT, etc;

exemplu de SELECT:

SELECT * FROM clienti WHERE adminID='{$_SESSION['logat_client_id']}'

//scoate datele clientului autentificat din baza de date

tipuri de date: integer, numeric, char, varchar, etc.

Limbajul SQL nu diferențiază caracterele mari de cele mici: este case insensitive.
    Identificatorii au aceeași structură lexicală; din punct de vedere semantic reprezintă nume într-o comandă și pot fi: nume de tabele, de coloane, etc. SQL folosește termenii de tabel, coloană și linie pentru relație, atribut și tuplu (cei subliniați sunt cei folosiți în definirea matematică a modelului relațional).

Identificatorii sunt:

– obișnuiți (simpli): Secție, ANGAJAT, etc;

– delimitați: reprezintă un nume pus între ghilimele, care poate să conțină orice fel de caractere. Un identificator delimitat este folosit, în general, pentru un nume mai mare de tabel.

Constantele

Constantele pot fi:

– de tip număr întreg: ex 1234 (reprezentate pe 4 octeți);

– de tip număr real: ex 12.5, 12e5 (reprezentate de 8 octeți, în formatul double);

– de tip șir de caractere: ex “Acesta este un șir”;

– de tip NULL: constanta specială, reprezintă lipsa de informație.

Caracterele speciale

– operatori (+,-,…);

– “;” termină o comanda;

– punctul zecimal (constante reale, codificări ale coloanelor);

– separatorii: blank, TAB, CR ; sunt ceruți uneori între elemente.

Operatori, expresii și funcții SQL

Operatorii SQL: pot fi reprezentați prin unul sau mai multe caractere speciale (+, <,…) sau prin cuvinte cheie (AND, OR, NOT, UNION).
  Operatorii pot fi clasificați:

– operatori binari: au nevoie de doi operanzi;

– operatori unari: se aplică unui singur operand și pot fi postfixe sau prefixe.
– aritmetici: +, -, <, <=, <> (!=);

– logici: AND, OR, NOT.
   

Operatorii logici se aplica asupra unor valori ternare (o valoare ce reprezintă un operand ce poate avea valoare TRUE (1), FALSE (0) și NULL (lipsă de informație)).
    Nu există tipul de date boolean asupra caruia să se aplice operatorii logici dar operatorii de comparație returnează o valoare booleana.
   

Operatorii de comparație evaluează orice expresie la o valoare logica (bool): TRUE, FALSE. Tipul boolean există însa incepând din SQL3. Operatorii de comparație pot fi:

aritmetici: <, >, <=, >=, =, != (<>);

relaționali

A BETWEEN val_min val_max;

A LIKE model_șir -> A șir;

A IS NULL sau A IS NOT NULL;

A IN lista_valori.

    O expresie SQL este o expresie formată din operanzi, operatori și paranteze. Operatorii, în general, sunt nume de coloane (se va folosi valoare atributului definit de acea coloană) sau o constantă.

Orice expresie se evaluează la o valoare care poate fi apoi folosită în alte operații.

Funcțiile SQL:

– funcții totalizatoare (de grupare): calculează anumite valori pentru coloane din tabele: SUM, AVE, MIN, MAX, …;

– funcții matematice: calcule trigonometrice, puteri, logaritmi, rotunjiri;

– funcții pentru șiruri;

– funcții pentru date calendaristice;

– funcții pentru conversii.

Ex: calcularea mediei

SELECT (SUM(pret)/count(*)) as avg FROM apartamente WHERE adminID='{$_SESSION['logat_client_id']}'

Comenzi SQL

Există două tipuri de comenzi:

Comenzi de creeare a tabelelor, de ștergere a tabelelor și de modificare a tabelelor formează comenzile de definire a datelor (Limbaj de definire a datelor);

Comenzile de manevrare a datelor (LMD): SELECT (interogările de baza), INSERT, UPDATE, DELETE.

Ex: SELECT n.*, e.* FROM apartamente n LEFT JOIN client e ON n.clientID=e.clientID

WHERE e.adminID='{$_SESSION['logat_client_id']}' ORDER by apartamentID ASC

SQL asigură toate operațiile care se consideră necesare într-o bază de date.

2.2. MYSQL

MySQL este un sistem de gestiune a bazelor de date relațional, produs de compania suedeză MySQL AB și distribuit sub Licență Publică Generală GNU. Este cel mai popular SGBD open-source la ora actuală, fiind o componentă cheie a stivei LAMP(Linux, Apache, MySQL, PHP).

Deși este folosit foarte des împreună cu limbajelel de programare JAVA,PHP, cu MySQL se pot construi aplicații în orice limbaj major. Există multe scheme API disponibile pentru MySQL ce permit scrierea aplicațiilor în numeroase limbaje de programare pentru accesarea bazelor de date MySQL, cum are fi: C, C++, C#, Borland Delphi, Java, Perl, PHP, Python, FreeBasic, etc., fiecare dintre acestea folosind un tip spefic API. O interfață de tip ODBC denumită MyODBC permite altor limbaje de programare ce folosesc această interfață, să interacționeze cu bazele de date MySQL cum ar fi ASP sau Visual Basic.

În multe cărți de specialitate este precizat faptul că MySQL este mult mai ușor de invățat și folosit decât multe din aplicațiile de gestiune a bazelor de date, ca exemplu comanda de ieșire fiind una simplă și evidentă: „exit” sau „quit”.

Pentru a administra bazele de date MySQL se poate folosi modul linie de comandă sau, prin descărcare de pe internet, o interfață grafică: MySQL Administrator și MySQL Query Browser. Un alt instrument de management al acestor baze de date este aplicația SQL Manager.

MySQL poate fi rulat pe multe dintre platformele software existente: AIX, FreeBSD, GNU/Linux, Mac OS X, NetBSD, Solaris, SunOS, Windows 9x/NT/2000/XP/Vista.

Serverul de baze de date MySQL este foarte rapid, fiabil și ușor de utilizat. Inițial a fost dezvoltat pentru a manipula baze de date de dimensiuni mari mult mai rapid decât soluțiile existente.

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 interfețe pentru programarea aplicațiilor (Application Programming Interfaces – APIs)

Caracteristicile de bază ale MySQL

Câteva dintre caracteristicile de bază ale MySQL sunt:

Funcționează 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 ușuință pe mai multe procesoare dacă sunt disponibile.

Un sistem de alocare a memoriei foarte rapid și bazat pe thread-uri.

Folosește tabele temporare stocate în memorie.

Funcțiile SQL sunt implementate folosind o bibliotecă de clase optimizată și sunt foarte rapide. De obicei, nu are loc alocare a memoriei după inițializarea interogărilor.

Serverul este disponibil ca program separat ce poate fi folosit într-un mediu de rețea de tip client/server. De asemenea, este disponibil și ca bibliotecă ce poate fi inclusă în aplicații de sine stătătoare.

Oferă motoare tranzacționale și non-tranzacționale de stocare a datelor.

Tipuri de date utilizate de MySQL

Tipurile de date care apar în coloanele MySQL sunt diferite în funcție de tipul lor. MySQL alocă spațiu pe disc în funcție de tipul de date specificat de utilizator. Iată și tipurile de date, spațiul pe care îl ocupă precum și valorile minime și maxime pe care le pot avea:

Tipul de câmp TIMESTAMP oferă posibilitatea de a data automat operațiile de tip INSERT și UPDATE. El este compus implicit din 14 caractere pentru formatul 'YYYYMMDDhhmmss' dar putem să specificăm la crearea unui tabel că dorim să conțină mai puține caractere.

Tipurile de string-uri în MySQL sunt BLOB, TEXT, CHAR, VARCHAR, ENUM și SET. În tabelul următor puteți vedea marimea maximă admisă pentru cele mai folosite dintre ele precum și spațiul alocat pe disc pentru fiecare:

Câmpul de tip BLOB poate conține o cantitate variabilă de informație, similar cu TEXT însa diferit printr-un singur aspect: căutarea într-un câmp BLOB este case sensitive (se face diferență între majuscule și minuscule), iar într-un câmp TEXT nu este. Tipul VARCHAR este similar tipului TEXT cu deosebirea ca într-o coloană de tip VARCHAR putem specifica numărul maxim de caractere admise.

Administrarea bazelor de date MySQL din linia de comandă

În cazul unui sistem de operare Windows, conectarea pentru a lucra în mod interactiv cu cu serverul MySQL instalat pe același calculator realizează lansând în execuție monitorul MySQL numit mysql.exe din directorul mysql/bin:

C:\mysql\bin>mysql.exe

Welcome to MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 3 to server version: 4.0.15-nt

Type ’help;’ or ’\h’ for help.Type ’\c’ to clear the buffer.

mysql>_

Comenzile SQL se pot scrie cu litere mari sau mici, având același efect. Comenzile SQL se termină, uzual, cu caracterul “ ; “. Dând comanda help; (sau \h sau ?) pe ecran apar o serie de comenzi MySQL importante.

Câteva comenzi din linia de comandă:

-create database – crează o bază de date

-use – se selectează o bază de date

-create table – se crează tabele

-alter – modificarea definiției unei tabele se realizează folosind comanda alter

-insert – adăugare de înregistrări într-un tabel

-update – permite modificarea valorilor unor câmpuri dintr-un tabel

-drop – permite suprimarea unui tabel din baza de date

-show – se folosește pentru listarea tabelelor care alcătuiesc baza de date

-select – este cea mai complexă comandă din limbajul SQL și este destinată regăsirii unor anumite date

-quit – determină întreruperea conexiunii cu serverul MySQL

2.3. CREAREA UNEI BAZE DE DATE

Comanda de creare de noi tabele în baza de date curentă în limbajul SQL standard este CREATE TABLE.

Sintaxa simplificată pentru această comandă este următoarea:

CREATE TABLE nume_tabela (

coloana_1 descriere_1,

coloana_2 descriere_2,

……………………….,

coloana_n descriere_n,

[alte_descrieri]

)

unde coloana_x este numele coloanei, iar descriere_x conține tipul valorilor acelei coloane și alte elemente de descriere pentru ea. În descrierea unei coloane se poate specifica, pe lângă tipul valorilor sale și alte constrângeri de integritate ca:

• NOT NULL indică faptul că valorile aferente coloanei respective nu pot avea valori de tip null, care nu înseamnă zero, ci lipsă de informație.

• PRIMARY KEY indică faptul că coloana specificată cu această constrângere va fi cheie primară pentru acest tabel.

• FOREIGN KEY necesită ca fiecare valoare din coloană să existe într-o coloană corespondentă dintr-o tabelă referită. Constrângerea FOREIGN KEY poate face referire doar la coloane care sunt PRIMARY KEY sau UNIQUE în tabela referită.

• DEFAULT indică o valoare implicită care îl ia un câmp al unei tabele.

Crearea tabelelor pentru baza de date Agenție:

CREATE TABLE IF NOT EXISTS `apartamente` (

`id_apartament` int(11) NOT NULL AUTO_INCREMENT,

`zona` text NOT NULL,

`suprafata` int(11) NOT NULL,

`etaj` int(11) NOT NULL,

`nr_camere` int(11) NOT NULL,

`nr_balcoane` int(11) NOT NULL,

`bai` int(11) NOT NULL,

`anul_constructiei` int(11) NOT NULL,

`compartiment` int(11) NOT NULL,

PRIMARY KEY (`id_apartament`)

)

CREATE TABLE IF NOT EXISTS `cumparari` (

`id_cumparare` int(11) NOT NULL AUTO_INCREMENT,

`id_apartament` int(11) NOT NULL,

`id_cumparator` int(11) NOT NULL,

`data_cumparare` datetime NOT NULL,

`pret_cumparare` int(11) NOT NULL,

PRIMARY KEY (`id_cumparare`)

)

CREATE TABLE IF NOT EXISTS `cumparatori` (

`id_cumparator` int(11) NOT NULL AUTO_INCREMENT,

`nume_cumparator` text NOT NULL,

`prenume_cumparator` text NOT NULL,

`oras` text NOT NULL,

`telefon` text NOT NULL,

PRIMARY KEY (`id_cumparator`)

)

CREATE TABLE IF NOT EXISTS `chiriasi` (

`id_chirias` int(11) NOT NULL AUTO_INCREMENT,

`nume_chirias` text NOT NULL,

`prenume_chirias` text NOT NULL,

`oras` text NOT NULL,

`telefon` text NOT NULL,

PRIMARY KEY (`id_chirias`)

)

CREATE TABLE IF NOT EXISTS `inchirieri` (

`id_inchiriere` int(11) NOT NULL AUTO_INCREMENT,

`id_apartament` int(11) NOT NULL,

`id_chirias` int(11) NOT NULL,

`data_inchiriere` datetime NOT NULL,

`perioada` text NOT NULL,

`pret` int(11) NOT NULL,

PRIMARY KEY (`id_inchiriere`)

)

CREATE TABLE IF NOT EXISTS `vinzari` (

`id_vinzare` int(11) NOT NULL AUTO_INCREMENT,

`id_apartament` int(11) NOT NULL,

`id_vinzator` int(11) NOT NULL,

`data_vinzare` datetime NOT NULL,

`pret_vinzare` int(11) NOT NULL,

PRIMARY KEY (`id_vinzare`)

)

CREATE TABLE IF NOT EXISTS `vinzatori` (

`id_vinzator` int(11) NOT NULL AUTO_INCREMENT,

`nume_vinzator` text NOT NULL,

`prenume_vinzator` text NOT NULL,

`oras` text NOT NULL,

`telefon` text NOT NULL,

PRIMARY KEY (`id_vinzator`)

)

2.4. DIAGRAMA ENTITATE-RELAȚIE

Modelul entitate-relație

Obiectele bazelor de date relaționale

Modelul entitate-relație este cel mai utilizat model conceptual de nivel înalt, care reprezintă schema conceptuală a bazei de date cu ajutorul entităților și a relațiilor dintre acestea. Acest model a fost introdus în anul 1976 de P.S.Chen. Elementele de bază folosite în cadrul acestui model sunt conceptele de entitate și cel de relație.

O entitate este un obiect al lumii reale, cu o existență independentă și poate reprezenta un obiect fizic, o activitate, un concept. O entitate este un obiect cu existență fizică , de exemplu: persoană particulară, automobil, companie, activitate, curs universitar.

Orice entitate are o serie de proprietăți numite atribute, ce descriu entitatea respectivă.

Cu toate că nu reprezintă același lucru, pentru denumirea de entitate se mai folosește și denumirea de tabel al bazei de date, iar pentru atribute câmpurile tabelului.

Scurte definiții a noțiunilor pe care le-am folosit și le voi folosi în continuare sunt:

• Tabelă (entitate) este o colecție de informații logice relaționale tratată ca o unitate

• Înregistrare (n-uplu). O tabelă este compusă din înregistrări sau rânduri. Fiecare înregistrare este tratată ca o simplă unitate. Fiecare înregistrare este legată de înregistrări ale altei tabele.

• Câmpuri (atribute). Înregistrările sunt constituite din câmpuri (coloane) . Un câmp este o particulă atomică a bazei de date ce reprezintă cea mai mică cantitate de informație care poate fi manipulată. Toate înregistrările dintr-o tabelă au aceleași câmpuri.

De exemplu, pentru baza de date Agenție pe care dorim să o creăm, o entitate reprezintă o Apartamente cu atributele: ID apartament, Zona, Suprafata, Etaj, Nr camere, Nr balcoane, Bai, Anul, Compartimentul. O altă entitate ar fi Cumpărători cu atributele: ID cumpărător, Nume, Prenume, Oraș, Telefon.

Atributelor li se asociază valori care au ca scop identificarea entității. Această atribuire de valori pentru fiecare atribut formează o înregistrare a tabelului respectiv.

Unele atribute pot fi divizate în mai multe părți cu semnificație independentă. Un astfel de atribut este un atribut complex. De exemplu Numele Cumpărătorului poate fi divizat în Nume și Prenume.

Atributele care nu sunt compuse se numesc atribute atomice. Valoarea atributelor complexe se formează prin concatenarea valorilor atributelor atomice.

Multe atribute au valoare unică pentru o entitate particulară și sunt numite atribute cu o singură valoare. De exemplu CNP-ul unei persoane. Aceste atribute sunt atribute cu mai multe valori.

Atributele derivate sunt atributele ce se pot determina din alte atribute, cum ar fi vârsta unei persoane se poate calcula din data curentă minus data nașterii persoanei respective.

În anumite situații, o entitate poate să nu aibă valori pentru toate atributele asociate ei, în acest caz folosindu-se o valoare specială numită atributul null.

Exemplu:

Revenind la exemplu meu, definim toate entitățile din baza de date Agentie.

Entitățile sunt următoarele:

• Apartamente cu atributele: ID apartament, Zona, Suprafata, Etaj, Nr camere, Nr balcoane, Bai, Anul, Compartimentul.

• Cumpărări cu atributele: ID cumpărare, ID apartament, ID cumpărător, Data, Pret

• Cumpărători cu atributele: ID cumpărător, Nume, Prenume, Oraș, Telefon

• Închirieri cu atributele: ID inchiriere, ID apartament, ID chiriaș, Data, Pret

• Chiriași cu atributele: ID chiriaș, Nume, Prenume, Oraș, Telefon

• Vânzări cu atributele: ID vânzare, ID apartament, ID vânzător, Data, Pret

• Vânzători cu atributele: ID vânzător, Nume, Prenume, Oraș, Telefon

Diagrama entitate-relație

Diagrama entitate-relație este modelul entitate-relație reprezentat. prin mulțimile de entități și relații dintre acestea. Există mai multe variante de notații pentreu redarea acestei diagrame, astfel:

Fig. 2.4.1

Fig. 2.4.2

III. CREAREA INTERFETEI

3.1. LIMBAJUL PHP

PHP, acronim care provine din "PHP: Hypertext Preprocessor", este un limbaj de scripting utilizat pe scară largă, realizat și distribuit în sistem Open Source, care este special realizat pentru a dezvolta aplicații web, prin integrarea codului PHP în documente HTML. Sintaxa sa provine din C, Java și Perl și este ușor de învățat. Scopul principal al limbajului este acela de a scrie rapid pagini web dinamice, dar cu PHP se pot realiza mult mai multe.

PHP este una dintre cele mai interesante tehnologii existente în prezent. Deoarece îmbină caracteristici dintre cele mai complexe cu simplitatea în utilizare, PHP a devenit rapid un instrument de frunte pentru dezvoltarea aplicațiilor în Web. Totuși, spre deosebire de alte instrumente populare pentru dezvoltarea aplicațiilor Web, cum este Perl, PHP este un limbaj de programare comod pentru începători, chiar și pentru cei care nu au mai desfășurat activități de programare în trecut.

Ca și alte limbaje de scripting pentru Web, PHP vă permite să furnizați un conținut Web dinamic, adică un conținut Web care se modifică automat de la o zi la alta sau chiar de la un minut la altul. Conținutul Web este un element important în susținerea traficului unui sit Web; de regulă, vizitatorii nu vor mai reveni la o pagină Web care conține aceleași informații ca și cele prezentate la ultima vizită. Pe de altă parte, siturile Web frecvent actualizate pot atrage cantități enorme de trafic.

Mai mult, spre deosebire de limbajele de scripting, precum JavaScript, PHP rulează pe serverul Web, nu în browserul Web. În consecință, PHP poate obține accesul la fișiere, baze de date și alte resurse inaccesibile programului JavaScript. Acestea constituie bogate surse de conținut dinamic, care atrag vizitatorii.

Noțiuni Fundamentale

Spre deosebire de un script scris în alte limbaje cum ar fi Perl sau C – în loc de a scrie un program cu o mulțime de comenzi pentru a produce un HTML, folosind PHP se poate scrie un script HTML, ca cel de mai jos, ce include cod pentru a realiza ceva.

Codul PHP este delimitat de coduri de start și de sfârșit ce permit intrarea și ieșirea din "modul PHP".

<html>

<head>

<title>Exemplu</title>

</head>

<body>

<?php

echo "Salut, sunt un script PHP!";

?>

</body>

</html>

Diferența dintre PHP și altceva cum ar fi JavaScript, este acela că PHP este executat pe server pe când JavaScript este executat pe calculatorul clientului (de browserul Web). Pentru un script similar celui de mai jos sus pe un server, clientul ar primi doar rezultatele scriptului ce este rulat, fără a vedea în nici un fel codul din spatele acestuia. Se poate chiar configura serverul de web ca acesta să proceseze toate fișierele HTML cu PHP și astfel nu exită nici o metodă ca un utilizator să știe de fapt ce există în fișiere.

Cu PHP se poate face orice. PHP este în principal axat pe partea de scripting ce rulează pe server, deci poate face orice face și un program CGI, cum ar fi colectarea de date de la formulare, generarea de conținut dinamic sau trimitere și primire de cookie-uri. Dar PHP poate face mult mai multe.

Există trei domenii principale unde sunt folosite scripturile PHP.

Scripturi ce rulează pe server. Acesta este cel mai tradițional și cel mai important pentru PHP. Este nevoie de trei lucrui pentru a face să meargă: interpretorul PHP (CGI sau modul de server), un server web și un browser web. E nevoie ca serverul de web să fie pornit, cu o conexiune PHP instalată. Se poate accesa rezultatul programelor PHP cu un browser prin intermediul serverului de web.

Scripting în linie de comandă. Se poate face ca PHP să ruleze fără a fi nevoie de server și de browser, ci doar de interpretorul PHP. Această metodă este ideală pentru script-urile ce se vor a fi executate de regulă folosind cron (task scheduler în Windows), sau sarcini simple de procesare a textelor.

Scrierea de aplicații ce rulează de partea clientului în mod grafic (GUI). Probabil că PHP nu este limbajul cel mai bun de a scrie aplicații cu ferestre pentru Windows sau alte sisteme de operare, dar dacă este bine cunocut și se dorește folosirea unor facilități avansate ale PHP-ului în aplicațiile ce rulează de partea clientului, se poate totuși folosi PHP-GTK pentru a scrie astfel de programe. De asemenea, există posibilitatea de a scrie aplicații ce rulează pe platforme diferite folosind această metodă. PHP-GTK este o extensie a PHP-ului, nedisponibilă în distribuția principală de PHP.

PHP poate fi folosit pe aproape toate marile sisteme de operare, incluzând Linux, multe variante de Unix (incluzând HP-UX, Solaris și OpenBSD), Microsoft Windows, Mac OS X, RISC OS, probabil și altele. PHP are de asemenea suport pentru majoritatea serverelor de web din prezent. Acestea includ serverele Apache, Microsoft Internet Information Server, Personal Web Server, Netscape și iPlanet, serverul Oreillz Website Pro, Caudium, Xitami, OmniHTTPd, și multe atele. Pentru majoritatea serverelor PHP are un modul, iar pentru celelalte suportă standardul CGI, PHP putând să lucreze ca un procesor CGI.

Deci, cu PHP, există libertatea de a alege un sistem de operare și un server de web. Chiar mai mult, există posibilitatea de a alege programarea procedurală sau programarea orientată obiect, sau chiar să se combine acestea. Cu toate acestea, nu orice facilitate a standardului POO este prezentă în versiunea curentă a PHP-ului, multe librării de cod și aplicații mari (incluzând și librăria PEAR) sunt scrise folosind doar cod POO.

Cu PHP programatorul nu este limitat să scoată rezultat HTML. Posibilitățile PHP-ului includ afișarea de imagine, fișiere PDF și chiar filmulețe Flash (folosind librăriile libswf și Ming) toate generate instant. Se poate de asemeanea ca rezultatul să fie orice fișier text, cum ar fi XHTML sau orice alte fișiere XML. PHP poate genera automat aceste fișiere și să le salveze în sistemul de fișiere în loc să le afișeze, formând un cache de partea serverului pentru conținutul dinamic.

Una dintre cele mai puternice și importante facilități în PHP este suportul său pentru o gamă largă de baze de date. Scrierea une pagini de web ce interacționează cu o bază de date este incredibil de simplă. PHP suportă și ODBC, standardul Open Database Connection, deci se poate conecta la orice altă bază de date ce suporta acest standard mondial.

PHP are de asemenea suport pentru a conversa cu alte servicii folosind protocoale cum ar fi LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (pe Windows) și multe altele. Se pot, de asemenea, deschide socket-uri de rețea și se poate interacționa între aproape toate limbajele de programare Web. PHP are suport pentru instanțierea obiectelor Java și utilizarea lor într-un mod transparent ca obiecte PHP. Se pot de asemenea folosi extensii CORBA pentru a accesa obiecte aflate la distanță.

PHP are capabilități extrem de folositoare pentru procesarea textului, de la POSIX Extins sau expresii regulare Perl, până la parsarea documentelor XML. Pentru parsarea și accesarea documentelor XML, suportă standardele SAX și DOM.

Folosind PHP în domeniul comerțului electronic, sunt foarte folositoare pentru programul tău de plați online funcții de plată Cybercash, CyberMUT, VeriSign Payflow Pro și CCVS.

În cele din urmă, dar nu în ultimul rând, PHP are și alte extensii interesante, cum ar fi funcții ale motorului de căutare mnoGoSearch, funcții pentru accesarea IRC-ului, multe utilitare de compresie (gzip, bz2), conversie de calendar, traducere, etc.

3.1.1. Crearea și descrierea metodei de creare a aplicației

3.1.2. Crearea bazei de date

Baza de date a fost realizată cu aplicația XAMPP folosind phpMyAdmin. Pentru deschiderea aplicației phpMyAdmin se pornește XAMPP și se tastează în caseta de text pentru adrese a aplicației Internet Explorer adresa http://localhost/phpmyadmin/

Fig. 3.1.2.1

În fereastra afișată se va tasta numele noii baze de date (agentie_bd) și se va apăsa butonul Create.

Fig. 3.1.2.2

Inițial am făcut Exportul bazei de date create în Apex Oracle. După care pentru importarea bazei de date în aplicație, am intrat in mediul phpMyAdmin, și am selectat Opțiunea Import:

Fig. 3.1.2.3

Pentru importarea documentului agentie_bd, am selectat documentul din directorul în care se află și am apasat OK.

Fig. 3.1.2.4

Baza de date are 7 tabele. Tabelele arată astfel:

Fig. 3.1.2.5

Tabelul Apartamente are 9 câmpuri. Au fost introduse nume si tipul fiecăruia dintre câmpurile tabelului.

Fig. 3.1.2.6

Tabelul Cumpărători are 5 câmpuri:

Fig. 3.1.2.7

Tabelul Cumpărări are 5 câmpuri:

Fig. 3.1.2.8

Tabelul Vînzători:

Fig. 3.1.2.9

Tabelul Vînzări:

Fig. 3.1.2.10

Tabelul Chiriași:

Fig. 3.1.2.11

Tabelul Închirieri:

Fig. 3.1.2.12

3.2. Interfata cu Utilizatorul

3.2.1. Formularul de logare

La nivel de interfață formularul de logare arată astfel:

Fig. 3.2.1.1

La rândul său, acest formular a fost creat utilizând următorul script php:

<form class="form-1" action="" method="post">

<p class="field">

<input type="text" name="username" placeholder="Username or email">

<i class="icon-user icon-large"></i>

</p>

<p class="field">

<input type="password" name="password" placeholder="Password">

<i class="icon-lock icon-large"></i>

</p>

<p class="submit">

<button type="submit" name="submit"><i class="icon-arrow-right icon-large"></i></button>

</p>

<span><b><?php echo $error; ?></b></span>

</form>

Crearea tabelei login

Tabelul login va conține datele de identificare a utilizatorului autorizat să opereze în baza de date. Acest tabel este prezent în toate bazele de date accesibile prin Internet.

Crearea unui tabel se realizează concomitent cu definirea structurii sale.

Fig. 3.2.1.2

Tabelul login are 3 câmpuri.

În vederea creării comenzii create table, phpMyAdmin va cere introducerea numelui și tipului fiecăruia dintre câmpurile tabelului.

Fig. 3.2.1.3

Câmpurile tabelului login sunt id (INT – valoare întreagă, lungimea maximă 10 caractere), username(VARCHAR lungime maximă 255 caractere), password (VARCHAR – lungime maximă tot 255 caractere). Tipul VARCHAR se folosește pentru siruri de caractere de lungime variabilă. Pentru câmpul id s-a mai precizat că este PRIMARY și s-a selectat caseta AUTO_INCREMENT.

Prima caracteristică, PRIMARY indică faptul că id este cheie primară. Cheia primară a unui tabel din baza de date are valori distincte pentru toate articolele din tabel și are rolul de identificator unic al acestora. Dacă ulterior se va dori suprimarea unui articol se va putea selecta articolul indicându-i cheia primară.

Proprietatea AUTO_INCREMENT indică modul de formare a valorilor câmpului adminID. Valoarea acestuia pentru un nou articol care urmează să fie adăugat se calculează automat, prin incrementarea valorii corespunzătoare ultimului articol present în tabel.

Câmpul username s-a definit ca fiind INDEX. Impunerea ca index a unui câmp facilitează căutările în tabel efectuate după valori ale respectivului câmp. În cazul dat, serverul MySQL va atașa tabelului login un fișier ale cărui înregistrări vor conține perechi de valori username – adresă articol pe HDD.

În noul fișier înregistrările vor fi păstrate ordonate crescător după valorile câmpului username. La căutarea după username a unui articol din tabelul login se va căuta mai întâi în fișierul asociat tabelului adresa articolului căutat după care se va extrage direct articolul dorit.

Notă: Spre deosebire de PRIMARY, INDEX nu înseamnă valori distincte. Câmpul username permite introducerea aceluiași nume de mai multe ori.

În acest caz, în fișierul asociat tabelului login vor fi înregistrate grupat mai multe perechi username – adresă conținând același nume. La căutarea unui nume care apare repetat, serverul MySQL va furniza tot grupul de articole corespunzând criteriului de căutare impus.

Crearea tabelului se realizează prin apăsarea butonului .

phpMyAdmin va afișa și comanda CREATE TABLE trimisă serverului MySQL.

3.3. Tipuri de Utilizatori

3.3.1. Administratorul bazei de date

Am folosit Opțiunea INSERT pentru adaugarea unei înregistrări, și anume crearea unui utilizator, adică a administratorului bazei de date:

Fig. 3.2.1.4

3.2.2. Ieșirea din aplicație

Ieșirea la nivel de interfață se efectuiază cu apăsarea butonului de Ieșire din colțul drept de sus din aplicație:

Fig. 3.2.2.1

La ieșirea din aplicație am folosit scriptul php care anuleaza logarea:

<?php

session_start();

if(session_destroy())

{

header("Location: index.php");

}

?>

Astfel utilizatorul revine la pagina inițială, adică pagina de logare a aplicației.

3.4. Meniul aplicatiei

3.4.1. Pagina principală

După logarea utilizatorului în panoul de administrare, are loc trecerea la Panoul principal, unde

Fig. 3.4.1.1

Fig. 3.4.1.2

3.4.2. Meniul Apartamente

Fig. 3.4.2.1

Fig. 3.4.2.2

Fig. 3.4.2.3

Fig. 3.4.2.4

3.4.3. Meniul Cumparatori

Fig. 3.4.3.1

Fig. 3.4.3.2

Fig. 3.4.3.3

Fig. 3.4.3.4

3.4.4. Meniul Cumpărări

Fig. 3.4.4.1

Fig. 3.4.4.2

Fig. 3.4.4.3

Fig. 3.4.4.4

3.4.5. Meniul Vânzători

Fig. 3.4.5.1

Fig. 3.4.5.2

Fig. 3.4.5.3

Fig. 3.4.5.4

Fig. 3.4.5.5

3.4.6. Meniul Vânzări

Fig. 3.4.6.1

Fig. 3.4.6.2

Fig. 3.4.6.3

Fig. 3.4.6.4

3.4.7. Meniul Chiriasi

Fig. 3.4.7.1

Fig. 3.4.7.2

3.4.8. Meniul Inchirieri

Fig. 3.4.8.1

Fig. 3.4.8.2

Fig. 3.5.1

Fig. 3.5.2

Fig. 3.5.3

Fig. 3.5.4

CONCLUZII

Importanța Internetului în zilele noastre este deja cunoscută iar exploatarea oportunitaților oferite de acesta trebuie sa fie o prioritate pentru o firmă modernă mai ales dacă concurența are deja prezență online.

La baza aplicației Agentie Imobiliara stă limbajul de programare PHP cu baza de date relationala MySQL, care este un limbaj foarte puternic, și foarte des folosit. Din aceste motive am ales acest limbaj pentru implementarea bazei de date. În zilele noastre cele mai multe aplicații distribuite sunt scrise în PHP, care este o soluție convenabilă pentru proiectare a unei aplicații pentru clienții care dispun de un buget redus.

Lumea se schimbă de la o zi la zi, tehnologiile avansează, apar noi și noi aplicații, software care ne vor conduce într-o lume computerizată.

Aplicația Agentie Imobiliara este doar o mică parte dintr-o baza de date cu interfata a unei agentii, dar o parte semnificativă, deoarece folosirea ei ușurează munca multor oameni cu vârste si cunostinte diferite.

Bibliografie

Similar Posts