Introducere in aplicatii Web si baze de date relationale

Aplicatiile Web sunt prezentul si viitorul. Orice limbaj de programare ai fi facut in trecut, sau daca stii numai HTML, CV-ul tau va fi vazut altfel cu experienta in dezvoltarea aplicatiilor Web.
La nivel cel mai de jos World Wide Web-ul se bazeaza pe o arhitecura client/server. Asta insemna ca si severul central dar si aplicatia-client sunt responsabile de o parte din procesarea datelor.
Clientul
Aplicatiile care se pot dezvolta folosind MySQL si PHP folosesc un singur client: browser-ul Web. Unele aplicatii mai sofisticate pot folosi si un applet Java (spre exemplu un client de chat in timp real). Singurul client de care trebuie sa fii preocupat este browser-ul care va interpreta aplicatiile tale.
Server-ul
Arhitectura aplicatiilor Web Aproape tot ce fac aplicatiile Web are loc pe un server. O aplicatie specifica, numita server Web, va fi responsabila pentru comunicarea cu browser-ul. In cele din urma, mai este nevoie de un limbaj care sa intermedieze cereri intre server-ul web si un server de baze de date, in cazul nostru si sa realizeze sarcini prin program asupra informatiilor ce vin si se duc spre sever-ul Web. Toate aceste trei elemente (server-ul Web, limbajul de programare si serverul de baze de date) trebuie sa fie compatibile si cu sistemul de operare din calculatorul pe care sunt folosite. Cele mai folosite sisteme de operare pe serverele Web sunt Windows NT/2000 si UNIX (peste 90% din numarul total de servere de pe Web).

Ce ar trebui sa folosesti pentru aplicatii Web ?
Ei bine, foarte pe scurt PHP si MySQL sunt produse gratuite, spre deosebire de celelate optiuni gratuitatea nu inseamna ca nu au aceleasi performante ca sistemele de mii de dolari. Windows NT sau Windows 2000 este o buna alegere, dar poti folosi MySQL si PHP si pe Windows 95/98/Me. Cu toate acestea, in lumea de afara aproape toate aplicatiile PHP/MySQL ruleaza pe o versiune de UNIX: Linux, Irix, Solaris, HP-UX..

Server-ul Web

Cele mai folosite servere Web sunt Apache si Microsoft's IIS. Apache este si el gratuit si in sistem Open Source ca si PHP, MySQL si Linux. El functioneaza bine pe un sistem UNIX dar si pe un sistem Windows (dar nu pe un server foarte incarcat). Cea mai buna alegere este realizarea si testarea aplicatiei pe Windows cu Apache, PHP si MySQL si apoi transferul aplicatiei pe un server Linux fara schimbari in script-uri.

Middleware

PHP face parte din clasa limbajelor middleware (ASP, Perl, ColdFusion etc.). Aceste limbaje lucreaza cu serverul Web pentru a interpreta cererile facute din dinspre World Wide Web, proceseaz aceste cereri, interactioneaza cu alte programe pe server pentru a indeplini cererile si va indica, apoi, server-ului exact ceea ce trebuie servit browser-ului clientului. Limbajul middleware va fi folosit pentru marea majoritate din munca ta.

O tranzactie normala cu baza de date Web se constituie din urmatorii pasi (numerotati in figura):

Pasi in tranzactia cu Web DB
  1. Browser-ul unui utilizator face o cerere HTTP pentru o anumita pagina (spre exemplu se cauta o anumita carte un site prin intermediul fisierului results.php).
  2. Server-ul Web primeste cererea pentru results.php, cauta fisierul si il paseaza motorului PHP pentru a fi procesat.
  3. Motorul PHP incepe procesarea si gaseste o comanda de conectare la o baza de date si o interogare dupa un anumit criteriu. PHP deschide o conexiune cu server-ul MySQL si ii trimite interogarea.
  4. Server-ul MySQL primeste interogarea si o proceseaza si trimite rezultatul (o lista de carti, in cazul nostru) PHP-ului.
  5. PHP-ul termina de rulat script-ul (de obicei are loc o formatare a rezultatelor interogarii in HTML) si returneaza fisierul HTML rezultat server-ului Web
  6. Server-ul Web trimite HTML-ul inapoi catre browser de unde utilizatorul poate vedea lista cartilor pe care le-a cerut.

De ce sa folosesti PHP si MySQL ?

Ce este MySQL ?
MySQL este un server SQL pentru baze de date foarte robust, rapid, multi-utilizator, multi-thread.

MySQL este un sistem de gestiune a bazelor de date.
O baza de date este o colectie strucurata de date. Ca sa adaugi, sa accersezi si sa procesezi informatiile din baza de date ai nevoie de un sistem de gestiune a bazelor de date ca, de exemplu MySQL.
MySQL este un sistem de gestiune a bazelor de date relationale.
O baza de date relationala memoreaza date in tabele separate in loc de a stoca toate informatiile intr-o singura structura adaugand astfel viteza si flexibilitate. Tabelele sunt legate prin relatii permitandu-se afisarea datelor combinate la cerere.
Sistemele de gestiune a bazelor de date relationale (SGBDR) ofera o cale excelenta pentru a stoca si a accesa informatii complexe. Cele mai populare SGBDR-uri sunt Oracle, Infomix, Microsoft's SQL Server, IBM's db2 si SGBD-uri "open-souce": MySQL, Postgres si Interbase.


Baze de date relationale

Tabele
Tabela are un nume, un numar de coloane corespunzatoare tipurilor de informatii si linii corespunzatoare inregistrarilor din tabele. De exemplu:
CLIENTI
ID	Nume			Adresa				Oras
1	Julie Smith		25 Oak Street		London
2	Alan Wong		47 Haines Avenue	      New York
3	Michelle Arthur	357 North Road		Chicago

Coloanele au un nume unic si contin informatii diferite. Fiecare are un tip de date asociat (de exemplu, integer pentru 'ID' si string pentru 'Nume', 'Adresa' si 'Oras'). Coloanele mai sunt numite campuri sau atribute.
Liniile reprezinta cate un client diferit in tabela noastra. Mai sunt numite inregistrari sau tupluri.
Valorile specificate la intersectia coloanelor cu liniile trebuie sa aiba tipul de date corespunzator.
Cheile reprezinta o cale de a identifica fiecare inregistrare in parte. Baze de date care au mai multe tabele folosesc o cheie primara sau o cheie externa(Primary Key sau Foreign Key ) ca referinta de la o tabela la alta.

Daca adaugam o noua tabela cu comezile facute de clienti, putem face legatura intre cele doua tabele pe baza campului comun 'ID' care este PK in tabela 'clienti' si FK in 'comenzi':

 COMENZI
ComID  ID  Cantitate
1	   3	 30.66
2	   1	 23.00
3	   2	  5.00
4	   4	 40.87

Relatii
Exista 3 tipuri de relatii intr-o BD relationala:

Sfaturi de proiectare pentru baze de date

  1. Gandeste-te la obiectele reale pe care le modelezi.
  2. Evita sa stochezi informatiile care sunt redundante.
  3. Foloseste valori "atomice" in coloanele tabelei (adica nu memora valori multiple in cadrul aceluiasi camp al tabelei).
  4. Alege chei foarte sensibile, care pot identifica unic o inregistrare.
  5. Gandeste-te la ce vrei sa ceri prin interogari din baza de date si include informatii aditionale.
  6. Evita sa folosesti prea multe atribute nule (coloane din inregistrari fara continut).
InapoiInainte

Home Introducere Instalarea Utilizare MySQL Limbajul MySQL Administarea MySQL Configurarea MySQL MySQL si PHP Quiz MySQL Linkuri utile Contacteaza-ma..