My Thesis

152
5 A elabora t. A verific at Control n. A aprobat D. Ciorbă V. Cotelea Lit. Coala Coli 100 V. Madan V. Beşliu UTM.2152.02.204 ME Sistem marketing bazat pe web- tehnologii cu Mod Coala nr. Document Semnăt. Data Cuprins Introducere 8 1 Noţiuni generale 9 1.1 Arhitectura client-server 9 1.1.1 Scurt istoric 9 1.1.1.1 Modelul “host-computer + terminale” şi SGBD multiuser 9 1.1.1.2 Computere personale şi SGBD desktop 10 1.1.2 Particularităţile şi avantajele arhitecturii “client/server” 11 1.1.3 Sisteme informaţionale multinivel şi Internet 14 1.2 Web-acces la Baze de Date 15 1.2.1 Generalităţi 15 1.2.1.1 Schema de lucru 16 1.2.1.2 Adresă de reţea 18 1.2.1.3 Mediul de lucru al unui server 18 1.2.2 Scenarii de acces la BD 19 1.2.2.1 Conversia conţinutului BD în documente statice 20 1.2.2.2 Crearea dinamică a documentelor hypertext în baza conţinutului BD 20

description

teza

Transcript of My Thesis

Introducere

Cuprins

8Introducere

1 Noiuni generale91.1 Arhitectura client-server91.1.1 Scurt istoric91.1.1.1 Modelul host-computer + terminale i SGBD multiuser91.1.1.2 Computere personale i SGBD desktop101.1.2 Particularitile i avantajele arhitecturii client/server111.1.3 Sisteme informaionale multinivel i Internet141.2 Web-acces la Baze de Date151.2.1 Generaliti151.2.1.1 Schema de lucru161.2.1.2 Adres de reea181.2.1.3 Mediul de lucru al unui server181.2.2 Scenarii de acces la BD191.2.2.1 Conversia coninutului BD n documente statice201.2.2.2 Crearea dinamic a documentelor hypertext n baza coninutului BD201.2.2.3 Crearea DI pe baza unor SGBD-uri nalt productive prin limbajul SQL211.2.3 Retrospectiva web-tehnologiilor231.2.3.1 WWW-server NCSA HTTPD231.2.3.2 Serverul SQL al firmei Oracle231.2.3.3 Bibliotecile i funciile limbajului C231.2.3.4 Limbajul de programare Perl241.2.3.5 Pachetul Web Oracle - Web241.2.3.6 Pachetul Cold Fusion al firmei Allaire Corp251.3 Modelul relaional. Proiectarea Bazelor de Date251.3.1 Modelul relaional251.3.1.1 Structura relaional a datelor271.3.1.2 Constrngeri de integritate291.3.1.3 Operaii de actualizare311.3.2 Proiectarea Bazelor de Date331.3.2.2 Forma normal unu341.3.2.3 Forma normal doi341.3.2.4 Forma normal trei352 Mijloacele de elaborare412.1 Web-programare: limbajul PHP412.1.1 Noiuni de PHP412.1.2 Posibilitile PHP422.1.3 Avantajele PHP422.1.4 Neajunsurile PHP432.2 Web-sisteme BD: serverul MySQL442.2.1 Noiuni de MySQL442.2.2 Posibilitile MySQL442.2.3 Neajunsurile MySQL453 Descrierea elaborrii463.1 Proiectarea logic a Bazei de Date C-Market.md463.1.1 Determinarea dependenelor funcionale463.1.2 Normalizarea513.2 Descrierea web-site-ului593.2.1 Opiunea Prima603.2.2 Opiunea Market613.2.3 Opiunea Publicum643.2.4 Opiunea Cautare654 Partea economic664.1 Modele financiar-tranzacionale n comerul electronic664.2 Evaluarea economic a proiectului www.c-market.md695 Protecia muncii735.1 Aprecierea pericolului la monitor735.2 Calcularea iluminatului artificial n ncpere775.3 Analiza condiiilor de munc. Factorii duntori la locul de lucru78Concluzii80Biblografie81Anexe82Anexa 1 (Clieni ultrafini n arhitectura client/server)82Anexa 2 (Schema logic a bazei de date CMarket)83Anexa 3 (Schema-bloc a Web-aplicaiei)84Anexa 4 (Listingul Web-aplicaiei)87

Introducere

Multe ntreprinderi utilizeaz baze de date electronice (BD) pentru meninerea proceselor de lucru. Deseori sistemul informaional estre destinat pentru unul sau doi utilizatori, executat cu utilizarea mijloacelor de elaborare dbf-orientate: Clipper, dBase, FoxPro, Paradox, Acces. i, de obicei, se utilizeaz un ir de baze independente una de alta. i dac informaia, ce se pstreaz n aceste baze, prezint interes nu numai pentru utilizatorii nemijlocii, ci i pentru difuzarea ei ulterioar se recurge la raporturi generate de baz.

Cu apariia reelelor locale, cu conectarea lor la reeaua Internet, cu crearea reelelor corporative (Intranet), apare posibilitatea ca de la orice loc de munc al organizaiei s obii acces la resursa informaional a reelei. Totui la ncercarea utilizrii Bazelor de Date existente apar probleme legate de omogenitatea locurilor de munc (pentru lansarea interfeelor proprii), de un trafic de reea mare (deoarece accesul se face direct la fiierele BD), de ncrcarea file-serverului i de imposibilitatea lucrului la distan (de exemplu, lucrtorilor din deplasare). Soluia problemei ar putea fi utilizarea interfeei unice WWW pentru accesul la resursele organizaiei. Acest lucru i simplele interfee de utilizator au contribuit la rspndirea tehnologiilor World Wide Web.

Trebuie de menionat, c sistemul informaional la baza construciei cruia stau web-tehnologiile, n unele cazuri nu numai pstreaz posibilitile aplicaiei, elaborate conform arhitecturii clasice client-server, dar i le extinde. Mai ales c, utilizarea web-tehnologiilor n clasa dat de sarcini prezint avantajul su. Cel mai important fiind lipsa necesitii de existen i, respectiv, de instalare a aplicaiilor client i lipsa necesitii de procurare a licenei pentru aplicaiile front-end, care obligator exist n tehnologiile clasice client-server.

Din aceste considerente se pune scopul asigurrii www-accesului la Bazele de Date.

1 Noiuni generale

1.1 Arhitectura client-server

Mijloacele moderne de elaborare a sistemelor informaionale sunt orientate spre susinerea larg a diferitor SGBD-uri (sisteme de gestiune a bazelor de date), att desktop, ct i de server. Dar un sistem informaional eficient i sigur multinivel, de regul este elaborat n arhitectura client/server.

1.1.1 Scurt istoric

1.1.1.1 Modelul host-computer + terminale i SGBD multiuser

Pe timpuri, la proiectarea sistemelor informaionale cel mai des era utilizat modelul host-computer + terminal realizat n baz de mainframe (de exemplu, IBM-360/370) sau n baz de mini-MEC (maini electronice de calcul, de exemplu PDP-11). Un specific al unui astfel de sistem era o neintelectualitate deplin a terminalelor, funcionarea crora era dirijat de un host-computer (fig. 1).

Fig. 1 Modelul host-computer + terminaleAceast metod, destul de progresist pe atunci, avea i avantajele ei. n primul rnd, utilizatorii acestor sisteme aveau posibilitatea de a partaja diferite resurse ale host-computerului (memoria operativ, procesorul) i dispozitivele periferice (printere, dispozitive de introducere de pe banda magnetic i de pe discurile flexibile, discuri de stocare .a.) care erau destul de scumpe. Desigur, sistemele operative utilizate menineau un regim multitasking i multiuser.

n al doilea rnd, centralizarea resurselor i ale dispozitivelor facilita exploatarea i micora costul sumar al unui astfel de sistem.

Neajunsurile unei astfel de arhitecturi constau n mare parte n faptul c utilizatorul era n dependen total de administratorul host-computerului. Practic nu exista posibilitatea de a modifica mediul de lucru dup necesitate de a se asigura individual cu programe necesare , inclusiv redactori de text, compilatori i SGBD.

1.1.1.2 Computere personale i SGBD desktop

Neajunsul acestor sisteme, a adus la dezvoltarea rapid (care continu i n prezent) a industriei calculatoarelor personale. Odat cu preul redus i simplitatea exploatrii, o particularitate atrgtoare a sistemelor informaionale desktop a devenit aa-numita personalizare a mediului de lucru, cnd utilizatorul putea alege pentru sine instrumentele de lucru necesare lui care nu s-au lsat ateptate pe piaa produselor software. Anume n aceast perioad au aprut tabelele electronice i SGBD-urile desktop (dBase, FoxBase, Clipper, Paradox i altele).

Fig. 2 Prelucrarea colectiv a datelor cu utilizarea versiunilor de reea a SGBD desktop i a serverului de fiiere

Urmtoarea etap de dezvoltare a arhitecturii sistemelor informaionale a fost apariia versiunilor de reea a SGBD-urilor, care permiteau de a realiza lucrul multiuser cu date comune n reeaua local. Aceast metod a mbinat n sine att comoditatea personalizrii mediului utilizator i simplitatea exploatrii, ct i avantajele legate de noile posibiliti de partajare a periferiei (n mod esenial a printerilor i discurilor de reea, care pstreaz date colective). E remarcabil, c majoritatea sistemelor informaionale, real exploatate astzi, au o astfel de arhitectur i n cazul cnd numrul utilizatorilor sistemului este mic, volumul datelor i a numrului de tabele nu este mare, nivelul cerinelor de securitate a datelor este jos utilizarea metodei se justific (fig. 2).

Neajunsul utilizrii versiunilor de reea a SGBD desktop, se evideniaz n procesul exploatrii a sistemului informaional, cnd se mrete volumul datelor i numrul utilizatorilor. De obicei, n primul rnd se observ micorarea productivitii aplicaiilor, dei apar i alte perturbri n lucru (de exemplu, pierderea indecilor, nclcarea integritii). Cauzele se ascund n concepia pstrrii datelor colective n fiierele de pe server i concentrrii prelucrrii datelor la aplicaia utilizatorului, care se transmit prin reea de la serverul de fiiere ctre calculatorul utilizatorului. Deaceea, n cazul unui mare numr de date i de utilizatori, i prin existena cererilor multitabelare, capacitatea reelei de transfer a datelor poate s nu satisfac cerinele formulate legate cu exploatarea unui astfel de sistem informaional.

Traficul crescut a reelei nu este unica neplcere care deranjeaz administratorul i utilizatorul al unui astfel de sistem informaional. Un caz destul de des ntlnit este nclcarea integritii datelor.

Cum putem evita astfel de neplceri? Rspunsul vine de la sine: de reconceput arhitectura sistemului informaional i de a o schimba dac n viitor se ateapt astfel de precedente. Cea mai buna hotrre n acest caz va fi folosirea unui server SGBD.

1.1.2 Particularitile i avantajele arhitecturii client/server

Arhitectura client/server poate fi privit ca o rentoarcere la modelul host-computer + terminal, aa cum nucleul acestui sistem este serverul bazelor de date, prezentnd prin sine o aplicaie care efectueaz un set de aciuni de administrare a datelor ndeplinirea interpelrilor, pstrarea i asigurarea copiei de rezerv a datelor, urmrirea integritii, controlul drepturilor i privilegiilor utilizatorilor (fig. 3).

Unul din principalele avantaje este micorarea traficului de reea la ndeplinirea cererilor, deoarece interpelrile sunt compilate, optimizate i executate la server, clientului fiind transmise doar rezultatele.

Al doilea avantaj al arhitecturii client-server posibilitatea de pstrare a bussines- regulelor pe server, ce permite de a evita dublarea codurilor, n diferite aplicaii, dar care folosesc aceleai baze de date. Pentru descrierea bussines-regulelor de server n cazuri tipice exist instrumente comode, aa numitele CASEmijloace (CASE Computer Aided System Enginireering), care permit de a descrie asemenea drepturi(reguli) i a crea obiectele bazelor de date (indici, triggeri), practic desennd cu mouse-ul legturile ntre tabele fr nici un fel de programare. n acest caz, va fi nlturat o parte nsemnat din codul aplicaiei clientului. Se remarc, c o parte a codului, legat de prelucrarea datelor, la fel poate fi realizat n form de proceduri pstrate (stored proc) a serverului, ce permite i mai mult de a uura aplicaia client, ceea ce nsemn c cerinele ctre staii pot s fie mai puin mari. Aceasta n final scade din costul sistemului informaional chiar i la folosirea SGBD de server scump i a serverului bazelor de date performant.

n afar de posibilitile enumerate, SGBD-serverele contemporane dispun de multe mijloace de gestionare cu privilegiile de utilizator i cu drepturile de acces ctre diferite obiecte ale bazelor de date. De regul, n baze de date se stocheaz informaia despre utilizatorii ei, parolele i privilegiile lor, i fiecare obiect al bazei de date se refer la un anumit utilizator. Proprietarul obiectului poate oferi la ali utilizatori dreptul, printr-o metod sau alta, de a folosi obiectul

Unele SGBD-servere, menin aa numitele roluri care se prezint ca o nbinare a drepturilor la accesul ctre obiectele bazei de date. n sensul c unii useri ai sistemului au accesul de introducere a datelor, pe cnd alii doar de citire, dei spre alte tabele s-ar putea s aib acces direct cu un privilegiu mai nalt.

Un SGBD de server modern dispune de largi posibiliti de asigurare a copiei de rezerv a datelor i arhivrii lor i de optimizare a interpelrilor efectuate. De asemenea, poate prezenta posibilitatea prelucrrii paralele a datelor, mai ales n cazul folosirii calculatoarelor multiprocesorale, n calitate de server al bazelor de date.

Fig. 3 Prelucrarea datelor n arhitectura client/server

Aadar, sistemul informaional client/server const, n cel mai simplu caz, din trei componente de baz:

serverul bazelor de date, care administreaz accesul, protecia i copierea rezervei, care asigur integritatea datelor n corespundere bussines-regulilor i, cel mai important care ndeplinete interpelrile clientului.

clientul, care se prezint ca interfa cu utilizatorul, i care ndeplinete logica aplicaiei, controleaz accesibilitatea spre date i care transmit interpelrile ctre server i primesc rspunsurile de la el.

reea i pachetul de programe de comunicare ce menin interaciunea ntre client i server prin protocoalele de reea.

1.1.3 Sisteme informaionale multinivel i Internet

Sistemele informaionale distribuite prezint prin sine urmtoarea etap de dezvoltare a arhitecturii sistemelor informaionale. Necesitatea lor apare la mrirea continu a sistemelor informaionale, legate de majorarea numrului de utilizatori, de apariia filialelor ndeprtate, cu necesitatea pstrrii i prelucrrii centralizate a datelor. n cazul unui numr mai mare de utilizatori apar probleme de actualizare ale versiunilor aplicaiilor client la staii (mai ales n cazul unei ntinse repartizri teritoriale a ntreprinderii), probleme de meninere a setrilor, i de asemenea suprancrcarea reelei i serverului bazelor de date.

Aceste probleme se rezolv prin calea crerii sistemelor informaionale multinivel cu client fin (fig. 4).

Fig. 4 Prelucrarea datelor n arhitectura multinivel

n acest caz, problema susinerii setrilor se rezolv prin transferul lor la un nivel intermediar(middleware), numit serverul aplicaiilor. El poate indeplini i alte funcii, de exemplu efectuarea calculelor, prelucrarea datelor, generarea rezultatelor. Corespunztor tot aceste funcii se elimin din aplicaia clientului, de aceea se micoreaz cerinele ctre resursele staiei lucrtoare i ctre frecvena nnoirii aplicaiei clientului. La distribuia logic a funciei ntre serverul aplicaiilor i client, ultimul, de obicei, conine doar funcionalitate legat cu oferirea utilizatorului a interfeei pentru vizualizare i redactare. Din aceast cauz el, de obicei, este numit client fin (spre deosebire de clasicul client mare, caracteristic pentru arhitectura tradiional client-server).

n ceea ce privete nnoirea oportun a versiunii clientului fin aceast problem se rezolv cu ajutorul aplicaiilor folosite n Internet (Web-servere, Web-brouser, Internet-protocoale). Dac merge vorba despre o reea de scara unei ntreprinderi, n care se folosesc pentru scopuri corporative astfel de tehnologii, de obicei, se folosete termenul Intranet.

Vorbind despre folosirea Internet/Intranet, se poate meniona i posibilitile de creare a aplicaiilor pentru Webserver. Aa aplicaii, pe de-o parte, pot fi clieni a unui server SGBD, pe de alt parte, genereaz dinamicele pagini HTML cu datele din aceste SGBD la cererea aplicaiei clientului, rolul cruia, n cazul dat, ndeplinete Web brouserul (numit client ultrafin, figura din anexa 1).

Se remarc c n ultimul timp astfel de aplicaii primesc tot mai mare rspndire.

n concluzie se menioneaz c arhitectura client/server conine un numr considerabil de avantaje, spre deosebire de arhitectura tradiional a sistemelor informaionale bazate pe versiunile de reea SGBD desktop: productivitate mai nalt, trafic de reea sczut, mijloace mai performante de asigurare a securitii i integritii datelor. De asemenea, se poate spune c exist posibiliti de perfecionare a sistemului client/server prin trecere la arhitectura multinivel cu client fin sau n cazul necesitii, la aplicaii pentru Webserver.

1.2 Web-acces la Baze de Date

1.2.1 Generaliti

Principiul apas pe ce-i interesant, care st la baza hypertextului, intuitiv este clar. n WWW tehnologii toate noiunile cheie ale documentului vizionat: cuvinte, imagini au posibilitatea s se deschid ntr-un nou document care poate descrie mai detaliat aceast noiune. Aceast modalitate de prezentare a informaiei se numete hypertext, dar documentele de tipul dat documente hypertext. Pentru descrierea acestor documente se utilizeaz limbajul special HTML (HyperText Markup Language).

Documentele fie se pstreaz ntr-o form static (mbinare de fiiere pe disk), fie se creeaz dinamic de un soft special n dependen de parametrii interpelrii. Softul dat, care este elaborat ntr-un anumit modalitate, se numete CGI-program (Common Gateway Interface). Despre mijlocele de creare a acestor programe se va scrie mai jos.

Utilizarea tehnologiilor WWW pentru asigurarea accesului la careva resurse informaionale subnelege existena urmtoarelor componente:

1. Browser program special de vizionare, de care trebuie s se utilizeze un user al reelei pentru asigurarea interaciunii cu un WWW-server;

2. WWW-server o parte a reelei globale i corporative care asigur prezentarea documentelor hypertext, ce sunt plasate pe el, ca rspuns la interpelrile WWW-clientului;

3. IP-reea cu susinerea setului de servicii de baz de transmitere a datelor, cu o politic unic de numerotare i rutare i serviciu DNS.

1.2.1.1 Schema de lucru

S analizm puin mai detaliat schema de lucru al unui Web-server. n caz general ea se prezint astfel:

1. Utilizatorul reelei lanseaz programul de vizionare, numit browser, funciile cruia sunt:

conectarea cu serverul;

primirea documentului cerut;

afiarea documentului primit;

reacionarea la aciunile utilizatorului - accesul la un nou document;

Astfel dup lansare browser-ul la comanda utilizatorului sau automat se conecteaz cu serverul reclamat i transmite lui interpelarea pentru a primi documentul cerut (fig. 5).

Fig. 5 Transmiterea interpelrii la server

2.Web-serverul caut documentul necesar i ntoarce rezultatul browser-ului (fig. 6).

3.Browser-ul, primind documentul, l afieaz utilizatorului i ateapt reacia lui. Variantele posibile sunt:

introducerea adresei noului document;

tiprire, cutare, alte operaii asupra textului curent;

activarea (apsarea) zonelor speciale ale documentului primit, numite link-uri, ce sunt asociate cu adrese ale unor noi documente.

Fig. 6 Transmiterea rspunsului spre client

n cazul 1 i 3 are loc adresarea la un nou document. Din schema general se observ c funciile Web-serverului sunt:

1. stabilirea conectrii cu softul clientului prin protocolul TCP;

2. primirea interpelrii prin protocolul HTTP;

3. cutarea documentului n resursele locale;

4. ntoarcerea rezultatului cutrii prin protocolul HTTP.

Astfel un WWW-server vom numi un complex soft i hard, care ndeplinete funciile enumrate mai sus.

1.2.1.2 Adres de reea

Adresa unui document se indic printr-un ir special, numit URL. Pentru protocolul HTTP, care se utilizeaz pentru interciunea www-clientului cu www-serverul, URL se conine din urmtoarele:

1. denumirea protocolului conform cruia funcioneaz serverul (http);

2. numele mainii serverului pe Internet sau IP-numrul;

3. portul TCP;

4. calea documentului pe server.

Exemplu: http://www.utm.md

1.2.1.3 Mediul de lucru al unui server

La momentul de fa toate web-serverele cunoscute prezint prin sine un computer cu un sistem de operare multitascking. Un proces sau mai multe al unei astfel de sisteme sunt responsabile de meninerea funciilor specifice pentru Web-server. Celelalte procese ale sistemului de operare gestioneaz funcii neobligtor legate de susinerea web-tehnologiei (fig. 7).

Fig. 7 Structura conceptual

Tab. 1

Platforme serverale

ComputerSistema de Operare

IBM PC Unix (UnixWare, Open Server, Solaris, BSD, Linux .a.)

Microsoft Windows NT

IBM OS/2

Novell NetWare

Sun SparcStation i SparcServer Sun OS

Solaris

Silicon Graphics IRIS

O astfel de structur duce la aceea c n prezent printr-un Web-server se subnelege deja, doar partea softului, funciile cruia sunt cele ale Web-serverului, cealalt parte cumputerul, sistema de operare, alte procese, structura de reea se numete mediul de lucru al unui server sau platform. Mai jos este prezentat tabelul 1 ce conine lista unor platforme pentru WWW-server.

1.2.2 Scenarii de acces la BD

n componena specificului unei BD concrete intr att bazele tehnologice, aa ca tipul SGBD-ului, tipul interfeei, legturile dintre tabele, constrngerile de integritate, ct i soluiile organizaionale legate de meninerea BD i asigurrii accesului la ea.

Pentru asigurarea www-accesului la BD existente sunt posibile mai multe ci complexe tehnologice i organizaionale. Practica web-tehnologiilor de acces la BD ofer un spectru larg de soluii, diferit legate ntre ele suprapuse, interacionate .a. Alegerea soluiilor concrete de asigurare a accesului depinde de specificul SGBD-ului i de un ir de factori, aa ca: disponibilitatea specialitilor, ce sunt api cu reineri minime s nsueasc o ramur determinat de soluiile tehnologice, existena altor BD, WWW-accesul ce trebuie realizat cu cheltuieli adugtoare minime .a.

WWW-accesul ctre BD poate fi realizat prin unul din trei scenarii. Mai jos sunt date descrierea lor succint.

1.2.2.1 Conversia coninutului BD n documente statice

n aceast variant coninutul BD este examinat de o program special, ce creeaz o multitudine de fiiere HTML-documente (fig. 8). Fiierele primite pot fi transferate la unul sau mai multe www-servere. Accesul la ele se va face ca la documentele hypertext ale serverului.

Fig. 8 Conversia coninutului BD n documente staticeAceast variant se caracterizeaz prin cheltuieli iniiale minime. Ea este efectiv n cazul fiierelor de date mici i mijlocii, unei scheme simple i n cazul renoirii rare, deasemenea n cazul cerinelor mici ctre actualitatea datelor, oferite prin intermediul WWW. n afar de aceasta, este exclus orice mecanism de cutare.

n calitate de convertor se poate prezenta un complex de programe, care ar genera automat sau semiautomat documentele statice. Programul convertor poate fi un program independent elaborat sau un mijloc integrat din clasa generatoarelor de rapoarte.

1.2.2.2 Crearea dinamic a documentelor hypertext n baza coninutului BD

n aceast variant accesul ctre BD este asigurat de o program special (CGI), ce se lanseaz de WWW-server n urma interpelrii de ctre un WWW-client. Aceast program, prelucrnd interpelarea, examineaz coninutul BD i creaz documentul HTML de ieire, ce se ntoarce clientului (fig. 9).

Aceast soluie este efectiv pentru BD mari cu structur complex i cu necesitatea susinerii operaiilor de cutare. n cazul dat este posibil realizarea modificrilor BD prin WWW-interfee.

Fig. 9 Crearea dinamic a documentelor hypertext n baza coninutului BD

Printre neajunsurile acestei metode se enumr:

timpul mare de prelucrare a interpelrilor;

necesitatea permanent de acces la BD principal;

ncrcarea auxiliar a mijloacelor de susinere a BD, legat de prelucrarea interpelrilor de la WWW-server.

Pentru realizarea unei astfel de tehnologii este necesar realizarea interaciunii a WWW-serverului cu programele CGI (i nu numai) lansate.

1.2.2.3 Crearea DI pe baza unor SGBD-uri nalt productive prin limbajul SQL

n acest caz se propune utilizarea tehnologiei, care a primit denumirea de depozite informaionale (DI). Pentru prelucrarea diferitor interpelri, inclusiv celor de la WWW-server, se utilizeaz o BD intermediar nalt productiv (Fig 11). ncrcarea informaional BD intermediare este asigurat de o produse soft specializate n baza coninutelor bazelor de date principale (fig. 10).

Astfel varianta dat este determinat de dou etape:

1. etapa translrii datelor din Bazele de Date n DI (fig. 10);

2. etapa prelucrrii interpelrilor (fig. 11).

Fig. 10 ncrcarea DI din Baze de Date

Acest caz nu este afectat de neajunsurile schemei precedente. Mai mult ca att, dup asigurarea sincronizrii datelor depozitului informaional cu Bazele principale de Date va crete sigurana i productivitatea, dar oferindu-se i posibilitatea crerii locurilor de munc distribuite. Schema precedent nu permitea acest lucru, fiindc era necesar o astfel de structur pentru toate BD, or aici existnd o interfa unic.

Fig. 11 Utilizarea DI

Dei schema general pare mare i complex, pentru sarcina de a asigura WWW-accesul la coninutul ctorva Baze de Date costurile invocate se micoreaz esenial.

Cauza creterii productivitii de prelucrare a interpelrilor WWW i mririi vitezei de elaborare este utilizarea limbajelor interne ale SGBD-urilor depozitelor informaionale pentru crearea documentelor hypertext.

Pentru translarea coninutelor din BD n depozitelor informaionale pot fi utilizate limbajele de programare, mediile integrate sau mijloacele speciale de translare, oferite de un SQL-server i produsele de meninere a depozitelor informaionale.

1.2.3 Retrospectiva web-tehnologiilor

1.2.3.1 WWW-server NCSA HTTPD

Cum s-a menionat mai sus, un element cheie al tehnologiei WWW este WWW-serverul. Pentru sistemele Unix standardul de facto a devenit softul Centrului Naional de Aplicaii pentru Supercalculatoare (NCSA) de la Universitatea din Illinois. Toate softurile create mai trziu susin o compatibilitate complet cu softul NCSA (regim de lucru, formatul datelor). Serverul NCSA este un produs ce se perfecioneaz permanent, care reflect toate rigorile curente ale web-tehnologiei. Creat relativ recent Apache Group elaboreaz softul su pentru WWW-server pe baza produsului NCSA HTTPD.

1.2.3.2 Serverul SQL al firmei Oracle

La realizarea schemei trei apare problema alegerii unei platforme calitative pentru crearea DI. Sistemul relaional de gestiune a Bazelor de Date al firmei Oracle este un lider pe piaa SGBD-urilor. Dup productivitate, sigurana de pstrare a datelor, evaluarea familiei de interfee .a. produsele Oracle se menin pe poziii lider n multe topuri. Flexibilitatea utilizrii, mijloacele evaluate de gestionare a accesului arhitectura distribuit fac serverul Oracle destul de atrgtor pentru tehnologiile depozitelor informaionale, iar posibilitatea de lucru pe free-platformele Unix lrgesc posibilitatea utilizrii lui n sfera necomercial.

O constrngere important de utilizare a produselor Oracle n sfera tiinei i nvmntului este preul destul de mare i finanarea bugetar mic.

1.2.3.3 Bibliotecile i funciile limbajului C

Una din tehnologiile de baz de creare a CGI-modulelor pentru realizarea funciilor de convertor i de translator pentru scenariile 1-3 este limbajul C. Limbajul C este cel mai rspndit limbaj de programare. Limbajul poate fi utilizat pentru crearea urmtoarelor programe:

1. convertor, ce converteaz o singur dat coninutul BD ntr-o reea de documente hypertext (fig. 8); prelucrtor, care dinamic prelucreaz interpelrile de la WWW-server ctre BD (fig. 9);

2. translator din Baze de Date existente n depozitele informaionale (fig. 10);

3. prelucrtor de interpelri de la WWW-server ctre depozitele informaionale (fig. 11);

Pentru susinerea acestor funcii sunt create o mulime de biblioteci i funcii ale limbajului C, programe gata cu texte surse.

1.2.3.4 Limbajul de programare Perl

Limbajul Perl a fost creat pentru ridicarea eficacitii de prelucrare a documentelor textuale. El este orientat spre prelucrare de iruri. La momentul actual limbajul este foarte rspndit ca un instrument de creare a modulelor executante ale WWW-serverului. Pachetele existente de extensie asigur accesul spre SQL-servere nemijlocit din programele Perl. Aceasta permite de utilizat limbajul pentru rezolvarea tuturor problemelor, care apar la asigurarea WWW-accesului la Bazele de Date. Perl este efectiv la fel i pentru alte structuri de date: rapoarte existente, liste, cartele n form electronic.

1.2.3.5 Pachetul Web Oracle - Web

Pachetul WOW este un mijloc de programare liber rspndit, destinat crerii unor interfee interactive WWW cu SGBD-ul Oracle. Pachetul WOW a fost primul i cel mai simplu mijloc, lansat de firma Oracle. La momentul actual exist set de produse ce extind funcionalitatea WOW Oracle Web Server, Oracle Web Architecture.

Produsele enumrate permit utilizarea extensiei procedurale ale limbajului SQL PL/SQL, elaborat de firma Oracle pentru crearea dinamic a documentelor hypertext. Viteza nalt de elaborare se atinge din contul simplificrii accesului ctre BD programele n PL/SQL sunt executate de nsui serverul Oracle.

Domeniul de baz a utilizrii WOW este prelucrarea interpelrilor de la WWW-server ctre SQL-serverul Oracle din mediul Unix.

1.2.3.6 Pachetul Cold Fusion al firmei Allaire Corp

Este destinat pentru utilizarea sistemului de operare Windows i permite adresarea ctre diferite Baze de Date ce menin interfaa ODBC prin intermediul Web-interfeelor. Pachetul are un statut comercial, avind posibilitatea de-l analizat numai prin evaluation copy, care este liber rspndit. Pentru accesul la Bazele de Date se utilizeaz construciile limbajului DBML extensie al limbajului HTML, care este completat cu mijloace de acces la Baze de Date prin ODBC. Documentele limbajului DBML sunt prelucrate la server n rezultat crendu-se documentul HTML. Costul pachetului full-version mpreun cu WWW-serverul este de $486.

Pachetul poate fi efectiv utilizat n calitate de prelucrtor al interpelrilor WWW ctre bazele de date surse sau ctre depozitul informaional (scenariile 2,3).

1.3 Modelul relaional. Proiectarea Bazelor de Date

1.3.1 Modelul relaional

Dezvoltarea teoriei bazelor de date relaionale a cptat o amploare nemaivzut n domeniul aplicrii tehnicii de calcul. Rezultatele obinute n teoria relaional au influenat esenial sistemele de gestiune ce se bazeaz pe celelalte dou metode de date: ierarhic i reea.

Revoluia relaional a introdus mai multe idei valoroase n lumea bazelor de date. Printre acestea progrese tehnologice i beneficii ale sistemelor de gestiune ale bazelor de date pot fi menionate:

Tabelele sunt un mijloc simplu de reprezentare a datelor. Ele permit de a organiza datele n mod acceptabil. Extinderea modelului relaional a confirmat puterea de atracie a acestei reprezentri.

SQL este un standard de limbaje de interpelri foarte comod. El e un limbaj nonprocedural de manipulare a datelor i a contribuit mult la creterea popularitii sistemelor de gestiune ale bazelor de date relaionale.

Jonciunile sunt instrumente puternice de asociere a nregistrrilor anterior independente. Apelnd la jonciune se pot crea noi seturi de nregistrri (aa numitele tabele virtuale).

Interpelri interactive. Cutarea i prelucrarea datelor n mod dinamic a adus la utilizarea larg a bazelor de date relaionale. Gestionarea tabelelor, vizualizarea interactiv i mbuntirea interactiv a contribuit ca utilizatorul ca utilizatorul s-i dea votul pentru sistemele relaionale.

Consistena datelor. Sistemele de gestiune relaionale asigur c nici un utilizator i nici o aplicaie nu pot modifica baza de date, dac modificare e n contradicie cu constrngerile de integritate.

Modelul relaional a fost primul exemplu de model de date formal i a fost propus de E. Codd n 1970. Prin model datele utilizatorului sunt reprezentate i manipulate n mod abstract. Modelul de asemenea presupune tehnici ce ajut administratorul de a detecta i corecta posibilele de proiectare ce pot aprea odat cu pregtirea datelor pentru implementare ntr-un SGBD concret.

Orice model de date se bazeaz pe trei componente:

Structuri de date. Structurile sunt definite de un limbaj de definire a datelor (data definition language). Datele n modelul relaional sunt structurate n relaii bidimensionale. Elementele principale ale structurii relaionale sunt relaiile, tuplurile, atributele, domeniile. Constrngerile de integritate. Prin integritatea datelor se subnelege c datele rmn stabile, n siguran i corecte. Integritatea n modelul relaional este meninut de constrngeri interne care nu sunt cunoscute utilizatorului. Manipularea datelor. Relaiile pot fi manipulate utiliznd un limbaj de manipulare a datelor (data manipulation language). n modelul relaional, limbajul folosete operatorii relaionali bazai pe conceptul algebrei relaionale. n afar de aceasta, exist limbaje echivalente algebrei relaionale, cum ar fi calculul relaional orientat pe domeniu.1.3.1.1 Structura relaional a datelor

Atribute i domenii

Se numesc atribute sau nume de atribute mulimea nevid de elemente A1, A2, ,An. Mulimea U={A1, A2,,An} se numete universul unei baze de date relaionale sau mulime universal.

Domeniul unui atribut Ai din U, 1 i n, notat cu dom(Ai), este o mulime finit de valori de acelai tip care le poate primi atributul Ai.

Domeniul este simplu, dac elementele sale sunt atomice (adic nu pot fi descompuse din punct de vedere al SGBD - ului). Atributul care are un domeniu de valori simplu se numete atribut atomic.

n modelul relaional fiecare tabel se spune c reprezint o relaie. Atributele sunt nite identificatori pentru a diferenia i a marca coloanele tabelului. Deci, cmpul sau numele de coloan e i un atribut. Toate atributele ce apar ntr-un tabel trebuie s fie distincte i s fie incluse n universul U. Atributele au un caracter global n baza de date: dac un nume denot dou coloane n tabele distincte n aceeai baz de date, atunci el reprezint acelai atribut.

Tuplurin sistemele cu fiiere, o mulime de cmpuri ce e conceput ca o unitate de salvare i cutare se numete nregistrare. nregistrarea are un format specific i depinde de tipurile de date ale cmpurilor. O linie dintr-o relaie tabelar corespunde nregistrrii din fiiere i n teoria relaional se numete tuplu.

Fie R o submulime a universului U, RU, unde R i fie dom(R) domeniul mulimii R. Se numete tuplu o funcie, t:R dom(R), din R n dom(R).adic

t = {(Ai1, a1),,(Aik, ak)},

unde orice Aij, 1 j k, este un atribut n R i un argument al lui t, iar orice aj, 1 j k, este o valoare n dom(Aij).

Relaii i scheme

Fie R o submulime a universului U. Relaia r asupra R este o mulime finit de tupluri cu schema R. Aritatea relaiei r este egal cu cardinalitatea mulimii R. Cardinalitatea relaiei r este numrul de tupluri n ea.

Fie RU i relaia r asupra lui R. Mulimea de atribute R se numete schema relaiei r (notat cu sch(r) = R).Baza de date relaional este o mulime finit de relaii, db = , unde ri este o relaie cu schema Ri, 1 j m.

Schema bazei de date este mulimea schemelor relaiilor ce formeaz baza de date, Db = = ,unde Ri = sch(ri).

Deci schema unei relaii este o expresie a prioritilor comune i invariante ale tuplurilor ce compun o relaie. Schema unei relaii mai este cunoscut sub denumirea de intensia unei relaii. Relaia se mai numete extensie. Extensia reprezint mulimea tuplurilor care compun la un moment dat relaia, mulime care este variabil n timp.

Prin intermediul celor menionate anterior se poate de conchis c:

1. Ordinea coloanelor e nesemnificativ;

2. Valorile atributelor n ri sunt atomice fiindc domeniile sunt simple.

3. ntr-o relaie nu exist coloane cu nume duplicate, fiindc atributele Aij, 1jk, sunt elemente ale mulimii Ri.

4. Ordinea tuplurilor n ri e nesemnificativ, fiindc ri este o mulime.

5. Relaia ri nu are tupluri identice, fiindc ri este o mulime de tupluri.

Relaiile ce se stocheaz fizic i formeaz baza de date se numesc relaii de baz. Exist, ns, i situaii n care extensia nu se memoreaz n baza de date. Este cazul aa numitelor relaii virtuale, cunoscute i sub numele de relaii derivate sau viziuni. Relaia virtual nu este definit explicit ca relaia de baz, prin mulimea tuplurilor componente, ci implicit pe baza altor relaii. Relaiile de baz sunt proiectate de administratorul bazei de date, n timp ce viziunile sunt definite de utilizatorii bazei de date.

1.3.1.2 Constrngeri de integritate

Tipuri de constrngeri

Constrngerile de integritate, numite i restricii de integritate definesc cerinele pe care trebuie s le satisfac datele din baza de date pentru a putea fi considerate corecte, coerente n raport cu lumea real pe care o reflect.

Constrngerile sunt principalul mod de integrare a semanticii datelor n cadrul modelului relaional. Mecanismele de definire i verificare ale acestor restricii reprezint instrumentele principale de control al semanticii datelor. n modelul relaional, constrngerile sunt studiate mai ales sub aspectul puterii lor de modelare i al posibilitii de verificare a respectrii lor.

Constrngerile de integritate pot fi divizate n linii mari n dou grupuri: constrngeri de comportament i dependene ntre date.

Constrngerile de comportament specific caracteristicile independente ale unui atribut (sau domeniu). Ele exprim semantica elementelor domeniilor.

Al doilea tip de constrngeri specific legtura dintre atribute (sau domenii). Aici putem identifica aa numita dependen de mulime.

Chei. Tipuri de chei

ntruct relaia reprezint o mulime de tupluri, iar o mulime nu poate conine elementele duplicate, relaia nu poate prezenta tupluri identice. Deci tuplurile sunt unice i trebuie s existe posibilitatea identificrii lor n cadrul unei relaii. Identificarea unui tuplu fr a consulta toate componentele tuplului a dus la apariia noiunii de cheie.

Fie U mulimea universal de atribute, RU i R. Mulimea K de atribute, unde KR, se numete cheie pentru schema R (sau pentru relaia r cu schema R), dac ea posed urmtoarele proprieti:

(1) Pentru oricare dou tupluri t1 i t2 avem t1[K]t2[K];

(2) Nici o submulime K1 proprie a lui K nu posed proprietatea (1).

Proprietatea (1), numit restricia de unicitate a cheii, permite K-valorilor s identifice n mod unic toate tuplurile dintr-o relaie. ns respectarea proprietii de unicitate poate fi complicat, dac nsi K conine o cheie K1 i KK1. n acest caz, cu toate c atributele din K sunt suficiente de a atinge scopul, unele din ele nu sunt necesare, deci pot fi eliminate din cheie fr a se efectua unicitatea. Dac, ns, K este o submulime proprie a unei chei, atunci utilizarea a astfel de K-valori pentru cutarea datelor va descoperi tupluri ce coincid pe toate valorile atributelor din K.

Proprietatea (2) ne asigur c o cheie K constituie numai acele atribute ce sunt necesare i suficiente pentru a determina univoc pe celelalte. Cu alte cuvinte K-valorile ntotdeauna asigur un grad exact de informaie nici mai mult, nici mai puin, pentru a gsi un tuplu unic ntr-o relaie.

Mulimea de atribute ce posed proprietatea (1) se numete supercheie.

Deci cheia este o supercheie minimal. Orice cheie e i supercheie. Afirmaia invers nu e corect.

Este evident c o mulime vid nu poate servi drept cheie a unei relaii ce conine mai mult de un tuplu. Orice relaie are cel puin o cheie. La limit cheia este constituit fie dintr-un singur atribut, fie din totalitatea atributelor din schema relaiei respective.

ntr-o relaie pot exista mai multe chei. Se spune n acest caz c relaia posed mai multe chei candidate. n aceast situaie se va stabili una din cheile candidate de ctre administrator s serveasc n mod efectiv la identificarea unic a tuplurilor. Ea va primi numele de cheie primar. Primare se vor numi i domeniile atributelor ce formeaz o cheie primar.

Cheie primar a unei relaii se numete cheie simpl, dac este constituit dintr-un singur atribut, iar atunci cnd este format din mai multe atribute este denumit cheie compus.

O cheie extern reprezint un atribut (grup de atribute) dintr-o schem Ri definit (definite) pe acelai (aceleai) domeniu (domenii) ca i cheia primar a altei scheme Rj. Relaia ri se numete relaie care refer, iar rj poart numele de relaie referit.

Unele atribute pot avea aa numitele valori nedefinite sau necunoscute notate cu null. ns sunt bine cunoscute constrngerile formulate prin urmtoarele reguli numite reguli de actualizare (inserare, modificare, i eliminare) a relaiilor.

(1) Constrngerea entitii: cheia primar a unei relaii de baz nu poate conine valori null;

(2) Constrngerea referirii: dac atributul A al unei chei compuse relaiei rI este definit pe un domeniu primar, atunci trebuie s existe o relaie de baz rj cu o cheie primar B nct orice A-valoare din ri s apar n calitate de B-valoare n rj.

Constrngerea entitii impune ca la inserarea unui tuplu, valoarea cheii s fie cunoscut, pentru a putea verifica faptul c aceast valoare nu este deja ncrcat (respectarea constrngerii de unicitate a cheii). Cu valori null cheia i pierde rolul de identificator de tuplu.

Constrngerea referenial impune ca ntr-o relaie ri, care refer o relaie rj, valorile cheii compuse s figureze printre valorile cheii primare din relaia rj pentru atributele compatibile.

E de dorit ca cheile pe parcursul timpului s nu s se schimbe. Cheile trebuie s rmn chei pentru orice eventuale extensii. Prin urmare determinarea cheii unei relaii necesit cunoaterea semanticii relaiei respective, nu numai celei din momentul n care se stabilete cheia. Dac relaia posed o singur cheie sau dori s evideniem numai cheia primar mai departe vom sublinia atributele ce formeaz aceast cheie.

1.3.1.3 Operaii de actualizare

Regulile de actualizare a bazei de date fac parte din cele trei componente ale modelului relaional de date. Vom examina cele trei operaii de actualizare a datelor: inserarea datelor, tergerea datelor i modificarea datelor.

Scopul operaiei de inserie const n adugarea unui tuplu ntr-o relaie concret. Fie c n relaia r(A1A2An) vrem s introducem date. Operaia de inserie, a unui tuplu n relaia r poate avea forma:

Add(r;).

n cazul c ordinea atributelor n relaie e cunoscut, e acceptabil o form mai scurt a operaiei:

Add(r;).

Rezultatul operaiei poate s eueze din urmtoarele cauze:

1. tuplul de inserie e definit pe o mulime de atribute ce nu corespunde schemei relaiei;

2. valorile componentelor tuplului nu sunt luate din domeniile corespunztoare;

3. n relaie deja se gsete un tuplu cu asemenea componente cheie.

n toate aceste cazuri operaia Add pstreaz relaia r intact.

Operaia de tergere se utilizeaz pentru eliminarea coninutului relaiilor. Pentru relaia r de mai sus, operaia de tergere se reprezint:

Del(r;).

n cazul cnd numele de atribute sunt sortate, poate fi utilizat urmtoarea notaie scurt:

Del(r;).

n realitate o parte di informaia de mai sus poate fi redundant pentru determinarea tuplului destinat tergerii. E suficient definiia valorilor atributelor cheie. Dac K=B1B2Bm este cheia relaiei r, atunci e util urmtoarea form a operaiei Del:

Del(r;).

Rezultatul de tergere a tuplurilor nu se las mult ateptat. Tuplul e eliminat, dac el este relaie. n cazul cnd tuplul lipsete relaia rmne intact. Nu se pune nici o restricie asupra eliminrii ultimului tuplu n relaie: relaia vid se admite.

Uneori, n loc de eliminarea unui tuplu e mai efectiv schimbarea unei pri a tuplului. Schimbarea se face cu operaia de modificare. Dac C1C2CkA1A2An, atunci operaia de modificare poate avea forma:

Ch(r;;).

Dac mulimea K=B1B2Bm este cheia relaiei r, atunci expresia de mai sus poate fi redus la:

Ch(r;< b1b2bn|B1B2Bm>;).

Operaia de modificare este foarte util. Acelai rezultat poate fi obinut prin intermediul operaiilor de nserare i tergere sunt specifice i operaiei modificare.

1.3.2 Proiectarea Bazelor de Date

Prin proiectarea bazei de date, se va subnelege proiectarea unei scheme logice care ar nltura apariia unor anomalii n lucrul cu baza de date, asigurnd totodat faciliti i performane sporite la exploatarea ei.

Pentru a produce o baz de date bine proiectat de obicei se pornete de la relaii nenormalizate i printr-o serie de pai se obine schema final a bazei de date. Unde normalizarea este o abordare formal de analiz i grupare a datelor n structuri mai eficiente ce se pot acomoda viitoarelor actualizri.

1.3.2.1 Anomalii i redundane

De ce o schem a bazei de date poate fi ,,rea? Anomaliile, care apar n lucrul cu baza de date, se produc datorit dependenelor ,,nedorite care se manifest ntre atributele din cadrul schemelor relaiilor din baza de date. Aceste dependene determin creterea redundanei datelor i reducerea flexibilitii structurii bazei de date, fcnd extrem de dificil lucru cu ea.

Deci, n primul rnd, o schem poate fi ineficient fiindc conine o mulime de date redundante.

n al doilea rnd, ca o consecin a primei cauze, actualizarea unei baze redundante poate duce la situaia cnd ea va conine fapte logic contradictorii. O parte de date pot rmne nemodificate. Deci o baz de date ,,rea duce la apariia unor inconsistene la modificarea datelor.n al treilea rnd, o baz de date ,,rea poate limita posibilitatea de inserare a datelor. ntr-o relaie nu pot fi introduse date despre o entitate pn nu se cunosc alte date conform restriciilor de integritate ale entitii.

n al patrulea rnd, pot aprea pierderi de date la tergere. In mod normal, prin operaia de tergere trebuie s se poat elimina din baza de date numai datele pe care dorim s le tergem. Atunci cnd, concomitent cu aceste date sunt terse i altele, care nu mai pot fi reconstruite din baza de date, spunem c la operaia de tergere se produc pierderi de date.

1.3.2.2 Forma normal unu

Precum s-a menionat, domeniile atributelor sunt simple, adic ele sunt atomice (nu pot fi descompuse din punctul de vedere al sistemului de gestiune al bazei de date). Cu alte cuvinte, valorile ce le pot primi atributele nu sunt liste, mulimi sau alte structuri complexe.

Definiia Schema relaional R se gsete n forma normal unu, dac pentru orice atribut A din R valorile din dom(A) sunt atomice. Schema unei baze de date se gsete n forma normal unu, dac orice schem relaional din ea este n forma normal unu.

Forma normal unu este forma de baz a relaiilor, care figureaz ca cerin minimal la majoritatea SGBD-urilor.

Definirea noiunii de valoare atomic e destul de dificil. Valoarea atomic dintr-o aplicaie n alt aplicaie poate fi considerat nonatomic. De aceea ne vom conduce de urmtoarea regul: atributul nu este atomic, dac n aplicaii el se utilizeaz pe pri.

n general se cunosc dou tipuri de atribute nonatomice. Acestea sunt listele sau mulimile de valori i atributele compuse.

Utilitatea formei normale unu este destul de evident. Listele de valori distrug structura natural dreptunghiular a unei relaii. Este extrem de greu s te referi la un element din grupul de valori, fiindc trebuie specificat cumva poziia valorii cutate. i, bineneles, c operaia de actualizare nu poate fi efectuat.

n afar de aceasta, diverse pri ale unui atribut partiionat pot s se comporte n mod diferit din punctul de vedere al dependenelor. Forma normal unu poate exprima dependenele la aa grad de detaliere, de care avem nevoie.

1.3.2.3 Forma normal doi

Apariia formei normale doi a fost motivat de reducerea redundanei i eliminarea unor anomalii ce apar la actualizarea schemelor n forma normal unu.

S trecem la expunerea strict a formei normale doi.

Definiia 1. Fie relaia r(R) i AR. Atributul A se numete primar, dac el aparine unei chei a schemei R i nonprimar n caz contrar.

Definiia 2. Fie XA o dependen funcional netrivial. Atributul A este parial dependent de X, dac exist o submulime proprie Y a mulimii X i YA. Dac nu exist o astfel de submulime proprie, se spune c A depinde complet de X.

Definiia 3. Schema unei relaii R se gsete n forma normal doi n raport cu mulimea de dependene funcionale F, dac ea se gsete n forma normal unu i orice atribut nonprimar nu depinde parial de careva cheie a schemei R. Schema bazei de date se gsete n forma normal doi, dac orice schem relaional a ei se gsete n forma normal doi.

Problema determinrii, dac un atribut e primar e legat de problema gsirii cheilor unei relaii. Prin urmare, determinarea dac o schem se gsete n forma normal doi e o problem NP-complet.

1.3.2.4 Forma normal trei

Definiia 1. Fie relaia r(R), X, Y R i A R. Vom spune c atributul A depinde tranzitiv de X prin Y, dac sunt satisfcute condiiile:

(1) XY,

(2) YX (adic X nu depinde funcional de Y),

(3) YA,

(4) A XY.

n aceast definiie, condiiile (1) i (3) implic XA conform regulii tranzitivitii. Condiia (2) este esenial, de altfel XY. Condiia (4), de asemenea, e esenial, n caz contrar XA poate fi dedus cu ajutorul reflexivitii (dac A X) sau cu ajutorul regulii proiectivitii (dac A Y).

Definiia 2. Schema R se gsete n forma normal trei n raport cu o mulime de dependene funcionale F, dac R se gsete n forma normal unu i orice atribut nonprimar nu depinde tranzitiv de careva cheie a schemei R. Schema bazei de date Db={R1, ...,Rm} se gsete n forma normal trei, dac orice schem relaional Ri Db, 1 i m, se gsete n forma normal trei.

E fireasc ntrebarea, care este corelaia dintre forma normal trei i forma normal doi. Rspunsul l d urmtoarea teorem.

Teorema 1. Schema unei relaii ce se gsete n forma normal trei se gsete i n forma normal doi.

Demonstraie. Teorema poate fi reformulat n felul urmtor: dac schema unei relaii nu se gsete n forma normal doi, atunci ea nu se gsete nici n forma normal trei. Deci trebuie s artm c dependena parial implic dependena tranzitivitii.

Fie schema relaional S=(R,F) i presupunem c atributul nonprimar A e parial dependent de o cheie, fie K. Adic KAF+ i K1AF+, unde K1K. Conform regulii reflexivitii, K1K implic KK1F+ i atunci condiia (1) a definiiei 1 e satisfcut. Condiia (2) tot e satisfcut, adic K1K, fiindc n caz contrar K nu este cheie. Condiia (3) urmeaz din ipotez, iar condiia (4) e satisfcut din presupunerea c A este atribut nonprimar, adic nu aparine cheii K i deci nici lui K1 Prin urmare, atributul nonprimar A depinde tranzitiv de cheia K.

Definiia formei normale trei poate fi formulat i altfel.

Definiia 3. Schema unei relaii se gsete n forma normal trei, dac orice atribut ce depinde tranzitiv de cheie este primar.

Atunci putem formula urmtoarea teorem.

Teorema 2. Schema R se gsete n forma normal trei n raport cu mulimea de dependene funcionale F, dac pentru orice dependen netrivial XA F+(1) X este supercheie pentru R sau

(2) A este atribut primar.

Demonstraie. Fie XA o dependen netrivial i fie K o cheie a schemei R. Din definiia de mai sus reiese c nu e necesar examinarea cazului, cnd A este atribut primar. Condiia (2) e evident. S artm c pentru orice atribut nonprimar A, dependena K A nu este tranzitiv. Dac presupunem c condiia (1) nu e satisfcut, atunci KX F+ (fiindc K e cheie) i XK. Dar aceasta este dependena tranzitiv a atributului nonprimar de cheie.

Aducerea schemelor n forma normal trei

Normalizarea este procesul de aducere a schemei ntr-o form normal dat. Aducerea schemei ntr-o form normal trei poate fi efectuat prin descompunere sau prin sintez.

Normalizarea prin descompunere are mai multe dezavantaje descrise mai jos.

Dat fiind faptul c algoritmul de normalizare prin descompunere necesit calcularea cheilor schemei i determinarea atributelor nonprimare, examinarea dependenelor din F+ valide n schema curent, complexitatea procesului de normalizare nu e polinomial. Acesta e primul dezavantaj.

Intr-al doilea rnd, nu ntotdeauna putem obine un numr minimal de scheme relaionale normalizate dintr-o schem dat.

A treia problem const n apariia dependenelor pariale n procesul descompunerii schemelor. Aceste dependene genereaz scheme cu mai multe scheme relaionale dect e nevoie.

A patra problem este c normalizarea prin descompunere nu ntotdeauna conserv dependenele funcionle.

A cincea problem const n faptul c normalizarea prin descompunere poate produce scheme, n care dependenele ce pot fi utilizate mai departe n descompunere, sunt latente.

Normalizarea prin sintez - o alta metod de aducere a schemelor la forma normal trei, ce nu genereaz problemele descrise mai sus.

Metoda propus este o procedur de sintez, fiindc pleac de la mulimea de dependene funcionale F cu determinaii dintr-un singur atribut i produce schema bazei de date Db={R1,...,Rm} asupra R= R1...Rm. Schema bazei de date trebuie s satisfac urmtoarele patru condiii:

(1) Mulimea de dependene formate de cheile fiecrei scheme Ri trebuie s fie o acoperire a mulimii iniiale F de dependene funcionale, adic F = {KRi | RiDb, 1 i m, K - cheie}.

(2) Orice schem relaional Ri din Db se afl n forma normal trei.

(3) Nu exist o schem a bazei de date ce satisface condiiile (1) i (2) cu mai puine scheme relaionale.

(4) Orice relaie r(R) ce satisface F se descompune fr pierderi asupra schemei Db, adic

r= .

S considerm aceste condiii.

Condiia (1) garanteaz c descompunerea relaiei r asupra schemei Db conserv dependenele funcionale F. n afar de aceasta condiia (1) ne asigur cp unicele dependene valide n Ri, 1im, au n calitate de determinani cheile schemei Ri. Satisfacerea condiiei (1) este soluia problemei patru din seciunea precedent.

Condiia (2) este scopul principal al normalizrii i necesitatea ei a fost detaliat studiat.

Condiia (3) ne ocrotete de scheme redundante, deci ea soluioneaz problemele doi i trei din seciunea precedent.

Condiia (4) de asemenea a fost considerat.

Problema cinci din seciunea precedent nu apare graie ndeplinirii concomitente a condiiilor (1) i (3). Iar problema unu nu se mai pune, fiindc complexitatea algoritmului de sintez descris mai jos este polinomial.

Algoritmul SYNT (F, Db)

Intrare: F o mulime de dependene funcionale

Ieire: Db schema bazei de date n forma normal trei.

1. Se gsete o acoperire nonredundant Fn a mulimii F

2. Se construiete o acoperire redus n stnga Fr a mulimii Fn3. Mulimea Fr se partiioneaz n clase de echivalene

4. Se construiete o mulime J n felul urmtor: fie J=. Pentru orice dou dependene funcionale din Fr cu determinaii X i Y, unde XY, se modific J, J:=J{XY, YX}. Pentru orice AY, dac XA se gsete n Fr, atunci Fr:= Fr \ {XA}. Acelai lucru e valabil i pentru orice BX. Dac YBFr, atunci Fr:=Fr\ {YB}.

5.Se elimin dependenele tranzitive. Se gsete o mulime Fr1Fr, ce satisface (Fr1J)+ (FrJ)+ i nici o submulime proprie a mulimii Fr1 nu satisface condiia dat. Apoi se includ dependenele din J n clasele de echivalen a mulimii Fr1 i fie c obinem mulimea G de dependene funcionale.

6.Se construiesc schemele R1,...,Rm. Fiecare schem Ri include atributele dependenelor funcionale din clasa de echivalen i i n final obinem schema bazei de date Db:=(R1,..., Rm}.

S ne oprim acum asupra corectitudinii algoritmului. Algoritmul expus formeaz un numr minimal de scheme relaionale n Db.

Teorema 3. Dac Db este schema bazei de date sintetizate din mulimea F, atunci Db conine cel puin |EFn| scheme relaionale.

Demonstraie. Dependenele ce sunt incluse ntr-o schem relaional Ri, 1 i m, au determinani echivaleni. Deci Db conine attea scheme n cte clase de echivalen este partiionat mulimea G. Urmeaz |EG|=|EFn| Dar e cunoscut faptul c |EF||EFn|, adic mulimea nonredundant const dintr-un numr minimal de clase de echivalen.

Aceast teorem ne garanteaz c algoritmul de sintez satisface condiia (3).Condiia (1) este asigurat, fiindc F Fn Fr G.

Condiia (2) e satisfcut de pasul. 5 al algoritmului ce elimin dependenele tranzitive.

Acum s vedem dac e satisfcut i condiia (4). Cu toate c algoritmul de sintez soluioneaz toate problemele din normalizrii prin descompunere, nu ntotdeauna schema bazei de date posed proprietatea jonciunii fr pierderi. Adic nu ntotdeauna e satisfcut condiia (4). Acest lucru nu se petrecea n cazul normalizrii prin descompunere.

Un alt dezavantaj al algoritmului de sintez e legat de atributele ce nu sunt antrenate de mulimea de dependene funcionale F. Aceste dou dezavantaje pot fi eliminate, introducnd aa-numita cheie universal.

Definiia 4. Fie Db = {R1,...,Rm} o schem a bazei de date asupra atributelor R = R1...Rm i F o mulime de dependene funcionale. Mulimea XR se numete cheie universal, dac F=X1R i nu exist X1, unde X1X, ce ar satisface F =X1R.Deci, ca schema bazei de date s posede proprietatea jonciunii fr pierderi, ea trebuie s conin o schem relaional n care o cheie a ei e universal.

Vom modifica algoritmul de sintez pentru a elimina cele dou dezavantaje menionate mai sus.

La mulimea iniial de dependene funcionale F se adaug o dependen funcional RC, unde R= R1...Rm, iar CR.

Este clar c la primul pas al algoritmului dependena RC nu va fi eliminat, fiindc ea nu e redundant n F.

La al doilea pas ea va fi redus n stnga, fie R1C.

La etapa de partiie, dac ea va intra ntr-o clas de echivalen cu alte dependene, atunci ea se elimin din Fr i algoritmul continu mai departe. Dac ea singur formeaz o clas de echivalen, atunci R1C genereaz schema Rm= R1C cu cheia R1.

La sfritul algoritmului se elimin atributul C din schema Rm, deci Rm = R1.

Un efect adiional al normalizrii este creterea numrului de structuri de date n baza de date. Aceasta ns afecteaz eficiena de cutare a datelor n sistemul informatic. Dei normalizarea reduce spaiul total necesar de pstrare a datelor, ns crete timpul n care poate fi cutat informaia. Pentru procesarea interpelrilor i extragerii rspunsurilor apare necesitatea rejoncionrii relaiilor. Prin aceasta i se explic faptul c primele baze de date relaionale au aprut pe calculatoare performante, iar mai trziu au aprut sisteme instalate pe microcomputere.

n ceea ce privete duplicatele de date trebuie de menionat c ele nu pot fi comparate cu redundana de date ce este redus n procesul de normalizare. Redundana genereaz anomalii de actualizare a datelor. Pe cnd duplicatele aprute dup normalizare, nu genereaz asemenea anomalii.

2 Mijloacele de elaborare

2.1 Web-programare: limbajul PHP

2.1.1 Noiuni de PHP

PHP este un limbaj de scenarii de server ( server scripting language), mbinat n HTML, care se interpreteaz i se execut pe server.

PHP este un preprocesor HTML. Astfel lucrul limbajului este construit pe baza schemei de mai jos.

Fig. 12 Principiile de lucru al limbajului PHP

Pna a se transmite fiierul browser-ului, el este analizat de un preprocesor-interpretator. Acesta la rndul su prelucreaz doar acele fiiere care au o extensie anumit (de obicei, acestea sunt .phtml sau .php3, dar ele pot fi modificate) i conin (dei nu este o cerin obligatorie) un cod pentru preprocesor. Astfel PHP-codul se ruleaz la server i browser-ului se transmite rezultatul n form de HTML-pagin, care se poate deosebi radical de pagina care se pstreaz pe server. Paginile obinuite cu extensiile .HTML/.HTM Web-serverul le va transmite browser-ului fr nici o prelucrare.

Deosebirea de baz de CGI-scripturi, scrise n alte limbaje, de tipul Perl sau C este aceea c n CGI-programe se scrie codul HTML care este rezultant, dar utiliznd PHP n pagina HTML se introduce programa-scipt prin indicarea tag-urilor de deschidere i nchidere respective ().

PHP se numete limbajul scenariilor de server spre deosebire de JavaScript/JScript/VBScript, care se numesc limbaje de scenarii client. Aceasta nsemn c scenariul PHP se execut la server i clientului se transmite rezultatul execuiei, dar codurile JavaScript se transmit complet la maina client executarea avnd loc numai la browser.

2.1.2 Posibilitile PHP

n cteva cuvinte se poate spune c cu PHP se poate face tot ce se poate face cu CGI-programele. De exemplu de prelucrat datele din forme, de generat pagini dinamice, de primit i de transmis valorile cookies.

n afar de aceasta PHP are suport de lucru cu multe Sisteme de Gestiune de Bazde de Date (SGBD), ceea ce face elaborarea web-aplicaiilor cu utilizarea BD foarte simpl.

Mai jos este prezentat lista incomplet a BD-urilor cu care poate interaciona limbajul:

Adabas

InterBase

Solid

dBase

MSQL

Sybase

Empress

MySQL

Velocis

FilePro

Oracle

Unix dbm

Informix PostgreSQL ODBC2.1.3 Avantajele PHPProiectanii de web-aplicaii cunosc c o web-pagin nu este o simpl mbinare de text i imagini. Un site ce merit atenie este acel care susine un nivel oarecare de interactivitate cu utilizatorii: cutare de informaii, vnzare de produse, conferine. Pn nu demult toate acestea se realiza tradiional cu CGI-scripturi, scrise n Perl. Dar s-a dovedit c CGI-scripturile sunt foarte ru scalabile. Fiecare apel de CGI-script cere de la nucleu crearea unui nou proces, ceea ce duce la pierderea timpului procesoral i ocuparea memoriei operative. PHP propune o nou variant el funcioneaz ca o parte a web-serverului, astfel asemnndu-se cu ASP de la Microsoft i Cold Fusion de la Allaire.

Sintaxa PHP se aseamn cu sintaxa C i Perl. Programatorii, cunoscui cu programarea, rapid vor deprinde scrierea programelor n PHP. n acest limbaj nu exist o tipizare strict de date i nu sunt necesare operaii de alocare/eliberare ale memoriei.

Spre deosebire de Perl-programe PHP-codul vizual se citete i se nelege uor.

Adugtor la faptul c PHP se rspndete fr plat (dei MySQL cere cumprarea licenei n cazul utilizrii ei n scopuri comerciale) tandemul PHP-MySQL are caracteristica cross-platformei. Aceasta nsemn c se poate elabora aplicaii lucrnd n mediul Windows, destinate pentru funcionarea lor sub Unix. n afar de aceasta, PHP poate funciona fie ca un CGI-proces extern, fie ca un interpretator simplu de scripturi sau ca un modul al web-serverului Apache sau IIS.

i n sfrit, acest produs se elaboreaz cu eforturi comune, de aceea exist mult documentaie i liste ntregi de adrese la care se poate adresa n caz de necesitate.

2.1.4 Neajunsurile PHP

1. Neajunsul de baz al PHP 3 este aceea c dup ideologie PHP iniial a fost orientat pentru scrierea unor scripturi mici. Dei motorul a fost de cteva ori rescris, PHP 3 nu este util pentru utilizarea unor proiecte complexe.

2. PHP este un limbaj interpretativ, rezultnd de aici i fatul c nu poate concura la vitez cu C-ul compilativ. Dei n cazul scrierii unor programe mici, ce defapt este caracteristic proiectelor PHP, cnd tot proiectul este coninut doar din cteva pagini cu cod, apar cheltuieli de ocupare a memoriei la ncrcare i la apelul CGI-programei, scrise n C.

3. Nu exist o baz de module gata, ca de exemplu CPAN la Perl.

Nu exist susinerea sesiunilor (session), ca de exemplu la ASP.

2.2 Web-sisteme BD: serverul MySQL

2.2.1 Noiuni de MySQL

MySQL este un server de baze de date mic,compact multiflux. MySQL se caracterizeaz prin o vitez mare, stabilitate i uurin n utilizare.

MySQL a fost elaborat de firma TcX pentru necesitile sale interne, care constau n prelucrarea rapid a unor baze foarte mari. Compania susine, c utilizeaz MySQL din anul 1996 pe un server cu mai mult de 40 de BD, care conineau 10,000 de tabele din care peste 500 aveau 7 mln. de rnduri.

MySQL este soluia ideal pentru aplicaiile mici i mijlocii. Sursele serverului sunt compilate pe o mulime de platforme. Posibilitile cele mai mari se pot manifesta pe serverele Unix, unde este susinerea multifluxului, ceea ce asigur ridicarea productivitii de cteva ori. n varianta sub Windows MySQL poate fi lansat ca un servilciu al Windows NT sau ca un proces obinuit sub Windows 95/98.

La momentul actual MySQL mai este n stadiul de elaborare, dei versiunile 3.22 sunt deja complet lucrative.

MySQL-serverul este rspndit fr plat pentru utilizarea necomercial. n caz contrar, este necesar procurarea licenei, care este la un pre de 190 EUR.

2.2.2 Posibilitile MySQL

MySQL susine limbajul de interpelri SQL n standardul ANSI 92 i n afar de aceasta are un ir de extensii la acest standard, care nu exist la nici o alt SGBD.

Posibilitile MySQL (din cele mai importante) sunt:

1. Menine un numr nelimitat de utilizatori, ce lucreaz concomitent cu baza de date;

2. Numrul de rnduri din tabele poate atinge cifra de 50 mln.;

3. Execuia rapid a comenzilor. Este, posibil, cel mai rapid server din cele existente;

4. Sistem simpl i efectiv de securitate.

2.2.3 Neajunsurile MySQL

MySQL este ntr-adevr un server foarte rapid, dar pentru atingerea acestora elaboratorii au trebuit s jertfeasc cu unele cerine ctre SGBD-urile relaionale. n MySQL sunt lips:

1. Susinerea interpelrilor interioare, de tipul SELECT * FROM table1 WHERE id IN (SELECT * FROM table2). Se spune c aceasta va fi posibil n versiunea 3.23;

2. Nu este realizat susinerea tranzaciilor. n schimb se propune utilizarea LOCK/UNLOCK TABLE;3. Nu exist meninerea cheilor externe (foreign);

4. Nu exist susinerea procedurilor i trigger-ilor;

Dup cum susin creatorii anume punctele 2-4 dau posibilitatea atingerii vitezei mari. Realizarea lor ar duce la micorarea producivitii serverului. Acestea, de fapt, nu sunt critice la crearea web-aplicaiilor, care mpreun cu rapiditatea mare i preurile mici, au permis serverului s devin popular.

3 Descrierea elaborrii

3.1 Proiectarea logic a Bazei de Date C-Market.md

Pentru a construi o Baz de Date viabil i integr, care ar putea s rspund la orice interpelare al unui user, n care ar lipsi anomalii de orice origine, ar avea o structur rezonabil este necesar ca baza de date s fie adus la o form, numit form normalizat. Pentru nceput este necesar determinarea dependenelor funcionale care de fapt sunt nite constrngeri impuse datelor n Baza de Date.

3.1.1 Determinarea dependenelor funcionale

Pentru a determina dependenele funcionale este necesar specificarea domeniului de activitate pentru care este necesar stocarea datelor i determinarea tuturor atributelor care ar participa la caracterizarea datelor.

Avnd scopul de a proiecta o BD pentru colectarea informaiei despre calculatoare i componente este normal s avem atribute ce ar caracteriza comerciantul i produsele vndute de el.

La fel este necesar specificarea tipurilor de produse care vor fi pstrate n BD. Analiznd produsele ce sunt comercializate de ctre firmele specializate pe piaa noastr se propune a fi pstrate urmtoarele:

1. Computere

2. Componente

3. Printere

4. Scanere

5. Back-UPS

6. Modeme

7. Monitoare

De asemenea este evident faptul c va fi necesar pstrarea informaiei i despre comerciant, coninutul coului i despre comenzile efectuate.

Deoarece dependenele nu pot fi demonstrate, unica posibilitate de ale determina este analiza atent a semanticii atributelor avute, care la rndul su se iau din lumea real. Astfel, vom avea:

1. Computere:

[idcomputer]([numecomputer] identificatorul determin n mod univoc numele computerului;

[idcomputer]([producator] orice computer cu cod dat este fabricat de un singur productor(n caz de exist mai muli ei au o marc comercial comun);[idcomputer]([categoria_computer] orice computer cu cod dat este dintr-o anumit categorie (de exemplu, server, notebook i PC);[idcomputer]([caracteristici] orice computer cu cod dat are/detrmin anumite caracteristici bine definite;[numecomputer][producator][categoria_computer][caracteristici]([idcomputer] un computer cu un nume ((), fabricat de un anumit productor, dintr-o categorie definit cu caracteristici inedite determin n mod univoc un identificator n baz.

[idcomputer][idcomerciant]([preted] orice computer are un singur pre en detail la comerciantul dat.

[idcomputer][idcomerciant]([preteg] - orice computer are un singur pre en gros la comerciantul dat.[idcomputer][idcomerciant]([stoc] orice comerciant are un singur stoc pentru computerul dat.[idcomputer][idcomerciant]([garantie] orice comerciant ofer o singur garanie pentru computerul dat.2. Componente (caracterizarea dependenelor este analogic celor de la computere):

[idcomponenta]([numecomponenta]

[idcomponenta]([producator]

[idcomponenta]([categoria_componenta]

[idcomponenta]([caracteristici]

[numecomponenta][producator][categoria] [caracteristici]([idcomponenta]

[idcomponenta][idcomerciant]([preted]

[idcomponenta][idcomerciant]([preteg]

[idcomponenta][idcomerciant]([stoc]

[idcomponenta][idcomerciant]([garantie]

3. Printere (caracterizarea dependenelor este analogic celor de la computere):

[idprinter]([numeprinter]

[idprinter]([producator]

[idprinter]([categoria_printer]

[idprinter]([caracteristici]

[numeprinter][producator][categoria] [caracteristici]([idprinter]

[idprinter][idcomerciant]([preted]

[idprinter][idcomerciant]([preteg]

[idprinter][idcomerciant]([stoc]

[idprinter][idcomerciant]([garantie]

4. Scanere (caracterizarea dependenelor este analogic celor de la computere):

[idscaner]([numescaner]

[idscaner]([producator]

[idscaner]([categoria_scaner]

[idscaner]([caracteristici]

[numescaner][producator][categoria] [caracteristici]([idscaner]

[idscaner][idcomerciant]([preted]

[idscaner][idcomerciant]([preteg]

[idscaner][idcomerciant]([stoc]

[idscaner][idcomerciant]([garantie]

5. Back-UPS (caracterizarea dependenelor este analogic celor de la computere):

[idbackups]([numebackups]

[idbackups]([producator]

[idbackups]([categoria_backups]

[idbackups]([caracteristici]

[numebackups][producator][categoria] [caracteristici]([idbackups]

[idbackups][idcomerciant]([preted]

[idbackups][idcomerciant]([preteg]

[idbackups][idcomerciant]([stoc]

[idbackups][idcomerciant]([garantie]

6. Modeme (caracterizarea dependenelor este analogic celor de la computere):

[iddialup]([numedialup]

[iddialup]([producator]

[iddialup]([categoria_dialup]

[iddialup]([caracteristici]

[numedialup][producator][categoria] [caracteristici]([iddialup]

[iddialup][idcomerciant]([preted]

[iddialup][idcomerciant]([preteg]

[iddialup][idcomerciant]([stoc]

[iddialup][idcomerciant]([garantie]

7. Monitoare (caracterizarea dependenelor este analogic celor de la computere):

[idmonitor]([numemonitor]

[idmonitor]([producator]

[idmonitor]([categoria_monitor]

[idmonitor]([caracteristici]

[numemonitor][producator][categoria] [caracteristici]([idmonitor]

[idmonitor][idcomerciant]([preted]

[idmonitor][idcomerciant]([preteg]

[idmonitor][idcomerciant]([stoc]

[idmonitor][idcomerciant]([garantie]

8. Comerciant:

[idcomerciant]([numecomerciant]

[idcomerciant]([bancacomerciala]

[idcomerciant]([contbancar]

[idcomerciant]([mfo]

[idcomerciant]([codfoscal]

[idcomerciant]([oras]

[idcomerciant]([adresa1]

[idcomerciant]([adresa2]

[idcomerciant]([telefon]

[idcomerciant]([fax]

[numecomerciant][bancacomerciala][contbancar]

[mfo][codfoscal][oras][adresa1][adresa2][telefon][fax]( [idcomerciant]

9. Co[idreg]([timp]

[idreg]([iduser]

[idreg]([idprodus]

[idreg]([idcomerciant]

[idreg]([tablename]

[idreg]([pret]

[idreg]([cantiate]

10. Comanda

[idcomanda]([iduser]

[idcomanda]([numecumparator]

[idcomanda]([oras]

[idcomanda]([adresa1]

[idcomanda]([adresa2]

[idcomanda]([telefon]

[idcomanda]([fax]

3.1.2 Normalizarea

Pentru aducerea schemelor n forma normal trei se va utiliza normalizarea prin sintez, care a fost descris n punctul 1.3.2.4 i anume varianta modificat.

Pentru a facilita utilizarea dependenelor funcionale atributele de mai sus se vor nota cu litere majuscule ale alfabetului latin:

[idcomputer] A

[numecomputer] B

[producator] C

[categoria_monitor] D

[caracteristici] E

[preted] F

[preteg] G

[stoc] H

[garantie] I

[idcomerciant] J

[numecomerciant] K

[bancacomerciala] L

[contbancar] M

[mfo] N

[codfoscal] O

[oras] P

[adresa1] R

[adresa2] S

[telefon] T

[fax] U

n rezultat vom avea dependenele:

F={A(B, A(C, A(D, A(E, BCDE(A, AJ(F, AJ(G, AJ(H, AJ(I, J(K, J(L, J(M, J(N, J(O, J(P, J(R, J(S, J(T, J(U, KLMNOPRSTU(J}

Pentru satisface proprietatea jonciunii fr pierderi se introduce nc o dependen i vom primi c F= F ( {ABCDEFGHIJKLMNOPRSTU((}.

Pentru a evita o mai mare complexitate pentru produsele : printere, scanere, back-UPS-uri, modeme, monitoare schemele se vor construi prin analogie cu schemele pentru computere.

S parcurgem algoritmul:

1. Se gsete o mulime nonredundant Fn a mulimii F de dependene funcionale:

(A)+= (fr A(B)(A)+= (fr A(C)(A)+= (fr A(D)

(A)+= (fr A(E)

(BCDE)+= (fr BCDE(A)

(AJ)+= (fr AJ(F)

(AJ)+= (fr AJ(G)

(AJ)+= (fr AJ(H)

(AJ)+= (fr AJ(I)

(J)+= (fr J(K)

(J)+= (fr J(L)

(J)+= (fr J(M)

(J)+= (fr J(N)

(J)+= (fr J(O)

(J)+= (fr J(P)

(J)+= (fr J(R)

(J)+= (fr J(S)

(J)+= (fr J(T)

(J)+= (fr J(U)

(KLMNOPRSTU)+= (fr KLMNOPRSTU(J)

Este evident c dependena ABCDEFGHIJKLMNOPRSTU(( nu este redundant i deci rmne n Fn. Se observ c nu exist dependene redundante i avem Fn=F

2. Se construiete o acoperire redus din stnga Fr a mulimii Fn.

Avem Fn={A(B, A(C, A(D, A(E, BCDE(A, AJ(F, AJ(G, AJ(H, AJ(I, J(K, J(L, J(M, J(N, J(O, J(P, J(R, J(S, J(T, J(U, KLMNOPRSTU(J, ABCDEFGHIJKLMNOPRSTU((}

Este evident c dependenele cu un singur atribut n partea stng vor rmne intacte. S examinm celelalte:

BCDE(A:

(BCDE)+=(CDE)+=

(BDE)+=

(BCE)+=

(BCD)+=

Se observ c n dependena dat nu avem atribute redundante.

AJ(F

(AJ)+=

(A)+=

(J)+=

Se observ c n dependena dat nu avem atribute redundante.

AJ(G

(AJ)+=

(A)+=

(J)+=Se observ c n dependena dat nu avem atribute redundante.

AJ(H

(AJ)+=

(A)+=

(J)+=Se observ c n dependena dat nu avem atribute redundante.

AJ(I

(AJ)+=

(A)+=

(J)+=Se observ c n dependena dat nu avem atribute redundante.

KLMNOPRSTU(J

(KLMNOPRSTU)+=< KLMNOPRSTU, KLMNOPRSTUJ>

(LMNOPRSTU)+=

(KMNOPRSTU)+=

(KLNOPRSTU)+=

(KLMNPRSTU)+=

(KLMNORSTU)+=

(KLMNOPSTU)+=

(KLMNOPRTU)+=

(KLMNOPRSU)+=

(KLMNOPRST)+=

Dependena nu are atribute redundante.

ABCDEFGHIJKLMNOPRSTU(((ABCDEFGHIJKLMNOPRSTU)+=

(BCDEFGHIJKLMNOPRSTU)+=#S-a produs la final i simbolul (, deci atributul A este redundant. Vom avea n continuare dependena: BCDEFGHIJKLMNOPRSTU(((CDEFGHIJKLMNOPRSTU)+=# (fr atributul B)

(BDEFGHIJKLMNOPRSTU)+=# (fr atributul C)

(BCEFGHIJKLMNOPRSTU)+=# (fr atributul D)

(BCDFGHIJKLMNOPRSTU)+=# (fr atributul E)

Atributele B,C,D,E nu sunt redundante i nu se elimin, iar dependena rmne aceeai.

(BCDEGHIJKLMNOPRSTU)+=#(fr atr. F)

F este atribut redundant i se elimin. Obinem dependena:

BCDEHIJKLMNOPRSTU(((BCDEHIJKLMNOPRSTU)+=# (fr atr. G)

G este atribut redundant i se elimin. Obinem dependena:

BCDEHIJKLMNOPRSTU(((BCDEIJKLMNOPRSTU)+=# (fr atr. H)

H este atribut redundant i se elimin. Obinem dependena:

BCDEIJKLMNOPRSTU(((BCDEJKLMNOPRSTU)+=# (fr atributul I)

I este atribut redundant i se elimin. Obinem dependena:

BCDEJKLMNOPRSTU(((BCDEKLMNOPRSTU)+=# (fr atributul J)Atributul J este redundant, deci se elimin i obinem dependena:

BCDEKLMNOPRSTU(((BCDE LMNOPRSTU)+=# (fr atributul K)

(BCDE KMNOPRSTU)+=# (fr atributul L)

(BCDE KLNOPRSTU)+=# (fr atributul M)

(BCDE KLMOPRSTU)+=# (fr atributul N)

(BCDE KLMNPRSTU)+=# (fr atributul O)

(BCDE KLMNORSTU)+=# (fr atributul P)

(BCDE KLMNOPSTU)+=# (fr atributul R)

(BCDE KLMNOPRTU)+=# (fr atributul S)

(BCDE KLMNOPRSU)+=# (fr atributul T)(BCDE KLMNOPRST)+=# (fr atributul U)

Atributele K, L, M, N, O, P, R, S, T, U nu sunt redundante (nu se obine () i deci nu se elimin. Primim urmtoarea dependen:

BCDEKLMNOPRSTU((Dar trebuie de menionat un lucru c dac s verificm redundana atributelor ntr-o alt ordine dependena final ar avea poate mai puine atribute, sigur dac aceast ordine se observ uor. n cazul dat dac nu am elimina atributele A i J s-ar dovedi prin metodele analogice c atributele B, C, D, E, K, L, M, N, O, P, R, S, T, U sunt redundante, n afar de cele pentru care s-a dovedit deja redundana (F, G, H i I).

Astfel dependena dat se reduce la:

AJ((NOT: Simbolul # nsemna c este indicat doar producia final.

3. Se partiioneaz n clase de echivalen mulimea Fr.

Fr={ A(B, A(C, A(D, A(E, BCDE(A, AJ(F, AJ(G, AJ(H, AJ(I, J(K, J(L, J(M, J(N, J(O, J(P, J(R, J(S, J(T, J(U, KLMNOPRSTU(J, AJ((}

(A)+=

(BDCE)+=

(AJ)+=

(J)+=

(KLMNOPRSTU)+=< KLMNOPRSTU, JKLMNOPRSTU>

Deoarece simbolul ( intrat ntr-o clas de echivalen, dependena AJ(( se elimin din Fr.

Astfel am primit clasele:

(EF={ EF(A)={ A(B, A(C, A(D, A(E, BCDE(A}, EF(AJ)={ AJ(F, AJ(G, AJ(H, AJ(I }, EF(J)={ J(K, J(L, J(M, J(N, J(O, J(P, J(R, J(S, J(T, J(U, KLMNOPRSTU(J}}.

4. Se construiete mulimea JJ.

Iniial JJ=(.

Apoi avnd clasele de echivalen vom primi:

JJ=JJ({A(BCDE, BCDE(A, KLMNOPRSTU(J, J(KLMNOPRSTU}.

Conform algoritmului dependenele din clasele EF(A) i EF(J) se elimin complet. Primim n rezultat Fr={AJ(F, AJ(G, AJ(H, AJ(I}.

5. Se elimin dependenele tranzitive.

Se observ uor c Fr1=Fr. Dependenele din mulimea JJ se includ n clasele de echivalen ale Fr1.

EF(A)={A(BCDE, BCDE(A}

EF(AJ)={AJ(F, AJ(G, AJ(H, AJ(I }

EF(J)={J(KLMNOPRSTU, KLMNOPRSTU(J}

6. Se construiesc schemele bazei de date.

Conform algoritmului vom avea Db:={ABCDE, AJFGHI, JKLMNOPRSTU}

Sfrit de algoritm.

Din motive de spaiu i de cretere a complexitii nu au fost incluse toate dependenele, dar prin acelai algoritm se obine baza de date cu urmtoarele scheme:

Comerciant

[idcomerciant][numecomerciant][bancacomerciala][contbancar][mfo][codfoscal][oras][adresa1][adresa2][telefon][fax]Computers

[idcomputer][numecomputer][producator][categoria_monitor][caracteristici]Computersm [idcomputer][idcomerciant][preted][preteg][stoc][garantie]Components

[idcomponenta][numecomponenta][producator][categoria_monitor] [caracteristici]Componentsm [idcomponenta][idcomerciant][preted][preteg][stoc][garantie]Printers

[idprinter][numeprinter][producator][categoria_monitor][caracteristici]Printersm

[idprinter][idcomerciant][preted][preteg][stoc][garantie]Scaners

[idscaner][numescaner][producator][categoria_monitor][caracteristici]Scanersm

[idscaner][idcomerciant][preted][preteg][stoc][garantie]Dialups

[iddialups][numedialups][producator][categoria_monitor][caracteristici]Dialupsm

[iddialups][idcomerciant][preted][preteg][stoc][garantie]Backups

[idbackups][numebackups][producator][categoria_monitor][caracteristici]Backupsm

[idbackups][idcomerciant][preted][preteg][stoc][garantie]Monitors

[idmonitor][numemonitor][producator][categoria_monitor][caracteristici]Monitorsm

[idmonitor][idcomerciant][preted][preteg][stoc][garantie]Comanda

[idcomanda][iduser][numecumparator][oras][adresa1][adresa2][telefon][fax]Cosh

[idreg][timp][iduser][idprodus][idcomerciant][tablename][pret][cantiate]

Schema legturilor dintre tabelele primite este prezentat n anexa 2.

3.2 Descrierea web-site-ului

Semnificaia denumirii paginii C-Market provine de la faptul c pagina dat este destinat colectrii i publicrii informaiei despre calculatoare i componente (de unde vine litera C) cu posibilitatea comandrii unor produse alese de la diferii comerciani de pe piaa noastr intern care i dau acordul de a publica datele lor conform unor condiii puse n prealabil de conductorii proiectului dat. Pagina este destinat tuturor celor care au acces la Internet i o adres de livrare. S-a ncercat o abordare ct mai simpl i structurat a construciei paginii pentru oferi celor care au accesat pagina o interactivitate ct mai mare, care este oferit de limbajul PHP n care a fost elaborat site-ul.

Se propune o structur asemntoare a pagini cu un program obinuit Windows. Deci exist un top-meniu, opiunile cruia sunt urmtoarele:

Prima;

Market;

Publicum;

Cautare.

3.2.1 Opiunea Prima

Pe prima pagin al site-ului se afl desenul logotip al site-ului (fig. 13), care const din textul VIRTUAL MARKET computers AND components., de asemenea exist un tabel cu cursul valutar i cu data curent.

Orice meniu al site-ului are un lateral-meniu, cu funcie de submeniu. Opiunea dat are urmtoarele componente:

Info-Site

Cumprare

Livrare

Autor

Info-Site conine informaii generale despre acest site, un fel de ce, unde, cum al site-ului. Explicaii despre cum se fac cutrile sau inserrile de date, fiecare opiune al meniului ce prezint.

Cumprare prezint informaii cum se poate face cumprarea.

Livrare ne ofer informaii despre livrarea i termii de livrare a produselor comandate.

Autor conine informaii despre autorul situ-lui.

Fig. 13 Prima pagin a site-ului

3.2.2 Opiunea Market

Opiunea dat este cea mai important al acestui site (fig. 14), care de fapt este destinat afirii informaiei din baza de date despre ale comercianilor nregistrai n sistem, produsele crora vor putea fi comandate. Este de menionat c n baza de date se pstreaz i date fr o plat prealabil a taxei de nregistrare al unor clieni doritori, dar produsele lor nu vor putea fi comandate i livrate la domiciliu.

Componentele meniului lateral sunt urmtoarele:

Computere

Componente

Printere

Scanere

Back-UPS

Modeme

Monitoare

Fiecare component, avnd denumire semnificativ, afieaz produsele din compartimentele respective. Datele sunt afiate ntr-o manier simplist: ntr-un tabel cu cmpurile:

Denumire

Categoria

Comerciant

Stoc

Pret en detail

Pret en gros

Garantie

Fig.14 Pagina Market

n cmpul Denumire sunt afiate denumirile produselor sub form de link-uri, pentru a putea fi vizionate caracteristicile produselor, apsnd link-ul respectiv (rezultatul este prezentat n fig.15).

n cmpul Categoria care se afieaz n bara de titlu se va afia categoria respectiv al produsului. Categoriile pentru fiecare compartiment sunt urmtoarele:

Computere

Notebook

PC

Server

Componente

Audio

CD-ROM

CPU

HDD

MB

RAM

Video

Printere

Jet

Laser

Matrix

Back-UPS

Back-UPS

Filtru

Scanere

Externe

Interne

Monitoare

D15

D17

D19

D24

Fig. 15 Vizionarea caracteristicilor produsului

n cmpul Comerciant se afieaz comerciantul sub form de link, apasnd-ul se vor afia date despre comerciant (fig. 16):

Fig. 16 Informaii despre comerciant

Denumirile cmpurilor urmtoare sunt semnificative i nu sunt necesare explicaii adugtoare.

Produsele pentru a fi comandate se adaug la nceput n co i trebuie de menionat c acest lucru nc nu oblig clientul la nimic. Adugarea se face la vi zionarea caracteristicilor produselor n compartimentul respectiv, unde se indic cantitatea care se dorete s fi adugate n co(fig. 17).

Fig. 17 Adugare n co

Vizionarea coului se face apsnd link-ul vizionare din compartimentul Cos al pagini Market, rezultatul va fi cel prezentat din figura 18.

Se observ c datele sunt afiate n acelai format cu excepia unui cmp adugtor, care are funcia de a terge produsul din co.

Fig. 18 Vizionare co

Pentru a se rentoarce la poziia precedent se apas link-ul Sfirsit vizionare. Pentru a efectua comanda se alege link-ul Efectuarea comenzii, n rezultat avem completarea unui formular(fig. 19)

Dup completarea formularului i verificri respective comanda este memorizat i produsele vor fi livrate n termini stabilii.

3.2.3 Opiunea Publicum

n principiu, aceast opiune se deosebete de cea precedent numai prin faptul c aici sunt afiate doar produsele persoanelor fizice fr posibilitate de fi comandate i livrate. Produsele ce se public aici sunt introduse prin apsarea Inserare din compartimentul Service. La apsare va aprea nite formulare de tipul celui prezentat n fig. 19.

Fig. 19 Formular

3.2.4 Opiunea Cautare

n aceast opiune se permite cutarea de produse pe compartimente. Pentru cutare se completeaz formularul din fig. 20.

Cutarea se efectueaz pe mai multe cmpuri: Denumirea, Categoria, Productor, Pre. Pentru a implica cmpurile se seteaz check-box-urile din dreptul fiecrui cmp, iar n cazul preului la selectul respectiv se alege o opiunea diferit de cea vid.

Este evident c n cmpurile Denumirea i Productor se scrie textul respectiv. La categorie se alege din lista prezentat.

Cutrile dup pre sunt destul de flexibile n sens c se ofer posibiliti largi de manevrare. Astfel avem: minim, maxim (n cazurile date textul de alturi nu se ia n considerare) i avem semnele: i =.

Fig. 20 Inserarea indicilor de cutare

Dup verificrile respective datele vor fi afiate n maniera obinuit.

4 Partea economic

4.1 Modele financiar-tranzacionale n comerul electronic

Internetul a devenit un canal de comer cu o putere incontestabil n a facilita i crete vnzrile unei game din ce n ce mai largi de produse i servicii. ntr-un raport recent al companiei Ernst & Young se arat c peste 32 % din consumatorii crora Internetul le este accesibil l utilizeaz pentru cumprturi.

Concept de Comer Electronic (EC)

Comerul electronic este un concept integrativ ce desemneaz o gam larg de servicii suport pentru procesele de afaceri, incluznd pota electronic interorganizaii, cataloage electronice, sisteme suport pentru comerul cu mrfuri i servicii; sisteme suport pentru preluare de comenzi, logistic i tranzacii; sisteme de raportare statistic i informaii pentru management.

CE se refer la desfurarea activitilor specifice mediilor de afaceri utiliznd n special mijloace electronice ntr-un sistem automatizat integrat pentru shimbul de informaii de afaceri. n CE informaia circul direct ntre agenii implicai n afacere (vnztor, cumprtor, banc), fr a mai utiliza suport hrtie (imprimant sau fax).

Termenul de CE cuprinde o gam larg de tehnologii. El acoper EDI (Electronic Data Interchange), mesageria X.400, pota electronic (e-mail), Internetul, reeaua de pagini Web. Termenul de comer electronic include de asemenea i afacerile desfurate pe reeaua de Web-uri.

Avantajele Comerului Electronic

Din poziia de cumprtor, ctigul esenial este timpul. Acelai produs/serviciu poate fi cumprat mai ieftin, deoarece pot fi vizitate mai multe magazine ntr-un timp scurt.

Din punct de vedere al companiilor ce utilizeaz CE se disting urmtoarele avantaje:

Creterea semnificativ a vitezei de comunicare, n special pentru comunicaiile internaionale.

mbuntirea eficienei, de exemplu datele nu mai trebuie retastate manual att n calculatorul vnztorului, ct i al cumprtorului, permind minii de lucru s fie utilizat mai productiv; erorile de retastare se elimin; ciclurile de producie i cumprare se reduc drastic.

Reducerea unor costuri, de exemplu utiliznd e-mail-ul se reduc costurile cu pota i mesageria; EDI poate nsemna o mare reducere a stocurilor i a costurilor legate de ciclul de cumprare.

ntrirea relaiilor cu clienii i cu furnizorii, de exemplu cu ajutorul unui site Web al companiei, se prezint permanent partenerilor ultimele informaii necesare acestora; EDI implic lucrul ntr-o strns legtur a partenerilor.

O cale rapid i comod de furnizare a informaiilor despre o companie sau despre un produs prin intermediul unor site-uri www, a intraneturilor sau extraneturilor.

Canale alternative de vnzare, cum sunt afacerile prin intermediul unui site Web.

Modele de afaceri n Comerul Electronic

Analiznd aplicaiile curente dezvoltate pe Internet, se identific urmtoarele modele de afaceri n CE:

Magazin electronic (e-shop);

Aprovizionare electronic (e-procurement);

Magazin universal electronic (e-mall);

Piaa unui ter (3th party marketplace);

Comuniti virtuale (virtual communities);

Furnizor de servicii cu valoare pentru canalele de comer electronic (value chain service provider);

Platforme de colaborare;

Brokeraj de informaii i servicii.

Magazin electronic

Magazinul electronic este gestionat de companie pentru marketingul i vnzrile propriilor produse sau servicii. Minimal conine catalogul de produse/servicii cu descrieri tehnice i comerciale pentru fiecare poziie de catalog. Catalogul este descris ntr-un limbaj (HTML, HTML dinamic, java, PHP, perl etc.) interpretabil de browserele de Web. Descrierile produselor/serviciilor sunt gestionate n general de SGBD. Varianta medie include faciliti pentru preluarea comenzilor (prin e-mail sau forme interactive), iar varainta extins cuprinde i posibilitatea efecturii online a plii (prin pli de credit sau alte metode electronice). Motivaia principal a crerii magazinelor electronice este atragerea unui numr mai mare de clieni, fr ca distana s mai constituie un impediment. Aceasta este cea mai scurt cale spre o prezen global a unei companii. Ctigurile provin din reducerile costurilor de promovare i vnzare, precum i din mrimea vnzrilor.

Aprovizionare electronic

Pentru procurarea bunurilor i serviciilor, marile companii i autoritile publice organizeaz licitaii. Prin publicarea pe Web a specificaiilor ofe