Bibilioteca Online E Commerce Si Intermedieri In Activitatea Economica

=== l ===

Cuprins

Introducere

MOTO

Programatorul este un creator de universuri

pentru care este în întregime responsabil.

(Joseph Weizenbaum)

Odatǎ cu apariția și dezvoltarea Internetului au început sǎ creascǎ și nevoile noastre de comunicare. Rețeaua Internet nu a cunoscut o mare rǎspândire decât dupǎ 1995 odatǎ cu apariția protocolului HTTP – HyperText Transmission Protocol și a limbajului HTML – HyperText Markup Language.

Creșterea cât mai mare a informațiilor și a datelor ce se doresc a fi transmise a dus, inevitabil, la implicarea sistemelor de gestiune a bazelor de date în dezvoltarea site-urilor și aplicațiilor online.

În dezvoltarea site-urilor cu conținut dinamic a fost nevoie de dezvoltarea de noi limbaje, cum ar fi limbajul PHP din domeniul Open Source și limbajul ASP de la Microsoft. Aceste noi tehnologii permit scrierea de programe care ruleazǎ în contextul serverului Web și faciliteazǎ acestuia extragerea datelor din baza de date și transmiterea acestor date cǎtre clienți sub formǎ de pagini HTML. În același timp limbajul HTML a fost îmbunǎtǎțit prin introducerea stilurilor (CSS și CSS2), introducerea limbajului Java Script, care ruleazǎ în cadrul browserului Web și un nou limbaj a fost creat (XML).

În acest context lucrarea de fațǎ își propune sǎ prezinte aceste tehnologii și modul prin care acestea interacționeazǎ, în cadrul unei aplicații online complexe și „customizabile”.

Primul capitol al lucrǎrii face o prezentare a conceptelor fundamentale întâlnite în sistemele de gestiune a bazelor de date. În continuare, în capitolul doi, este prezentat limbajul SQL folosit în cadrul bazelor de date relationale. Capitolul prezintǎ atât comenziile de creare a bazelor de date și a tabelelor cât și comenzile de manipulare a datelor.

Urmeazǎ capitolul trei cu prezentarea tehnologiilor și conceptelor pe care se bazeazǎ dezvoltarea aplicațiilor online.

În capitolul patru sunt prezentate prin exemple limbajele HTML, XML și CSS (Cascading Style Sheets) și face o scurtǎ istorie a evoluției limbajului HTML.

Capitolul cinci intitulat „Rețeaua Web ca platformă pentru aplicațiile de baze de date” prezintǎ arhitectura client – server ca mod de interacțiune între baza de date și mediul Web.

Limbajul PHP care ruleazǎ în mediul serverului Web, responsabil cu operațiile asupra bazei de date și cu genarea conținutului dinamic al site-lui, este dedscris în capitolul șase.

Ultimul capitol, al șaptelea, prezintă modul de realizare a unei aplicații online care reprezintǎ o bibliotecǎ virtualǎ. Sunt utilizate intens conceptele prezentate în capitolele precedente, linbajul PHP, serverul MySQL și HTML.

Baze de date și SGBD

1.1. Baze de date

Baza de date este un ansamblu structurat de date concrete, fără redondanță inutilă, astfel încât acestea pot fi prelucrate eficient de mai mulți utilizatori într-un mod concurent.

O bază de date conține toate informațiile necesare despre obiectele ce intervin într-o mulțime de aplicații, relațiile logice între aceste informații și tehnicile de prelucrare corespunzătoare. În bazele de date are loc o integrare a datelor, în sensul că mai multe fișiere sunt privite în ansamblu, eliminându-se pe cât posibil informațiile redondante. De asemenea, se permite accesul simultan la aceleași date, situat în același loc sau distribuite spațial, a mai multor persoane de pregătiri diferite, fiecare cu stilul personal de lucru.

Proprietățile unei baze de date:

ușurința implementării la nivel fizic;

ușurința interogării și timpul de răspuns;

integritatea datelor și modul de detectare și corectare a erorilor.

O bază de date este o colecție de date corelate . Cele trei elemente esențiale ale unei baze de date sunt:

tabelele;

coloanele;

liniile (rândurile).

Tabelele, numite și entități, reprezintă elementele de bază ale informațiilor care trebuiesc urmărite.

Coloanele, numite și câmpuri, reprezintă atributele unui tabel.

Liniile (rândurile), numite și înregistrări, reprezintă datele propriu-zise. În timp ce câmpurile descriu ce tip de date sunt stocate, în liniile tabelei sunt stocate datele.

Caracteristica principală a aplicațiilor de baze de date constă în faptul că accentul este pus pe operațiile de memorare și regăsire efectuate asupra unor volume mari de date, și mai puțin asupra operațiilor de prelucrare a acestora. Principala operație care apare în orice aplicație de baze de date este aceea de regăsire a datelor, în scopul obținerii de informații din baza de date. Alături de operațiile de regăsire apar, mai mult sau mai puțin frecvent, operații de memorare pentru introducerea de noi date în baza de date, operții de ștergere pentru datele devenite inutile, operții de actualizare a unor date existente deja în baza de date.

Organizarea datelor în baza de date constitue o formă de centralizare a acestora. Aceasta implică existența unui administator al bazei de date (ABD-Data Base Administrator) care este o persoană sau un grup de persone ce răspund de ansmblul activitățiilor (analiză, proiecte, implementare, exploatare, întreținere) legate de baza de date. Atribuțiile unui administator pot fi grupate în 4 mari categorii:

atribuții de proiectare;

atribuții administrative;

atribuții operative;

atribuții de coordonare.

1.1.1.Arhitectura bazelor de date

Arhitectura bazelor de date evidențiază următoarele componente:

baza de date propriu-zisă în care se memorează datele;

sistemul de gestiune a bazei de date, care realizează gestionarea și prelucraea complexă a datelor;

un dicționar al bazei de date (metabaza de date), ce conține informații despre: date, structura acestora, statistici, documentație;

mijloace hardware (comune sau specializate);

reglementări administrative destinate bunei funcționări a sistemului;

personalul implicat (utilizatori finali, administrtor, programatori, operatori).

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

nivelul fizic (intern) este descris de schema fizică a datelor (bit, octet, adresă) și reprezintă viziunea programatorilor de sistem asupra datelor;

nivelul conceptual este descris de schema conceptuală a datelor (articol, înregistrare, zonă) și reprezintă vizunea programatorilor de sistem asupra datelor;

nivelul logic este descris de una din sistemele logice posibile ale datelor și rprezintă viziunea progratorului de aplicație asupra datelor;

nivelul virtual (extern) reprezintă vizunea utilizatorului final asupra datelor.

1.2. Sisteme de gestiune a bazelor de date (SGBD)

1.2.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 constitue 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 dscrie 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.

Indedpendența fizică a datelor constă 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 forte simple, apropiate de limbajul natural, care să le prmită 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 descentralizarea 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ă apre 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 distugeri fizice se face prin realizarea unor copii a bazei de date.

1.2.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 xemplu:

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 definiit 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 seerie 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.

Limbajul SQL

2.1. Carcteristici 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.2. Limbaj de definire a datelor: SQL-LDD

2.2.1. 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.3. Limbajul de manipulare a bazei de date (SQL-LMD)

2.3.1. 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.

2.3.3. Insrucț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];

Internetul,

rețeaua Web și bazele de date on-line

3.1.Internet, Intranet și Extranet

3.1.1. Evoluția internetului

Internetul este o colecție mondială de rețele de calculatoare interconectate. Internet își are originea în rețeaua americană ARPA (Advanced Research Project Agency), inițiată în anul 1969 de Ministerul Apărării al SUA. La început, această rețea avea patru noduri, ca ulterior să se dezvolte foarte rapid prin conectarea unor rețele locale și de arii mai largi. Succesul rețelei ARPA a condus la realizarea unei rețele cu circuit închis numită MILNET, care interconecta principalele centre militare și vehicula informații secrete din domeniu militar. O dată cu apariția sistemului de operare UNIX, protocoalele de comunicație ale acestora sau extins și asupra rețelei ARPANET.

La început, rețeaua Internet a fost rezervată cercetătorilor în informatică, organizațiilor guvernamentale și universităților. În ultimul timp, foarte multe companii particulare au găsit în Internet un suport foarte eficient și profitabil pentru a difuza contra cost diverse informații. Acestea au deturnat scopul inițial al Internet de a asigura documentarea și accesul la resursele acesteia în mod gratuit.

Internet-ul, această rețea de rețele, este constituit dintr-un ansamblu de infrastructuri, servicii, utilizatori și resurse, care asigură un schimb informațional rapid și divers.

Din punct de vedere al utilizatorului final, principalele servicii oferite prin Internet sunt: poșta electronică, transferul de fișiere, conectarea la distanță, difuzarea știrilor, discuții de grup, căutarea de informații, World Wide, Web (www) și, mai nou, comerțul electronic.

Internet-ul nu este un mediu static, din contră, el a acelerat schimbările în domeniul software. Evoluția s-a realizat prin parcurgerea unor etape:

Publicarea statică a informației;

Realizarea interactivității;

Suportul pentru tranzacțiile în timp real;

Integrarea fluxurilor de informații între întreprinderile partenere.

Internet este un nou mediu de comunicare interactiv.

Internet este o entitate globală și are o multitudine de componente dispersate în lumea întreagă al căror ansamblu este dificil de controlat. Cea mai mare parte a traficului pe Internet este dirijată către rețeaua centrală (Backbone) prin intermediul unor puncte de acces (NAP- Network Access Points), administrate de prestatorii de telecomunicații cum ar fi Sprint, MFS și alții. Aceste puncte de acces sunt distribuie în zonele strategice din SUA. Rețelele naționale create independent converg către punctele de acces în rețea.

Secretul bunei funcționări a Internet-ului îl constituie utilizarea protocoalelor de comunicație deschise și publice. Aceste protocoale nu sunt proprietatea unei companii și nu depind de un tip de calculator sau o rețea particulară. Seria completă de protocoale pentru transmisia datelor este cunoscută sub numele TCP/IP (Transmission Control Protocol/Internet Protocol), după denumirea principalelor protocoale.

Intranet este un site Web sau un grup de situri care aparțin unei organizații, accesibili numai pentru membrii acesteia.

3.1.2. De la internet la intranet

Societatea este într-o continuă schimbare. Întreprinderea, una din componentele sale, trebuie să contribuie la această evoluție. Ea trebuie să-și adapteze organizarea sa condițiilor existente și să aibă deschidere către lumea exterioară. Pentru ca o întreprindere să aibă succes, astăzi mai mult ca oricând, trebuie să beneficieze de un sitem de comunicare performant. O soluție din cea mai răspândită o reprezintă Intranet-ul.

Intranet-ul reprezintă, în condițiile evoluției actuale a lumii informaticii și a asimilării ei de către producție, singura alternativă rapidă, sigură și eficientă pentru dezvoltarea întreprinderilor mici și mijlocii. Realizarea unei rețele Intranet oferă posibilitatea de reproiectare a sistemului informatic, deoarece, cu această ocazie, este posibil să se regândască serviciile oferite – atât în interiorul întreprinderii, cât și în exterior. De regulă, o rețea Intranet este conectată la Internet, care are un public mai larg, prin intermediul unui zid de protecție (un sistem proiectat pentru a preveni accesul neautorizat la sau de la o rețea privată), cu restricții impuse asupra tipurilor de informații care pot trece spre și de la rețeaua intranet. Acum, rețelele Intranet sigure reprezintă segmentul cu cea mai rapidă creștere din Internet, deoarece sunt mult mai puțin costisitoare de construit și de administrat decât rețelele private, bazate pe protocoalele patentate.

Serviciile de transport sunt cele care permit: transferul într-o rețea locală, accesul de la distanță la sistemele informatice, accesul la Internet, interconecsiunea LAN/WAN.

Un intranet poate include servicii de administrare și gestiune a rețelei cum ar fi: supervizarea, teleîntreținerea, serverele cache.

Supervizarea unui Intranet permite supravegherea fiecărui element al ansamblului: rețele, rutere, imprimante, calculatoare, software etc., având la bază standardul SNMP (Simple Network Management Protocol) din INTERNET.

Severele cache sau proxy au fost folosite mai întâi în Internet pentru a reduce fluxul informațional prin sistemul de comunicație. Un server proxy reprezintă un mecanism ce permite o selecție a răspunsurilor.

Serviciile de securitate pe Intranet sunt asigurate prin mecanismele Internet-ului. Dintre serviciile de securitate care sunt la baza Intranet-ului amintim:

Autentificarea – se face prin mecanisme simple (cum ar fi parolele) sau mecanisme mai complexe ;

Cifrarea – are ca scop garantarea integrității fluxului de informații din Intranet. Tehnicile de cifrare sunt numeroase. Multe provin din sectorul apărării și nu sunt specificate Internet-ului, exceptând programul de cifrare PGP (Pretti Good Privacy).

Serviciile de partajare a informației din Intranet sunt destinate arhivării și restituirii informațiilor pe care le conține. Într-un Intranet se disting două tipuri de servicii pentru stocare:

serviciile de stocare și acces: servere de fișiere, servere de date (bazele de date), servere de documente;

serviciile pentru producerea și publicarea informațiilor.

Bazele de date din Intranet sunt realizate prin intermediul standardelor existente pe piață, în particular prin SQL. Pentru a putea fi consultate cu un navigator, între baza de date și severul Web este necesară o interfață. În ultimul timp, principalele baze de date relaționale integrează servere Web sau middleware necesar (Oracle WebServer pentru Oracle și Web.SQL pentru Sybase).

Serverul de documente dintr-un Intranet permite utilizatorului să caute și să consulte ansamblul documentelor produse. Aceste servere sunt în general servere Web și sunt cuplate cu motoarele de căutare. Serverele de documente constitue nucleul unui Intranet, devenind placa turnanată a sistemului informatic.

Circulația documentelor (Workflow) este o extensie naturală a poștei electronice. Ea permite circulația unui document după o schemă prestabilită.

Poșta electronică Intranet are la bază mecanismele Internet: SMTP (Simple Mail Transfer Protocol), POP3 (Post Office Protocol) și IMAP (Interative Mail Access Protocol).

Forumurile permit utilizatorului Intranet-ului să schimbe idei. Există două tipuri de forumuri:

Forum interactiv în timp real, când ceea ce se tastează de către un utilizator va apărea imediat pe ecranele celorlalți.

Forum interactiv în timp diferit, când cea ce este scris este difuzat imediat, dar fiecare poate citi când dorește.

Serviciile pentru dezvoltarea aplicațiilor se referă la: limbajele de programare – ce sunt adaptate mediului rețelei (limbajul Java) și atelierele de sofware – ce permit realizarea propriilor aplicații Intranet.

Serviciile pentru accesul la informațiile și aplicațiile Intranet sunt incluse în navigatoare. Dacă există informație partajată de mai multe Intranet-uri se utilizează noțiunea de Extranet.

Rețelele Intranet nu pot fi văzute ca sistemele informatice tradiționale. Ritmurile sale de evoluție, capacitatea sa de extindere, posibilitatea sa de protecție, puterea de adaptare permanentă îl impun ca un sistem dintr-o nouă generație, unde restricțiile tehnice se ascund puțin câte puțin, lăsând cale liberă comunicării între oameni.

3.2.Elemente specifice bazelor de date on-line

O bază de date utilizată într-un mediu Internet/Extranet este considerată o bază de date on-line. Accesarea bazelor de date on-line este posibilă prin intermediul paginilor Web dinamice. Pentru o analiză a principalelor metode de conectare la bazele de date din paginile Web, vom defini mai întâi câteva criterii:

realizarea unor interfețe utilizator cât mai atractive și bogate în informații diverse: text, imagini, sunet;

pagini Web interactive bazate pe controlul evenimentelor;

consistența și integritatea datelor manipulate;

performanțele din punct de vedere al accesului la baza de date;

accesul simultan la baza de date;

deschiderea, în sensul integrării altor instrumente sau baze de date.

Principalele metode de interconectare între bazele de date și paginile Web:

permite accesul mai multor pagini HTML la aceiași bază de date printr-o singură conecsiune la aceasta; deoarece aplet-ul rămâne persistent în mediul navigatorului.

3.3.Rețeaua Web

Rețeaua World Wide Web este un sistem bazat pe hipermedii, care pune la dispoziție un mijloc simplu, de tip ’’indicare și clic’’ de răsfoire a informațiilor pe Internet, folosind hiperlegăturile.

Rețeaua World Wide Web (pe scurt, Web, WWW sau W3) pune la dispoziție un mijloc simplu, de tip ’’indicare și clic’’ pentru exploatarea imensului volum de pagini de informații aflate pe Internet. Informațiile de pe Web sunt prezentate în pagini Web, care apar ca o colecție de text, grafică, desene, sunete și imagini video. În plus o pagină Web poate conține hiperlegături către alte pagini Web, care permit utilizatorilor să navigheze prin informații în mod nesecvențial.

O mare parte din succesul rețelei Web se datorează simplității cu care permite utilizatorilor să furnizeze, să folosească și să se refere la informații distribuite geografic pe tot globul. În plus, pune la dispoziția utilizatorilor capacitatea de a răsfoi documente multimedia, independent de platforma hardware folosită. De asemenea, este compatibilă cu alte protocoale de comunucație a datelor existente, cum ar gi Gopher (program de căutare pe Internet folosit de sistemul de operare Unix pentru identificare anumitor surse de informații dorite de către utilizator), FTP (File Transfer Protocol), NNTP (Netwok News Transfer Protocol) și Telnet (pentru sesiuni de lucru îndepărtate).

Rețeaua Web este formată dintr-o rețea de calculatoare care pot avea două roluri: de severe – care furnizează informații – și de clienți, caz în care sunt denumite browsere, care cer informații.

Informațiile de pe Web sunt stocate în documente, utilizând un limbaj denumit HTML (Hyper Text Markup Language – limbajul de marcare pentru hipertext), pe care browserele trebuie să-l înțeleagă și să-l interpreteze pentru a afișa aceste documente. Protocolul care reglementează schimbul de informații dintre web și browser este denumit HTTP (Hypertext Transfer Protocol – protocol de trnsfer al hipertextului). Documentele și locațiile din cadrul acestora sunt identificate printr-o adresă, definită ca un localizator de resurse uniform URL (Uniform Resource Locator – adrese numerice sau de tip text ale unor date specifice de pe Internet).

3.4.Protocolul de transfer al hipertextului (HTTP)

HTTP este protocolul utilizat pentru a transfera paginile Web prin intermediul Internetului. Acesta este folosit pentru a accesa pagini HTML prin intermediul browserelor și a altor agenți ai clienților. Http folosește adresele URL în câteva moduri.

Schema de adresă URL pentru HTTP arată astfel:

http://<host>:<port>/<path>?<searchpart>

Prima parte (http://) definește protocolul folosit pentru accesarea gazdei (host).

Protocolul de transfer al hipertextului (HTTP) definește modul în care comunică clienții și serverele. HTTP este un protocol generic, orientat spre obiect, fără stare, de transmitere a informațiilor între servere și clienți.

Protocolul HTTP se bazează pe o paradigmă cerere-răspuns. O tranzacție HTTP se compune din următoarele etape:

Conectare – clientul stabilește o legătură cu serverul Web;

Cerere – clientul expediază un mesaj de cerere către serverul Web;

Răspuns – serverul Web expediază un răspuns (document HTML) clientului;

Închidere – legătura este închisă decătre serverul Web.

Protocolul curent este HTTP/1.0, care reflectă utilizarea obișnuită a protocolului. HTTP/1.0 este un protocol fără stare – fiecare legătură este închisă, o dată ce serverul a dat un răspuns. Astfel, un server Web nu are memoria cererilor anterioare. Pentru majoritatea aplicațiilor, această proprietate de a fi fără stare a protocolului HTTP reprezintă un avantaj care permite o scriere cu o logică simplă a clienților și serverelor și rularea ’’neproductivă’’, fără ca o memorie suplimentară din spațiul de pe disc să fie ocupată de către informațiile din cererile anterioare. Din păcate, această proprietate a protocolului HTTP face dificilă acceptare conceptului de sesiune, care este esențial pentru tranzacțiile de bază din sistemele SGBD. Pentru a compensa natura fără stare a protocolului HTTP, au fost propuse mai multe scheme, cum ar fi returnarea paginilor Web cu câmpuri ascunse – care să conțină identificatori ai tranzacțiilor – și utilizarea formularelor de agini Web, acolo unde toate informațiile sunt introduse local și apoi propuse ca o singură tranzacție. Toate aceste scheme sunt limitate în ceea ce privește tipurile de aplicații pe care le acceptă și necesită extensii speciale ale serverelor Web.

3.5.Pagini Web statice și dinamice

Paginile web statice, sunt pagini care se pot genera prin funcția de export oferită de Access (meniul File Export). Aceste pagini se pot crea din conținutul unui tabel, interogări formular sau raport. Generarea propriu-zisă a paginii Web se poate realiza prin selectarea unui obiect în fereastra bazei de date. Pagina Web este generată exclusiv în limbajul HTML, și nu conține definiții pentru actualizarea conținutului obiectului prin care a fost generată pagina. Practic pagina este generată pentru conținutul obiectului, din momentul operației de generare a paginii, modificarea datelor în obiectul Access nu se reflectă și în conținutul paginii Web. Pentru a se reflecta și pe Web actualizările intervenite în baza de date, trebuie generată pagina Web din nou. O pagină Web generată în acest mod trebuie publicată de utilizator pe orice server Web.

Un document HTML stocat într-un fișier constitue un exemplu de pagină Web statică: conținutul documentului nu se modifică, în afară de cazul în care este modificat fișierul însuși.

Conținutul unei pagini Web dinamice este generat de fiecare dată când acesta este accesat.

Ca rezultat, o pagină Web dinamică poate avea caracteristici care nu se găsesc în paginile Web statice, cum ar fi:

poate răspunde la intrarea utilizatorului de la browser.

Exemplu: returnarea datelor cerute la completarea unui formular sau rezultatelor unei interogări ale bazei de date;

poate fi personificată de către și pentru fiecare utilizator.

Exemplu: o dată ce utilizatorul a specificat o serie de preferințe pentru accesarea unui anumit site sau pagini (cum ar fi domeniul de interes sau nivelul de expertiză) aceste informații pot fi reținute, iar informațiile vor fi returnate conform acestor preferințe.

Atunci când documentele care vor fi publicate sunt dinamice – cum ar fi cele rezultate din interogările bazei de date – este necesar ca hipertextul să fie generat de către servere. Pentru a realiza aceasta, se pot scrie scripturi care efectuează „din mers” conversii din diverse formate de date în limbajul HTML. De asemenea, aceste scripturi necesită înțelegerea interogărilor efectuate de către clienți prin intermediul formularelor HTML și rezultatelor generate de către aplicațiile care dețin datele (de exemplu, sistemul SGBD). Întrucât o bază de date este dinamică, modificarea în momentul în care utilizatorii crează, inserează, reactualizează și șterg datele, urmată de generarea dinamică a paginilor Web reprezintă o tratare mult mai adecvată decât crearea unora statice.

HTML, XML și CSS

4.1. Crearea și structura HTML-ului

HTML este limbajul de formatare a documentelor utilizat în proiectare majorității paginilor Web.

World Wide Web este parte integrantă a Internetului și are o mare putere a dezvoltării globale a interconectării calculatoarelor. Limbajul său este simplu, interfețele sunt atractive și prietenoase și este adptabil la o gamă mare de întrebuințări. Există situri Web pentru prezentarea produselor și a ideilor, menținerea aparențelor, informarea publicului etc., iar conceptul World Wide Web este adaptat comunicării interne prin instalarea intraneturilor în interiorul companiilor.

HTML (Limbajul de Marcare a Hipertextului) este limbajul care dă înfățișarea Web-ului. El constă într-o varietate de elemente numite etichete (tags), care pot fi folosite la orice, de la definirea tipurilor de stil și a anteturilor și până la introducerea conținutuluui specific, cum ar fi imagini, sunete, cuvinte în realitatea virtuală și miniaplicații Java.

Structura minimală a unui document HTML este formată din următoarele TAG-uri:

<HTML> început pagină Web

<HEAD> început antet pagină

<TITLE> început titlu pagină

Definire titlu

</TITLE> sfârșit titlu pagină

</HEAD> sfârșit antet

<BODY> început corp pagină

Conținut propriu-zis pagină

</BODY> sfârșit corp pagină

</HTML> sfârșit pagină

În continuare se va vorbi de HTML 4.0 cu stilul CSS fiind de actualitate și folosindu-se cu precăde în paginile Web. HTML 4.0 reia părțile eliminate din HTML 3.2, care la vremea respectivă nu a fost acceptat, ca standard, deoarece momentul în care s-au făcut unele propuneri nu a fost bine ales.

În HTML 4.0 au apărut noi etichete și caracteristici. Una din primele diferențe notabile este suportul pentru identificarea și capturarea evenimentelor pentru aproape fiecare element din corpul unei pagini Web. Atributul id este suportat pentru tot, de la titluri la tabele, elemente de formular sau citate de bloc. După ce se atribuie un nume unic unui element, se poate face referire la acesta prin ancore și caracteristici Dynamic HTML.

O altă apariție în HTML 4.0 este trecerea de la caracteristicile privind aspectul bazat pe etichete (cum ar fi <B> pentru bold) la foile de stiluri. Prin adăugarea foilor de stil, designerii au acum la dispoziție un nou set de ustensile pentru crearea paginilor lor, incluzând specificații avansate pentru fonturi, culori de fundal pentruu elemente individuale și stiluri globale.

Eticheta <OBJECT> a fost de asemenea extinsă, astfel încât să includă practic orice fișier extern pe care l-ați putea dori într-o pagină Web, inclusiv miniaplicații, controale înglobate, imagini, sunete etc. Cu lista sa extinsă de atribute și cu suportul pentru parametri și text alternativ, eticheta înlocuiește și alte etichete.

4.1.1. Crearea HTML-ului

Limbajul HTML reprezintă o aplicație a limbajului de marcare standardizat generalizat SGML (Standardized Generealized Markup Language) – un sistem de definire a tipurilor structurate de documente și limbajelor de marcare, pentru a reprezenta instanțe ale acestor tipuri de documente ISO, 1986 (Internațional Standards Organization). HTML este un astfel de limbaj de marcare.

În prima sa implementare, HTML-ul a urmat regulile SGML-ului de marcaj al conținutului independent de platformă fără prevederi de reprezentare a documentului în HTML-ul însuși. La Nivelul 0, HTML-ul oferea mijloace independente de platformă pentru marcarea datelor pentru interschimb. Conceptul era acela că serverele aveau să stocheze și să furnizeze date, iar clienții aveau să le recupereze și să le afișeze.

HTML 0.0 era foarte apropiat de SGML. Singurul element solicitat era TITLE, și multe pagini mai vechi încep cu un titlu și apoi intră direct în text. Nu există HTML, nici HEAD, nici BODY. O etichetă <P> era deseori utilizată la sfârșitul fiecărui paragraf pentru a separa paragrafele între ele. Existau șase niveluri de antet, dar se aștepta ca fiecare nivel să fie folosit numai o dată și nivelurile să fie utilizate succesiv.

Nivelul 1 permitea o etichetă <BODY> și autoriii puteau include adrese, ancore, ghilimele, întreruperi de linie, anteturi, imagini, liste, paragrafe și text preformat.

Discuțiile asupra HTML 0 au adus la lumină mai multe deficiențe, așa că s-a început lucrul la HTML 1.0, care a fost lansat pe Internet în același timp. A fost adăugată ideea unui container HTML, cu un element HEAD separat de elementul BODY. Unele elemente aveau nevoie de eticheta de deschidere și închidere.

Nivelul 1 introducea de asemenea formulare, care făceau posibilă pentru autori introducerea câmpurilor pe nodurile lor, care permiteau feedback-ul de la utilizatori și deschideau ușa către o interacțiune considerabilă prinscriptarea Common Gateway Interface (CGI). Nivelul 1 era subiect de discuție, ereau propuse elemente adiționale și capacități pentru versiunea HTML+, care se pregătea să apară.

HTML + încorpora elemente grafice și de afișare în HTML. HTML + a fost un important pas înainate pentru evoluția HTML-ului, extinzându-se dincolo de conceptul unui articol cu hiperlegături aflat pe un calculator.

Pretențiile în creștere asupra HTML-ului au condus consorțiul World Wide Web , nou format , (W3C) la introducerea versiunii HTML 2. Nivelul 2 folosea elementul FROM cu IMPUT, SELECT, OPTION și TEXTAREA, plus elementul BR pentru întreruperi de linie.

HTML 2 adaugă de asemenea elementul META pentru descrierea detailată a documentului și o cale pentru indexarea și catalogarea conținutului. De asemenea schimba descrierile secțiunilor head și body și ale elementelor ancoră, bază, listă, imagine, legătură și titlu.

Acesta nu a descoperit nimic nou în ceea ce privește capacitățile HTML. Era practicabil de către toți agenții utilizatorilor, pentru că urma regulile stabilite de SGML și nu necesita dezbateri extensive pentru că nu exista nici o contrversă dacă elementele propuse erau necesare.

O dată cu reglementările oficiale introduse de W3C, lumea avea acum un standard HTML care să servescă ca etalon față de care puteau fi comparate browserele și marcajul.

HTML 3 a fost propus ca o încercare de a răspunde cerințelor contradictorii pentru un limbaj de marcare să funcționeze pe toate platformele și pentru un limbaj de descriere a paginii care să fie acceptat și de alte companii de software. Teoria era că HTML 3 va fi în totalitate SGML, dar va permite sugestii pentru browsere asupra modului în care să afișeze un text.

Elementele propuse pentru HTML 3 includeau elementul FIG, care suporta curgerea textului în jurul figurilor. A fost de asemenea sugerat suportul pentru ecuațiile matematice și un element TABLE pentru a ajuta la aranjarea datelor în formă de tabel fără șicana provocată de elementul PRE.

Atributul ALIGN a fost adăugat mai multor elemente, inclusiv IMG, P și HR, permițând autorilor să folosească alinierea la stânga, la dreapta sau pe centru. La nivelul caracterelor, HTML 3 propunea de asemenea noi elemente logice, incluzând etichete pentru definiții, citate, limbaj, text inserat și șters. Unele dintre etichetele fizice propuse erau text subliniat, text mai mare sau mai mic, subscript și superscript. Atribute adiționale erau deasemenea propuse pentru imagini de fundal, anexe, note de subsol și manșete.

La urma urmelor, HTML 3 era prea ambițios. Așa că a fost proiectat HTML 3.2 ca o recunoaștere a realității și a încorporat multe dintre etichetele deja aflate în uz pe paginile de Web. A adăugat etichetele SCRIPT și STYLE pentru a crea mai mult loc pentru fundal, text, legături și mărime, aliniere și spațieri pentru imagini.

HTML 3.2 era noul standard, înlocuind HTML 2. acesta oferea elemente și atribute noi, care înveseleau paginile Web cu animație, culori și sunet. A făcut posibilă crearea unor pagini Web atractive și dinamice, care se supuneau unui standard stabilit. Existau neânțelegeri asupra celor care fixau standardele, dar cel puțin un DTD recunoscut oficial era acum disponibil.

4.2. HTML 4

Ultima versiune a HTML-ului folosește unele idei și modificări propuse pentru HTML 3, care au fost abandonate la apariția HTML 3.2. HTML 4 propune separarea stilurilor fizice de marcarea conținutului printr-o folosire mai intensă a foilor de stil. Sa constatat că folosirea foilor de stil este cea mai bună metodă de a sugera aspectul documentului și totuși de a permite utilizarea completă a HTML-ului ca o metodă compatibilă SGML de traversare a prăpastiei dintre utilizatiri și sistemul de operare.

Noul standard pentru HTML utilizează de asemenea și alte propuneri ale W3C pentru Web. În loc să încorporeze toate funcționalitățile unei pagini Web într-un singur standard, HTML 4 lucreză mai degrabă cu interfețe către multe alte standarde. Standardul HTML 4 include elementele STYLE, DIV și SPAN pentru încorporarea foilor de stil, dar foaia reală de stil este o entitate separată, ca în Cascading Style Sheets (Foi de stil în cascadă).

4.2.1. Structura HTML-ului

În limbajul de marcare al hipertextului totul se rezumă la structură iar în esență HTML se referă la definirea structurii unui document.

Un limbaj de marcare este folosit pentru a descrie care este rolul fiecărei părți din document în raport cu celelalte. Poate indica una dintre părți ca fiiind un titlu de nivelul trei, că secțiunea de dedesupt este un paragraf și că ultima parte este o adresă. În cadrul paragrafului, puteți marca citate, acronime și orice altă bucată din text. Rezultatul este un document în cadrul căruia puteți vedea scopul fiecărei părți a textului, în locul înfățișării intenționate.

Atribut: Un atribut furnizează instrucțiuni adiționale browserului despre o etichetă. Informațiile variază de la etichetă la etichetă și pot include subiecte cum ar fi locația fișierelor, mărimea, numele sau stilul lor.

Browser: Un browser de Web este un motor de parcurgere special care evoluează etichetele și conținutul unui fișier HTML, pe care îl afișează în concordanță cu posibilitățile și regulile platformei și capacitățile sale.

DTD (Document Type Definition – definirea tipului de documennt): O colecție de reguli scrise în SGML care definesc sintaxa și structura unui anume tip de document, cum ar fi HTML.

Element: O componentă distinctivă a structurii unui document, cum ar fi titlul, un paragraf sau o listă. Când ne referim la forma sa aplicată în cadrul unui document, un element se mai numește etichetă (tag).

Etichetă: Un cod care identifică un element pentru ca browserul sau alt program de parcurgere să știe în ce mod să afișeze conținutul. Etichetele sunt încadrate de caractere de delimitare (paranteze ascuțite).

4.2.2. Structura unui document

Fiecare document HTML, încă de la creare, are două părți principale: un antet și un corp. Chiar dacă nu sunt special delimitate, HTML presupune existența lor.

Deși fac parte din definirea unui document HTML, două etichete există în afara structurii documentului: <!DOCTYPE> și <HTML>. Prima identifică versiunea de HTML folosită pentru pagina respectivă și regulile pe care aceasta le respectă. A doua etichetă identifică un limbaj global și directia textului pentru documentul respectiv, în plus față de a marca începutul și sfârșitul conținutului HTML. Cu aceste două etichete se poate crea următorul Document:

<!DOCTYPE HTML PUBLIC “-// W3C//DTD HTML 4.0//EN”>

<HTML>

</HTML>

HTML (Limbajul de Marcare a Hipertextului) este limbajul care dă înfățișarea Web-ului. El constă într-o varietate de elemente numite etichete (tags), care pot fi folosite la orice, de la definirea tipurilor de stil și a anteturilor și până la introducerea conținutuluui specific, cum ar fi imagini, sunete, cuvinte în realitatea virtuală și miniaplicații Java.

<!DOCTYPE HTML PUBLIC “-// W3C//DTD HTML 4.0//EN”>

<HTML>

<HEAD>

</HEAD>

<BODY>

</BODY>

</HTML>

4.. Limbajul de prezentare CSS

Foile de stil, în particular CSS – Cascading Style Sheets, descriu modul în care documentele Web sunt prezentate pe ecran, imprimantă sau alte medii. Acestea au fost promovate de grupul W3C printr-un Consorțiu fondat în 1994. Activitatea s-a concretizat prin realizarea celor două recomandări pentru foile de stil: CSS1, CSS2 (level 1 și level 2) și care sunt, în mare măsură, implementate în navigatoarele actuale.

CSS2 este un limbaj al foilor de stil care permite programatorilor și utilizatorilor să atașeze stiluri (set de caractere, poziționare, culoare etc.) documentelor structurate, cum ar fi paginile HTML sau aplicațiile XML.

4.4.1. Stiluri CSS2 în paginile HTML

Pentru ca foile de stil să influențeze prezentarea paginilor Web, trebuie ca navigatoarele să le recunoască și apoi să le interpreteze. Specificațiile HTML definesc modul în care se utilizează HTML cu foile de stil.

Există patru moduri pentru combinarea foilor de stil cu paginile HTML:

utilizarea elementului `LINK` pentru a face legătura către o foaie de stil externă;

declararea elementului `STYLE` în cadrul tag-ului `HEAD`;

importul unei foi de stil utilizând comanda CSS`@ import`;

asocierea atributului `STYLE` unui alt element din corpul documentului (`BODY`).

Identificarea limbajului foilor de stil se obține din informația asociată documentului HTML. Se poate utiliza elementul META pentru a seta limbajul implicit al foii de stil pentru un document HTML. De exemplu, pentru stabilirea implicită a limbajului CSS, în antetul documentului trebuie să se regăsească următoarea declarație:

<META http-eqiv=”Content-Style-Type” content=”text/css”>

Astfel, limbajul implicit pentru foaia de stil va fi setat în antetul HTTP. Declarația META anterioară este echivalentă cu antetul HTTP:

Content-Style-Type:text/css

4.4.2. Structura unei foi de stil

O foaie de stil conține un set de reguli și opțional, comentarii. Considerăm documentul HTML:

<HTML>

<HEAD>

<TITLE>Pagina de primire</TITLE>

</HEAD>

<BODY>

<H1>Exemplu</H1>

<P>CSS-2 pentru HTML</P>

</BODY>

</HTML>

Pentru a specifica o anumită culoare textului delimitat de marcatorul H1, de exemplu roșu, trebuie scrisă următoarea regulă de stil CSS:

H1 {color: red}

Fiecare regulă de stil CSS este compusă din:

selctor `H1` care indică elementul sau elementele asupra cărora acționează regula;

blocul declarațiilor `color: red` care descrie condițiile de redare fizică a elementului specificat, fiind limitat de acolade.

Elementul STYLE

Pentru a include regulile de stil într-un document HTML se utilzează elementul STYLE.

<HTML>

<HEAD>

<TITLE>Pagina de primire</TITLE>

<STYLE type=”text/css”>

H1 {color: red}

</STYLE>

</HEAD>

<BODY>

<H1>Exemplu</H1>

<P>Utilizare CSS-2 in pagina HTML

</BODY>

</HTML>

Atributele elementului STYLE sunt:

type = tip_conținut specifică libajul foii de stil și este obligatoriu, nu există o vaoare implicită.

media = descriptor mdia specifică mediul destinație avut în vedere prin informația de sti. Poate fi un singur dispozitiv de prezentare sau pot fi mai multe, situație în care vor fi incluse într-o listă ale cărui elemente vor fi separate prin virgulă. Valoarea implicită pentru acest atribut este ”screen”. Numele ales pentru descriptor media corespude dispozitivului țintă pentru care proprietățile prezentate au sens:

all – corespunde pentru toate dispozitivele;

aural – sintetizator vocal;

braille – terminal Braile;

embossed – imprimantă Braille;

handheld – microcalculator de buzunar: având un ecran mic, monocrom și conectarea în rețea se face prin modem la un debit redus;

print – dispozitivul imprimantă;

projection – dispozitive de protecție pe perete;

screen – ecranul calculatorului;

tty – dispozitive portabile, terminale;

tv – dispozitive de tip TV.

Atributul style

Atributul style permite specificarea informațieie de stil numai pentru elementul curent.

Utilizarea atibutului style

<P style=”font-size: 12pt; fuchsia”> Informația de stil se referă numai la acest text.

Dacă același stil trebuie aplicat mai multor elemente, se va utiliza elementul STYLE.

6.1.Limbajul PHP

Limbajul PHP este un limbaj de tip script, procedural, oferind și suport pentru programarea orientată-obiect. Programele PHP (stocate în mod uzual de fișiere cu extensia .php) vor fi accesibile direct din cadrul paginilor Web. Sintaxa limbajului este inspirată din cea a limbajelor C/C++ și Perl.

Puterea limbajului constă în setul cuprinzător de funcții puse la dispoziție în special pentru manipularea bazelor de date într-un dialect SQL sau pentru procesarea conținutului unei largi palete de tipuri de fișiere (de exemplu, diferite tipuri de arhive, documente PDF, fișiere grafice, documente XML, etc). Aceste funcții pot fi grupate pe mai multe categorii (o serie fiind similară funcțiilor din biblotecile standard ale limbajului C), dintre care se pot menționa: matematice, de conversie de tipuri, de manipulare a șirurilor de caractere, de prelucrare a tablourilor, de acces la resursele sistemului de operare și de lucru cu fișiere, de manipulare a bazelor de date, privitoare la conecsiunile Internet (exemplu HTTP, FTP, IMAP, etc.), pentru accesarea fișierelor având tipuri speciale: PDF, XML, gzip, etc., specifice sistemului de operare, generale.

Scripturile PHP pot fi incluse în paginile Web în diferite moduri, uzual folosindu-se construcția <?php . . .

Tipurile de date suportate sunt cele mai simple (scalare): logic (boolean), întreg (integer), flotant (float, double, real) și șir de caractere (string). Tipurile compuse sunt reprezentate din tipul tabloul (array) – indecsat și asociativ – din tipul obiect (object). Mai sunt disponibile și două tipuri speciale: tipul resursă (resource) și nul (NULL).

Este de menționat faptul că șirurile de caractere se pot delimita între ghilimele sau apostrofuri. Între apostrofuri se inhibă evaluarea variabilelor din interiorul șirului respectiv.

Instrucțiunile sunt cele uzuale din alte limbaje de programare. Sunt disponibile instrucțiuni de asignare (de forma $variabilă = expresie), instrucțiuni de test (if și switch), instrucțiuni repetitive (while, do, for, foreach) și instrucțiuni de control (break, continue, return).

Un exemplu de afișare a sumei valorilor unui tablou unidimensional (vector), prin utilizarea variabilelor de tip întreg și tablou indexat, a instrucțiunilor for și foreach, a operatorilor relaționali, de asignare și de incrementare (funcția predefinită echo () afișează la intrarea standard – aici fereastra navigatorului – codul HTML generat):

<?php

// umplem un tablou cu valori de la 1 la 10

for ($contor = 1; $contor <= 10; $contor + +){

$valori [$contor] = $contor;

}

// realizam suma valorilor, utilizand foreach

suma = 0;

foreach ($valori as $element)

$suma += $element;

// afisam suma obtinuta la iesirea standard

// pentru a fi trimisa browserului – echo ()

echo (“<p>Suma de la 1 la 10 este: <b>”

. $suma . “</b></p>”) ?>

Funcțiile pot fi predefinite sau definite de utilizator. Cele definite de utilizator se specifică printr-o construcție de genul:

function nume ($arg_1, $arg_2, . . . , $arg_n){

// instructiuni

return $valoare ; /* optional se returneaza o valoare */

}

Apelul uni funcții se realizează pprin numele său, furnizând eventual și valorile pentru argumentele sale: nume (expr_1, expr_2, . . . , expr_n). Pentru un argument se poate furniza o valoare implicită, ca în C++.

În următorul exemplu defininim funcția pătrat() care calculează pătratul unui număr întreg. Vom folosi această funcție pentru afișarea în fereastra navigatorului a pătratelor primilor 5 întregi naturali pari:

<body text=”white” bgcolor=”black”>

<?php

//functia de ridicare la patrat

function patrat ($numar){

return $numar * $numar;

}

$numar = 0;

while ($numar < 10){

$numar++;

// incrementam numarul

if ($numar %2)

//e numar tipar . . .

continue;

// continuam cu urmatoarea iteratie

// e numar par, deci afisam patratul

echo “<p>$numar la patrat este “ . patrat ($numar) . “</p>”;

}?>

</body>

Limbajul PHP, mai ales de la vesiunea PHP4, oferă implementare unora dintre cele mai importante aspecte ale progaramării obiectuale: încapsularea datelor, moștenirea și polimorfismul. Suportul pentru programarea orientată-obiect se realizează prin intermediul claselor.

Aplicație: Bibliotecă Online

Prima bibliotecă a apărut în urmă cu 4000 de ani în centrele urbane din Mesopotamia, unde se păstrau informații despre contracte, taxe și chitanțe. În prezent, cea mai mare bibliotecă din lume este Biblioteca Congresului din Statele Unite, având peste 120 milioane de înregistrări dintre care mai mult de 18 milioane sunt cărți.

În viitor, orice instituție de învățământ va avea propria bibliotecă virtuală.

Bibliotecile disponibile pe Web oferă acces la informații gratuit, rapid și de la orice calculator conectat la Internet.

Un site dinamic este compus din două părți fundamentale: interfața și partea ascunsă utilizatorului final, cea care nu se vede, adică tocmai funcționalitatea (partea de programare și baze de date).

Interfața unei pagini Web este ceea ce vede utilizatorul, este partea cu care acesta interacționeză și – poate cel mai important – reprezintă imaginea, identitatea unei pagini Web. Realizarea interfeței unei pagini Web este foarte importantă, deoarece aceasta atrage și încântă ochiul celui care interacționează cu o pagină Web, ajutându-l să îi descopere funcționalitățile. În general, interfața determină (sau nu) utilizatorii să revină la pagina respectivă. Din acest motiv interfața trebuie „să arate” foarte bine, să fie bine structurată și, desigur să fie ergonomică.

Interfața trebuie să comunice cu utilizatorul și aceasta caomunicare trebuie să fie cat mai ușoarǎ. Mesajul pe care o interfață urmărește să-l transmită trebuie să se potrivească cu interpretarea utilizatorului. Cu alte cuvinte, utilizatorul trebuie să reușească să interpreteze cu succes mesajul pe care autorul paginii Web dorește să-l transmită prin felul în care a organizat textul, tabelele, imaginile, animațiile etc.

7.1. Baze de date folosite

Majoritatea siturilor care au conținut dinamic folosesc un sistem de baze de date. În acest site se folosește sistemul de gestiune a bazelor de date MySQL, un sistem foarte rapid și robust de management al bazelor de date. Un sistem de baze de date permite stocarea, căutarea și sortarea eficientă a datelor. MySQL folosește limbajul SQL, limbajul standard utilizat în sistemele de gestiune a bazelor de date.

Existǎ două modalități de lucru cu sistemul de baze de date: una bazată pe comenzi, printr-o interfață de tip text, și una utilizând o interfață grafică (disponibilă pe Web).

Pentru conectarea la baza de date, se utilizeazǎ o comandǎ de forma

mysql –h <hostname> -u <username> -p

unde se înlocuiește <hostname> cu adresa serverului pe care se află instalat MySQL de obicei localhost. Dacă este instalat pe calculatorul local atunci se poate folosi comanda fără opțiunea –h <hostname>. Parametrul –<username> trebuie înlocuit cu numele de utilizator. Parametrul –p semnifică faptul că sistemul va cere parola imediat după ce comanda a fost rulată. Dupa conectare la serverul de date va apărea un prompter de genul: mysql>

Se vor prezenta în continuare câteva comenzi utile în lucrul cu sistemul MySQL în mediul de comandă text. Fiecare comandă MySQL trebuie să se termine cu punct și virgulă.

Pentru a vedea informațiile introduse într-un tabel se utilizează comanda select * from <nume tabela>; iar pentru a șterge o înregistrare din tabel se folosește: delete from <nume tabela> where <clauza where>. Pentru a părăsi mediul MySQL se folosește comanda quit.

În afarǎ de comenzile SQL standard (ANSI 93), MySQL vine cu un set de comenzi care permit interogarea sistemului pentru afișarea bazelor de date, a listei de tabele a unei baze de date, și afișarea structurii fiecǎrei tabele. Aceste comenzi de interogare a metadatelor vor fi exemplificate în continuare.

show databases;

mysql> show databases;

+––––+

| Database |

+––––+

| libonline |

| innno |

| mail |

| mysql |

| verlihub |

+––––+

10 rows in set (0.09 sec)

show tables;

mysql> show tables;

+–––––-+

| Tables_in_anca |

+–––––-+

| admin |

| autori |

| autoriasoc |

| carti |

| catasoc |

| categorii |

| descarcate |

| edituri |

| preferinte |

| useri |

+–––––-+

10 rows in set (0.01 sec)

describe carti; sau show columns from carti;

mysql> show columns from carti;

+––––+–––––+––+––+–––+–––––-+

| Field | Type | Null | Key | Default | Extra |

+––––+–––––+––+––+–––+–––––-+

| id | int(11) | | PRI | NULL | auto_increment |

| titlu | varchar(255) | | | | |

| edituraid | int(11) | YES | | 0 | |

| an | int(11) | YES | | NULL | |

| data | date | YES | | NULL | |

| down | int(11) | YES | | NULL | |

| spatiu | int(11) | YES | | NULL | |

| coperta | varchar(255) | YES | | | |

| fisier | varchar(255) | YES | | | |

+––––+–––––+––+––+–––+–––––-+

9 rows in set (0.00 sec)

Întreținerea și administrarea aplicației se realizeazǎ de cǎtre o persoanǎ abilitatǎ în acest sens numitǎ administrator, care introduce și gestioneazǎ toate informațiile oferite de site. Administratorul, pentru a putea opera în baza de date trebuie să se conecteze, introducând numele și parola, iar la fiecare conectare este interogatǎ o tabelǎ care conține lista de administratori. Acestǎ tabelǎ permite memorarea unui numǎr mare de persoane care administreazǎ aplicația.

Urmǎtoarea comandă descrie caracteristicile tabelei care memoreazǎ lista de administratori ai bibliotecii virtuale.

mysql> desc admin;

+–––+–––––+––+––+–––+–––––-+

| Field | Type | Null | Key | Default | Extra |

+–––+–––––+––+––+–––+–––––-+

| id | int(11) | | PRI | NULL | auto_increment |

| nume | varchar(100) | | | | |

| parola | varchar(20) | | | | |

+–––+–––––+––+––+–––+–––––-+

3 rows in set (0.18 sec)

Biblioteca virtualǎ își stocheazǎ datele într-o bazǎ de date formatǎ din 10 tabele. Una dintre acestea este tabela de adminstratori prezentatǎ mai sus. O altǎ tabelǎ este tabela de utilizatori înregistrați ai aplicației și anume tabela useri, a cǎrei structurǎ o prezentǎm în continuare.

mysql> desc useri;

+–––+–––––+––+––+–––+–––––-+

| Field | Type | Null | Key | Default | Extra |

+–––+–––––+––+––+–––+–––––-+

| id | int(11) | | PRI | NULL | auto_increment |

| nume | varchar(255) | | UNI | | |

| email | varchar(255) | | | | |

| parola | varchar(20) | | | | |

+–––+–––––+––+––+–––+–––––-+

4 rows in set (0.02 sec)

Informațiile oferite de aplicație sunt formate din cǎrți în format electronic. Pentru fiecare din aceste cǎrți sunt memorate mai multe informații cum ar fi: editura, autorii, anul publicǎrii…

O carte poate avea unul sau mai mulți autori, un autor poate publica mai multe cǎrți. Astfel se creazǎ o relație ∞ – ∞. Pentru a elimina acest inconvenient, și pentru a menține baza de date în formǎ normalǎ, am introdus o nouǎ tabelǎ numitǎ autoriasoc care este legatǎ de tabelele cǎrți și autori prin legǎturi 1- ∞.

Structura tabelelor de autori și autoriasoc este datǎ în continuare:

mysql> describe autori;

+––-+–––––+––+––+–––+–––––-+

| Field | Type | Null | Key | Default | Extra |

+––-+–––––+––+––+–––+–––––-+

| id | int(11) | | PRI | NULL | auto_increment |

| nume | varchar(255) | | | | |

+––-+–––––+––+––+–––+–––––-+

2 rows in set (0.04 sec)

mysql> describe autoriasoc;

+–––+–––+––+––+–––+–––––-+

| Field | Type | Null | Key | Default | Extra |

+–––+–––+––+––+–––+–––––-+

| id | int(11) | | PRI | NULL | auto_increment |

| carteid | int(11) | | | 0 | |

| autorid | int(11) | | | 0 | |

+–––+–––+––+––+–––+–––––-+

3 rows in set (0.10 sec)

O altǎ informație memoratǎ pentru fiecare carte este editura. Fiecǎrei cǎrți îi este asociatǎ o singurǎ editurǎ. Pentru fiecare editurǎ este memorat orașul în care se gǎsește dupǎ cum se poate observa în continuare.

mysql> desc edituri;

+––-+–––––+––+––+–––+–––––-+

| Field | Type | Null | Key | Default | Extra |

+––-+–––––+––+––+–––+–––––-+

| id | int(11) | | PRI | NULL | auto_increment |

| nume | varchar(255) | | | | |

| oras | varchar(255) | | | | |

+––-+–––––+––+––+–––+–––––-+

3 rows in set (0.01 sec)

Fiecare carte aparține cel puțin unei categorii, și fiecare categorie poate conține mai multe cǎrți. Ca în cazul tabelei autori am redus relația ∞ – ∞ la douǎ relații 1- ∞ și ∞ – 1 prin introducerea unei tabele intermediare de asociere a cǎrților cu categoriile din care fac parte acestea. Structura acestor doua tabele este datǎ în continuare.

mysql> describe categorii;

+––-+–––––+––+––+–––+–––––-+

| Field | Type | Null | Key | Default | Extra |

+––-+–––––+––+––+–––+–––––-+

| id | int(11) | | PRI | NULL | auto_increment |

| nume | varchar(255) | | | | |

+––-+–––––+––+––+–––+–––––-+

2 rows in set (0.09 sec)

mysql> describe catasoc;

+–––+–––+––+––+–––+–––––-+

| Field | Type | Null | Key | Default | Extra |

+–––+–––+––+––+–––+–––––-+

| id | int(11) | | PRI | NULL | auto_increment |

| carteid | int(11) | | | 0 | |

| catid | int(11) | | | 0 | |

+–––+–––+––+––+–––+–––––-+

3 rows in set (0.13 sec)

Utilizatorii înregistrați ai bibliotecii virtuale sunt singurii care pot descǎrca fișierele puse la dispoziție de aplicație dupǎ conectare la aplicație prin introducerea unui nume și a unei parole. Cǎrțile descǎrcate de un anumit utilizator sunt memorate în tabela descǎrcate, pentru o revenire ulterioarǎ. În același timp, utilizatorul poate introduce o carte în lista proprie de cǎrți preferate pentru a fi accesate cât mai rapid. Toate aceste informații sunt memorate în douǎ tabele de asociere dintre cǎrți și utilizatori, prezentate în continuare.

mysql> desc descarcate;

+–––+–––+––+––+–––+–––––-+

| Field | Type | Null | Key | Default | Extra |

+–––+–––+––+––+–––+–––––-+

| id | int(11) | | PRI | NULL | auto_increment |

| userid | int(11) | | | 0 | |

| carteid | int(11) | | | 0 | |

+–––+–––+––+––+–––+–––––-+

3 rows in set (0.01 sec)

mysql> desc preferinte;

+–––+–––+––+––+–––+–––––-+

| Field | Type | Null | Key | Default | Extra |

+–––+–––+––+––+–––+–––––-+

| id | int(11) | | PRI | NULL | auto_increment |

| userid | int(11) | | | 0 | |

| carteid | int(11) | | | 0 | |

+–––+–––+––+––+–––+–––––-+

3 rows in set (0.01 sec)

Spre final, prezentǎm comenzile SQL utilizate la generarea bazei de date și schema conceptualǎ, comenzi care pot folosi la regenerarea bazei de date atunci când aplicația este instalatǎ, sau portatǎ în altǎ bazǎ de date.

CREATE TABLE admin (

id int(11) NOT NULL auto_increment,

nume varchar(100) NOT NULL default '',

parola varchar(20) NOT NULL default '',

PRIMARY KEY (id)

);

CREATE TABLE autori (

id int(11) NOT NULL auto_increment,

nume varchar(255) NOT NULL default '',

PRIMARY KEY (id)

);

CREATE TABLE autoriasoc (

id int(11) NOT NULL auto_increment,

carteid int(11) NOT NULL default '0',

autorid int(11) NOT NULL default '0',

PRIMARY KEY (id)

);

CREATE TABLE carti (

id int(11) NOT NULL auto_increment,

titlu varchar(255) NOT NULL default '',

edituraid int(11) default '0',

an int(11) default NULL,

data date default NULL,

down int(11) default NULL,

spatiu int(11) default NULL,

coperta varchar(255) default '',

fisier varchar(255) default '',

PRIMARY KEY (id)

);

CREATE TABLE catasoc (

id int(11) NOT NULL auto_increment,

carteid int(11) NOT NULL default '0',

catid int(11) NOT NULL default '0',

PRIMARY KEY (id)

);

CREATE TABLE categorii (

id int(11) NOT NULL auto_increment,

nume varchar(255) NOT NULL default '',

PRIMARY KEY (id)

);

CREATE TABLE descarcate (

id int(11) NOT NULL auto_increment,

userid int(11) NOT NULL default '0',

carteid int(11) NOT NULL default '0',

PRIMARY KEY (id)

);

CREATE TABLE edituri (

id int(11) NOT NULL auto_increment,

nume varchar(255) NOT NULL default '',

oras varchar(255) NOT NULL default '',

PRIMARY KEY (id)

);

CREATE TABLE preferinte (

id int(11) NOT NULL auto_increment,

userid int(11) NOT NULL default '0',

carteid int(11) NOT NULL default '0',

PRIMARY KEY (id)

);

CREATE TABLE useri (

id int(11) NOT NULL auto_increment,

nume varchar(255) NOT NULL default '',

email varchar(255) NOT NULL default '',

parola varchar(20) NOT NULL default '',

PRIMARY KEY (id),

UNIQUE KEY nume (nume)

);

Categoriile pe care sunt împarțite cǎrțile sunt stocate în tabela categorii, și acestea se pot observa din urmǎtoarele comenzi SQL.

INSERT INTO categorii VALUES (1,'Limbaje de programare');

INSERT INTO categorii VALUES (2,'Sisteme de operare');

INSERT INTO categorii VALUES (3,'Web');

INSERT INTO categorii VALUES (4,'Baze de date');

INSERT INTO categorii VALUES (5,'Grafica');

INSERT INTO categorii VALUES (6,'Algoritmi');

INSERT INTO categorii VALUES (7,'Retele');

Tabela pricipalǎ a schemei conceptuale este tabela carti. Fiecǎrei cǎrți îi corespunde o înregistrare din tabela edituri. Aceastǎ corespondențǎ este asiguratǎ de o legǎturǎ 1-1 dintre cele douǎ tabele. Conținutul tabelei edituri se poate deduce din comenzile care urmeazǎ.

INSERT INTO edituri VALUES (1,'Teora','Bucresti');

INSERT INTO edituri VALUES (2,'Polirom','Bucresti');

INSERT INTO edituri VALUES (3,'ALL','Bucresti');

INSERT INTO edituri VALUES (4,'Nemira','Bucresti');

Aplicația prezentatǎ poate functiona online pe un server UNIX(FreeBSD sau Linux), folosește programul Apache ca server web, modulul php pentru interpretarea programelor scrise sǎ ruleze pe server și MySQL ca server de date. Aplicația Biblioteca Online cuprinde toate aspectele necesare unei aplicații comerciale, baze de date, sesiuni, autentificare, administrare, și se poate dezvolta în continuare pânǎ la o aplicație comercialǎ.

Bibliografie

Baze de date. Fundamente teoretice și practice, Grupul BDASEIG, Editura Infomega, București, 2002

Baze de date, Octavian Bâscă, Editura All Educațional, București, 1996

Tehnologia aplicațiilor Web, Floarea năstase, Pavel Năstase, Editura Economică, București, 2002

Totul despre HTML 4, Rick Darnel, Editura Teora, București, 2002

HTML prin EXEMPLE, Teodoru Gugoiu, Editura Teora, București, 2003

Aplicații Web la cheie: studii de caz implementate în PHP, Sabin Burga, Editura Polirom, Iași, 2003

Baze de date: proiectare, implementare, gestionare, Thomas Connolly, Caoly Bepg, Anne Strochan, Editura Teora, București, 1997

PHP and MySQL Web Development, Luke Welling, Laura Thomson, Editura Sam’s Publishing, 2004

MySQL, 3rd Edition, Paul Dubois, Editura Sam’s Publishing, 2005

MySQL Reference Manual, Michael Widenius, David Axmark, Editura O’REILLY, 2002

Web Database Applications with PHP & MySQL, Hugh E. Williams, David Lane, Editura O’REILLY, 2004

PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide, Larry Ullman, Editura Peachpit Press, 2003

HTML Complete, Donna L. Baker, Editura Sybex, 2003

Similar Posts