Aplicatie Web Pentru Rezervarea de Bilete

Capitolul 1. Introducere

Lucrarea de fața are ca și scop realizarea unui site web pentru un lanț de cinematografe, cu posibilitatea de a rezerva interactiv locurile dorite în timp real. Cred că exsistența unei aplicații web este vitală pentru orice fel de afacere, deoarece orice persoană are acces facil la internet atât de pe sistemele desktop, cât și de pe tablete și telefoane mobile, astfel având posibilitatea de a se informa rapid și chiar rezerva sau achiziționa bunul dorit. De asemenea prin intermediul unei astfel de aplicații, antreprenorul poate veni în întampinarea nevoilor clientului și în același timp îi poate oferi accesul la anumite unelte sau funcționalități prezente exclusiv în această aplicație.

Utilizatorii vizați sunt atât persoanele fizice cu varste de peste 14 ani ce doresc să vadă un film la unul dintre cinematografele partenere, cât și persoanele jurdice ce doresc să rezerve simplu și ușor un număr mai mare de locuri sau chiar toată sala pentru diverse evenimente pe care le organizează.

Aplicația este în același timp o bună sursă de informare despre filmele ce rulează sau ce urmează să ruleze în cinematografe, depre actorii lor, utilizatorii au acces la noele de pe renumitul site imdb.com și chiar pot consulta o lista cu cele mai vizionate filme în cinematografele partenere.

Aplicația web a fost dezvoltată folosind limbajul C# și framework-ul .NET. Experiența cu acest limbaj a fost obținută în urma proiectelor recent dezvoltate printre care se număra un website de tip wiki și o aplicație web ce are ca scop recomandarea de comedii utilizatorilor pe baza profilului lor. De asemenea baza de date a fost creată și modificată folosind T-Sql și SQLExpress.

Pe parcursul lucrării voi detalia pașii urmați, de la motivarea alegerii temei, întocmirea analizelor și realizarea planurilor de execuție pana la implementarea aplicației practice și chiar testarea ei.

Voi începe prin prezentarea aspectului comercial al aplicaței: de ce este importantă existența unui astfel de site, ce presupune administrarea lui si ce avantaje are acesta, apoi detalia tehnologiile folosite pentru implemetarea aplicației web. Aceste capitole pot constitui atât o sursă de documentație, prin exemplele oferite, dar în același timp au rolul de a informa si familiariza cititorul cu tehnologiile folosite. În ultimul capitol voi prezenta realizarea aplicației, atât la nivel teoretic,proiectare și analiză, cât și la nivel practic, implementarea propriu-zisă a acesteia.

Este foarte important să menționez că această aplicație nu a fost gandită să ramână în acest stadiu, ci a fost proiectată încă din fază incipientă pentru a putea fi dezvoltată în continuare, atât mergând pe ideea de rezervare de bilete (cum ar fi rezervări pentru concerte sau diverse enevimente ce pot avea loc în diferite locații), cât și adăugarea de noi funcționalități cum ar fi plata biletelor online, crearea unei baze de date completă cu toate filmele existente și chiar recomandarea de filme utilizatorilor pe baza profilului lor, a filmelor căutate și rezervate.

Concluzionand cred ca aplicația web poate avea un impact mare într-un scenariu real, grupul de utilizatori ținta fiind unul numeros și în același timp aceasta putând fi dezvoltata în continuare in vederea adaugării de noi funcționalități adresate și altui grup de utilitarori. În același timp cred că pe baza schemelor de implementare și de ce nu și a aplicației web pot fi dezvoltate și alte aplicații asemănătoare.

Capitolul 2. Contextul curent

2.1 Aplicații web

O aplicație web este un program ce rulează într-un browser și a fost scris într-un limbaj de programare ce poate fi interpretat de către browser; de exemplu o combinație de JavaScript, HTML si CSS.

Aplicațiile web sunt foarte populare și folosite datorita accesului facil la acestea, prin intermediul browser-ului, fară a fi nevoie de descărcarea prealabilă a unui produs software. Un alt avantaj al aplicațiilor web îl constituie faptul că acestea pot fi accesate oricând, de pe orice dispozitiv conectat la internet, fară a fi important sistemul de operare. Acest lucru face ca probleme precum cea a compatibilitații cu sistemul sau furnizarea actualizarilor către mii sau chiar zeci de mii de clienți să fie lucruri minore, astfel contribuind decisiv la popularitatea și gradul de utilizare al aplicațiilor web. Cele mai comune exemple de astfel de aplicații sunt: webmail-ul, licitații online, vânzare on-line cu amănuntul.

La început,o aplicație avea propriul cod ce trebuia descărcat de fiecare client în parte, acesta având rolul de interfața grafică pentru utilizator; în plus orice actualizare adusă codului stocat pe server impunea și o actualizare codului stocat pe dispozitivul clientului. De asemenea, atât codul stocat pe server, cât și cel stocat de client erau strâns legate de arhitectura calculatorului folosit, dar și de sistemul de operare acest lucru facând port-area aplicațtiilor foarte dificila.

La polul opus se afla aplicațiile web care folosesc „documente web” scrise într-un format standard (cum ar fi HTML sau JavaScript) ce sunt recunoscute de o varietate de browsere web. Un „document web” este similar conceptului de pagină web, dar de asemenea satisface si urmatoarea definiție dată de W3C (consorțiu ce are ca scop dezvoltarea de standarde pentru World Wide Web): ” … Every Web document has its own URI. Note that a Web document is not the same as a file: a single Web document can be available in many different formats and languages, and a single file, for example a PHP script, may be responsible for generating a large number of Web documents with different URIs. A Web document is defined as something that has a URI and can return representations (responses in a format such as HTML or JPEG or RDF) of the identified resource in response to HTTP requests. In technical literature … the term Information Resource is used instead of Web document”.

Aplicațiile web sunt o particularizare a aplicațiilor normale, codul clientului fiind descarcat în timp real cand este vizitată o anumită pagina web folosind proceduri standard foarte bine definite (protocoale), cum ar fi HTTP (HyperText Transfer Protocol).

În variantele incipiente fiecare pagină era transmisă către client ca un document static, dar chiar și așa putea fi creata o experiența interactivă prin intermediul form-urilor bazându-se pe ceea ce utilizatorul introducea; totuși pentru aceasta informația trebuia transmisă către server și apoi întreaga pagină reactualizată pe baza răspunsului primit, făcand interacțiunea greoaie. La îmbunatațirea acestei experiențe a contribuit decisiv compania Netscape care, în 1995, introduce un limbaj numit JavaScript ce permite programatorilor să adauge paginilor elemente dinamice. Acestea sunt interpretate local, astfel se evită trimitearea informației introduse către server, facilitând interacțiunea client-aplicație web. Scripturile atașate paginii pot varia, de la simpla validare a input-ului pană la a arăta sau ascunde parți din pagină.

Acest concept este dezvoltat în paralel și de Macromedia, care în 1996 introduce Flash, program ce poate fi adăugat în browser și este capabil să afișeze animații reținute în pagina. De asemenea este important de menționat faptul că Flash este un program de tipul „vector animation”, adică se folosește de primitive geometrice (puncte, linii, curbe, poligoane) pentru reprezentarea imaginilor in detrimentul modalității Bitmap (vezi Figura 2.1).

În 1999 conceptul de aplicație web este introdus si in Java, în specificația Servlet versiunea 2.2. În acea perioadă erau dezvoltate doar JavaScript și XML, Ajax fiind pus in valoare abia în anul 2005 când aplicații precum Gmail au început să își dezvolte tot mai mult interacțiunea cu clientul, fiind posibila conectarea unui script la server doar pentru a reține sau citi informații fară a fi nevoie ca întreaga pagină să fie descărcată din nou.

În cele din urmă, in anul 2011 este introdus HTML5 care furnizează atât facilități grafice cât și multimedia. Noțiunile de DOM (Document Object Model) și API nu mai sunt lăsate în planul secund, așa cum s-a întamplat până acum, ci sunt părți fundamentale ale HTML5. Acestea alături de grafica 3D facilitată de API-ul WebGL (Web Graphics Library) au o imprtanță colosală în dezvoltarea unor RIA –urilor . O RIA (Rich Internet Application) este o aplicație web ce are caracteristicile unei aplicații desktop, evident accesată prin intermediul unui browser.

2.2 Definirea problemei

O aplicație web este compusă din două parți fundamentale: interfața și funcționalitatea aplicației, cea din urmă fiind invizibilă pentru utilizatorul final, dar la fel de importantă ca și partea vizibila pentru acesta.

Interfața unei pagini este un element definitoriu pentru aceasta, având un rol esențial în decizia utilizatorului de a continua folosirea aplicației sau nu, astfel realizarea acestui element este foarte importantă. Informația de care utilizatorul are nevoie și pe care aplicația o furnizează este transmisă prin intermediul interfeței; astfel aceasta trebuie să fie suficient de amplă astfel încât să transmită toată informația necesară, dar în același timp, suficient de simplă pentru ca datele transmise să poată fi interpretate de utilizatoul final făra dificultate.

Primul element cu care utilizatorul ia contact este banner-ul sau logo-ul paginii; acesta se gasește în partea sus la majoritatea site-urilor tocmai pentru că este un element distinctiv ce se identifică cu aplicația și îi transmite utilitarorului dacă se afla în pagina corectă sau nu. Un alt element foarte important este meniul , acesta are rolul de a facilita navigarea prin paginile aplicației, astfel el trebuie să fie simplu structurat pe categorii și în aceeași masură intuitiv pentru a nu pune nici cea mai mică problemă utilizatorului ce trebuie să beneficieze facil de toate funcționalitățile aplicației. Tot în partea de sus se găsește și meniul de logare și un link către pagina cu informații despre profilul utilitatorului, acestea fiind poziționate de obicei în partea dreaptă a paginii. După această primă secțiune urmează cuprinsul paginii, acesta fiind un element dinamic ce se adapteată fiecarei pagini, dar mai ales este capabil să își schimbe structura în funcție de interacțiunea cu utilizatorul. Este foarte important ca aceasta să nu fie prea încărcată pentru a nu copleși utilizatorul cu o abundență de informații pe care acesta nu le poate interpreta. În final partea de jos conține footer-ul paginii cu informații aproape la fel de importante ca si meniul aplicației, ce trebuie sa fie mereu la îndemana utilizatorului: date despre firma, o scurtatură către pagina de contact, dar si scurtaturi către paginile de Facebook și Twitter; cu toții știm că în ziua de azi rețelele sociale au un mare impact asupra afacerilor online și sunt unele dintre cele mai puternice instrumente de reclama, putând să facă diferența între succes și eșec.

Din punct de vedere hardware, realizarea și întreținerea acestei aplicații web nu necesita un sistem informatic foarte performant, iar software-ul folosit este Microsoft Visual Studio alături de Sql Server Express oferit gratuit de Microsoft. După realizarea aplicației, uploadarea ei online este o formalitate, fiind necesarea doar un domeniu și un host, fară alte cerițe.

Unul dintre principalele avantaje ale aplicației este ușurința cu care aceasta poate fi întreținută în timp, toate uneltele administrative fiind incluse deja în aplicație, astfel angajații pot fi instruiți rapid și ușor, interfața grafică fiind simplă și intuitivă facilitând inițierea angajaților nefamiliarizați cu ea. Astfel aplicația are două secțiuni:

Secțiunea de rezervare și informare – adresata vizitatorilor, utilizatorilor înregistrați care se pot informa despre filme, actori și chiar rezerva bilete în cinematografele partenere.

Secțiunea de administrare – adresata strict administratorilor și angajaților; astfel accesul la funcționalitățile acestei secțiuni se face pe baza drepturilor acordate de către administratorul aplicației web anumitor utilizatori.

2.3 Modelele teoretice

Este foarte important să înțelegem că afacerile online nu se limitează doar la vânzarea produselor prin intermediul internetului, ci și rezervarea bunurilor (fizice sau intelectuale) este tot o afacere online („Electronic commerce, commonly known as E-commerce or eCommerce, is trading in products or services using computer networks, such as the Internet.”) și chiar mai mult de atât el cuprinde negocierile efectuate între diverse companii sau procesele interne desfașurate de diverse companii ca suport pentru cumpărare/vânzare. O definiție dată de Organizația economică de cooperare și dezvoltare a comerțului electronic este că acesta reprezintă desfașurarea unei afaceri prin intermediul rețelei internet, vânzarea de bunuri și servicii având loc online sau offline. Deși comerțul online a aparut destul de devreme, din cauza lipsei bazei materiale solide pentru dezvoltarea acestuia, nu a cunoscut o revoluție rapida la început; astfel acesta a luat amploare abia in 1997, cand compania IBM a folosit pentru prima oară acest termen, definind-ul ca fiind o modalitate de acces flexibil, securizat și integrat pentru desfașurarea diferitelor afaceri. În zilele noastre comerțul electronic este cheia competitivitații între anteprenori sau firme, facilitând atât accesul la noi segmente de piață, cât și creșterea vitezei de derulare a afacerilor sau simplificarea procedurilor și reducerea costurilor de aprovizionare.

„Primul catalog de vanzare a produselor a reprezentat un factor de noutate și o provocare majoră pentru afaceri, creând modificări în modalitatea de vânzare a produselor, în prezent comerțul electronic este factorul care revoluționează modul de gândire al oamenilor de afaceri de pe întreg globul.”

Creatorii inițiali ai internetului l-au conceput astfel încât să fie rezistent la defecțiunile echipamentelor, dar o dată cu evoluția și noile sale facilități au apărut noi amenințări: sistemele de calcul pot funcționa greșit sau informațiile vitale pot fi furate sau modificate. Astfel au fost adăugate noi tehnologii suplimentare pentru prevenirea atacurilor împotriva securitații și confidențialitații datelor. Problemele de securitate pot fi împarțite în patru categorii:

Autentificarea – stabilirea validității identității pretinse de către un utilizator, calculator sau orice fel de entitate, înainte de a dezvălui informațiile deținute

Confidențialitatea – păstrarea informațiilor deținute departe de utilizatorii neautorizați

Integritatea datelor – un mesaj nu poate fi modificat într-un mod neautorizat

Nerepudierea – prevenirea unei persoane sau entități să nege o anumită operație facută asupra unor date; aceasta se obține prin metode criptografice.

2.4 Soluții existente vs soluție propusă

Printre soluțiile deja existente putem enumera platformele celor de la Cinemagia, Movieplex sau CinemaCity. Deoarece știm cu toții cât de repede se dezvoltă platformele online și cât de mare este concurența în mediul virtual voi face o scurtă a analiză critică a platformelor existente și o comparație între acestea și aplicația web gandită de mine.

Voi începe cu platforma celor de la Cinemagia, deși nu este o aplicație web exclusiv pentru rezervarea de bilete online, are și această funcționalitate pe langă celelalte oferite printre care putem enumera: informații despre filme, sitem de rating, program tv, știri din domeniul cinematografic, o secțiune dedicata concursurilor și multe altele. Cred că toate aceste funcționalități reușesc cu succes să atragă vizitatori din mai multe categorii pe site, în același timp fiind un foarte bun mijloc de reclamă și demonstrând utilizatorului că se află pe un site de încredere din acest domeniu. Totuși în același timp cred că toate acestea pot induce în eroare un utilizator nefamiliarizat cu mediul respectiv, procesul de rezervare sau chiar și numai documentare fiind foarte dificil pentru acesta din cauza abundenței de informații din paginile aplicației. Astfel cred că te poți pierde cu ușurință în această multitudine, mai ales că și procesul de rezervare nu este unul tocmai intuitiv: nu există un buton de rezervare în meniul site-ului, singurul loc în care acesta este prezent fiind pagina cu detalii despre filmele ce rulează într-un anumit cinematograf și chiar și aici, acesta este pus sub forma unui hyperlink scris relativ mic în dreptul cinematografului în care rulează filmul. De asemenea procesul de rezervare nu se realizează în întregime pe acest site, ci utilizatorul este redirecționat după apăsarea butonului pe site-ul cinematografului ales ce se deschide într-o nouă pagină. Concluzionând cred că această aplicație este de încredere, fiind vizibil încă de la început faptul că este de încredere, oferind informații despre filme, atât știri și detalii cât și programul din cinematografe sau de la televizor, furnizând în același timp posibilitatea utilizatorului de a merge pe site-ul cinematografelor partenere pentru a face o rezervare. Pe de altă parte nefiind un site specializat doar pe rezervarea de bilete, sunt oferite o multitudine de informații ce pot face greoi procesul de rezervare, utilizatorul putând cu ușurință să renunțe în orice moment și să meargă pe alt site pentru a-și îndeplini scopul.

O să continui analiza cu site-ul celor de la Movieplex, o platformă mult mai specializată față de cea de la Cinemagia, pe acest site fiind posibilă strict informarea și rezervarea biletelor în cele două cinematografe deținute de firma Anchor Grup SA. Aplicația web este una extrem de simpla, dar în același timp cuprinde toate informațiile de care poate avea nevoie un utilizator, avnând o interfață intuitivă și minimală. Totodată aspectul este unul foarte plăcut, site-ul fiind unul deloc încărcat, fiecare buton și informație fiind exact acolo unde te aștepți să fie. Pe de altă partre am întampinat probleme la navigarea pe site în vederea cercetării și testării lui pentru lucrarea de față: dupa mai multe încercări repetate am ajuns la concluzia că este o problemă de server sau chiar de proiectare a site-ului faptul ca tranziția de la o pagină la alta este greoaie și primirea informației cerute este extrem de lentă (menționez că site-ul celor de la Cinemagia se încarcă mult mai repede deși are semnificativ mai multă informație pe pagini). Pe lângă această problemă trebuie spus faptul că nu am reușit să accesez pagina de prețuri, mai exact aceasta efectiv nu se încarcă, astfel utilizatorul este neputincios în a compara prețurile acestor două cinematografe cu cele ale concurenței. Legat de procesul de rezervare nu pot oferi informații, deoarece acesta nu este accesibil decât utilizatorilor ce dețin un card de membru Movieplex. Acest lucru consider că este cel mai mare dezavantaj al acestei aplicații pentru că în vederea obținerii unui astfel de card trebuie ca utilizatorul să se deplaseze la unul dintre cele două cinematografe, astfel procesul de rezervare fiind imposibil pentru clienții noi. Însăși scopul și funcționalitatea aplicației web este acela de a rezerva biletele prin intermediul său, fară a fi nevoie să te deplasezi la cinema, dar dacă un client nou nu poate să rezerve fără acest card care se obține doar la sediul cinematografelor nu cred ca site-ul mai are o utilitate practică pentru clienții noi. Având în vedere cele menționate cred că din start această platformă pleacă cu un handicap, deoarece nu este deloc primitoare și utilă pentru clienții noi. În concluzie cred că este o platforma intuitivă și ușor de utilizat, cu o interfață simpla și plăcută, dar în același timp imposibil de utilizat de către utilizatorii noi, care nu au trecut măcar o dată pe la unul dintre cele două cinematografe pentru a-și crea acel card de fidelitate.

În cele din urmă voi prezenta platforma celor de la CinemaCity care din punctul meu de vedere este cea mai completă și oferă utilizatorului exact ceea ce acesta așteaptă. Din punct de vedere vizual, interfața este una relativ simplă ce oferă utilizatorului exact informațiile pe care acesta dorește să le afle. Astfel procesul de rezervare poate fi dus pană la capăt cu ușurință de orice fel de persoană, indiferent de cunoștințele și gradul de familiarizare al acesteia cu aplicația. Totuși cred că acest proces este prea simplu, site-ul neavând implementată funcționalitatea conturilor de utilizatori, astfel rezervarea se poate face cu ușurință, fără a fi nevoie de alți pași suplimentari. Deci pentru un utilizator sau chiar atacator rău intenționat este facil să reverve o mare parte dintre locurile disponibile, online fiind posibil să fie rezervate doar 75% dintre locurile existente în sala. Deși cred că această problemă este una majora, spre deosebire de celelalte două platforme, aceasta este singura care permite utilizatorilor să achiziționeze și chiar să printeze online biletele, scutindu-l astfel de coada și timpul pierdut la ghișeul cinematografului. Acest proces este unul simplu, ce nu dureaza mult și este important să menționez că pe parcursul întregii operațiuni de cumpărare a biletelor conexiunea este una securizată. Concluzionând cred că în ciuda faptului că o persoană rău intenționată poate rezerva mult mai multe locuri decât ar fi necesar, dintre aplicațiile web prezentate aceasta este cea mai completă și accesibilă publicului larg, fară a da prea multe bătăi de cap, înglobând toate funcționalitățile necesare unei astfel de aplicații.

În urma documentării și analizei acestor platforme, am întocmit un plan de implementare a aplicației web, încercând să păstrez sau să îmbunătățesc părțile bune și în același timp să rezolv sau înlocuiesc eventualele probleme descoperite pe parcursul cercetării făcute pe cele trei aplicații de mai sus. Astfel aplicația realizată de mine menține același design simplist și intuitiv ce cântărește foarte mult în decizia luată de un potențial client; acesta poate cu ușurință să își rezerve locurile dorite fără a fi nevoie de cunoștințe majore sau inițiere în folosirea acestei aplicații. De asemenea penru rezolvarea problemei celor de la CinemaCity, unde un utilizator poate cu ușurință să rezerve o mare parte din sală, am implementat funcționalitatea conturilor de utilizator și am impus o limită inițială de rezervare, o persoană având dreptul la maxim 5 locuri. Această limitare previne rezervarea prea multor locuri de către cineva rău intenționat, dar nu este una permanentă. De fiecare dată când un utilizator achiziționează biletele dorite acesta primește un calificativ pozitiv de la vanzător, dar dacă rezerva locuri pe care nu le achiziționează acesta primește un calificativ negativ. Astfel sistemul va calcula un scor ce va determina numărul maxim de locuri pe care un utilizator le poate rezerva. De asemenea pentru a veni în întampinarea unui utilizator care dorește anularea unei rezervări, am implementat și acest lucru, funcționalitate ce nu se regăsește pe nici una dintre plaformele analizate anterior și pe care o consider esențială atât pentru clienții corecți care doresc anularea unei rezervări, cât și pentru a preîntâmpina situația în care un client rezervă anumite locuri, dar dorește schimbarea lor sau chiar a evenimentului. O altă funcție pe care o consider importantă, mai ales în cazul în care două persoane doresc aceleași locuri, este cronometrul implementat pe pagina de selecție a locurilor: atunci când pagina este încărcată pornește un timer setat la două minute timp în care utilizatorul trebuie să selecteze locurile dorite, în caz contrar rezervarea acestuia este anulată automat și el va fi redirecționat către pagina principală. Pentru a ușura munca angajaților, dar și pentru a veni în întâmpinarea noilor angajați, interfața de adaugare film este una extrem de simpla, angajatul știind exact ceea ce are de făcut când ajunge în această secțiune, lucru valabil și pentru cea de adăugare rulare și chiar o nouă sală. Cel din urmă proces se poate face foarte simplu, angajatul trebuie să introduca doar numele sălii, numarul de rânduri și coloane, respectiv să selecteze cinematograful dorit dintr-o listă, iar pe pagina următoare se va încărca automat un tabel ce reprezintă sala, locul disponibil sau culoarul fiind selectate prin click-uri succesive și reprezentate prin culori sugestive, verde și respectiv roșu. O altă prblemă abordată este aceea a numărului de referință al rezervării, număr pe care clienții trebuie să-l prezinte la ghișeu pentru a intra în posesia biletelor; pentru a rezolva această problemă am implementat o pagină vizibilă doar pentru angajații de la ghișeu, în care aceștia pot selecta numele persoanei care a făcut rezervarea în vederea achiziționării biletelor.

În concluzie cred că am reușit cu succes să îmbin toate funcționalitățile utile ale celor trei platforme studiate și chiar să rezolv anumite probleme descoperite în urma cercetărilor, rezultatul final fiind o aplicație web ușor de utilizat și întreținut, dar în același timp sigură și care vine în întâmpinarea nevoilor utilizatorilor.

Capitolul 3. Tehnologii utilizate în implementarea aplicației

Am întocmit un arbore WBS (Work Breakdown Structure) în vederea descompunerii pe componente de dezvoltare (vezi Figura 3.1).

3.1 Baze de date

În ultimii ani, dezvoltarea sistemelor de baze de date reprezintă unul dintre cele mai importante aspecte în domeniul informaticii, având un rol esențial atât în proiectarea diverselor aplicații cât și în buna lor funcționare. Orice companie din ziua de azi este dependentă și strâns legata de propria bază de date, acesta fiind locul în care sunt stocate toate informațiile necesare funcționării; de la simple date de facutare sau stocuri până la informații sensibile deste conturile și chiar datele personale ale utilizatorilor. Astfel consider că sistemele de baze de date sunt o componentă importantă a vieții de zi cu zi, foarte multe dintre activitățile oamenilor implicând interacțiunea cu o bază de date. Majoritatea bazelor de date existente sunt relaționale, model introdus in 1970 de către E.F.Codd care se bazează pe noțiunea de relație din matematică, o entitate fiind reprezentată printr-o linie dintr-un tabel bidimensional a cărui coloane reprezintă valorile atributelor entității respective. Dintre operațiile ce pot fi efectuate asupra datelor stocate se disting următoarele categorii: introducerea de noi date (insert), ștergerea unor date existente (delete), actuaizarea anumitor date stocate (update), interogarea bazei de date pentru a obține anumite informații selectate după un criteriu ales (query).

O definiție generala este aceea că o bază de date (database) numită și bancă de date (BD) 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 același timp, o definiție mai aplicată și restrânsă ar fi urmatoarea: „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.”. Față de vehea metodă de reținere a datelor pe fișe, acest sistem computerizat oferă nenumărate avantaje printre care se numără: viteza mare de găsire și actualizare a informațiilor, flexibilitate, controlul centralizat, redundanța scăzută a datelor, independența datelor față de suportul hardware.

Gestionarea și prelucrarea complexă a datelor dintr-un BD se face cu ajutorul unui sistem de gestiune a bazei de date (SGBD) care alături de mijloacele hardware, personalul implicat (utilizatori finali, administratorul datelor, proiectanți, etc.) și baza de date propriu-zisă (în care se memorează datele) definesc arhitectura. Administratorul de date (DA) este un manager, nu un tehnician, ce decide care date trebuie stocate, stbilește regulile de întreținere a acestora; administratorul bazei de date (DBA) este responsabil cu implementarea deciziilor administratorului de date și cu controlul general al sistemului, la nivel tehnic. Spre deosebire de DA, acesta este un profesionist în domeniul IT care creează baza de date reală, implementează elementele tehnice și este responsabil de buna funcționare a sistemului.

Utilizatorii finali sunt cei care accesează interactiv baza de date și pot fi simpli utilizatori ce nu cunosc nimic despre baza de date sau SGBD, dar accesează informațiile prin intermediul unor programe de aplicație ce conferă funcționalitatea cerută de aceștia și a fost implementată de programatori într-un anumit limbaj (C++, Java, Python, PL/SQL, etc.).

Pentru o buna funcționare, o ușoara adaptare și pentru a respecta anumite condiții de confidențialitate se impun anumite cerințe minimale asupra unei baze de date:

asigurarea unei redundațe minime în date;

furnizarea în timp util a informațiilor solicitate;

posibilitatea de adaptare la noi cerințe;

posibilitatea de validare a datelor;

posibilitatea de recuperare a datelor;

capacitatea de a satisface cererile unui număr mare de utilizatori;

asigurarea securității datelor prin mecaniseme de protecție împotriva accesului neautorizat;

exploatare simultană a datelor de către mai mulți utilizatori.

În cadrul unei baze de date putem vorbi de patru niveluri de abstractizare și de percepție a datelor: intern (sau fizic), conceptual, logic și extern. Datele există doar la nivel fizic, iar celelate trei niveluri reprezintă virtualizări ale acestora.

Din punct de vedere al datelor un aspect foarte important și în același timp sensibil este independența acestora: o modificare a structurii fizice nu va afecta aplicația și reciproc, modificări aduse aplicației vor lăsa nealterată structura fizică de date. Primul tip poartă numele de indepentență fizică și reprezintă imunitatea programelor de aplicație la schimbările bazei de date, iar cel de-al doilea se numește independență logică și urmărește sa creeze fiecărui utilizator iluzia că este singurul beneficiar al unor date pe care, în realitate, le folosește în comun cu alți utilizatori.

Spre deosebire de limbajele de programare uzuale în care declarațiile și instrucțiunile executabile aparțin aceluiași limbaj, în contextul bazelor de date funcțiile de declarare și de prelucrare sunt realizare cu ajutorul unor limbaje diferite ce poartă numele de limbaje pentru baze de date. Limbajele pentru definirea datelor (LDD – Data Description Language) au aceleași funcții principale, dar descrierea concretă diferă de la un sistem de gestiune la altul; la nivel conceptual acesta realizează definirea entităților și a atributelor acestora, sunt precizate relațiile dinre date si strategiile de acces la ele. Limbajele pentru prelucrarea datelor (LMD – Data Manipulation Language) pot fi procedurale care specifică „cum” se obține rezultatul sau neprocedurale care descriu doar datele ce vor fi obținute și nu modalitatea de obținere a acestora. În general structura unei comenzi este următoarea: operația, criterii de selecție, mo de acces, format de editare. Limbajele pentru controlul datelor (LCD – Data Control Language) ajută la asigurarea confidențialității și integrității datelor, la salvarea informației în cazul unor defecțiuni sau la obținerea unor performanțe anume. Deși limbajele universale nu se utilizează frecvent pentru gestionarea unei baze de date, este important să menționez că exista și această variantă, sistemul Oracle fiind dotat cu anumite precompilatoare (C, Pascal, Cobol, ADA, Fortran).

Pentru a oferi o multitudine de facilități pentru utilizatori, sistemul de gestiune a bazelor de date interacționează cu programele de aplicație, lucru care nu ar fi posibil fără respectarea anumitor obiective fundamentale: intependența fizică, indepentența logică, prelucrarea datelor de către neinformaticieni, administrarea centralizată a datelor, coerența datelor, neredundanța datelor, partajabilitatea datelor, securitatea și confidențialitatea datelor.

În ciuda faptului că până acum am enumerat și chiar argumentat numai avantaje ale acestui sistem, evident nu este unul perfect și are anumite dezavantaje cum ar fi: complexitatea și dimensiunea sistemelor pot crește considerabil, costul care variază în funcție de mediul folosit, costuri adiționale pentru hardware, costul conversiei aplicațiilor existente și chiar impactul unei defecțiuni asupra aplicațiilor.

În concluzie, având în vedere cele menționate mai sus cred ca existența acestui concept este esențiala pentru orice fel de aplicație web și toate dezavantajele menșionate în paragraful anterior sunt nesemnificative pe lângă multitudinea avantajelor atât din punct de vedere concepual și de implementare a aplicației, cât și din punct de vedere al costurilor finale. Astfel proiectarea bazei de date este unul dintre principalele obiective ce trebuie realizate încă din fază incipientă pentru a ne asigura că aplicația va fi capabilă să susțină toate necesitățile utilizatorilor, atât angajați cât și clienți, în același timp având grija la toate optimizările necesare în vederea obținerii unor timpi de răspuns optimi.

3.2 Tehnologii utilizate in proiectarea si design-ul site-urilor Web

3.2.1 HTML

Hyper Text Markup Language (prescurtat HTML) este cea mai folosita componentă în crearea paginilor web din zilele noastre. Acest limbaj descre semantic structura unui website și furnizeaza indicii de prezentare a paginilor web, din acest motiv HTML este un limbaj de markup ci nu unul de programare. Acesta este alcătuit din elemente speciale, de obice perechi de taguri ce se afla între paranteze unghiulare ( <html>, <h1></h1>, <img>, etc.). Browserul poate citi fișierele scrise în acest limbaj și le poate transforma în pagini web ce conțin atât text cât și elemente audio.

O altă utilizare frecventă a acestui limbaj este în clientul de e-mail. Majoritatea aplicațiilor de e-mail folosesc un editor HTML, încorporat pentru compunere e-mail-urilor și un motor de prezentare a e-mail-urilor de acest tip.

Conform site-ului Wikipedia HTML 5 este ultima versiune a limbajului creat în 1990 și standardizat în 1997 ca HTML 4. Obiectivele principale ale acestei noi versiuni au fost acelea de a îmbunătăți limbajul cu un suport pentru cele mai recente apariții multimedia și în același timp să îl mențină ușor de citit, atât de către oameni cât și de către computere si device-uri (browsere web, parsere, etc.).

HTML-ul este format din 2 componente:

Head – secțiunea unde sunt declarate titlul paginii și detalii despre aceasta

Body – care conține corpul paginii web

Exemplu de HTML:

<HTML>
<HEAD>

<TITLE>Titlul paginii</TITLE>

// … alte detalii importante despre pagină

</HEAD>

<BODY>

// … corpul documentului

</BODY>

</HTML>

3.2.2 CSS

Similar Posts