PROIECTAREA SI GESTIUNEA UNEI BAZE DE DATE A UNUI MUZEU VIRTUAL CU OBIECTE ISTORICE COORDONATOR ȘTIINȚIFIC Lect. Dr. Mihail Cherciu ABSOLVENT Silvia… [311718]

UNIVERSITATEA DIN BUCUREȘTI

FACULTATEA DE MATEMATICĂ ȘI INFORMATICĂ

LUCRARE DE LICENȚĂ

PROIECTAREA SI GESTIUNEA UNEI BAZE DE DATE A UNUI MUZEU VIRTUAL CU OBIECTE ISTORICE

COORDONATOR ȘTIINȚIFIC

Lect. Dr. Mihail Cherciu

ABSOLVENT: [anonimizat]

2017

[anonimizat] a fost Revoluția Industrială. Este marea transformare a [anonimizat].

[anonimizat] a [anonimizat].

După cum fiecare mare revoluție și-a [anonimizat] a [anonimizat], sau chiar luni în domeniul tehnologiilor informaționale. Între e-Revolution și e-[anonimizat], confuzia, [anonimizat], [anonimizat]. [anonimizat].

Evoluția continuă a civilizației a [anonimizat]; de la patefonul Victrola la compact discul Sony; de la penițele cu cerneală la Microroft Word. De aceea tehnologia informației este considerată astăzi un element esențial pentru obținerea unui avantaj competitiv. [anonimizat].

Revoluția e-business a [anonimizat], oriunde, oricând și în orice colț al Terrei. [anonimizat] o [anonimizat] i se adaugă un „e”. [anonimizat] o [anonimizat] a apărut la începutul anilor ’80 [anonimizat] a rețelelor, adik legarea calculatoarelor între ele folosind liniile telefonice comutate și inchiriate sau rețelele de televiziune prin cablu și routere. [anonimizat] a Interetului, a [anonimizat]-un serviciu mondial de informare, o [anonimizat]-media, o enciclopedie sau o bibliotecă, iar mai de curând în televizor sau cinematograf. [anonimizat], [anonimizat], să participe la licitații sau să își rezerve bilete de avion sau camere de hotel.

Scopul lucrării este atât acela de a [anonimizat] a [anonimizat], societatea informațională. [anonimizat]:

[anonimizat] „Mediul Internet”, structurat la rândul său pe cinci subcapitole, prezintă arhitectura și funcționarea internet-ului, adrese, servicii și tehnologii internet. Capitolul al doilea tratează structura documentelor HTML, PHP, crearea bazelor de date cu MYSQL. În ultimul capitol este prezentată partea practică care constă în realizarea unui site pentru un muzeu virtual unde se găsesc prezentate obiecte istorice. Este prezentată structura bazei de date, structura aplicatiei, listingul programului, implementarea și utilizarea aplicației.

CAPITOLUL I MEDIUL INTERNET

Considerații generale

Conform dicționarului de informaticǎ (S.M.H. Collin), internetul reprezinǎ o rețea internaționalǎ de calculatoare si dispozitive cu adrese computerizare ce sunt interconectate conform protocoalelor de comunicare TCP / IP – „Transmission Control Protocol” și „Internet Protocol” care permite transferul fișierelor, datelor și mesajelor de poștǎ electronica (e-mail) între milioane de utilizatori din întreaga lume. Este notat si faptul cǎ accesul la internet este liber, astfel încât orice persoanǎ poate avea acces la aceastǎ rețea.

În 1965 a fost creatǎ prima rețea de computere interconectate, cunoscutǎ sub numele de ARPAnet. Internetul din zilele noastre este rezultatul unei continue dezvoltǎri a acestei rețele ințiale, aceasta ajungând sa ofere utilizatorilor sǎi o gama extrem de vastǎ de informație și servicii precum e-mail, www, FTP etc.

Internetul a putut fi valorificat la adevǎrata sa valoare datoritǎ cercetǎriilor lui Tim Berners Lee de la Centrul European pentru Fizica Nucleară din Geneva (CERN). Acesta a pus bazele dezvoltării primului prototip al World Wide Web-ului.

World Wide Web (cunoscut si sub numbele de WWW sau doar Web) este un sistem de documente și informații de tip “hypertext” legate ele între ele prin hyperlink-uri care pot fi accesate prin rețeaua mondială de Internet. Documentele, care rezidează în diferite locații pe diverse calculatoare de tip server, pot fi regăsite cu ajutorul unui identificator univoc numit URI (Uniform Resource Identifier). Hipertextul (inclusiv imaginile) este afișat cu un ajutorul unui program de navigare în web numit browser, care descarcă paginile web de pe un server web (unde sunt acestea stocate) și le afișează utilizatorului.

În 1990 – 1991, în perioada in care Internetul era deja în plină dezvoltare, dupa ce proiectul și toate modulele acestuia fuseseră elaborate în Statele Unite, la Stanford Research Institute, la UCLA, UCSB, WU etc., prin realizarea a ceea ce numim acum web, a venit rândul europenilor. Mai exact, la Centrul European de Cercetări Nucleare (CERN) Geneva, prin proiectul lui Tim Berners-Lee și contribuția unor colegi și studenți, a fost creat primul navigator si editor de legături (cu o primă versiune a limbajului HTML) si primul program de server Web. La acea datǎ comunicarea prin Internet, prin serviciile de atunci, în principiu prin e-mail, ftp și telnet, mergea bine și era destul de serios folosită de comunitatea academică.

În 1991, traficul prin nodul NSF (National Science Foundation – miezul Internetului din acea perioadǎ) depășea 1 miliard de octeti/oră, iar numărul de calculatoare conectate depăsea o jumătate de milion. Tot anul 1991 este cel în care NSF renunță la interdicția de folosire a Internetului în scopuri comerciale, fiind astfel un început al boomului economic ce avea sa fie produs de aceastǎ noua industrie, industria Internetului.

“Pentru a facilita un mod de a gǎsi cu ușurințǎ site-urile cǎutate, în anii ’80 a fost proiectat un sistem de denumire, care sǎ-i ajute pe utilizatori sǎ identifice mai ușor adresele de pe internet. Aceste adrese sunt de forma www.oricefirma.com, sau adresa de e-mail a cuiva scrisǎ este Bob@oricefirma.com. Partea principalǎ a adresei – “oricefirma” – este ceea ce poartǎ denumirea de domeniu. Domeniile Internet permit utilizatorilor sa utilizeze denumiri în loc de numere pentru a putea eficientiza deplasarea în diverse locuri de pe Web (cu alte cuvinte, diferența dintre a tasta www.intel.com si a tasta IP-ul: “192.246.100.42”. Aceasta adresǎ este cunoscutǎ si sub numele de URL (Uniform Resource Locator – Localizator Uniform de Resurse), acronim pronunțat literǎ cu literǎ.”

Conform World Wide Web Consortium (W3C), orice URL are la bazǎ, în primul rând un nume de schemǎ (adesea numit si protocol), urmat de “:” și douǎ slash-uri “//”, apoi în funcție de schema folositǎ, este prezent si numele serverului (exemplu: ftp, www, smtp, etc.), urmat de un punct (“.”), apoi de numele domeniului (sau alternativ, adresa IP), apoi numarul portului, apoi calea resursei ce user-ul dorește sa fie accesatǎ. Astfel, sintaxa este: scheme://domain:port/path?query_string#fragment_id.

La sfârsitul numelui unui domeniu, dupǎ ultimul punct, este numele domeniului care indicǎ tipul organizației in cauza, iar acesta din urmǎ este TLD (Top Level Domain, denumit și domeniu de nivel superior).

Compania americanǎ de tip non-profit ICANN – Internet Corporation for Assigned Names and Numbers are ca scop supravegherea unui șir întreg de sarcini și activitǎți legate de Internet. Una dintre aceste responsabilitǎți este coordonarea tuturor domeniilor de nivel superior (DNS). Din punct de vedere tehnic, aceastǎ gestionare este realizatǎ de cǎtre IANA (Internet Assigned Numbers Authority – Autoritatea pentru Atribuirea numelor și Numerelor în Internet).

Conform arhivei ICANN, domeniile TDL sunt împarțite in trei categorii:

domenii naționale (ccTLD – country code TLD): folosite de in peste 250 de țări. Acestea au lungimea de două litere, de exemplu ro pentru România.

Exemple de acest tip pot fi: .ro, .fr, .us, uk etc.

domenii generice (gTLD – generic top-level domain): folosite (cel puțin teoretic) de anumite categorii de organizații (de exemplu, com pentru organizații comerciale). Are trei sau mai multe litere. Aproape toate gTLD-urile sunt disponibile indiferent de țară, cu excepția domeniilor gov și mil, care, din motive istorice, sunt folosite doar de către guvernul și respectiv armata Statelor Unite.

Exemple de acest tip pot fi: .com, .edu, .gov, .int, .mil, .net, .org etc.

domenii de infrastuctură – acest tip de domeniul este unul special, fiind folosit doar în scopurile tehnice ale infrastructurii.

Domeniul .arpa este deocamdată unic.

1.2. Servicii Internet

Principalele servicii oferite de Internet sunt:

1.2.1. E-mail (poștă electronică)

1.2.2. URL – Uniform Resource Locator

1.2.3. World Wide Web

1.2.4. FTP (File Trasfer Protocol)

1.2.5. Telnet

1.2.6. IRC (Internet Relay Chat)

1.3. Tehnologii Internet

În Internet sunt folosite următoarele tehnologii:

1.3.1. TCP/IP

1.3.2. SMTP, IMAP

1.3.3. FTP

1.3.4. HTTP

1.3.5. HTML

În spatele tuturor serviciilor enumerate în capitolul anterior se află câteva tehnologii și standarde relativ simple. Care sunt acestea și cum funcționează ele este tema acestui capitol. Intranetul a preluat întreaga infrastructură a Internetului (inclusiv protocolul TCP/IP) și filozofia acestora.

1.3.1 TCP/IP (Transmission Control Protocol/Internet Protocol)

Reprezintă setul de standarde (protocoale) pentru transmisia de date și corectarea erorilor, care permite transferul de date de la un calculator conectat la Internet la altul.

Toate pachetele de date care circulă prin intermediul rețelei Internet conțin identitatea destinatarului și a expeditorului, adică chiar numele lor de IP.

În intranet, fiind vorba de o rețea internă a unei organizații, la stabilirea identificatorului (a numărului IP) nu mai trebuie să se țină cont de o anumită autoritate globală externă, ci doar de politica stabilită de administratorul respectivei rețele.

1.3.2. SMTP, IMAP (poștă electronică)

Reprezintă standarde utilizate în Internet pentru serviciile de mesagerie (poștă electronică).

Companiile Microsoft, Netscape, Novell, Lotus etc. oferă propriile lor standarde pentru serviciile de mesagerie.

Standardele Internet oferă suport pentru transmiterea de text neformatat, ceea ce face ca acesta să nu fie cea mai atractivă variantă.

În aceste condiții se recomandă două sau mai multe soluții, asigurând astfel atât necesarul de suport pentru o comunicare către exterior (Internet), cât și o comunicare facilă în interior (intranet – texte formatate, imagini, sunet etc.).

1.3.3 FTP (File Transfer Protocol)

Reprezintă protocolul care asigură transmiterea eficientă a pachetelor mari de date (fișiere) de-a lungul Internetului.

Multe programe browsere (Netscape Navigator, Communicator, Internet Explorer) pot îndeplini funcția de client FTP pentru a descărca fișiere din arhivele de fișiere accesibile cu protocolul FTP anonim.

1.3.4. HTTP (Hyper Text Transfer Protocol)

Reprezintă protocolul de comunicare prin intermediul căruia se lucrează (la nivel logic) cu documente (compuse adesea din mai multe fișiere, diferite ca format, create fiind de aplicații diferite), și nu cu fișiere.

Acest protocol asigură schimbul de informații în Web, prin definirea adreselor URL și a modului de utilizare a acestora pentru regăsirea resurselor (nu numai a documentelor Web, dar și a fișierelor accesibile prin FTP, a grupurilor de discuții UseNet și a meniurilor Gopher) în orice zonă din Internet.

Standardul HTTP permite autorilor Web să înglobeze hiperlegături în documente Web.

1.3.5. HTML (Hyper text Markup Language)

Reprezintă un standard de descriere a documentelor prin marcarea porțiunilor de document, stabilind astfel aspectul documentelor Web.

Programele de analiză sintactică utilizate pentru accesarea acestor documente se numesc browsere Web. Procesul de realizare a documentelor HTML se numește compunere (compose).

Programul Microsoft Word furnizează capacități de editare HTML.Din punct de vedere al soluției intranet, compania poate lua decizia ca navigatorul (browser-ul) folosit să fie unul și același pentru toată lumea (Netscape Navigator sau Internet Explorer), ceea ce duce imediat la faptul că se va putea folosi fără teamă oricare dintre extensiile HTML suportate de respectivul navigator.

1.4. Ponderea utilizatorilor de Internet

Pe parcursul a cațiva ani, internetul a devenit o platformǎ extrem de importantǎ care a schimbat pentru totdeauna modul în care ne desfǎșurǎm activitǎțile, fie acestea acasǎ sau locul de muncǎ, dar si felul în care comunicǎm.

Internetul este într-o constantǎ schimbare. În opinia mea, douǎ aspecte au evoluat cel puțin surprinzǎtor în ultima perioadǎ: rețelele de socializare și tehnologia mobilǎ. Aceste douǎ inovații au schimbat modul în care oamenii folosesc internetul.

Prin intermediul rețelelor de socializare, oamenii au identificat un nou si totodatǎ inovator mod de a comunica. Încǎ de la momentul in care a fost lansat în anul 2004, Facebook a crescut constant, ajungând a fi o rețea mondialǎ cu aprope 1 bilion de conturi înregistrate. Pe de altǎ parte, tehnologia mobilǎ a oferit posibilitatea unui acces mai usor la internet, astfel crescând numǎrul utilizatorilor de pretutindeni.

În Figura 1 putem observa evoluția ponderii din punct de vedere al utilizǎrii internetului de cǎtre populație pe plan mondial. De asemenea, am adǎugat in Anexa 1 și “Numǎrul de utilizatori ai internetului (milioane)”.

Figura 1.1: Ponderea populației care utilizeazǎ internetul la nivel mondial

Sursǎ: Creație proprie, date preluate din: http://www.internetworldstats.com/emarketing.htm

Observǎm cǎ aceastǎ pondere a crescut constant si direct proporțional cu evoluția tehnologiei. În 2002, ponderea populației care utiliza internetul la nivel mondial era de 9,4%, în 2012, aceastǎ pondere a crescut de peste 3 ori, ajungând la valoarea de 34,3%.

Ponderea populației care utilizeazǎ internetul la nivel mondial a devenit aproape de 4 ori mai mare în ultimii ani, iar populația globalǎ a devenit tot mai numeroasǎ. Astfel, dupǎ cum putem observa in Anexa 1.1, numǎrul de utilizatori ai internetului a crescut de la 587 milioane (2002) la 2.4 bilioane (2012), ajungandu-se la o creștere de 410% în 10 ani.

În România, internetul și-a facut simțitǎ prezența acum 13 ani, la începutul anului 2000.

ITU (International Telecommunication Union) este o agenție specializată a ONU pentru ICT-uri (Information and Communication Technologies), aceasta fiind și una dintre sursele sigure ale site-ulul Internet World Stats. Una dintre atribuțiile acestei agenții este sǎ elaboreaze rapoarte si statistici cu privire la ponderea populației care utilizeazǎ internetul a tuturor țǎrilor pe plan mondial. Rezultatele acestui raport este prezentat în Figura 2, datele fiind extrase doar pentru Romania.

Figura 1.2: Ponderea populației care utilizeazǎ internetul la nivel național

Sursǎ: Creație proprie, date preluate din: http://www.itu.int/en/ITU-D/Statistics/Documents/statistics/2012/Fixed_tel_2000-2011.xls

Se observǎ o creștere constantǎ a accesului populației la internet pe plan național. Printr-o comparație între anii 2005 (21,5%) și 2012 (44,1%) se poate observa cǎ ponderea a crescut cu 105%. În timp ce ponderea mondialǎ este de 34,3%, în Romania, ponderea ponderea populației care utilizeazǎ internetul este de 44,1%.

1.5. Dezvoltarea website-urilor

1.5.1. Evoluția website-urilor

Website-ul este o definit (S.M.H. Collin) ca fiind o colecție de pagini web, legate între ele și care pot fi accesate cu ajutorul unui program de navigare (browser).

Aceste pagini web sunt stocate pe servere web, fiind accesibile de utilizatori prin internet.

Primul server Web (Figura 3) și primele pagini Web au fost instalate pe 12 Decembrie 1991 la Standord Linear Accelerator Center (SLAC), unde acestea faceau legǎtura cu biblioteca centrului. Dar cel dintâi server web a fost realizat aproape cu un an înainte, la Centrul European pentru Cercetări Nucleare (CERN), la Geneva, în Elvetia, și s-a numit la început nxoc01.cern.ch, iar mai apoi info.cern.ch.

Figura 1.3: Primul server Web

Sursǎ: http://info.cern.ch/images/0108006.jpg

Prima pagină web a conținut chiar prezentarea proiectului și a fost accesibilă la adresa: http://nxoc01.cern.ch/hypertext/www/TheProject.html.

În perioada anilor 1992-1995, au fost dezvoltate primele site-uri web dar erau dezvoltate în mare parte de universitǎți de prestigiu sau laboratoare de dezvoltare în domeniul fizicii. O datǎ cu dezvoltarea site-urilor s-a dezvoltat și aplicația care permite vizualizarea lor: browser-ul.

Tim Berners-Lee, unul dintre pionierii internetului a pus bazele si primului browser: “Primul web browser, sau mai degraba browser-editor, a fost numit WorldWideWeb datoritǎ faptului cǎ a fost creat în 1990, fiind la acea vreme singura modalitate de a vedea web-ul. Ulterior a fost redenumit Nexus din cauza nevoii de a diferenția aplicația de spațiul informatic abstract (ce acum este denumit World Wide Web, diferența fiind doar separarea numelui cu spații).”

Acesta a mai afirmat și cǎ a scris acest program cu ajutorul unui computer NeXT. A ales acest computer deoarece avea avantajul deținerii unor instrumente foarte folositoare. Practic, ce realiza pe alte platforme în 1 an, pe NeXT s-a putut realiza în doar 2 luni. Dupǎ cum se poate observa și în Figura 4, browser-ul WorldWideWeb, avea proprietǎți de browser (reusea cu succes sǎ interpreteze limbajul HTML și sǎ-l prezinte utilizatorului intr-o fereastrǎ) dar și de editor (permitea utilizatorului posibilitatea de creere sau editare de site-uri).

Figura 1.4: WorldWideWeb – Primul browser web, creat în 1990

Sursǎ: http://www.w3.org/History/1994/WWW/Journals/CACM/screensnap2_24c.gif

Browser-ul Nexus (cunoscut și sub numele de WorldWideWeb) a fost o aplicație ce au inspirat alti oameni în dezvoltarea altor asemenea programe. Astfel cǎ, la scurt timp, Pei Wei, absolvent al Universitǎții din California, a dezvoltat pe cont propriu un browser numit violaWWW ce era identic din multe puncte de vedere cu WorldWideWeb dar care încorpora poze integrate in text, stylesheet-uri, tabele si script-uri.

Acest now browser numit violaWWW a fost recunoscut drept ‘‘Browser-ul cu cele mai bogate caracteristici de pana acum”, precum și ‘‘a reușit sa impunǎ un standard pentru tot ce va urma dupǎ…”.

Browserele au continuat sǎ se dezvolte, dobândind tot mai multe caracteristici. Google Chrome, lider pe acest segment în anul 2013 deține funcții precum:

Safe Browsing, Sandboxing, Auto-Updates – pentru prevenirea atacurilor informatice de tip malware sau phishing;

Autentificare (optional) – pentru a avea acces la setari, add-ins și site-urile salvate la favorites de la orice computer);

Consum redus de resurse – ceea ce il face si mai rapid.

În Figura 1.5 putem observa nivelul de utilizare a celor mai utilizate 3 browsere la nivel mondial:

Figura 1.5: Nivelul de utilizare a celor mai utilizate browsere la nivel mondial

Sursǎ: Creație proprie, date preluate din: http://gs.statcounter.com/#browser-ww-yearly-2009-2013

Putem observa cǎ Internet Explorer a suferit o scǎdere drasticǎ și continuǎ pe parcursul ultimilor 5 ani (de la 59,71% la 30,06%). Practic numǎrul oamenilor ce au folosesc Internet Explorer s-a înjumatǎțit in doar 5 ani. Mozilla Firefox este și el într-o scǎdere constantǎ dar nu asa drasticǎ precum IE. Acesta a scǎzut din 2009 (30,48%) pânǎ in 2013 (21,09) cu 9.39% – rezultǎ cǎ aproximativ o treime din utilizatorii Firefox au migrat constant spre alte browsere. La polul opus se afla browserul Google Chrome. Acesta din urmǎ a avut o creștere exploziva dacǎ luǎm în calcul și faptul cǎ a fost lansat în ultima lunǎ a anului 2008 și a reușit în mai puțin de 5 ani sǎ devinǎ cel mai utilizat browser web pe plan mondial. În momentul de fațǎ, conform statisticilor furnizate de Stat Counter, Google Chrome este folosit in medie de 38% din utilizatorii web.

Aceste tendințe se pot evidenția și în România, conform Figurii 1.6.

Figura 1.6: “Nivelul de utilizare a celor mai utilizate browsere la nivel național”.

Sursǎ: Creație proprie, date preluate din: http://gs.statcounter.com/#browser-RO-yearly-2009-2013

În acestǎ figurǎ se poate observa aceeași tendințǎ ca și cea mondialǎ. Diferența este cǎ tendințele sunt mai accentuate în România. Practic, scǎderea lui Internet Explorer e mai accentuatǎ (16,61%, cu 13,45% mai scǎzutǎ fațǎ de media pe plan mondial), Google Chrome are creșterea mai pronunțatǎ (41,62%, cu 4,33% mai mare decat media pe plan mondial), iar Mozilla Firefox are o utilizare mai mare (34,43%) spre diferențǎ de media mondialǎ (21,09%).

1.5.2. Tipuri de website-uri

Datoritǎ faptului ca browser-ele au evoluat o data cu site-urile, și site-urile au devenit tot mai complexe și specializate pe anumite domenii, fie ele de interes general sau personal.

Organizația multinaționalǎ Cisco a combinat resursele applicațiilor ScanSafe (cunoscut și sub numele de Cisco Cloud Web Security) și IronPort (cunoscut și sub numele de Cisco Email Security and Cisco Web Security) pentru a realiza o catalogare cât mai eficientǎ și în același timp elaboratǎ a tuturor site-urilor existente, bineînteles, împreunǎ cu exemple.

Philip și David Crowder (2008) au afirmat cǎ, cel puțin din punct de vedere practic, site-urile pot fi împǎrțite în 5 mari categorii :

Personale

Paginile personale au scopul de a face cunoscut utilizatorilor un individ / personalitate. În ciuda conceptului de “paginǎ personalǎ”, unele astfel de site-uri au un design mai elaborat ce conțin mai multe pagini, asemǎnǎtoare unui site de tip ‘corporate’. Conținutul este un element cheie într-un astfel de site. Dacǎ are un conținut interesant și un design atent conceput, poate fi o experientǎ placutǎ.

În momentul dezvoltǎrii site-ului personal, autorul trebuie sǎ fie relexat și degajat atunci când vorbește despre el pentru a putea interacționa cu succes cu persoana care acceseazǎ site-ul.

Exemple de acest tip pot fi: timoteijinar.ro, vladgherman.ro, ionionescu.ro

Informaționale

Site-urile informaționale sunt specializate în a oferi informații despre un anumit subiect. Aceste tipuri de site-uri sunt foarte rǎspândinte pe internet deoarece majoritatea utilizatorilor cautǎ raspunsuri la anumite întrebari, raspunsuri ce pot fi gǎsite pe astfel de site-uri.

Exemple de acest tip pot fi: protv.ro, cnn.com, wikipedia.org etc.

Organizaționale

Aceste tipuri de site-uri au menirea de a prezenta informații cu privire la o anumitǎ organizație. Sunt deosebite de site-urile de tip informațional datoritǎ accentului care se pune doar pe acea organizație, prezentând astfel în detaliu structura organizaționalǎ, personalul și istoria acesteia.

Exemple de acest tip pot fi: billa.ro, unilever.com, heinz.com etc.

Politice

Site-urile politice au ca scop atât aplicarea legilor în vigoare cât și promovarea candidaților în perioara alegerilor electorale. Cu toate ca unele site-uri politice au și încasǎri, acestea se diferențiazǎ de cele comerciale prin faptul cǎ banii surveniți de la utilizatori vin sub forma donațiilor.

Exemple de acest tip pot fi: wcpj.org, labour.org.uk, gop.com etc.

Comerciale

În categoria site-urilor comerciale intrǎ toate cele care au fost concepute pentru a genera profit. Cu toate cǎ multe din site-urile actuale au profit de pe urma reclamelor de pe site-uri, doar cele care au intenția principalǎ de vânzare a produselor sau prestare a serviciilor oferite pot fi catalogate ca fiind site-uri comerciale.

Exemple de acest tip pot fi: emag.ro, amazon.com, itexclusiv.ro etc.

Site-urile s-au dezvoltat prin diversificarea categoriilor de interes sau activitate și prin complexitatea lor. Prin complexitate ne referim la limbajele de programare folosite în realizarea site-ului și la complexitatea design-ului. Dacǎ la inceput, site-urile erau doar în format HTML, acum site-urile au integrate multe alte limbaje de programare precum CSS, PHP, MySQL, JavaScript, jQuery, Flash, etc. Toate aceste limbaje sunt folosite pentru a oferi utilizatorului o experiențǎ mai placutǎ pe parcusul navigǎrii și totodatǎ conferǎ siguranțǎ împotriva atacurilor.

‘Standardele WEB’ este un termen general pentru standardele formale și alte tehnici specifice care definesc și descriu aspecte ale World Wide Web-ului. În ultimii ani, termenul a fost frecvent asociat cu tendința de însușire a celor mai bune practici standardizate pentru construirea, designul și dezvoltarea paginilor Web folosind aceste metode. World Wide Web Consortium (cunoscut și sub denumirea de W3C), care astăzi este condus de Berners-Lee, dezvoltă standardele HTML și CSS. Alte standarde provin de la Internet Engineering Task Force (IETF), ECMA sau producători precum Sun Microsystems.

CAPITOLUL II INSTRUMENTE INFORMATICE UTILIZATE

2.1. Interfața utilizator

Datorită faptului că programarea clasică și structurată avea un control greoi al programelor de dimensiuni mari, numeroase dificultăți la reutilizarea codurilor și inflexibilitatea extinderii și adaptării unor module de program, a luat naștere programarea orientate pe obiecte care are la baza conceptele de clasa și obiect.

Dacă programarea clasică structurată se concentra mai mult pe prelucrarea datelor și pe proceduri și funcții, iar datele erau separate adesea de funcțiile care le manipuleau, POO pune accent atât pe definirea obiectelor și a proprietățile acestora, cât și pe funcțiile acestor obiecte.

Programarea orientată pe obiecte este axată pe ideea încapsulării, a grupării datelor și a codului care operează asupra acestora, într-o singură structura. Totodată un alt element cheie al POO îl constituie polimorfismul, și posibilitatea abstractizărilor care oferă soluției o descriere conceptuală mai simplă.

POO constituie unul din cei mai importanți pași în evoluția limbajelor de programare prin implementarea programelor cu ajutorul abstractizării. Ea tratează problema într-un mod mult mai natural de gândire a finite umane decât de modul de lucru al calculatorului.

Conceptul de baza al programării orientate pe obiect în constituie clasa. Această grupează datele și unitățile de prelucrare, într-o entitate mult mai naturală, abstractizează analiză/sinteză problemei, desemnând obiecte ce împart o serie de proprietăți această îndeplinește prorietatea de generalitate. Trecerea de la clasa la obiect se realizează prin intermediul instantierii Această reprezintă atribuirea unor proprietăți specific clasei, prin care această indică un obiect anume, diferențiat de celelalte obiecte din clasa cu ajutorul unei serii de attribute.

Obiectele pot comunica între ele – între clasele/obiectele problemei se stabilesc legături, acest proces poartă numele de moștenire.

Unul dintre principiile de baza ale POO este moștenirea. Această reprezintă o relație statică ce face legătură dintr-o clasa și altă, în urmă căreia clasa rezultată sau în termeni comuni, clasa derivată, preia toate atributele clasei moștenite. Moștenirea favorizează reutilizarea codului astfel încât clasa derivată va conține toate atributele clasei de baza și va implementa doar metodele ei specifice nu și pe cele ale clasei de baza. Încapsularea se refera la faptul ca obiectele nu pot schimba, in mod direct starea internă a altor obiecte ci doar prin metodele proprii ale obiectului.[7]. Polimorfismul redefineste metode pentru clasele derivate.

Fig 2.1 POO

In figura de mai sus, sunt expuse elementele de baza ce constituie limbajul de programare orientat pe obiecte.

Limbajul de programare C#

C# este un limbaj modern de programare, orientat pe obiecte ,de utilitate generală, ce are o productivitate mare în programare si ofera support complet in ceea ce priveste dezvoltarea de componente software.

Un avataj al acestui limbaj de programare il constituie suportul pentru internationalizare ce se refera la faptul ca aplicatiile dezvoltate pe aceasta platforma pot fi adaptate destul de usor, fara a schimba arhitectura software, pentru a fi folosite in regiunile unde se vorbesc diferite limbi.

C# se bucura si de o gestionare automata a memoriei utilizate., astfel incat eliberarea memoriei ocupate(garbage collection) se face in mod automat si nu manual asa cum se face in alte limbaje de programare. Acest lucru avantajeaza programatorii dat fiind faptul ca acestia nu mai decid locul si momentul distrugerii obiectelor, asa cu se intampla in C++.

Numeroase aplicații, de la ceasuri digitale, MP3 playere, semafoare sau în situația de față gestiunea magazinelor cu ajutorul bazelor de date, au la baza limbajul de programare C#.

Datorită faptului că personal, prefer mediul de dezvoltare al codului din Visual Studio, am ales să implementez aplicația destinată magazinelor de animale, LaAnimăluțu cu limbajul de programare C# în detrimentul limbajului Java, însă acesta nu a fost singurul motiv. Astfel am realizat o comparație între cele două, privind asemănările dar și deosebirile pentru restul motivelor.

2.2. Java vs. C#

Asemănări

Toate obiectele sunt referințe

când se creează un obiect , se obține o referință cu valoare implicită null, alocându-se mai apoi memorie obiectului prin new . Prin intermediul operatorului “.” Putem accesa atributele și metodele obiectului nestatice

Colectarea gunoiului si eliberarea memoriei

atât în C# cât și în Java obiectele create pe heap sunt dezalocate automat evitându-se astfel pierderi de memorie sau memory leaks . Acest lucru încurajează dezvoltatorii să dezvolte mult mai mult cod orientat pe obiect.

Ambele limbaje de programare sunt “pur” orientate pe obiect

Mostenirea

ambele limbaje permit doar o singură moștenire

Tratarea excepțiilor

Prin utilizarea blocului “ try”, se aruncă o excepție atunci când apare o problema , iar prin blocul “catch” excepția este prinsă. Acest lucru evita oprirea bruscă a aplicației atunci când apar anumite erori sau nesincronizari.

Built-in Unicode

atât C # și Java au suport excelent pentru internaționalizare, adică folosesc numai Unicode(16 biți în loc de opt) ceea ce înseamnă că o aplicație dezvoltată inițial în limba engleză, poate fi adaptată în alte limbi prin adăugarea simplă de fișiere de proprietăți de localizare specifice. Această este o calitate deosebită care cu timpul a devenit printre cerințele de baza ale unei aplicații

Deosebiri

Java rulează pe “orice” system de operare

față de limbajul de succesorul lui, java este susținut pe mai multe sisteme de operare.

Elementele de sintaxa sunt relativ destul de diferite

Fig 2.2a

În tabelul de mai sus observăm cum o mare parte din elementele de sintaxa ale celor două limbaje de programare sunt diferite.

. NET cuplează mai eficient sistemul de operare comparativ cu J2EE.

.NET prezintă avantaje clare în cee ace privește numărul de linii de cod.

.NET rulează în deosebi pe sistemul de operare Windows în timp ce J2EE dispune de sisteme mainframe ce poate rula și pe sisteme Unix [9]

Fig 2.2b

În figura de mai sus putem observă o altă diferența între limbajul de programare C# care este surclasat destul de evident față de Java în topul celor mai populare limbaje din anul 2015, însă acest lucru variază în funcție de preferințele fiecăruia.

2.3. MySQL vs. Oracle

O baza de date, reprezintă un container care stochează informațiile și datele pe un suport extern, ce permite extinderea ușoară și regăsirea rapidă a acestora Datele sunt gestionate prin intermediul sistemelor de gestiune a bazelor de date.

SGBD este o interfață între sistemul de omperare și utilizator care îi permit acestuia accesul la date. Acest pachet software de înalt nivel, oferă posibilitatea proiectării, și administrării bazelor de date pentru rezolvarea diferitelor probleme cu care se confruntă omul în ziua de azi.

Mai departe, voi realiza o comparație între cele două baze de date, MySQL și Oracle pentru a demonstra de ce am ales realizarea magazinului de animale de companie cu MySQL;

Oracle

Dispune de p mulțime de instrumente de gestionare a bazelor de date, lucrând cu XML și tipuri definite de utilizator, Oferă posibilitatea folosrii cu Oracle Express, care prin numeroasele funcționalități poate să transforme o aplicație de început într-una din cele mai mari din lume.

MySQL

Este preferat de companiile cu proiecte mici, aflate la început datorită faptului că e simplu de utilizat, disponibil la un cost redus. Nu are complexitatea la fel de mare că rivalul sau însă , putem spune că are miezul, baza pentru gestiunea oricărei afaceri.

Fig 2.3a

În figura 2.3a de mai sus putem observă că cele 2 sisteme de gestiune a bazelor de date relaționale sunt similar din punct de vedere al interfeței, suportului , sistemului de operare, însă MySQL constituie un plus în față celor de la Oracle prin prisma faptului că este open-source.

MySQL lucreaza cu numeroase sisteme de operare

Windows

Mac OS X

Linux

UNIX

z/OS

BSD

Symbian

AmigaOS

In timp ce Oracle nu functioneaza pe BSD, Symbian, AmigaOS

MySQL sprijină Java, Oracle nu

MySQL funcționează doar static in timp ce Oracle functioneaza si cu snteme dinamice

MySQL este disponibil gratuit, în timp ce Oracle nu

MySQL suportă multe interfețe de dezvoltare

Oracle este extrem de fiabil si suporta tehnologia flashback.

Fig. 2.3b

În figura 2.3b se observă că limbajul ales prezintă mult mai multe facilități comparativ cu rivalul sau. Acest lucru este un alt motiv ce m-a determinat să aleg dezvoltarea aplicației LaAnimăluțu prin intermediul bazei de date MySQL.

Tipuri de date:

Fig. 2.3c

În figura 2.3c se observă că MySQL are o mare parte din specificațiile de care se bucură Oracle, însă la un preț mai scăzut. Raportul servicii preț este și de această dată în favoarea MySQL, pe care de altfel l-am ales.

Când este MySQL alegere mai bună?

Numeroase sisteme de management al conținutului, cum ar fi WordPress, Drupal și Joomla, folosesc MySQL

Ori de câte ori se utilizează sisteme de management al ontinutului, este indicate folosirea bazei de date MySql. [12]

Pentru proiectele mai mici sau aflate la început,i MySQL oferă cea mai bună alegere, fiind și foarte user-friendly.

MySQL poate include și bloguri pentru cei care doresc să construiască mai multe site-uri de nișă.

Când este Oracle alegere mai bună?

Oracle este o alegere foarte bună pentru întreprinderile mari. Acesta se adresează în special aplicațiilor de business mari și depozite de date mari.

De asemenea dacă se doresc numeroase funcționalități, Oracle e alegerea potrivită fiind dotată cu o cantitate mare de caracteristici.

Care este mai popular?

Datorită faptului că este folosit cu cel mai popular system de management de construcție al site-urilor web și al conținutului de blogging, WordPress , mai popular dintre cele două este MySQL.

Totodată, chiar dacă MySQL beneficiază de popularitate prin utilizarea lui de către site-uri consecrate că: Facebook sau YouTube, acesta nu se poate ridică la nivelul Oracle privind popularitatea printer întreprinderile mari.

2.4 Sisteme de gestiune a bazelor de date (SGBD)

2.4.1. Obiectivele unui SGBD

Obiectivul principal al unei baze de date este de a separa descrierea datelor față de programele de aplicații. Pentru atingerea acestui obiectiv este necesară abstractizarea datelor memorate în baza de date. Astfel s-a ajuns că există trei niveluri de reprezentare și percepție a unei baze de date :

extern;

conceptual;

intern.

Schema externă face referire la datele necesare unui utilizator sau unui grup de utilizatori. Ea este o sub-schemă (o imagine) a schemei conceptuale. Schemele externe constituie sursa pentru întocmirea schemei conceptuale.

Schema conceptuală rezultă din analiza schemei externe și din eliminarea redundanțelor. O schemă conceptuală este completă dacă poate furniza date pentru toate schemele externe, adică datele de care au nevoie utilizatorii.

Schema internă inplementează schema conceptuală folosind un SGBD. Pentru o bază de date se pot defini mai multe scheme externe, o singură schemă conceptuală și respectiv o singură schemă internă. Faptul că utilizatorul vede baza de date folosind o schemă externă facilitează determinarea drepturilor de acces la baza de date.

Sistemul de gestiune a bazelor de date trebuie să poată interpreta instrucțiunile exprimate în termen de schemă externă și respectiv schemă conceptuală iar după aceea în termen de operații de intrare/ieșire la nivel fizic și să asigure trecerea de la un nivel la altul.

Plecând de la obiectivul principal putem spune că principalele obiective ale SGBD-ului sunt:

Independența fizică a datelor

Schema internă a bazei de date descrie modul în care datele sunt organizate pe suportul fizic (fișiere, înregistrări) precum și metodele de acces, criteriile de ordonare și regăsire ale acestora, astfel să se asigure un grad de performanță și suplețe cât mai ridicat.

Independența fizică a datelor constă în posibilitatea de a schimba organizarea internă a datelor și structurile de înregistrare, fără a modifica programele care le folosesc (programe utilizator).

Independența logică a datelor

Schema conceptuală a bazei de date se obține printr-o sinteză și integrare a schemelor externe, care reprezintă interese informaționale de grup sau individuale. În aceste condiții, este normal ca fiecare grup de utilizatori să aibă posibilitatea să-și modifice în timp cerințele informaționale fără a efectua schema conceptuală a bazei de date.

Independența logică a datelor constă în posibilitatea de a modifica schemele externe fără a modifica schema conceptuală. Principalele avantaje ale independenței logice a datelor sunt următoarele:

permite orcărui grup de utilizatori să vizualizeze datele așa cum își doresc;

permite evoluția în timp a schemelor externe ale fiecărui grup de utilizatori fără a efectua schema conceptuală;

permite evoluția unei anumite scheme externe fără a efectua celelalte scheme externe.

Manipularea datelor prin limbaje declarative (neprocedurale)

În general există două categorii de utilizatori care manipulează datele dintr-o bază de date: utilizatori interactivi, care au nevoie de limbaje de interogare foarte simple, apropiate de limbajul natural, care să le permită să obțină informațiile de care au nevoie și programatori care folosesc limbaje procedurale.

Administrarea cât mai simplă a datelor

Un SGBD trebuie să furnizeze instrumente adecvate pentru descrierea datelor, atât din punct de vedere al schemei externe cât și al schemei interne.

Operațiile de descriere și de modificare a descrierii datelor sunt cunoscute sub numele de administrarea datelor. Pentru a permite un control eficient asupra datelor și a rezolva diferite conflicte care pot apărea cu ocazia definirii acestora, această operație cade în sarcina unui grup restrâns de persoane numite administratori de date. Administrarea centralizată a datelor, nu conduce totdeauna la realizarea unor baze de date performante, capabile să mulțumescă categorii de utilizatori diferiți. Pentru a nu întâlni această situație, SGBD-urile actuale oferă instumente adecvate care permit o descentralizare a descrierii datelor, asigurând în același timp coerența necesară între diversele descrieri parțiale.

Eficacitatea accesului la date

Fiecare utilizator dorește ca interogările sale asupra bazei de date să furnizeze informațiile necesare acestuia într-un timp cât mai scurt. Există doi parametri care măsoară performanțele accesului la date: numărul de tranzacții pe secundă și timpul de răspuns. Un element foarte important care influențează acești parametri îl constitue operațiile de intrare/ieșire pe disc. Pentru a optimiza aceste operații, majoritatea SGBD-urilor actuale folosesc memorii cache, unde se depozitează datele cele mai frecvent utilizate pe parcursul execuției unei aplicații.

Partajarea datelor

Partajarea datelor se realizează prin controlul accesului curent la baza de date. Mai mulți utilizatori vor să acceseze simultan aceeași înregistrare din baza de date. Fizic, acest lucru nu este posibil deoarece mecanismul de acces la disc și la memoria internă este unic. Prin urmare cererile de acces simultane, sunt înregistrate într-un fir de așteptare și sunt deservite într-o anumită ordine.

Coerența datelor

Coerența datelor constă în respectarea unor dependențe care pot exista între datele bazei de date. Regulile explicite sau implicite pe care datele trebuie să le respecte de-a lungul evoluției lor în baza de date, se numesc restricții de integritate. SGBD-ul trebuie să fie capabil să păstreze coerența datelor prin verificarea acestor restricții de integritate.

Redundanța controlată

Redundanța controlată constă în posibilitatea de a înregistra unele date, eliminând astfel situațiile de înregistrare multiple. Cu cât redundanța este mai mică cu atât performanțele bazei de date cresc.

Securitatea datelor

Securitatea datelor se referă la două aspecte:

accesul controlat al utilizatorului la baza de date (confidențialitate);

refacerea bazei de date în urma unor avarii.

Confidențialitatea bazei de date este asigurată prin proceduri de:

identificare a utilizatorilor prin nume sau cod;

autentificarea prin parole;

autorizarea accesului diferențiat prin drepturi de creare, consultare, modificare sau ștergere pentru anumite segmente de date.

Baza de date trebuie să fie protejată împotriva unor distrugeri logice (anomalie de actualizare) sau fizice. Pentru acestea SGBD-ul trebuie să ofere instrumente pentru:

crearea unor puncte de reluare; astfel spus salvarea din timp în timp a unor copii curente ale bazei de date;

gestiunea unui jurnal de tranzacții; lista operațiilor realizate asupra bazei de date după ultimul punct de repriză.

Dacă apare o anomalie, care ar putea distruge baza de date, pe baza copiei de la ultima repriză și a jurnalului de tranzacții, se poate reface baza de date în forma inițială. Protecția împotriva unei distrugeri fizice se face prin realizarea unor copii a bazei de date.

2.4.2. Funcțiile unui SGBD

Principalele funcții ale unui SGBD sunt: descrierea datelor,actualizarea și interogarea bazei de date, conversia datelor dintr-un format în altul, asigurarea controlului integrității, concurenței și securității datelor.

Descrierea datelor

SGBD-ul trebuie să fie capabil să definească datele (schemele: externă, conceptuală, internă și legăturile corespondente) prin intermediul unui limbaj specializat DDL (Description Data Language), într-o formă unificată numită schemă sursă și apoi să compileze această schemă într-o formă internă numită schema obiect.

Într-un SGBD care suportă cele trei niveluri de descriere a datelor (extern, conceptual și intern) există trei administratori de date:

administratorul bazei de date, care are rolul de a defini schema internă și regulile de trecere de la schema conceptulă la cea internă;

administratorul întreprinderii, care definește schema conceptuală;

administratorul aplicației, care definește schema externă și regulile de corespondență cu schema conceptuală.

Interogarea bazei de date

În funcția de interogare se include atât căutarea și extragerea datelor cât și actualizarea bazei de date (adăugare, modificare, ștergere).

SGBD-urile implementează funcția de interogare a bazei de date prin intermediul unor limbaje declarative, care permit căutarea datelor după conținut, fără a preciza procedurile de acces. Aceste limbaje trebuie să fie complete, în sensul de a permite definirea oricărei cereri de interogare a bazei de date, formulată de utilizator. Cel mai utilizat limbaj de interogare a bazei de date este în momentul de față SQL. O cerere de interogare se derulează în patru etape: formulare folosind limbajul de manipulare a datelor (DML care este un subset al limbajului SQL), compilare, optimizare și execuție.

SGBD-urile trebuie să posede un compilator (analizator) al cererilor de interogare, care să permită analiza sintactică și evaluarea acestora. Pentru a valida cererile de interogare, compilatorul utilizează dicționarul de date și le descompune în operatori relaționali, pe care-i structurează sub forma unui arbore, în care nodurile reprezintă operatorii iar elementele de pe ultimul nivel reprezintă relațiile. O cerere de interogare compilată este transmisă în etapa următoare de optimizare, care caută strategia cea mai rapidă pentru execuția acesteia.

În urma optimizării, cererile de interogare sunt transformate în tranzacții. O tranzacție este formată din una sau mai multe cereri de interogare, care se vor executa, din punct de vedere logic împreună (ca entitate funcțională).

Execuția unei tranzacții implică două operații principale: gestiunea tranzacțiilor concurente și execuția propriu-zisă.

Controlul integrității datelor

SGBD-ul trebuie să asigure coerența datelor. Toate regulile implicite sau explicite care trebuie să asigure integritatea datelor cunoscute sub numele de restricții de integritate. Sunt prezentate cu titlul de exemplu:

integritatea cheii primare, potrivit căreia, valorile cheii primare nu trebuie să fie nule;

integritatea referirii, potrivit căreia valorile cheii externe trebuie să refere obligatoriu valorile cheii primare corespondente;

integritatea de domeniu, prin care valorile unui atribut trebuie să aparțină domeniului definit de utilizator, etc.

Gestiunea tranzacțiilor

Este important ca un SGBD să asigure gestiunea tranzacțiilor. O tranzacție este o funcție care face ca baza de date să treacă dintr-o stare BD1 într-o stare BD2. Totul este ca această trecere să lase baza de date într-o stare coerentă. Se operează cu componentele de:

atomicitatea tranzacțiilor (Transaction Atomicity) – o tranzacție este total executată sau nu este executată deloc;

corecția tranzacțiilor (Transaction Correctness) – semnifică respectarea coerenței bazei de date după executarea tranzacțiilor;

izolarea tranzacțiilor – modificările produse de fiecare tranzacție sunt vizibile la sfârșitul tranzacției.

De fapt atomicitatea, corecția și izolarea sunt proprietăți ale tranzacțiilor.

Securitatea datelor

Un SGBD trebuie să garanteze securitatea datelor. Acest deziderat se realizează prin intermediul unui mecanism de control al drepturilor de acces la date și de restaurare a bazei de date în cazul unor pene sau erori.

Foarte multe SGBD-uri posedă o serie de funcții, cum sunt:

posibilitatea de a declanșa anumite proceduri atunci când sunt îndeplinite anumite condiții asupra datelor din baza de date;

introducerea unor reguli de inferențe, care permit deducerea unor date noi pe baza celor existente;

posibilitatea de a gestiona obiecte complexe (hărți, grafice, filme), ceea ce a condus la baze de date multimedia.

Caracteristici generale ale limbajului SQL

Limbajul SQL (Structured Query Language) a fost implementat în produse comerciale începând cu anii 70 când s-a lansat prima versiune Oracle și SQL/DS de la IBM.

SQL esta un limbaj declarativ; utilizatorul descrie informațiile pe care vrea să le obțină în urma interogării, fără a preciza algoritmii necesari pentru obținerea rezultatelor dorite. În același timp, SQL nu este un limbaj de programare sau de sistem, ci mai curând face parte din categoria limbajelor de aplicație pentru baze de date relaționale. Faptul că este un limbaj standard a condus la recunoașterea principalelor sale instrucțiuni de către mai multe sisteme de gestiune a bazelor de date (S.G.B.D. Oracle, Acces, Dbase, INFORMIX, DB2.).

În ultimii ani, comitetele ANSI și ISO pentru standardizarea limbajului SQL au adăugat noi facilități pentru gestiunea bazelor de date orientate pe obiect și obiect-relațional. S-a ajuns astfel la o versiune SQL3, pe cale de a deveni un standard în domeniu. Aceste facilități se pot structura:

facilități orientate obiect ce propun definirea la nivel de utilizator a tipurilor de date abstracte;

structuri de control specifice: IF, FOR, WHILE ce permit transformarea SQL-ului într-un limbaj de sine stătător;

facilități de comunicare în rețea;

facilități de prelucrare distribuită;

facilități multi-media, înglobate în modulul Multi-Media SQL.

Limbajul SQL permite o comunicare complexă și rapidă a utilizatorului cu bazele de date, în funcție de cerințele și restricțiile acestuia. Pe lângă manipularea și regăsirea datelor, se efectuează și operații complexe privind actualizarea și administrarea bazei de date.

În funcție de rolul lor în manipularea datelor și tranzacțiilor, instrucțiunile SQL, pot fi grupate astfel:

instrucțiuni de definire a datelor care permit descrierea structurii bazei de date;

instrucțiuni de manipulare a datelor în sensul adăugării, modificării și ștergerii înregistrărilor;

instrucțiuni de selecție a datelor care permit consultarea bazei de date;

instrucțiuni de procesare a datelor care permit consultarea bazei de date;

instrucțiuni de procesare a tranzacțiilor care privesc unitățile logice de prelucrare și constitue în fapt, operații multiple de manipulare a datelor;

instrucțiuni de control al cursorului;

instrucțiuni privind controlul accesului la date.

2.4.3 Limbaj de definire a datelor: SQL-LDD

Gestiunea schemei bazei de date

Schema unei baze de date descrie tabelele și atributele aferente lor, domeniile în care aceste atribute iau valori, restricțiile de integritate, drepturile de utilizare a relațiilor, view-urile și detaliile relative la implementarea fizică a datelor. Limbajul de definire a datelor LDD (Language Data Definition), parte componentă a limbajului SQL, include instrucțiuni care permit realizarea acțiunilor specifice descrierii schemei bazei de date.

Comanda de creare a unei baze de date este:

CREATE DATABASE <nume baza de date>;

Crearea tabelelor

Definirea unei tabele se face cu ajutorul instrucțiunii CREATE TABLE, a cărei sintaxă generală este:

CREATE TABLE nume_tabela (nume-atribut tip_data(marime) [NOT NULL] [,nume-atribut2 tip_data(marime) [NOT NULL]..][CONSTRAINT nume-atribut CHECK (nume-atribut <conditie>…)] [CONSTRAINT nume_index] {PRIMARY KEY|UNIQUE|NOT NULL}]);

Comanda precizează numele tabelei care se creează precum și descrierile atributelor. Este necesar ca fiecărui atribut să-i fie specificate numele, tipul și dimensiunea. Opțiunea NOT NULL, corespunzătoare unui atribut, asigură integritatea relației specificându-se astfel necesitatea introducerii unei valori. Se precizează atributul cu rol de cheie primară pentru care clauza NOT NULL este obligatorie.

SGBDR verifică integritatea datelor prin declararea restricțiilor pe domenii sau programarea de funcții sau proceduri. Se asigură astfel coerența datelor în procesul actualizării prin comenzi INSERT, UPDATE, DELETE.

Modificarea structurii unei tabele

Comanda ALTER TABLE permite modificarea structurii unei tabele prin adăugarea/ștergerea de atribute și prezintă următoarea sintaxă:

alter TABLE nume_tabel {ADD COLUMN nume-atribut1

tip_data [(marime)] [NOT NULL] [CONSTRAINT INDEX] | DROP COLUMN

nume_atribut2 CONSTRAINT indexname}

Ștergerea relațiilor dintr-o bază de date

Ștergerea unei tabele se realizează cu ajutorul comenzii DROP TABLE, odată cu aceasta ștergându-se și indecșii, view-urile definite pentru respectiva tabelă, neexistând nici o posibilitate de recuperare a informației șterse.

Sintaxa comenzii:

DROP TABLE nume_tabel;

Ștergerea unei baze de date

Ștergerea unei baze de date determină ștergerea tuturor obiectelor conținute de aceasta, a copiei cataloagelor SQL din directorul bazei de date.

Sintaxa generală a comenzii este:

DROP DATABASE <nume baza de date>;

Numeroase versiuni SQL nu includ această instrucțiune, ștergerea făcându-se mai ușor printr-o simplă apăsare pe butonul mouse-lui. În utilizarea acestei comenzi este necesar a se preciza că:

într-o rețea de calculatoare nu va putea fi ștearsă o bază de date activată de către un alt utilizator;

comanda de ștergere nu poate acționa asupra unei baze de date active.

2.4.4. Limbajul de manipulare a bazei de date (SQL-LMD)

Construirea blocului de cerere

O cerință a utilizatorului de selectare a datelor din baza de date relațională se exprimă prin ceea ce numim un bloc de cerere.

Sintaxa generală este:

SELECT [ALL/DISTINCT/DISTINCTROW] listă atribute

FROM listă-tabele

[WHERE criteriu-de- căutare]

[GROUP BY criteriu-degrupare]

[HAVING criteriu-de-grupare]

[ORDER BY criteriu-de-ordonare [ASC|DESC] ];

Unde:

lista-atribute – specifică atributele a căror valori vor fi returnate;

FROM listă-tabele – specifică tabelele din care se vor extrage datele;

WHERE – permite prin precizarea unei expresii exprimarea criteriului de selecție;

ORDER BY – precitează atributul după care se face ordonarea;

GROUP BY – folosit pentru a partiționa o tabelă în grupuri acordând acestora valori pe un atribut sau listă de atribute;

HAVING – specifică criterii de selecție pe grupuri de tupluri.

Instrucțiuni pentru actualizarea bazei de date

Pentru inserarea unui tuplu într-o tabelă se utilizează comanda INSERT .

Sintaxa generală este:

INSERT INTO nume-tabelă [(nume-atribut, . . .)]

{VALUES(valoare, . . .) | cerere}

Lista de atribute se specifică în cazul în care realizările din clauza VALUES nu corespund ordinii tuplurilor din tabelă. Dacă tuplul/tuplurile inserate sunt preluate dintr-o altă tabelă se va specifica comanda Select.

Actualizarea datelor dintr-o tabelă se realizează prin comanda UPDATE.

Sintaxa generală este:

UPDATE nume-tabelă

SET {nume-atribut=expresie, . . . | (nume-atribut=subcerere), . . .}

[WHERE condiție];

2.5 Serverul de aplicații PHP

2.5.1 Limbaje de programare pentru server

Un limbaj de scripting pentru server (PHP) este din punct de vedere formal asemănător cu JavaScript (care este un limbaj de scripting pentru client), în sensul că ambele tipuri de limbaje permit introducerea unor programe (numite scripturi) în codul HTML utilizat în pagina Web.

De obicei ambele tipuri de limbaje de scripting sunt limbaje interpretate, adică instrucțiunile incluse în programele (scrpturile) scrise în aceste limbaje sunt translatate într-un format intern și prelucrate una câte una, în loc ca programul sa fie translatat în întregime (compilat) înainte de execuție.

Diferența dintre un limbaj de scripting pentru client și un limbaj de scripting pentru server constă în aceea că, în timp ce browserul Web interpretează un script scris într-un limbaj de scripting pentru client (JavaScript) după ce pagina care îl conține a fost descărcată pe calculatorul utilizatorului, un script scris într-un limbaj de scripting pentru server (PHP) este interpretat pe server, iar pagina HTML generată este trimisă browserului (clientului Web).

O dată interpretat, codul scris într-un limbaj de scripting pentru server este înlocuit în pagina Web cu rezultatele furnizate de script, astfel că browserul primește o pagină HTML standard. Astfel, scriptul este procesat în întregime pe serverul Web.

Utilizarea programării Web pe server are mai multe avantaje ca:

nu apar probleme legate de compatibilitatea cu browserul, deoarece scripturile scrise într-un astfel de limbaj sunt interpretate pe server;

este permis accesul la resursele aflate pe server (resurse reprezentate în special de fișiere și baze de date);

se reduce “încărcarea” calculatorului client; acest avantaj este important în cazul în care acest calculator are resurse reduse.

Limbajul structurat de interogare SQL folosit de bazele de date relaționale este un limbaj neprocedural. De asemenea, SQL nu conține structuri de control al fluxului. Utilizarea limbajelor de programare care dețin astfel de structuri și care sunt capabile să trimită interogări SQL serverului pentru baze de date constituie o modalitate foarte eficientă de extindere a funcționalităților limbajului SQL. Integrarea în paginile HTML trimise clientului a rezultatelor obținute în urma execuției scripturilor permite vizualizarea conținutului bazelor de date.

2.5.2 PHP: dezvoltare și caracteristici

PHP a apărut în anul 1994 sub forma unui mic utilitar cu care Rasmus Lerdorf urmărea să colecteze informații despre vizitatorii paginii sale Web; el a denumit acest utilitar PHP (Personal Home Page). Ulterior, a adăugat elemente de interfață între utilizatori și bazele de date, elemente numite Form Interpreters (FI). A rezultat astfel utilitarul PHP/FI.

În vara anului 1997, Zeev Surasky și Andi Gutmans încep să dezvolte un limbaj de programare Web puternic, robust și eficient, bazat pe PHP/FI și pe sintaxa C: PHP. Numele acestui limbaj este un acronim recursiv pentru PHP: Hypertext Preprocessor. În vara anului 1998 apare versiunea 3.0 a limbajului PHP, în care sunt introduse elemente de programare orientată pe obiect. În versiune 4.0 (mai 2000) este introdus motorul Zend – Zend Engine – al limbajului, numele său derivând din cel al dezvoltatorilor săi, Zeev și Andi. Aceștia sunt cofondatori ai companiei Zend Technologies, creată în 1999 în Ramat Gan, Israel. Această companie se ocupă de dezvoltarea motorului Zend, fiind un lider activ în comunitatea PHP open source.

PHP include suport pentru instanțierea claselor Java (și utilizarea lor ca obiecte PHP) și pentru servlet-uri. De asemenea, limbajul PHP oferă suport pentru gestiunea sesiunilor, funcții pentru generarea și prelucrarea imaginilor în diverse formate, pentru crearea animațiilor flash, a documentelor PDF etc. Limbajul PHP include suport pentru comerțul electronic, oferind posibilitatea efectuării de plăți online (Cybercash, VeriSign Pay Flo etc.).

Limbajul PHP este orientat în special către programarea pentru server, adică interpretorul PHP poate realiza următoarele operații: poate primi, analiza și folosi datele colectate de la utilizatori, poate transmite interogări SQL unui server de baze de date (așa cum este MySQL) prin intermediul unor funcții dedicate și apoi analiza rezultatele obținute, poate genera pagini Web pe baza rezultatelor interogărilor etc.

In general, limbajul PHP este utilizat precum altfel:

Programare pentru server.

Este modalitatea in care limbajul PHP se utilizeaza cel mai des. Pentru a fi utilizat in acest caz sunt necesare trei programe: un server Web, interpretorul PHP si un browser utilizat pentru vizualizarea rezultatelor.

Programarea in linie de comanda.

Se poate executa executa un script PHP fara server Web si fara browser. Este necesar numai de interpretorul PHP. Acest tip de utilizare este indicat pentru scripturi care sunt executate in mod sistematic ( pentru intretinerea sistemului)

Scrierea aplicatiilor GUI (Graphical User Interface) client.

2.5.3 Sintaxa limbajului

Execuția corectă a scripturilor PHP este condiționată de instalarea și configurarea corectă a serverului Web Apache, precum și a serverului de baze de date MySQL (în cazul în care aceste scripturi conțin funcții de acces la baze de date MySQL).

La fel ca și pentru crearea unei pagini (X)HTML, scrierea unui script PHP necesită un simplu editor ASCII (ex: Notepad în Windows, vi, vim, gedit etc. în UNIX/LINUX).

Ca orice limbaj de programare, PHP se caracterizează prin sintaxa și semantică. Prin sintaxa limbajului se ințelege totalitatea regulilor de scriere a programelor, astfel încât acestea să fie acceptate de către parser-ul (analizatorul sintactic) PHP. Este evident ca respectarea scrierii corecte nu înseamnă că programele scrise sunt, automat, lipsite de erori. Semantica limbajului PHP se referă la semnificația construcțiilor sintactice corecte.

Limbajul PHP folosește un vocabular format din următoarele elemente: caractere utilizate, identificatori, separatori și comentarii.

Caracterele utilizate formează setul de caractere al limbajului PHP. Acesta cuprinde:

litere majuscule și minuscule ale alfabetului (a-z și A-Z);

cifrele corespunzătoare sistemului de numerație zecimal (0-9);

caractere speciale: ! , @ , # , $ , % , & , * , ( , ) , – , _ , + , = , ; , ” , ’ , { , } , [ , ] , și spatiu.

Identificatorii reprezintă modalitațile de denumire a datelor, funcțiilor, claselor, cuvintelor-cheie etc. ; ei sunt de fapt, șiruri formate din următoarele caractere: cifre, litere și caracterul special “_” (underscore, liniuță de subliniere). Regula de construire a identificatorilor precizează ca un identificator începe întotdeauna cu o literă sau cu o liniuță de subliniere.

Separatorii delimitează între ei identificatorii, în PHP se utilizează ca separatori: spațiul (blank), caracterul “;” (punct și virgulă) și virgula (în listele de argumente ale funcțiilor).

Comentariile sunt folosite pentru a facilita ințelegerea programelor, mai ales a celor care au dimensiuni mari.

2.5.4 Scrierea și executarea scripturilor

Orice program (sau secțiune de cod) PHP este specificat prin două coduri (unul de început și altul de sfârșit) care indică interpretorului PHP că textul delimitat de ele reprezintă cod PHP. Interpretorul PHP recunoaște patru stiluri de coduri utilizate pentru delimitarea secvenței care conține cod PHP:

stilul implicit:

<?php

?>

stilul compatibil asp:

<%

%>

stilul de marcaj script:

<script language=”php”>

</script>

stilul de etichetă scurtă:

<?

?>

Posibilitatea de utilizare a acestor coduri poate fi activată în fișierul de configurare php.ini, prin realizarea setărilor următoare:

short_open_tag=On

asp_tags=On

Stilul de marcaj script poate fi folosit fără a fi necesară activarea sa: el este recunoscut automat de către interpretorul PHP (nu există in php.ini modalități de activare/dezactivare a stilului).

Pentru a putea genera cod XHTML este necesară dezactivarea stilului de etichetă scurtă în fișierul de configurare php.ini:

short_open_tag=Off

Fișierul în care este scris scriptul PHP se salvează cu extensia php; trebuie ca numele fișierului să conțină numai litere (este indicat să se folosească minuscule pentru evitarea unor probleme care pot să apară la transferul fișierului de pe sistemul Windows pe UNIX/Linux: în Windows identificarea fișierelor nu este sensibilă la diferența dintre majuscule și minuscule, pe câtă vreme în UNIX/Linux această sensibilitate există), liniuțe și cifre.

Programul prezentat în scriptul următor prezintă un exemplu de script scris în PHP:

<?php

phpinfo();

?>

După apelul funcției PHP phpinfo() urmează caracterul punct și virgulă. Acest caracter trebuie pus la sfarșitul fiecărui rând care conține cod php. Locul acestui caracter poate fi luat de codul de sfârșit (?>), scris pe acelasi rând sau pe rândul următor.

CAPITOLUL III PROIECTAREA GENERALǍ A SITE-ULUI

3.1 Scopul și necesitatea site-ului

Site-ul are ca obiect de activitate prezentarea unor obiecte din muzee, oferă utilizatorilor informații despre obiecte, prezentând categorii de obiecte, subcategorii, locația unde se află obiectul, precum și alte informații relevante despre obiecte.

Site-ul conferǎ urmǎtoarele avantaje:

Relație cu clienți externi – site-ul fiind public și accesibil de oricine de pe mapamond, permite expunerea obiectelor .

Prestanțǎ – indiferent de tipul de obiect, orice vizitator va vizualiza obiectele. Printr-un design elegant și o funcționalitate sporitǎ, imaginea și prestanța site-ului va crește cu siguranțǎ.

Disponibilitate aproape permanentǎ – majoritatea companiilor care oferǎ gǎzduire pentru un site oferǎ o garanție prin care asigurǎ că site-ul poate fi accesat de oricine, de oriunde, la orice orǎ.

Cost foarte redus pentru toate avantajele și oportunitǎțile aduse de site-ul web.

Rolul principal al site-ului este de promovare a obictelor istorice .Am dorit sǎ realizez un site dupǎ propria viziune și dupǎ percepția mea a ceea ce trebuie sǎ conținǎ obligatoriu un site de tip muzeu virtual pentru prezentarea obiectelor istorice .

3.2 Tema site-ului

Prin tema site-ului ne referim la identificarea temei site-ului în funcție de obiectul de activitate. Consider cǎ tema site-ului trebuie sǎ se afle în concordanțǎ cu scopul și motivul pentru care se realizeazǎ site-ul. Tema site-ului trebuie sǎ înfǎțișeze cât mai elocvent domeniul de activitate, utilizatorii țintǎ și mesajul ce trebuie transmis acestora.

Prin temǎ ne referim la aspectul de ansamblu al site-ului ce poate cuprinde culori dominante, imagini specifice, grad de formalitate, sunet fundal, organizare layout, etc. În cazul de fațǎ ne referim la un website de prezentare a obiectelor istorice, Așadar trebuie creat un cadru al site-ului cu elemente interactive.

Așa cum amintim mai mult, problema principalǎ o constituia gradul înalt de atractivitate al site-ului, .

Astfel, pentru conturarea temei site-ului voi avea în vedere realizarea unui cadru specific folosind:

culori predominante care denotǎ calm și seriozitate

un font care sǎ inspire atractivitate

imagini care sǎ inspire calitate, atractivitate

meniu structurat într-un mod accesibil

conținutul textul sǎ fie cât mai concis și expresiv

conținutul paginilor sǎ fie cât mai bine structurat

layout optimizat pentru a fi ușor accesibil și la conexiuni slabe de internet

3.3 Structura bazei de date

Proiectul folosește o bază de date MySQL pentru stocarea informațiilor.

Baza de date conține 6 tabele :

1. Tabelul tadmins:

Este folosit pentru stocarea administratorilor site-ului.

Câmpuri:

fIdAdmin: Id-ul înregistrării;

fUsername: numele utilizator al administratorului

fPassword: parola administratorului

2. Tabelul tcategorii:

Este folosit pentru stocarea Expozitiilor din care fac parte obiectele expuse .

Exemple de categorii:

1.AVIATIA IN ROMANIA

2. TEZAUR ISTORIC'

3. MARIA REGINA

4. COMORILE CHINEI'

5. IMAGINAND BALCANII'

6. HAINA IL FACE PE OM'

7,'COLUMNA LUI TRAIAN'

8, PORTRETE IN ISTORIE

Câmpuri:

fIdCategorie: Id-ul înregistrării

fNumeCategorie: Numele categoriei

3. Tabelul tproducatori:

Este folosit pentru stocarea informațiilor despre locatia unde se gasesc obiectele expuse pe site.

Câmpuri:

fIdProducator: Id-ul înregistrării;

fNumeProducator: Numele locației;

fUrl: Adresa web a locației;

fDescriere: Descrierea locației.

4. Tabelul tproduse:

Este folosit pentru stocarea informațiilor referitoare la obiectele din muzeul virtual.

Câmpuri:

fIdProdus: Id-ul înregistrării;

fIdSubcategorie: Id-ul subcategoriei expozitiei din care face parte obiectul

fIdProducator: Id-ul locatiei unde se află acest obiect

fNumeProdus: Numele obiectului;

fCodProdus: Codul obiectului;

fImagine: Calea către imaginea produsului. Imaginile sunt stocate în directorul “images/produse”;

fDescriere: Descrierea detaliată a obiectului;

fSpecificatii: Specificațiile tehnice ale obiectului ;

5. Tabelul tsubcategorii:

Este folosit pentru stocarea informațiilor referitoare la subcategoriile obiectelor din muzeul virtual

Câmpuri:

fIdSubcategorie: Id-ul înregistrării;

fIdCategorie: Id-ul expozitiei de care aparține subcategoria;

fNumeSubcategorie: Numele subcategoriei.

12. Tabelul tutilizatori:

Este folosit pentru stocarea informațiilor referitoare la utilizatorii înregistrați pe site. Înregistrarea este necesară pentru a putea comanda / vota / comentă produse.

Câmpuri:

fIdUtilizator: Id-ul înregistrării;

fNumeUtilizator: Numele utilizatorului;

fParola: Parola utilizatorului;

fEmail: Adresa email a utilizatorului;

fAdresa: Adresa utilizatorului;

fDataInregistrare: Dată la care utilizatorul s-a înregistrat pe website.

3.4 Structura proiectului

Structura fișierelor și directoarelor proiectului este ilustrată în figură următoare:

În directorul rădăcina al aplicației se găsesc fișierele principale ale site-ului.

În directorul admin sunt păstrate fișierele panoului de administrare. Acest panou este accesibil numai unui administrator, după autentificare.

În directorul images sunt stocate imaginile layout-ului aplicației și imaginile obiectelor (acestea sunt stocate într-un director separat numit produse).

În directorul css sunt stocate fișierele ce definesc stilurile CSS (Cascading Style Sheets) folosite pentru formatarea layout-ului:

În directorul js sunt păstrate fișierele javascript folosite de aplicație pentru intractiunea client (în special validări ale formularelor), dar și sursele unui calendar tip pop-up utilizat la definirea datelor:

În directorul include sunt păstrate fișierele ce conțin funcții folosite de majoritatea celorlalte fișiere. Acestea sunt importate la începutul fișierelor în care urmează a fi folosite.

Fișierul adminfunctions.inc.php conține funcții folosite de modulul de administrare, că de exemplu:

verificarea autentificării administratorului;

afișarea meniului de opțiuni al administratorului.

Fișierul mysql.inc.php conține date referitoare la conectarea la baza de date: adresa serverului, numele și parola utilizatorului ce se conectează, numele bazei de date.

De asemenea același fișier conține funcția de conectare la baza de date, funcție ce este apelată în fiecare fișier ce extrage informații în baza de date.

Fișierul fileupload-class.php conține funcții necesare încărcării imaginilor obiectelor. Aceste funcții sunt folosite în modulul de administrare, în secțiunea de management al produselor.

Fișierul functions.inc.php conține funcții referitoare la înserarea diferitelor secțiuni ale layout-ului site-ului, comune mai multor pagini, că de exemplu afișarea unor meniuri, ale header-ului aplicației, ale formularului de căutare, secțiunii de autentificare a utilizatorilor.

De asemenea anumite funcții sunt folosite pentru a însera în restul documentelor a altor fișiere ce conțin funcții javascript sau stiluri CSS. Avantajul constă în posibilitatea de a adăuga rapid un alt document CSS la lista celor deja folosite, în cazul în care este necesar, modificarea fiind necesară într-un singur loc dar propagându-se în toate fișierele.

De asemenea modificarea unei părți a interfeței site-ului sau doar a aspectului acesteia se poate realiza modificând doar câteva linii de cod

Layout-ul site-ului este practic definit de fișierele CSS, în acestea fiind stocate informațiile referitoare la formatarea textului și a layout-ului, poziționarea acestora pe ecran, etc.

Doar prin editarea fișierelor CSS se poate obține un aspect complet diferit al interfeței.

De asemenea, stilurile CSS permit o mult mai detaliată definire a formatului textelor și poziționării acestora decât conferă limbajele HTML/XHTML.

În plus, stocarea separată a fișierelor javascript și CSS permite o mult mai rapidă încărcare a site-ului deoarece aceste funcții sunt încărcate o singură dată, practic odată cu încărcarea primei pagini a site-ului. Apoi aceste pagini sunt folosite din cache-ul browserului.

Directorul admin, ce conține modulul de administrare este protejat împotriva roboților de indexare cu ajutorul codului aflat în fișierul robots.txt:

User-agent: *

Disallow: /admin/

Acest cod specifică agenților de căutare (ca de exemplu GoogleBot, MSN Bot, folosite de motoarele de căutare Google și MSN) că nu au dreptul de a accesa acest director.

Layout-ul aplicației este foarte ușor de folosit, toate intrumentele aflându-se la îndemână și fiind accesibile din orice pagină.

Structura principală a interfeței este următoarea:

În partea de sus este afișat headerul aplicației împreună cu logo-ul muzeului virtual. Tot în partea superioară este afișată secțiunea de autentificare.

Aceasta poate avea 2 stări:

1. când utilizatorul nu este încă autentificat:

Dacă utilizatorul nu este autentificat, acesta are la dispoziție formularul pentru autentificare. Pentru aceasta trebuiesc completate câmpurile

Utilizator

Parola

Apoi se poate realiza autentificarea cu ajutorul butonului Autentificare.

În cazul în care utilizatorul este la prima vizită pe site sau încă nu și-a creat cont poate folosi butonul Cont Nou, ce va afișa formularul de înscriere a unui nou utilizator.

După autentificare secțiunea va arăta un mesaj de bun venit, împreună cu 2 opțiuni:

Contul meu;

Ieșire

Accesarea opțiunii contul meu oferă posibilitatea de a actualiza datele personale ale utilzatorului, cu excepția numelui de utilizator ce este ales la înscriere și nu mai poate fi schimbat ulterior. Accesarea opțiunii Ieșire are ca efect dez-autentificarea utilizatorului și ștergerea informațiilor legate de acesta (ex. id-ul utilizatorului păstrat în variabilele sesiune).Revenind la opțiunea de creare a unui nou cont, aceasta se prezintă în felul următor:

Figura 3.1 Formularul pentru creare cont utilizatori

Câmpurile necesare creării unui cont nou sunt:

Numele utilizator ce nu mai poate fi schimbat ulterior.

Parola necesară autentificării. Parola trebuie confirmată deoarece caracterele acesteia nu sunt vizibile fiind mascate de caracterul *

Adresa de email ce poate fi folosită de către administrator pentru comunicarea cu utilizatorul. Aceasta nu este vizibilă celorlalți utilizatori ai site-ului. De asemenea adresa de email trebuie confirmată pentru a evita scrierea unei adrese greșite ce poate face imposibilă comunicarea administratorilor siteului cu utilizatorul.

Adresa utilizatorului.

Câmpurile referitoare la informațiile personale pot fi modificare după înregistrare și autentificare, cu excepția numelui utilizatorului.

Butonul Anulează Modificări resetează starea formularului la cea inițială, golind toate câmpurile formularului. Butonul Înregistrare trimite datele către scriptul ce le va însera în baza de date. În cazul în care utilizatorul nu a completat toate câmpurile, acesta este atenționat prin mesaje, cu ajutorul funcțiilor de validate JavaScript.

După autentificarea utilizatorului acesta își poate modifica informațiile personale, accesând opțiunea Contul meu:

Aici are la dispoziție informațiile introduse la înregistrare.

De asemenea are afișată și data înscrierii pe site. Ca și în ecranul de înregistrare, parola și adresa de email trebuiesc confirmate, pentru a evita folositea unor date greșite ce duc la imposibiliatea autentificării ulterioare sau la imposibilitatea comunicării administratorilor siteului cu utilizatorii. Butonul Anulează modificări aduce formularul în starea inițială, adică va afișa informațiile aflate în baza de date, fără însă a reîncărca pagină.

Butonul Actualizare salvează modificările în baza de date. Opțiunea Ieșire are ca efect dez-autentificarea utilizatorului și redirectarea acestuia la pagina principală a siteului.

Secțiunea de căutare este prezentată în figură următoare:

Figura 3.2 Fereastra pentru căutarea unui obiect dintr-o expoziție

Formularul conține 2 câmpuri (liste):

Expozitii

Subcategorie expozitie

În cazul în care utilizatorul nu alege o expozitie sau o subcategorie vor fi afișate toate obiectele din muzeul virtual. Lista subcategoriilor conține inițial doar opțiunea Toate.

În cazul alegerii unei expozitii, în cea de-a doua listă vor fi încărcate subcategoriile corespunzătoare expozitiei alese. Apoi utilizatorul poate alege o subcategorie sau poate păstra opțiunea Toate, în acest caz căutarea realizându-se în funcție de Expozitia aleasă, pentru toate subcategoriile acesteia. Secțiunea de căutare este disponibilă în pagina cautare.php.

Se afișează Expozitiile de obiecte definite în baza de date de către administrator cu ajutorul modulului de administrare. Prin accesarea unei opțiuni a acesui meniu se afișează obiecte din expozitia selectată, într-un mod similar cu rezultatele căutării, prezentate anterior.

A doua grupă de informații cuprinde opțiuni către paginile de informații generale ce conțin detalii legate despre site, informații referitoare la datele de contact și harta site-ului.

Pagina Harta Site afișează legături spre Expozitiile de obiecte existente, subcategoriile acestora și obiectele aflate în aceste subcategorii:

Aceasta pagină ajuta atât la navigarea rapidă în conținutul siteului și identificarea rapidă a unor expoziții, subcategorii și obiecte, cât și la indexarea păginilor de către agenții de căutare, care au la dispoziție legături către toate aceste elemente.

Agenții de căutare nu pot urmări legături non-standard ce folosesc cod javascript ci doar legături standard de tip href = locație.

Pagina de contact afișează informații referitoare la contactarea administratorului muzeului virtual, că:

adresa;

numere telefon;

numere fax;

adrese email

Pagina de categorii afișează expozitiile și subcategoriile acestora, într-un mod similar paginii Harta site fără a afișa însă legături spre produse.

În cazul în care pentru o expozitie nu sunt încă definite subcategorii de către administrator se va afișa mesajul “Nu există subcategorii”, în caz contrar vor fi afișate legături către subcategoriile existente. De asemenea, ca și în cazul paginii Rezultatele căutării, rândurile vor avea fundal intermitent pentru ușurința navigării.

Interfața de administrare

În secțiunea de administrare pot fi adăugate/șterse/editate obiectele, locațiile, oferte, expoziții, utilizatori.

Pagina de început este următoarea:

Figura 3.3 Interfața panoului de administrare

Administratorul trebuie să se autentifice pentru a avea acces la opțiunile de administrare.

După autentificare administratorul va avea disponibil următorul meniu din stanga:

Prima opțiune din panou este pentru modificarea parolei de acces. Numele utilizator nu poate fi schimbat, ca și în cazul utilizatorilor standard. Ecranul care indică modificarea parolei este următorul:

Figura 3.4 Modificare parola

A doua grupă de opțiuni folosește definirii categoriilor, producători, subcategorii și produsele.

Figura 3.5 Meniul din panoul de administrare

Opțiunea de editare afișează o pagină similară cu mențiunea că valorile câmpurilor vor fi deja completate și butonul Adăugă va fi înlocuit cu butonul Modifică.

Ultima opțiune din acest grup folosește definiri obiectelor

Aceasta afișează: nume obiect, locatia, expoziția, subcategorie, detalii .

Adăugarea unui obiect se face la fel ca la editarea unui obiect prin completarea obligatorie a tuturor câmpurilor

Imaginile obiectelor trebuie să respecte următoarele reguli:

-Fisiere acceptate: GIF/JPG

-Marime maximă: 500kb

-Dimensiuni maxime: 200px/200px

Figura 3.6 Modificare date obiect

Cu următoarea grupă de opțiuni se administrează utilizatorii înscriși .

Figura 3.7 Meniul utilizatorilor din panoul de administrare

Administrarea utilizatorilor permite doar ștergerea acestora, fără a putea adăuga sau modifica datele unui utilizator.

Alte opțiuni disponibile: afișarea detaliilor despre utilizatori.

Acestea conțin adresa de email a utilizatorului care este afișată sub formă de link de tip mailto. De asemenea se oferă legături către profilul utilizatorului .

Cu ajutorul opțiunii ieșire administratorul închide panoul de administrare pentru a nu se permite accesul neautorizat la administrarea al site-ului.

3.5 Codul sursă al proiectului

În continuare vor fi prezentate câteva secțiuni de cod mai importante, din codul sursă al aplicației. Aceste secțiuni cuprind atât cod PHP cât și Javascript și CSS. Funcția de conectare la baza de date este prezentată în figură următoare:

Se observă că acest fișier include un alt fișier numit config.inc.php ce conține setările globale ale aplicației.

Parametrii conexiunii sunt:

numele serverului MySQL;

numele bazei de date folosită de aplicație;

numele utilizatorului ce are acces la baza de date;

parola acestui utilizator.

Cu acești parametrii se va apela funcția PHP mysql_connect ce realizează conectarea la baza de date. În cazul în care conectarea la baza de date nu reușește se va afișa următorul mesaj:

Error while connecting to db împreună cu motivul erorii (de ex. Access denied) Ultimă funcție din fișier realizează închiderea conexiunii cu baza de date pentru a elibera resursele:

fDBClose.

Fișierul functions.inc.php conține funcții uzuale folosite în majoritatea paginilor siteului ca de exemplu: – inserarea de atribute și / sau taguri HTML, ca de exemplu META TAGS:

De asemenea aici se afla funcții folosite pentru includerea de fișiere în care sunt definite funcții JavaScript sau stiluri CSS necesare validării formularelor sau formatării și poziționării layoutului siteului:

Prin simpla modificare a acestor funcții, ca de exemplu adăugarea unui nou fișier ce trebuie inclus, aceasta se va realiza fără a afecta toate fișierele ce folosesc funcțiile de validare.

Un alt exemplu de funcții folosite în fișierele site-ului sunt cele ce includ secțiuni din layout, ca de exemplu secțiunea de autentificare sau cea de căutare:

Această funcție testează dacă utilizatorul este autentificat.

În cazul în care este autentificat afișează un mesaj de bun venit împreună cu opțiunile Contul meu și Ieșire cont. În caz contrar afișează formularul de autentificare precum și opțiunea de creare a unui cont nou. Toate componentele și secțiunile layoutului sunt afișate prin apelarea unor funcții din acest fișier ceea ce permite schimbarea rapidă a acestuia, ca de exemplu adăugarea / ștergerea / modificarea unei opțiuni din meniul din partea inferioară a siteului, schimbare ce se va propaga în tot siteul:

Directorul JS conține funcții JavaScript necesare în majoritatea cazurilor pentru validări ale formularelor:

Un alt exemplu de funcții JavaScript este cel din figura următoare, care validează introducerea expozițiilor și subcategoriilor.

În continuare se va prezenta o secvență de cod CSS necesar pentru formatarea și poziționarea elementelor de layout, în acest caz a meniului superior și elementelor acestuia :

Majoritatea acțiunilor efectuate de către utilizatori sunt implementate în fișierul execute.php din directorul rădăcina al proiectului. Un fișier similar se afla în directorul admin, unde sunt implementate acțiunile realizate de administrator pentru panoul de administrare prezentat anterior.

Structura acestui fișier este următoarea:

– la începutul acestuia se importa fișiere în care sunt definite o serie de funcții și setări necesare în implementările acțiunilor, ca de exemplu fișierul ce conține funcțiile de conectare respective deconectare la / de la baza de date sau cele ce afișează meniurile disponibile:

– apoi se verifică dacă utilizatorul este autentificat și este de tip administrator pentru a valida accesul la aceste acțiuni și se realizează conectarea la baza de date:

– apoi urmează implementarea unei acțiuni urmată de redirectarea la p pagina ce de obicei listează obiectele afectate de acțiunea respective (locatii, expozitii, etc) :

În exemplul de mai sus sunt ilustrate cele 3 acțiuni ce se pot efectua asupra unei locații :

adăugare;

modificare;

ștergere

CONCLUZII

Site-urile au avut o evoluție ascendentǎ în timp, plecând de la site-uri simple, cu conținut format doar din text, ce aveau ca target un numǎr restrâns de utilizatori, la site-uri complexe prin modul avansat de creare și dezvoltare și a conținutului multimedia afișat. Printre avantajele site-urilor web putem enumera: publicitate sporitǎ, întreținerea relației cu clienții externi, creșterea prestanței, disponibilitate (aproape) permanentǎ în orice interval și de oriunde și nu în ultimul rând, costuri reduse de dezvoltare și mentenanțǎ.

Tema aleasǎ pentru acest site este una specific unui magazine virtual de prezentare a unor obiecte istorice, folosind culori predominante ce denotǎ calm , fonturi formale, imagini care sǎ inspire calitate și performanțǎ, meniu structurat într-un mod accesibil, conținutul paginilor sǎ fie concis și expresiv și nu în ultimul rând un layout optimizat pentru a fi ușor accesibil de conexiuni slabe la internet.

În elaborarea design-ului am organizat tot conținutul de pe site-ul actual într-un meniu cu trei elemente principale:

meniu orizontal cu submeniurile ‘Acasă, ‘Produse IT’,‘Oferte’, ‘Cautare’ si ‘Contact’;

meniu de logare cu optiunile ‘Cont nou’ și ‘Autentificarer’;

meniu vertical cu ‘Tipuri de produse’, ‘Informatii’ si ‘Oferte’;

Pentru a da originalitate site-ului, am unit content-ul paginilor cu meniul pentru a simplifica design-ul și a da o notǎ interactivǎ site-ului per total.

În elaborarea design-ului, dar și în aplicarea tipografiei și imaginilor am respectat standardele de simetrie, unitate, proximitate, repetiție, accentuare, plasare, continuitate, contrast. Culorile predominante din cadul site-ului sunt albastru deschis (ce inspirǎ calm și relaxare), roșu (pentru a simboliza un aspect atractic).

Limbajele de programare folosite în crearea acestui site au fost:

HTML (Hypertext Markup Language) – Aplicat în organizarea elementelor în paginǎ și în redactarea conținutului;

CSS (Cascading Style Sheets) – Aplicat în formatarea elementelor din layout și la formatarea textelor, culorilor și a imaginilor;

JS (Javascript) / jQuery – Aplicat pentru a introduce anumite funcționalitǎți elementelor ce le fac sǎ devinǎ interactive;

PHP (Hypertext Preprocessor) – Aplicat în formularul de contact, pentru a putea trimite informațiile furnizate de utilizator cǎtre adresa de e-mail asociatǎ site-ului.

Elementele site-ului au fost create și implementate în paginǎ sub forma mai multor tag-uri de tip html:

Layout-ul a inceput cu tag-urile ‘head’, ‘title’ și apoi ‘body’. În tag-ul ‘body’ au fost introduse toate div-urile, așadar aici a fost implementat div-ul cu id-ul ‘layout’, ce a definit dimensiunile site-ului.

Header-ul a fost implementat prin div-ul cu ID-ul ‘header’.

Meniul a fost creat prin div-uri având aplicate clasele ‘cc_menu’, ‘cc_item’, ‘cc_submenu’, împreunǎ cu clasa auxiliarǎ ‘span.cc_title’.

Conținutul paginilor a fost realizat cu div-uri având aplicate clasele ‘cc_content’, ‘cc_content div.block’, ‘float_stanga’ și repectiv ‘float_dreapta’, împreuna cu clasele auxiliare pentru ‘cc_content’ la tag-uri de tip ‘h1’, ‘p’ și ‘a’.

Footer-ul este implementat prin div-ul cu ID-ul ‘fooder’.

În concluzie, consider cǎ site-ul pe care l-am creat ar avea un succes mai mare în rândul utilizatorilor internetului. Imaginea conteazǎ foarte mult în timpurile noastre astfel cǎ elementele atractive pot avea un impact considerabil în opțiunile viitorilor clienți.

BIBLIOGRAFIE

B. Ghilic-Micu, M. Stoica, E-activitățile în societatea informațională, Colecția Societatea Informațională, Ed.Economică, București., 2002.

Buraga Sabin, Aplicații Web la Cheie, Editura Polirom, București. 2003.

Buraga Sabin , Proiectarea Siturilor Web. Design și Funcționalitate, Editura Polirom, 2004

Dașu, Narcisa Gabriela, Crearea, proiectarea, optimizarea, publicarea și promovarea site-urilor Web , Buzău : Teocora, 2011

Ioniță, Anca, Modelarea UML în ingineria sistemelor de programare, Editura ALL, București, 2003

Jay Greenspan si Brad Bulger- MySQL / PHP Database Applications

Kevin Yank , Building a Database – Driven Web Site using PHP and MySQL

Liciniu A. Kovács ; colab.: Cormos Monica Lavinia, Pop Gabriel Marius , Ghid avansat de comerț electronic, ed.: Colin Holcombe. – Cluj Napoca : Editura Fundației pentru Studii Europene, 2011

Lambrescu, Ionuț. Analiza și prelucrarea imaginilor, Ploiești : Editura Universității Petrol-Gaze din Ploiești, 2011.

M. Belu, D. Parasciv, A.M. Comănescu, Tranzacții pe Internet, Ed. Economică, București, 2004.

Niculescu, Florentina Rodica, Modelarea și proiectarea sistemelor software utilizând UML, Editura Universității din București, 2005.

Onete Bogdan, Conținutul Site-urilor Comerciale – Elemente Obligatorii, Editura ASE, București, 2005.

Pleșca Doru, Analiza Eficienței Comerciale a unui Magazin On-line, Editura ASE, București, 2006.

Paul Chin, Best Practices for Developing a Web Site, 2008,

Philip Crowder și David A. Crowder, Creating Web Sites Bible, 2008.

Saseanu Andreea, Incertitudinea Strategică și Viitorul Dialogului On-line cu Consumatorul, Editura ASE, București, 2005.

Scripcariu, Luminița., Proiectarea bazelor de date , Iași : Politehnium, 2011.

V. Patruț, M. Deju, D. Pacurari, Gestiunea și contabilitatea unor activități economice cu caracter deosebit, Editura Junimea, Iași, 2005.

V. V. Patriciu, M. Ene-Petrosanu, I. Bica, C. Vaduva, N. Voicu, Securitatea Comertului Electronic, Ed. ALL, București, 2001.

https://ro.wikipedia.org/wiki/Programare_orientată_pe_obiecte

http://www.ls-infomat.ro/user/content/e9efcsharp.pdf

http://profs.info.uaic.ro/~alaiba/mw/index.php?title=Java_sau/și_.NET

https://ro.wikipedia.org/wiki/Bază_de_date

http://www.eugo.ro/Programare/SGBD.pdf

MySQL vs Oracle

Similar Posts