.sistem Informatic On Line DE Evidenta A Vanzarilor Internet LA Flamingo Computers
CUPRINS:
INTRODUCERE
CAPITOLUL 1
PREZENTAREA GENERALǍ A FIRMEI
Flamingo Computers, liderul pieței autohtone
Strategia de marketing
Vânzări Internet la Flamingo Computers
CAPITOLUL 2
CONCEPTE ALE PROIECTĂRII SISTEMELOR INFORMATICE ON-LINE
2.1 Sistemul informatic, instrument de creștere a eficienței
2.2 Tipologia sistemelor informatice
2.3 Elemente de realizare a aplicațiilor on-line
2.4 Securitatea informațională în contextul Internet
2.5 Modele de organizare a bazelor de date și arhitecturi de implementare
CAPITOLUL 3
MODELAREA CERINȚELOR INFORMAȚIONALE
Modelul structural (entitate-asociere)
Modelul dinamic
Modelul funcțional
Proiectarea datelor din sistem
CAPITOLUL 4
REALIZAREA SISTEMULUI INFORMATIC
Proiectarea ieșirilor
Proiectarea intrărilor
Prelucrǎrile sistemului informatic
Mecanismul sesiunilor în PHP
CONCLUZII
BIBLIOGRAFIE
INTRODUCERE
În aceasta lucrare cuvântul Internet apare în dublă ipostază: prima dată pentru că este vorba despre o aplicație on-line, și tot ceea ce îți trebuie ca s-o accesezi este un calculator conectat la Internet, iar a doua oară pentru că ne prezintă gestiunea vânzărilor de Internet într-o firmă recunoscută de vânzări IT din România (Flamingo Computers).
Piața de Internet din România este încă la început. Ea, totuși, înregistrează o creștere anuală de 25%, de cinci ori mai ridicată decât cea economică, iar în scurt timp Internetul va deveni unul dintre principalele medii de comunicare. Această dezvoltare va atrage după sine o reducere a costurilor de comunicație și informare, dar și o creștere a productivității firmelor ce-l utilizează. Dezvoltarea acestei piețe este frânată atât de numărul redus de calculatoare, cât și de costurile relativ mari de conectare la Internet, iar mărimea exactă a acesteia este greu de stabilit, deoarece încă nu există un studiu riguros dedicat acestui domeniu.
Conform unui studiu al ANISP (Asociația Națională a Internet Services Provider-ilor) din România, la începutul anului 2003 circa 750.000 de persoane folosesc Internetul, de acasă sau de la serviciu, iar numărul calculatoarelor conectate este de aproximativ 400.000. Aceste cifre sunt destul de mici în comparație cu alte țări europene și reprezintă rezultatul slabei dezvoltări economice și a unei slabe dotări cu calculatoare personale. Ca procent, aproximativ 20% dintre firmele românești folosesc în activitățile lor Internetul.
Din punct de vedere al tipului de legătură la Internet, se pare că soluțiile prin dial-up rămân cele preferate de majoritatea românilor, fiind cele mai ieftine și utilizate cu precădere de consumatorii casnici și firmele mici pentru care comunicația prin Internet nu este foarte importantă.
Cea mai mare parte a traficului, circa 60-70%, se face către site-uri din străinătate, restul traficului fiind direcționat către România. Această repartizare se datorează atât dezvoltării slabe a serviciilor informaționale furnizate de firmele locale, dar și tentației tinerilor de a căuta informații în altă parte decât în țară.
În ceea ce privește utilizarea Internetului, putem spune că în momentul de față 30-40% din această valoare provine din sectorul afaceri (firme de comerț exterior care comunică cu partenerii lor prin Internet, societăți care produc software pentru companii din străinătate, firme care fac afaceri cu parteneri din țară, toate tranzacțiile de pe piața de capital românească etc.), 30% provine din zona persoanelor care se documentează și caută informații generale (specialiști, studenți, cadre didactice), restul de 30-40% reprezentând valoarea celorlalte servicii, în principal a celor de distracție furnizate publicului larg.
Comparativ cu alte state din Europa Occidentală, prețul serviciilor de conectare la Internet este încă mare în România, atât din punct de vedere al puterii de cumpărare a consumatorilor de la noi din țară, cât și în valoare absolută.
În acest moment în România există circa 400 de firme autorizate pentru a furniza servicii Internet, 80 dintre acestea fiind active, iar numai 40-50 având ca obiectiv principal activitatea de furnizare de astfel de servicii.
În următorii ani, ritmul de dezvoltare a Internetului în România, cuantificat prin valoarea serviciilor prestate și numărul de utilizatori, va fi cuprins între 20-40%. Acest ritm va fi superior celui înregistrat pe plan mondial (6-10%) și se datorează faptului că în România piața Internetului este încă la început, în timp ce în statele avansate serviciile Internet au ajuns la maturitate.
Se estimează în viitorul apropiat o creștere a investițiilor în aplicațiile gen client-server, învățământ și comerț electronic. Dezvoltarea trebuie urmărită pe două căi: atât infrastructură, cât și imagine. Se așteaptă și o creștere a gradului de educare a pieței, atât la nivel de afaceri cât și în rândul publicului larg.
În prezent sunt înregistrate circa 34.000 de domenii ”.ro”, din care 30.000 sunt domenii de nivel doi (www.nume.ro) si 4.000 sunt de nivel trei (precum www.nume.com.ro, www.nume.org.ro, www.nume.info.ro), o creștere sensibilă față de Decembrie 2000, spre exemplu, când erau înregistrate doar 16.000. Din acest total, numărul domeniilor active se ridică la numai 12.000, conform metodologiilor RIPE, ponderea fiind doar de 35%, mult mai redusă decât media constatată la nivel mondial – 70%. Acest fapt este cauzat și de educația și tradiția de niveluri reduse în acest domeniu.
Înregistrarea de domenii ”.ro” se face pe principiul ”primul venit, primul servit”. Nu se face diferențierea între solicitarea unei companii de renume și solicitarea unei persoane fizice.
Comparativ cu alte țări, România are un număr foarte mic de domenii înregistrate. Spre exemplu, în Germania sunt circa 4 milioane de domenii înregistrate, dintre care 3, 1 milioane active, în Anglia 3 milioane (1, 7 milioane active).
Cu cele doar 12.000 de domnii active, România este în urma Cehiei care are 114.000 domenii active, Poloniei (94.000), însă peste Bulgaria care are sub 2.000.
În România doar sub 5% din populație are acces la Internet, în timp ce în Statele Unite acest procent este de 80%.
În tabelul de mai jos avem o viziune asupra numărului utilizatorilor Internet la 1000 locuitori:
În contextul prezentat anterior, în care piața de Internet din România prezintǎ un potențial ridicat, multe firme investesc în acest domeniu. Costul de investiție este mare, însǎ și profitabilitarea prezintǎ dimensiuni mult mai ridicate decât în alte zone de afaceri. Flamingo Computers s-a decis sǎ intre pe piața furnizorilor de Internet din România.
Lucrarea își propune să realizeze un sistem informatic on-line, securizat, de evidențǎ a vânzǎrilor de soluții Internet comercializate de firmǎ în mai multe orașe alte țǎrii, cu o largǎ dezvoltare mai ales în București (unde existǎ cel puțin 15 magazine). Structura lucrării se axează pe patru capitole, ce sintetizează aspecte referitoare la:
prezentarea generală a firmei Flamingo Computers, liderul pieței autohtone în ceea ce privește comercializarea de produse IT, de unde rezultă necesitatea și utilitatea unei astfel de aplicații (Capitolul 1)
concepte ale proiectării sistemelor informatice, cu particularizare pe cele realizate on-line (Capitolul 2)
analiza cerințelor informaționale ale domeniului analizat în vederea proiectării structurii bazei de date și a funcțiilor aplicației (Capitolul 3)
realizarea aplicației folosind tehnologia PHP (Personal Home Pages), ce permite implementarea de soluții securizate pentru efectuarea tranzacțiilor (Capitolul 4)
Principalele obiective avute în vedere în scopul realizării sistemului informatic se referă la aspecte legate de:
marirea eficienței și dinamicii activității de evidență a vânzărilor de soluții Internet propuse de firmă
satisfacerea cu o eficiență crescută a necesităților de comunicare a clienților firmei
sporirea gradului de analiză a aspectelor eficiente din punct de vedere economic
satisfacerea necesităților de efectuare securizată a tranzacțiilor
comunicarea sistemului cu altele din firmă și asigurarea intergrării acestui domeniu
centralizarea informațiilor referitoare la conturile de Internet ale clienților în vederea oferirii unui ajutor operatorilor din cadrul diviziei de suport tehnic, ce pot fi contactați telefonic de orice client sau potențial client.
CAPITOLUL 1
PREZENTAREA GENERALǍ A FIRMEI
Flamingo Computers,
liderul pieței autohtone
Flamingo Computers este una dintre primele firme de vânzări de produse IT din România. Activitatea ei a început acum aproape zece ani, marcând o permanentă dezvoltare și ajungând ca în aceste zile să aiba reprezentanțe în afara granițelor țării, fiind una dintre puținele firme cu capital integral românesc ce a reușit acest lucru într-un interval relativ scurt de la lansarea pe piață. Spre exemplu, anul acesta a participat, în luna martie, pentru a treia oară consecutiv, la unul dintre cele mai importante târguri IT din întreaga lume, și anume CeBit 2003, Hanovra, Germania.
Cifrele din graficele următoare ilustrează dimensiunea Companiei. Observăm o permanentă creștere a veniturilor (fig. 1.1) încă din anul 1995.
Fig. 1.1 Grafic pentru venitul anual
În perioada 1995 – 2001, Compania continuă să-și mărească veniturile într-un ritm mai accelerat decât industria IT din Balcani. Prin rata de creștere estimată pentru următorii trei ani, precum și datorită cifrelor existente, Flamingo se situează pe primul loc într-un clasament al companiilor ce vând produse IT din peninsula balcanică.
Din totalul veniturilor, aproximativ 95% provin din vânzările de produse IT, restul de 5% revenind serviciilor (hardware și software), precum și vânzărilor de soluții Internet.
În domeniul vânzărilor, o reprezentare grafică a structurii acestora este prezentată în figura 1.2.
Fig 1.2 Graficul structurii vânzărilor
Prin volumul vânzărilor, numărul de clienți, numărul de redistribuitori din țară, gama largă de produse și servicii oferite, Flamingo este liderul pieții autohtone. Graficul din figura 1.3 prezintă structura produselor oferite:
Fig. 1.3 Graficul structurii produselor oferite
În prezent Compania înregistrează peste 600 de angajați, 2.800 metri pătrați numai pentru spațiul de birouri de lângă aeroportul Otopeni, unde se află sediul central, reprezentanțe în țări ca: Bulgaria, Croația, Grecia, Olanda, Ungaria, Italia, Macedonia, Moldova. Fiecare angajat are o căsuță de e-mail unică, care împreună cu parola contului reprezintă identitatea lui în tot ceea ce face în interiorul firmei.
Structura organizațională a Companiei (fig. 1.4) se bazează în principal pe diviziile comerciale: Distribuție, Vânzări, Internațional și Achiziții. Alte departamente, ce nu au caracter comercial, sunt: Relații Publice, Marketing, Tehnic, Comunicații, Software, Contabilitate, Resurse Umane, toate acestea având în spate departamentul Administrativ. Fiecare șef de divizie sau departament răspund direct către un Manager de vârf, făcând astfel ca lanțul de conducere să fie scurt și eficient.
Atât ca activitate, cât și ca număr de angajați, cea mai importantă verigă este cea de Vânzări. În București existǎ 15 magazine dintre care cele mai importante sunt: Lahovari (primul magazin IT din București deschis Non-Stop), Unirii, Dorobanti, Știrbei, Titulescu, Victoriei, etc. În țarǎ existǎ 12 reprezentențe în orașe ca: Alexandria, Sibiu, Cluj-Napoca, Deva, Râmnicu Vâlcea, Timișoara, Tulcea, etc.
Divizia Internațional coordonează activitățile legate de vânzările la nivel mondial ale reprezentanțelor din străinătate, precum și activități legate de reprezentanțele ce încă nu sunt active.
Divizia Achiziții este reprezentantă de o puternică echipă ce întreprinde și activități de marketing, import-export, logistică externă și legate de managementul produselor (caracteristici, nivel de performanță, preț, calitate, etc.).
Departamentul Administrativ (poate unul dintre cele cheie) asigură buna desfășurare a tuturor celorlalte ect.
Atât ca activitate, cât și ca număr de angajați, cea mai importantă verigă este cea de Vânzări. În București existǎ 15 magazine dintre care cele mai importante sunt: Lahovari (primul magazin IT din București deschis Non-Stop), Unirii, Dorobanti, Știrbei, Titulescu, Victoriei, etc. În țarǎ existǎ 12 reprezentențe în orașe ca: Alexandria, Sibiu, Cluj-Napoca, Deva, Râmnicu Vâlcea, Timișoara, Tulcea, etc.
Divizia Internațional coordonează activitățile legate de vânzările la nivel mondial ale reprezentanțelor din străinătate, precum și activități legate de reprezentanțele ce încă nu sunt active.
Divizia Achiziții este reprezentantă de o puternică echipă ce întreprinde și activități de marketing, import-export, logistică externă și legate de managementul produselor (caracteristici, nivel de performanță, preț, calitate, etc.).
Departamentul Administrativ (poate unul dintre cele cheie) asigură buna desfășurare a tuturor celorlalte echipe și se ocupă de: coordonarea bugetelor, uz-intern, mentenanță, asigurând toate facilitățile pentru o bună comunicare între departamente.
Departamentul Comunicații se ocupǎ cu tot ceea ce înseamnǎ rețele, Internet, telefonie fixǎ și mobilǎ și alte mijoace de comunicare atât în interiorul firmei cât și în exterior. În cadrul acestui departament existǎ și echipa ”Surf”, cea care administreazǎ din punct de vedere tehnic soluțiile de Internet oferite clienților noștri.
Principalul obiectiv al departamentului Relații Publice este de a promova imaginea firmei în exterior. Sunt organizate târguri, întâlniri cu partenerii și chiar petreceri. Spre exemplu, în fiecare sǎptǎmânǎ, la sediul central din Otopeni, este organizatǎ o petrecere cu invitați din lumea artiștilor, a modei și alte domenii, moment de destindere dar și de legare de noi prietenii și de ce nu, afaceri.
Departamentul Software a fost creat recent ca un rǎspuns la creșterea nevoilor interne de a informatiza activitǎțile din cadrul firmei, dar și de promovare a imaginii și produselor prin site-uri Web.
Departamentul Tehnic are, poate, misiunea cea mai dificilǎ de a asigura service-ul produselor comercializate. Aici cuvintele de ordine sunt: rapiditate, profesionalism, eficiențǎ.
Fig. 1.4 Structura organizaționalǎ
Concomitent cu dezvoltarea progresivă a firmei an de an, și structura organizatorică devine tot mai așezată și tot mai matură.
Obiectivele Companiei nu pot fi îndeplinite decât prin munca eficientă a tuturor departamentelor.
Putem afirma că această structură organizațională evoluează către o ”mutare spre Web”, ceea ce înseamnă că fiecare departament are (sau ar trebui să aibă) un site de prezentare, disponibil atât angajaților pentru o mai bună comunicare în firmă, dar și clienților, ușurând astfel munca pentru achiziționarea unui calculator, upgrade-ul, service-ul sau accesul la Internet.
Site-ul http://www.flamingo.ro/ este cel mai important dintre toate site-urile Companiei si este destinat în principal promovǎrii produselor comercializate. Aici gǎsim informații despre cele mai noi componente, lista de prețuri actualizatǎ zilnic, promoțiile lunii, informații despre magazine, știri despre ceea ce se întâmplǎ în țarǎ pe piața IT, dar și informații de pe piețele din strǎinǎtate, etc.
Cum intrǎm pe http://www.eflamingo.ro/, ne intâmpinǎ o fereastrǎ care ne informeazǎ cǎ putem cumpǎra de la Flamingo și în rate. Avem o machetǎ în care, în funcție de anumite date (durata împrumutului, valoarea facturii), putem calcula rata lunarǎ, etc. Acest site este un magazin virtual prin care, printr-un simplu click de mouse, putem achiziționa un calculator, sau doar unele componente.
Site-ul http://www.diablo.ro/ este destinat celor care își petrec foarte mult timp în fața calculatorului, jucându-se. Diablo reprezintǎ numele unui calculator comercializat de Flamingo destinat celor împǎtimiți de jocuri. Noutǎți, forum, jocuri PC, articole, multimedia sunt cuvintele de ordine pentru vizitatorii noștri.
http://www.upgradepc.ro/ este un site destinat celor care urmǎresc în permanențǎ sǎ menținǎ ritmul cu noile tehnologii și sunt clienți fideli. Pașii sunt simpli: intri pe site, vezi ce îti place și ce ți se potrivește, rezervi și apoi achiziționezi, fie direct de la magazinul nostru special destinat upgrade-urilor, fie, dacǎ ai comandat destul (minim 100 Euro), îti vor fi aduse produsele acasǎ.
Site-ul http://www.surf.ro/ prezintǎ soluțiile de acces Internet oferite de firmǎ. Acestea vor fi prezentate mai în detaliu într-unul din urmǎtoarele capitole.
http://www.lan.ro/ reprezintă un punct de sprijin pentru cei care doresc sǎ își formeze o rețea localǎ. Cele mai performante echipamente, cele mai noi tehnologii, forum, suport, glosar sunt doar câteva din subiectele avute în prim plan în acest site.
http://www.softpc.ro/ este un site de prezentare a produselor software comercializate de Flamingo, de la sisteme de operare, la jocuri, de la platforme de dezvoltare soft la aplicații profesionale.
1.2 Strategia de marketing
În ceea ce privește strategia de marketing, Flamingo s-a axat în principal pe următoarele activități:
monitorizarea celor mai noi produse și a celor mai importanți și renumiți producători
monitorizarea prețurilor competitorilor
corelarea propriilor prețuri cu cele ale firmelor concurente, atât din țară, cât și din străinătate
organizarea de evenimente IT ca: târguri, întâlniri cu dealerii
campanii de publicitate în reviste și TV
publicare de materiale printate gratuite, cum ar fi cataloagele de produse sau mici pliante
coordonarea activității de marketing pe Web
Flamingo organizează de trei ani la World Trade Plaza propriul târg IT sub denumirea de Flamingo Computers Show. Aici au loc numeroase conferințe de promovare a celor mai noi produse, precum și mari reduceri de prețuri la calculatoare și componente.
Alte târguri la care firma a mai participat:
IFABO și CERF, România
InfoKom Skopje, Macedonia
BaitExpo Sofia, Bulgaria
CompFair Budapest, Ungaria
Info Zagreb, Croatia
Vânzări Internet la
Flamingo Computers
Oferta de Internet Flamingo Computers a venit ca un răspuns a cererilor numeroșilor clienți interesați de acest serviciu, clienți care în ultimii ani au fost în continuă creștere. În consecință, Compania a decis în urmă cu circa patru ani să facă investiții și în acest domeniu, urmând direcția evolutivă impusă de colegii din departamentul Vânzări.
În prezent, oferta Internet a firmei se adresează în principal către două mari categorii de utilizatori: firme care au nevoie de o conexiune permanentă (Surf Corporate) și clienți obișnuiți care se conectează de acasă sau firme mai mici ce au nevoie doar temporar de Internet (Surf Home).
Abonamentele Surf Corporate sunt disponibile în două variante de conectare: linie închiriată și CATV (cablu TV). Oricare din aceste două varinate paote fi una din cele din tabelul de mai jos:
Toate tipurile de abonamente sunt cu trafic nelimitat. Cifrele de 10, 20, 38 GB se referă la traficul garantat și traficul mediu lunar care se poate realiza pentru canalul respectiv, specificat în contract ca fiind minim garantat.
Abonamentele Surf Home sunt următoarele:
Oricare din abonamentele prezentate mai sus sunt disponibile în orice magazin Flamingo din București. Pentru abonamentele de tip Corporate există posibilitatea negocierii în funcție de mai mulți factori:
clientul are calculatoare cu componente cumpărate din Flamingo Computers
clientul a mai avut în trecut și alte tipuri de abonamente Surf Corporate sau chiar Surf Home
Ceea ce se negociază este:
prețul
canalul minim garantat
traficul garantat
Problemele tehnice legate de soluțiile Internet oferite de Flamingo Computers sunt rezolvate în cadrul departamentului Comunicații de către echipa ”Surf”. Ea trebuie să comunice în permanență cu colegii din divizia Vânzări din fiecare magazin.
Având în vedere toate aspectele expuse până acum trebuie justificată necesitatea implementării unui sistem informatic de evidență a vânzărilor de Internet.
În cadrul firmei toate activitațile comerciale sunt gestionate global de un sistem informatic denumit Scala, produs achiziționat de la o Companie specializată în proiectarea de astfel de componente software, dar și altele. În fiecare departament sau divizie, în funcție de necesitățile sale interne, mai există și alte sisteme informatice adiționale. Spre exemplu, în cadrul departamentului Tehnic, există o aplicație on-line prin care orice client poate să vadă care este starea produsului său adus în service (rezolvat, așteaptă componente, în curs de soluționare, etc.)
În cadrul departamentului Comunicații legat de vânzările de Internet nu există decât site-ul http://www.surf.ro, ce prezintă abonamnetele oferite de firmă. Datele despre orice cont nou sau prelungire de cont deja existent, sunt trimise prin e-mail de către angajații Flamingo din diversele locații din București și din țară, operatorilor din cadrul echipei ce se ocupă de suportul tehnic, care la rândul lor creează aceste conturi sau le prelungesc. În acest mecanism există mai multe neajunsuri:
pe de o parte, dependența de funcționarea e-mail-ului intern al fiecărui angajat, iar în cazul în care apare o problemă, rapiditatea de reconectare a clientului are de suferit, facându-l să fie nemulțumit deoarecere activitatea sa de afaceri sau personală este afectată.
pe de altă parte, încasările lunare legate de acest domeniu nu se delimitează de celelalte și nu putem avea o evidență clară a veniturilor și profiurilor aduse de domeniul vânzărilor de soluții Internet.
un alt aspect legat de necesitatea unei astfel de aplicații în firmă se referă la faptul că obținerea de date referitoare la conturi în vederea informării cât mai precise a clientului se face greoi și ineficient, în sensul că fiecare angajat trimite conturile într-o manieră diferită, iar uneori datele sunt insufiente și se impune un schimb de e-mailuri între el și operatorul de la Suport, care înseamnă întârziere în informarea clientului și timp pierdut pentru angajatul Flamingo.
CAPITOLUL 2
CONCEPTE ALE PROIECTĂRII DE SISTEME INFORMATICE ON-LINE
Sistemul informatic, instrument
de creștere a eficienței
Creșterea eficienței firmelor a fost posibilă în special prin utilizarea la scară largă a sistemelor de calcul. Acestea, prin intermediul programelor software, au permis companiilor să-și structureze și să-și organizeze mai eficient activitățile. În prezent, aproape toate activitățile, în special cele economice, se desfășoară cu ajutorul calculatorului [1]. Fie că se referă la date care pot fi accesate în câteva secunde, fie că se fac calcule complexe, calculatorul a devenit o unealtă de mare preț în viața de zi cu zi a fiecăruia dintre noi.
Scopul îndeplinit de sistemele de calcul s-a schimbat de la deceniu la deceniu, îmbogățindu-se. Dacă sistemele de calcul au servit inițial cercetătorilor pentru efectuarea mai rapidă a unor calcule anevoioase, treptat calculatoarele s-au transformat în dispozitive pentru gestionarea și administrarea bazelor de date. În final, scopul utilizării calculatorului, alături de cele menționate mai sus, este de a fi principalul mijloc de informare și comunicare.
Concretizând definiția generală a unui sistem, ca o colecție organizată de părți legate prin interacțiuni determinate, prin sistem informatic (SI) al unei entități sub formă de organism (economic, științific, social-cultural) se înțelege un ansamblu structurat și corelat de reguli, proceduri și mijloace (în primul rând calculatoare electronice) care permit aplicarea de metode organismului respectiv pentru a realiza scopul și obiectivele predefinite, măsurabile între anumite limite.
Cu alte cuvinte, a defini un sistem informatic al unui organism înseamnă a-i preciza în mod concret regulile, procedurile, mijloacele și metodele, cu precădere automate, utilizate în cadrul sistemului pentru a determina mărimile prestabilite și legile care operează cu aceste mărimi.
Sistemul informatic poate fi definit ca un ansamblu de reguli, proceduri, mijloace și metode, cu precădere automate, folosite pentru culegerea, transmiterea, prelucrarea și stocarea datelor.
Sistemul informatic este o componentă a sistemului informațional și anume acea parte a acestuia care preia și rezolvă sarcinile de culegere, prelucrare, transmitere și stocare cu ajutorul sistemelor de calcul.
Sistemul informațional face legătura între sistemul de conducere (management) și sistemul condus (fig 2.1):
Fig 2.1 Structura de conducere a unui sistem informatic
În ceea ce privește raportul dintre sistemul informatic și sistemul informațional, se poate aprecia că sistemul informatic tinde spre a egala sfera de cuprindere a sistemului informațional, însă acest lucru nu va fi posibil din cauza limitelor sistemului informatic. Tot timpul în sfera sistemului informațional vor exista o serie de activități ce nu vor putea fi automatizate [2].
Pentru a-și îndeplini rolul în cadrul sistemului informațional, sistemul informatic cuprinde ansamblul tuturor resurselor, regulilor, procedurilor, mijloacelor, metodelor și tehnicilor (fig. 2.2), prin care se asigură prelucrarea automată a datelor:
Fig 2.2 Componentele sistemului informatic
Resurse sunt:
ansamblul de echipamente (hardware)
sistemul de programe (software), care cuprinde programele sistemului de operare și programele de aplicații
baza de date
ansamblul de personal și cadrul organizatoric
Prin metode se înțelege căile de determinare și punere în funcțiune, de perfecționare și optimizare a funcțiunilor organismului, pentru a atinge obiectivele predefinite.
Printre metodele utilizate se pot enumera: calculul probabilității, metode ale statisticii economice, analiza stocurilor, programarea liniară, programarea dinamică, metode de simulare, teoria grafurilor, teoria utilității, teoria deciziei, metode de previziune.
Prin reguli se exprimă modalitățile de aplicare la un organism a metodelor. Acestea sunt definite și formulate concis sub forma unor ansambluri de operații logice și/sau matematice.
Prin proceduri se înțelege totalitatea operațiunilor necesare pentru tratarea informațiilor și regulilor prin mijloacele sistemului.
Ca exemplu, se poate arăta metoda gestiunii stocurilor, în care se găsește regula de calcul a nivelului de stoc, pentru care se lansează o comandă și care utilizează procedurile de calcul.
Prin mijloacele unui sistem informatic se înțelege totalitatea uneltelor și instrumentelor manuale, automate, inclusiv software, utilizate pentru efectuarea de operațiuni asupra informației: captare, culegere, pregătire, control, introducere și extragere, transmitere, concentrare, stocare, transformare, prelucrare prin calcul aritmetic și logic, analiză și interpretare.
Mijloacele cuprind suporți, mașini și oameni:
Se consideră suport tot ceea ce are atașat informații și servește la transportarea și/sau stocarea ei în timp și spațiu. Se întâlnesc următoarele tipuri de suporți:
Materiale, sub formă de suporturi tehnice (magnetice sau optice) sau grafice (opace sau transparente);
Câmp electric, magnetic sau optic, transmis prin semnale și pachete;
Experiența umană, sub formă de date și informații acumulate de oameni în procesul muncii;
Prin mașini în cadrul unui sistem informatic se înțelege totalitatea echipamentelor și dispozitivelor utilizate pentru a efectua operațiunile de mai sus:
Sisteme de calcul, de diferite generații și configurații;
Echipamente de captare, culegere, pregătire, transmitere, stocare, redare, analiză și interpretare etc.
Oamenii în cadrul unui sistem informatic intervin sub formă de experiență umană la nivelul suporților, ca specialiști pentru elaborarea, utilizarea și exploatarea sistemului (administratori, analiști, programatori, ingineri de sistem, operatori) sau ca utilizatori ai sistemului în regim off-line sau on-line (cybernavigatori, analiști digitali, internauți, etc.)
Sistemul informatic se poate prezenta sub forma unei ”cutii negre” (fig. 2.3) bazată pe intrări, ieșiri, reguli, proceduri, mijloace și metode, așa cum este prezentat în figura următoare:
Fig 2.3 Mecanismul intern al sistemului informatic
În afară de aceste componente (intrări, ieșiri și mecanismul cutiei negre) mai există altele două componente, adiționale:
Feedback-ul (răspunsul)
Controlul
Feedback-ul reprezintă datele care caracterizează performanțele sistemului. Această noțiune este tot mai des utilizată în ultimul timp.
Controlul implică monitorizarea și evaluarea feedback-ului în scopul de a determina măsura în care sistemul se îndreaptă către îndeplinirea obiectivelor. Funcția de control face necesară ajustarea intrărilor pentru a asigura că acestea vor produce ieșirile corespunzătoare. De asemenea, se efectuează ajustări în activitatea sistemului pentru a-i corecta deficiențele.
Principalele activități dintr-un sistem informatic sunt cele de prelucrare a informațiilor [3]. Acestea includ:
Introducerea datelor
Procesarea datelor pentru obținerea de informații
Ieșirea produselor informaționale
Stocarea resurselor informaționale
Controlul performanțelor sistemului
Introducerea datelor – datele despre tranzacțiile comerciale sau despre alte evenimente trebuie să fie prinse și pregătite pentru prelucrare. Introducerea se referă la editarea de înregistrări. Odată introduse, datele pot fi transferate pe un suport magnetic până la prelucrare.
Prelucrarea datelor – datele sunt subiectul activităților de prelucrare care cuprind: calcule, comparări, sortări, clasificări sau însumări. Aceste activități organizează, analizează și manipulează datele, convertindu-le în informații pentru utilizatori.
Ieșirea produselor informaționale – informațiile rezultate în urma prelucrărilor apar în forme variate pentru a fi transmise utilizatorilor în forma solicitată de aceștia. Informațiile trebuie să îndeplinească anumite condiții de calitate ce se referă în general la:
timp – viteza cu care informația ajunge la utilizator
conținut – atributele care conferă valoare informației
forma – felul în care ajunge la utilizator
Stocarea produselor informaționale – stocarea datelor și informațiilor nu constituie o componentă importantă în cadrul SI. Aceasta reprezintă activitatea dintr-un SI în care datele și informațiile sunt depozitate într-un mod organizat în vederea unei utilizări ulterioare. Procesul de regăsire este necesar să corespundă cerintelor utilizatorilor prin rapiditatea și acuratețea sa. Suporturile utilizatorilor pentru stocarea datelor și informațiilor sunt în general magnetice sau optice.
Controlul performanțelor sistemului – reprezintă o activitate de mare importanță și se realizează prin mecanismul feedback-ului.
Tipologia sistemelor
informatice
O viziune sistemică a organizației permite câteva opțiuni în a o defini. Se poate construi un model logic alcătuit din subsisteme bazate pe circuitul resurselor: muncă, bani, materii prime. Totodată putem avea în vedere nivelurile managementului, care în funcție de modalitatea de luare a deciziilor poate fi alcătuit din subsisteme cum ar fi cele de natură geografică, regională a pieței [3].
Evoluția sistemelor informatice:
Anii 1950 – 1960. Prelucrare electronică a datelor – rolul SI era de a procesa tranzacțiile, de a întreține (edita) înregistrările și de a oferi diverse rapoarte.
Anii 1960 – 1970. Managementul SI – avea rolul de a oferi managerilor (ca utilizatori ai SI) diverse rapoarte predefinite de management care le asigurau informațiile necesare pentru luarea deciziilor.
Anii 1970 – 1980. Sisteme pentru fundamentarea deciziei – aceste sisteme nou apărute aveau rolul de a oferi managerilor utilizatori un suport ad-hoc pentru fundamentarea deciziei. Acest suport era croit pentru anumite probleme specifice și era mijlocit de compartimente specializate (informaticieni).
Anii 1980 – 1990 – sisteme orientate utilizator.
Sisteme de prelucrare pentru utilizator – utilizatorii finali (fără a fi specialiști în informatică) pot utiliza resursele de calcul pentru a-și fundamenta deciziile fără a mai apela la intermediari (compartimentul informatic).
SI pentru execuție – rolul acestor SI este de a da nivelului decizional de vârf posibilitatea de a obține informațiile necesare pe care le doresc, când doresc, în forma pe care o doresc.
Sisteme expert – rolul acestor sisteme este de a servi drept consultanți (experți) pentru utilizator în anumite domenii, de obicei limitate.
Anii 2000. Sisteme informatice strategice și globale:
SI strategice – rolul acestor sisteme este de a oferi un component integral al proceselor de afaceri, de producție și service care ajută organizația pentru a câștiga un avantaj competitiv.
SI globale – au rolul de a utiliza rețelele (Internet sau altele) globale în scopul de a interconecta utilizatorul cu organizația, de a asigura comunicația și colaborarea între subsistemele organizației pentru a asigura suportul desfășurării afacerilor la un nivel de eficiență maximă.
Sistemele informatice din prezent pot fi construite în așa fel încât să poată fi utilizate atât in mod centralizat, cât și descentralizat în activitățile operaționale și de luare a deciziei.
Avantajele centralizării:
acest mod de lucru poate conecta toate componentele unei organizații prin rețele de comunicații care conferă managementului posibilitatea de a centraliza procesul de luare a deciziei (deciziile ce erau luate la nivelul de jos).
se poate promova centralizarea operațiilor care reduce numărul de birouri, depozite și alte spații de muncă.
Avantajele descentralizării:
utilizare de rețele distribuite de calculatoare la mai multe puncte de lucru ce oferă managerilor de vârf posibilitatea de a delega deciziile la nivelul managementului de mijloc.
managementul poate descentraliza activitatea operațională prin creșterea numărului de grupuri care au acces la informație și comunicație.
La începutul utilizării calculatoarelor sistemul de lucru era organizat într-un compartiment distinct, iar descentralizarea era singura opțiune.
Dezvoltarea tehnologiei informației, a computerelor puternice a determinat centralizarea hard-ului, soft-ului și a specialiștilor din sistemele informatice la nivelul corporațiilor.
După această perioadă, dezvoltarea de PC-uri a determinat o tendință de descentralizare, mai ales că au apărut rețelele de calculatoare ce puteau fi accesate de orice utilizator. În perioada următoare a apărut necesitatea de a se stabili un control asupra resurselor informaționale ale organizației, rezultată din descentralizarea de la nivelul unor organizații și centralizarea de la nivelul altora ceea ce ar semăna cu niște sisteme hibrid.
În fine, se remarcă în prezent tendința de a transfera funcțiile sistemelor informatice unor firme din afara organizației ca integratori de sistem.
Sistemele informatice joacă un rol important în a asigura suportul activităților manageriale și operaționale în afaceri. Din acest motiv există posibilitatea de a clasifica SI la nivel conceptual (fig. 2.5) în:
Sisteme informatice operaționale
Sisteme informatice pentru management
Fig 2.5 Clasificarea sistemelor informatice
Sistemele informatice operaționale ar putea cuprinde:
sisteme informatice operaționale
sisteme pentru procesarea (prelucrarea) tranzacțiilor
sisteme pentru controlul proceselor
sisteme pentru colaborarea la nivelul organizației
Sistemele informatice pentru management cuprind:
sisteme informatice pentru management (în general)
sisteme informatice pentru fundamentarea deciziei
sisteme informatice pentru activitatea executivă
Sisteme informatice operaționale – SI sunt necesare pentru a prelucra datele generate și utilizate în operațiile de afaceri. Aceste SI operaționale produc o varietate de produse informaționale pentru uz intern sau extern. Aceste informații vor fi prelucrate mai departe de către SI pentru management. În general, acestea au rolul:
de a procesa date privind afacerile
de a controla procesele industriale
Sisteme informatice pentru prelucrarea tranzacțiilor – sunt orientate către prelucrarea datelor rezultate din afaceri: vânzări, cumpărări, inventar și oferă o varietate de produse informatice (liste, situații) de uz intern sau extern. Prelucrarea datelor se face în urma acumulării (la o perioadă de timp) acestora în timp real.
Sisteme informatice pentru controlul proceselor – sunt sisteme care utilizează computerul pentru a controla anumite procese fizice (linii de producție automate, fabrici automate, etc.).
Sisteme informatice pentru colaborarea la nivelul organizației – sunt sisteme care utilizează o gamă largă de tehnologii informatice pentru a asigura colaborarea, comunicarea între angajații unei firme. Aceasta ajută la schimbul de idei, împărțirea resurselor, coordonarea între membrii. Scopul acestor SI este de a crește productivitatea și creativitatea echipelor și grupurilor de lucru dintr-o firmă modernă.
Sisteme informatice pentru management (în general) – aceste SI sunt focalizate în a oferi suport și informații pentru autoritatea efectivă de luare a deciziei. Acestea asigură suportul pentru necesitățile decizionale de la nivelul de vârf (strategic), la cel de mijloc (tactic) sau cel operațional. SI pentru management oferă o varietate de rapoarte specifice folositoare în activitățile manageriale curente. Produsele informatice pot fi obținute la cerere, periodic sau când apar necesități excepționale.
Sisteme informatice pentru fundamentarea deciziei – oferă managerilor utilizatori informații într-un mod interactiv ori de câte ori este nevoie. Managerii își generează informațiile de care au nevoie pentru decizii folosind modele decizionale și baze de date specializate.
Sisteme informatice pentru activitatea executivă – asistă nivelul mediu și de vârf al managementului firmei. Oferă un acces imediat și ușor la informațiile necesare atingerii obiectivelor strategice. Au un mod ușor de operare și înțelegere.
În continuare voi prezenta mai în detaliu cele mai importante categorii și anume:
Sisteme informatice de prelucrare a tranzacțiilor
Sisteme informatice de management
Sistemele informatice de prelucrare a tranzacțiilor întrețin înregistrările de rutină ale activității organizației. Aceste sisteme se concentrează asupra înregistrărilor de zi cu zi și desfășoară activități de procesări de date. Exemple: evidența vânzărilor, sisteme de rezervări, contabilitate operativă, evidență bancară, etc. Aceste sisteme, procesând datele de rutină, sunt considerate structurate deoarece datele introduse sunt prelucrate în concordanță cu procedurile operaționale standard. Sunt utilizate mai ales de funcționari, agenții de vânzări, operatori care au puține (sau deloc) atribuții manageriale. Rareori se iau decizii pe baza datelor de ieșire furnizate de aceste sisteme. Este prelucrat un volum mare de date într-o perioadă scurtă de timp, asta depinzând și de intensitatea activității desfășurate și de alte elemente de piață. Datele trebuie să fie corecte și la timp. Rezultatele prelucrării sunt bazele de date în care se regăsesc tranzacțiile efectuate și care devin punctul de plecare pentru sistemele informatice pentru management și a sistemelor informatice de fundamentare a deciziilor. Aceste sisteme au o mare și continuă utilizare.
Sistemele informatice de management oferă informații managerilor prin generarea de rapoarte (de rutină sau periodice) necesare activității de zi cu zi sau strategice. Sistemele informatice de management sunt utilizate și pentru depistarea de probleme sau oportunități. Exemple: analiza bugetului, rapoarte de personal, rapoarte agregate ale vânzărilor. Utilizarea acestor sisteme în scop de control se canalizează în general la nivelul departamentului, diviziei sau al corporației. Sistemele de acest tip utilizează atât date interne (date din tranzacții), cât și externe (de la clienți, observații) și le însumează pentru activitățile de planificare și control. Sistemele informatice de management se utilizează mai rar decât sistemele de prelucrare a tranzacțiilor și se focalizează asupra informației și a eficienței.
Managerii se confruntă cu următoarele stări de fapt:
volum mare, viteză mare de desfășurare a lucrului
varietate, fragmentare
preferință pentru activitatea curentă, superficialitate
complexitatea relațiilor, interacțiunilor și contractelor
preferință pentru forma verbală de media
Se constată că nu există suficient timp pentru manageri să se implice în profunzime într-o varietate mare de probleme, având o mulțime de activități de efectuat, dar și timp puțin pentru a le rezolva pe fiecare în parte.
În general, managerii preferă speculațiile, discuțiile facile, admițând și informațiile nesigure în opoziție cu cele din trecut, mult mai sigure. Informațiile de rutină se bucură de o atenție redusă. Managerii vor să lucreze cu aspecte curente, specifice și ad-hoc. Totodată ei sunt implicați într-o rețea complexă și diversă de contracte care acționează ca un sistem informațional.
Alte tipuri de sisteme informatice:
Sisteme expert – sunt sisteme bazate pe un computer care își utilizează cunoștințele în aplicații specifice cu o complexitate ridicată și acționează similar cu un consultant uman. Aceste sisteme se compun dintr-o bază de cunoștințe și niște module software care se interferează și comunică răspunsul la întrebările utilizatorului.
Sisteme de management a cunoștințelor – cele mai multe organizații au realizat că au devenit companii de creare de cunoștințe pentru a supraviețui și se dezvoltă într-un mediu de afaceri într-o continuă și rapidă schimbare. Aceste sisteme sunt dezvoltate pentru a gestiona învățământul organizațional.
Sisteme informatice strategice – rolul strategic al SI implică utilizarea tehnologiei informației pentru dezvoltarea de produse, servicii, care se vor constitui în avantaje strategice față de competitori pe piața globală. Această necesitate a creat sistemul informatic strategic care sprijină poziția competitivă și strategia firmei. Un SI strategic poate fi orice tip de SI care ajută organizația să câștige un avantaj competitiv, să reducă din distanța competitivă sau să-și îndeplinească obiectivele strategice.
Sisteme informatice pentru afaceri – pot sprijini direct atât activitățile operaționale, cât și pe cele de management din zona afacerilor: contabilitate, finanțe, managementul resurselor umane, marketing, turism, și managementul operațional.
Sisteme informatice integrate – SI din lumea reală sunt de fapt combinații integrate a mai multor tipuri de SI. Acestea sunt elaborate pentru a produce informații și pentru a sprijini luarea deciziilor la diferite niveluri ale managementului, dar și pentru ținerea de diverse evidențe și prelucrare a tranzacțiilor.
Elemente de realizare
a aplicațiilor on-line
Pentru realizarea site-urilor Web au fost realizate o mulțime de instrumente software de la cele mai simple de tip WYSIWYG (what you see is what you get), la cele de nivel înalt ce dau un aspect deosebit de profesional site-ului.
În general se recomandă beneficiarilor să apeleze la o firmă specializată pentru realizarea unui site Web.
Astfel, este necesar să se efectueze o analiză a oportunității realizării unei aplicații on-line. Ea trebuie să stabilească în primul rând următoarele elemente:
Este nevoie de o aplicație on-line?
Ce fel de aplicație?
Care este suma alocată disponibilă?
Cine este cel mai indicat designer?
În cât timp se poate realiza?
Cât de rapid se pot încărca paginile?
Folosește baze de date? Cum se asigură integritatea și securitatea datelor?
Pe ce platformă sistem va fi implementată?
O companie de Web Design înseamnă mai mult decât o mână de oameni care se ocupă de partea grafică. Ea asigură în mod frecvent și consultanța, precum și alte servicii legate de realizarea și punerea în circuit a unei aplicații on-line (asigurarea domeniului, a spațiului de găzduire s.a.m.d.)
Pentru crearea unui site performant este necesara parcurgerea următoarelor etape esențiale:
Proiectare (Design)
Găzduire (Hosting)
Administrare
Proiectare (Design)
Proiectarea nu înseamnă numai partea de concepție grafică a site-ului Web, ci și crearea oricăror programe necesare (de exemplu, de legare la o bază de date) sau de formulare folosite pentru culegerea de date de la utilizatorii site-ului.
La proiectarea unui site este foarte importantă alegerea platformei (a sistemului de operare). Această decizie este importantă pentru că de ea depinde fiabilitatea răspunsului aplicației la cererile utilizatorilor, precum și volumul de muncă ce trebuie investit pentru a-l menține în funcțiune.
Se pot avea în vedere următoarele sisteme de operare: Windows NT, Solaris 2.6 și 7, Linux, Novell Netware.
Crearea paginilor se poate realiza în două moduri:
manual, scriind efectiv tag-urile HTML
asistat, cu ajutorul unor programe speciale
Modul manual
Crearea manuală a paginilor Web se poate realiza numai de către specialiști, ce cunosc și stăpânesc foarte bine tehnologiile Web: ASP, PHP, HMTL, etc.
Realizarea manuală presupune existența următoarelor instrumente:
Browser de Web
Programe de grafică
Programe de editare text
Browserul Web este necesar pentru a testa ceea ce se obține în fiecare moment. Se recomandă ca testarea să se facă cu ambele browsere, Microsoft Internet Explorer și Netscape Communicator.
Cu ajutorul programelor de grafică, se creează si editează imaginile de fundal, butoanele, desenele, etc.
Exemple de programe ce pot fi utilizate:
Paint Shop Pro
Adobe Photoshop
Programul de editare text este utilizat pentru scrierea efectivă a tag-urilor HTML sau a codului PHP (exemple: notepad, wordpad plus)
Principalul avantaj al metodei manuale constă în faptul că pagina HTML este exact așa cum s-a dorit. Se poate astfel introduce orice tag cu orice atribut.
Dezavantajul metodei constă în principal în faptul că proiectantul trebuie să cunoască bine limbajul respectiv, fiind necesară o documentație de specialitate.
Modul asistat
Proiectantul poate utiliza unul dintre editoarele WYSIWYG, ce dispune de un ansamblu de instrumente de care avem nevoie sau alte pachete de programe ce asigură o mulțime de facilitați și opțiuni de programare. Utilizarea lor necesită cunoașterea tehnicii de programe orientată obiect.
În modul asistat sunt necesare următoarele categorii de programe:
Browser Web (identic cu metoda precedentă)
Programe de editare vizuală a paginilor HTML
Programe ce asigură facilități de programare
Programe de grafică (identic cu metoda precedentă)
Voi prezenta în continuare aspecte legate doar de categoriile b) și c), pentru că de celelalte am vorbit mai devreme.
b) Programe de editare vizuală. În acest caz se poate folosi programul Microsoft Word sau soluții integrate ce conțin browser și editor vizual. Programele din această categorie pun la dispoziția proiectanților asistenți de tip wizard și șabloane.
La ora actuală, în clasamentul celor mai performante instrumente de editare a site-urilor de tip WYSIWYG se afla următoarele:
Microsoft FrontPage 2000
Adobe PageMil
Macromedia Dreamweaver MX
NetObjects Fusian
VisualPage
HomePage
Programul Microsoft FrontPage 2000 dispune de asistenți pentru construirea tipurilor obișnuite de site-uri (de exemplu: “Corporate Presence”) și modele predefinite, proiectate astfel încât să-i confere aplicației un aspect plăcut și un conținut consistent. Acest program asigură proiectantului și posibilitatea creării unei pagini care lucrează cu baze de date Microsoft SQL.
Pachetele de programe indicate mai sus, în special Macromedia Dreamweaver, asigură o mulțime de facilități pentru realizarea unor site-uri profesionale, mai sofisticate. Funcțiile acestor programe se bazează pe suportul extins pentru Dynamic HTML (DHTML). Astfel, se poate realiza poziționarea obiectelor, cum ar fi texte sau imagini, cu o precizie de pixel, folosind fie Cascading Style (CSS), fie tabele.
Componentele DHTML permit adăugarea cu ușurință a efectelor speciale și a animației. Majoritatea acestor programe suportă și formate obișnuite pentru animație (Macromedia Flash and Shockwave), formate audio și video.
În concluzie, instrumentele moderne de creare a paginilor Web sunt mai mult decât utilizate pentru crearea aplicațiilor on-line; sunt aplicații productive și eficiente care pot fi folosite atât pentru proiectare cât și pentru reproiectare sau întreținere.
c) Programe ce asigură facilități de programare
Aceste pachete de programe asigură construirea aplicațiilor on-line fără să fie nevoie să se apeleze la o echipă de profesioniști Java sau C++. La ora actuală între cele mai cunoscute instrumente sunt următoarele:
Allaire ColdFusion
Microsoft .Net
Oracle Developer
Sun NetDynmics
SilverStream
Găzduire (Hosting)
Pentru găsirea unei gazde (host) a site-ului, trebuie în primul rând să se găsească un răspuns la două intrebări:
Cât de complex este site-ul?
Care este traficul estimat?
Serviciul de hosting va taxa în funcție de răspunsul la aceste două întrebări. Din acest răspuns putem determina spațiul necesar pe hard disc și volumul transferurilor de date. Cea mai des utilizată soluție este plasarea întregului site pe serverul unui Internet Service Provider.
Investiția pentru un server propriu, adică conexiune în conformitate cu traficul preconizat și personal specializat, este viabilă pentru un site extrem de complex, care necesită actualizări frecvente și se apreciază a susține un trafic important.
Alegerea numelui site-ului are importanță majoră. Majoritatea ISP-urilor înregistrează site-ul pentru beneficiar, cu numele dorit de acesta, conform tarifelor racordate la prețurile afișate de Rețeaua Națională de Calculatoare, gestionarul spațiului Web din România (mai multe detalii la adresa www.rnc.ro)
La ora actuală există și o destul de largă ofertă de găzduire gratuită, însă principalele dezavantaje sunt: spațiul limitat, obligativitatea includerii unor bannere publicitare ale firmei care realizează acest serviciu pe site, s.a.m.d.
Administrare
Tipul de site ales impune o anumită frecvență și anumite metode pentru actualizările specifice.
Este posibil ca proiectantul site-ului să pună la dispoziția beneficiarului un instrument de actualizare automată, astfel încât modificarea și actualizarea să se facă fără să se cunoască nimic despre HTML, ASP, FTP, PHP, etc..
Securitatea informațională
în contextul Internet
Datele sunt bunuri de mare valoare. Pierderea sau utilizarea lor greșită pot deci, să conducă la generarea unor pagube considerabile. Drept cauză a unor asemenea pagube sunt defecțiunile tehnice zilnice sau neglijența și chiar premeditarea. Prin protecția datelor înțelegem înlăturarea posibilităților de utilizare greșită a acestora sau transmiterea greșită.
“Rețeaua de rețele” Internet este în devenire cel mai mare sistem creat de om reunind câteva mii de rețele de ranguri diferite, ce provin din zeci de țări ale lumii. Este o rețea virtuală formată dintr-un număr în continuă creștere de rețele locale (LAN) – publice și private – rețele pe arii întinse (WAN), rețele regionale și naționale interconectate.
Rețeaua Internet este un mijloc universal de comunicare accesibil oricărei persoane ce dispune de un calculator cu un program de acces la rețea, un modem ce convertește informația din calculator într-o formă transmisibilă pe o linie telefonică, o linie de telefon obișnuită și un cont (IP) pe un calculator. Prin intermediul Internetului se pot obține și trimite tot felul de informații. Informația reprezintă moneda Economiei Internet. Prin Internet se pot transmite mesaje scrise, desene, fotografii, chiar și concerte sau emisiuni TV în milioane de direcții. Baze de date numeroase, unele extrem de mari, biblioteci, muzee, magazine virtuale pot fi accesate prin apăsarea unor taste sau a butonului de mouse.
Prin serviciile pe care le oferă, prin numărul de utilizatori, Internetul a adus și aduce multe avantaje cercetării științifice, învățământului, administrației, afacerilor, comunicațiilor interumane.
Dar, Internetul a fost și este pândit de mari pericole care-și află sorgintea în faptul că această rețea, miraculoasă prin beneficiile aduse, reprezintă în același timp un mediu extrem de favorabil pentru cei care se dedau la comiterea unor fapte indezirabile social, fapte care se pot întinde pe o arie mare de aspecte. Ministerul Federal German al cercetării științifice apreciază criminalitatea pe Internet la aproximativ 50.000 de cazuri anual.
Primul incident a fost semnalat în 1988 când R. Morris, în vârstă de 24 de ani, din SUA a realizat un program informatic și a decis să-l introducă în sistemul național informațional SUA, Internet. În numai câteva ore virusul a reușit să scoată din funcțiune aproximativ 6.000 de calculatoare.
Din aceste motive, un aspect crucial al aplicațiilor care rulează pe Internet îl constituie securitatea informațiilor. Necesitatea de a avea acces la diverse informații și aplicații impune implementarea de noi tehnologii. Funcțiile de securitate ale tehnologiilor restrâng accesul, astfel încât numai activitățile corecte din punct de vedere al siguranței pot avea loc. Securitatea în Internet devine, deci, una dintre cele mai actuale probleme [4].
A asigura, unei rețele de calculatoare, securitatea datelor stocate în cadrul ei, presupune proceduri de manipulare a datelor care nu pot duce la distrugerea accidentală a lor și/sau măsuri de duplicare a datelor importante pentru a putea fi refăcute în caz de nevoie.
A avea o rețea de calculatoare cu acces sigur la date, presupune o procedură de autentificare a utilizatorilor și/sau de autoritate diferențiată pentru anumite resurse, adică categorii de utilizatori, fiecare cu drepturi diferite.
Utilizatorii situați la mari distanțe trebuie bine identificați, în mod obisnuit prin parole. Din nefericire, sistemele de parole au devenit vulnerabile atât datorită hacker-ilor – care și-au perfecționat metodele – cât și datorită alegerii necorespunzătoare a parolelor de către utilizatori. Nevoia de securitate și de autenticitate apare la toate nivelele arhitecturale ale rețelelor.
Alături de autenticitate și confidențialitate, un loc aparte îl are și integritatea mesajelor, ceea ce înseamnă că mesajul recepționat nu a fost alterat în timpul tranziției prin rețea. În tranzacțiile de afaceri este foarte important ca odată recepționată o comandă, aceasta sa nu fie numai autentică, cu conținut nemodificat, dar să nu existe posibilitatea ca expeditorul să nu o mai recunoască, adică să respecte proprietatea de nerepudiere.
Criptografia computațională oferă cele mai puternice soluții pentru toate aspectele privind securitatea informatică. Folosită multă vreme pentru asigurarea confidențialității în domeniul militar și diplomatic, criptografia a cunoscut în ultimii 20 de ani progrese spectaculoase datorate aplicațiilor sale în securitatea datelor la calculatoare.
Criptografia este știința scrierilor secrete. Un cifru se definește ca transformarea unui mesaj clar (sau text clar) în mesaj cifrat (sau criptogramă). Atât cifrarea, cât și fenomenul invers, descifrarea, sunt controlate de una sau mai multe chei criptografice.
Criptoanaliza studiază metodele de spargere a cifrurilor, de obicei, pentru determinarea cheii de cifrare din criptogramă sau a textului în clar echivalent.
Există două categorii de sisteme criptografice:
sisteme simetrice;
sisteme asimetrice
Pentru asigurarea confidențialității datelor memorate în calculatoare sau transmise prin rețele, se folosesc preponderent algoritmi criptografici cu cheie secretă (simetrice). Ei se caracterizează prin aceea că ambii utilizatori ai algoritmului împart aceeași cheie secretă, folosită atât la cifrare, cât și la descifrare.
Deoarece algoritmul este valid în ambele direcții, utilizatorii trebuie să aibe încredere reciprocă. Securitatea acestui tip de algoritm depinde de lungimea cheii și de probabilitatea de a o păstra secretă.
Whitfield și Martin Hellman, de la Universitatea Stanford, California, au pus bazele criptografiei cu chei publice. În locul unei singure chei secrete, criptografia asimetrică folosește două chei diferite: una pentru cifrare și alta pentru descifrare.
Deoarece este imposibilă deducerea unei chei din cealaltă, una din chei este făcută publică, pusă la dispoziția oricui dorește să transmită un mesaj cifrat.
Doar destinatarul, care deține cea de-a doua cheie, poate descifra și utiliza mesajele.
Tehnica cheilor publice poate fi folosită și pentru autentificarea mesajelor prin așa-zisa semnătură digitală, fapt care i-a mărit popularitatea.
Resursele unei rețele sunt utile prin faptul că pot fi accesate și de utilizatori externi. Pentru a proteja o rețea împotriva accesului extern monitorizat, tot traficul trebuie canalizat și toate cererile autentificate.
Firewall-ul este numele generic al unei componente de rețea care validează tot traficul pe baza unei politici de securitate stabilite. Poate reprezenta o soluție software sau hardware și poate elimina o serie de amenințări din afara rețelei.
Soluțiile firewall, noi și complexe, pot oferi opțiuni adiționale, precum criptarea, autentificarea, scanarea pentru detectarea virușilor, filtrare URL, managementul lățimii de bandă, chiar și monitorizarea traficului.
Există câteva tipuri de firewall:
firewall router, cu filtrare de pachete (cel mai simplu, cel mai utilizat și cel mai ieftin)
firewall de circuit, care intermediază sesiunile TCP între computer client și rețeaua internă sau server, pe rețeaua publică
proxy-uri de aplicație (proxy servere), care sunt cele mai complexe și scumpe soluții
Modele de organizare a bazelor
de date și arhitecturi
de implementare
Încă din zorii civilizației IT, s-a observat că, pe lângă calculele cu care se chinuia tehnologia informatică de început, computerele s-ar preta binișor și la înmagazinarea și exploatarea volumelor mari de informații. Astfel, începând cu anul 1948 s-au făcut mai multe studii, cercetări si experimente privind stocarea datelor, iar de-a lungul timpului s-au manifestat mai multe modele, arhitecturi si tehnologii privind bazele de date [5].
Acceptând un punct de vedere oarecum teoretic, voi trece în revistă principalele modele de concepție si organizare a bazelor de date, pentru ca apoi sa vorbesc despre arhitecturile de implementare.
Modelul rețea: atomii semantici înrudiți se leagă explicit prin identificatori (spre deosebire, de exemplu, de celulele unui rând de tabel care se refera implicit la o anume entitate informațională). În rețea, asocierile sunt realizate printr-o structură de legare (un tip de set are un tip de înregistrare ”owner” și mai multe tipuri de înregistrare ”member”).
Orice relație între date poate fi doar binară (1-la-1 sau 1-la-n), iar reprezentarea bazei de date se poate asimila unui graf direcționat.
Entitatea informațională are un fișier cu câmpuri atribute și câmpuri de legătură.
Operațiile permise sunt căutarea de entități pe baza proprietăților specificate (interogare) și căutarea informațiilor folosind legăturile dintre entități (navigare).
Dezavantajul modelului constă în complexitatea structurilor de date și a limbajului de manipulare.
Modelul ierarhic: asocierea între atomii informaționali este realizată printr-o structură ierarhică (arbore). Poate fi considerat un caz particular al modelului rețea, în care diagrama asociată este o pădure (baza de date poate fi asimilată unei mulțimi de arbori).
Există un tip de înregistrare definit ca rădăcină și, la orice alt nivel, mai multe tipuri de înregistrare subordonate (legătura între două niveluri succesive fiind de tip 1-la-n în jos și 1-la-1 în sus).
Operațiile posibile se reduc în esență la parcurgea arborilor, datele fiind înmagazinate pe mediul extern în succesiunea de parcurgere în preordine a arborilor (se favorizează căutarea descendenților).
Este un model asimetric: o înregistrare are semnificație numai în contextul ierarhiei [6].
Modelul relațional: fiind actualmente cel mai răspândit, acesta înmagazinează datele în tabele care se pot lega logic după valorile anumitor coloane – sistemele de gestiune a bazelor de date relaționale au standardizat SQL-ul ca limbaj de cereri specific.
Relația dintre câmpuri realizează asocierea explicită, asociere care poate fi de durată (prin definirea relației) sau temporară (prin operatorul de joncțiune join).
Este un model simetric: uniformitatea reprezentărilor datelor determină uniformitate în mulțimea operatorilor.
Având la baza teoria matematică a relațiilor (algebra relațională = colecție de operatori ce au ca operanzi relații), modelul a facilitat tratarea algoritmică a problemei proiectării bazelor de date, numită și problema normalizării (normalizarea pornește de la o mulțime de atribute/câmpuri și o mulțime de dependențe funcționale între acestea pentru a obține asistat de calculator schema conceptuală a bazei de date).
Avantaje:
ușor de înțeles (număr redus de concepte) si de controlat (sistemele ajung la o interfață prietenoasă);
scalabilitatea sa este generoasă, fiind și singurul model care cunoaște implementări de baze de date distribuite;
legi de integritate (reguli pentru protejarea datelor și structurilor) ușor de înțeles și de dezvoltat;
spațiu de stocare si redundanță relativ redus;
independența structurilor logice ale bazei de date de modul de stocare fizică a datelor (aplicațiile sunt independente de modul de înregistrare a datelor) – excepțiile au apărut doar motivate de creșteri ale performanțelor;
limbaje simple (bazate pe algebra relațională sau pe calcul relațional): SQL, QBE.
Dezavantaj:
încercările modelului de a înmagazina si informații multimedia nu au ajuns la un numitor comun standardizat [7].
Proiectarea schemei conceptuale presupune realizarea următorilor pași:
stabilirea colecțiilor de date și definirea detaliată a conținutului acestora
determinarea legăturilor dintre colecțiile de date și a modului de reprezentare a acestora în cadrul schemei conceptuale
testarea schemei obținute și revizuirea ei, dacă este cazul
descrierea schemei conceptuale în limbajul de descriere a datelor de care dispune SGBD-ul și încărcarea acestei descrieri în BD
În realizarea acestor activități sunt utilizate, în principal, modelul structural și cel dinamic al sistemului economic [6].
În determinarea colecțiilor de date se pleacă de la entitățile identificate în etapa de analiză a sistemului economic. Fiecărei entități îi corespunde, de obicei, o colecție de date în cadrul schemei conceptuale. În aceste colecții vor figura atributele specifice entităților, plus o serie de atribute cunoscute sub numele de chei externe. Nu există, însă, întotdeauna o corespondență strictă între entitățile din modelele semantice și colecțiile de date.
Între atributele aferente unei entități pot exista o serie de raporturi de determinare (conceptul de dependență a datelor din cadrul modelului relațional). Din cauza acestor dependențe, la momentul exploatării BD pot apărea o serie de disfuncționalități, așa numitele ”anomalii” de actualizare. Se va impune, prin urmare, reducerea la minimum a dependențelor dintre atributele unei colecții de date, lucru realizat, în general, prin descompunerea unei colecții în mai multe, cu un număr mai mic de atribute. Nu se poate admite o creștere nelimitată a numărului de colecții de date, întrucât un număr mare de colecții determină creșterea dificultăților în satisfacerea cerințelor informaționale.
Conceptul de dependență a datelor face parte din cadrul restricțiilor de integritate ale modelului relațional. Acestea, denumite și reguli de integritate, definesc cerințele pe care trebuie să le satisfacă datele din cadrul bazei de date pentru a putea fi considerate corecte, coerente în raport cu lumea reală pe care o reflectă. Sunt de două tipuri și anume:
restricții de integritate structurale, inerente modelului relațional, care se definesc prin egalitatea sau inegalitatea unor valori din cadrul relațiilor (restricția de unicitate a cheii, restricția referențială, restricția entității, dependențele între date)
restricția de integritate de comportament, proprii unei anumite BDR, restricții care țin cont de semnificația valorilor din cadrul bazei de date.
Utilizarea modelului relațional nu impune definirea și verificarea tuturor acestor tipuri de restricții, iar din acest punct de vedere spunem că există:
restricții de integritate minimale, obligatoriu de definit și de respectat atunci când se lucrează cu modelul relațional (restricția de unicitate a cheii, restricția referențială, restricția entității)
alte restricții de integritate (dependențele între date, restricții de comportament)
Cheia unei relații reprezintă ansamblul minimal de atribute prin care se poate identifica în mod unic orice tuplu. Orice relație posedă cel puțin o cheie. La limită, cheia este constituită fie dintr-un singur atribut, fie din totalitatea atributelor din schema relației respective. Când cheia este constituită dintr-un singur atribut poartă numele de cheie simplă, iar atunci când este formată din mai multe atribute este denumită cheie compusă.
O cheie externă reprezintă un atribut (grup de atribute) dintr-o relație ale cărui/căror valori sunt definite pe același/aceleași domeniu/domenii ca și cheia primară a unei alte relații, și care are rolul de a modela asocierea între entitățile respective.
Restricția de unicitate a cheii reprezintă restricția de integritate care impune ca într-o relație, oricare ar fi două tupluri, valorile cheii să fie diferite sau altfel spus într-o relație nu pot exista două tupluri cu o aceeași valoare pentru atributul cheie.
Restricția referențială impune ca într-o relație R1 care referă o relație R2, valorile cheii externe să figureze printre valorile cheii primare din relația R2 sau să fie valori ”null”. Semnificația este următoarea: o asociere nu poate exista decât între partenerii cunoscuți adică partenerii deja definiți.
Restricția entității impune ca într-o relație atributele cheii primare să fie nenule. Cu valori ”null”, cheia își pierde rolul de identificator de tuplu. Această restricție nu se aplică cheilor externe.
Dintre restricțiile de integritate referitoare la dependența datelor cele mai importante sunt cele referitoare la dependențele funcționale. Ele constituie un suport teoretic solid al teoriei optimizării structurii bazei de date, respectiv teoria normalizării relațiilor. Dependențele funcționale reprezintă dependența între date prin care se poate identifica un atribut (sau grup) prin intermediul altui atribut (sau grup).
O dependență funcțională X Y se numește dependență funcțională parțială dacă și numai dacă Y este dependent funcțional atât de X cât și de o parte a lui X. Se numește dependență funcțională totală o dependență de forma X Y în care Y este dependent funcțional de X, fără să fie dependent funcțional de nici una din componentele lui X. O dependența X Y este tranzitivă atunci când se manifestă concomitent cu alte două dependențe funcționale și anume: C X și C Y. Coexistența acestor dependențe face ca Y să fie dependent de C în două moduri și anume (fig. 3.7):
direct, prin C Y
indirect, prin C X Y
Fig 3.7 Dependență funcțională tranzitivă
Restricțiile de comportament – în funcție de realitatea descrisă în baza de date, se pot defini de către utilizatori mai multe tipuri de restricții de integritate de comportament, și anume:
restricții de domeniu
restricții temporale
Tehnica normalizării relațiilor
Aplicarea acestei tehnici conduce către o schemă conceptuală optimizată și presupune efectuarea următoarelor etape:
stabilirea unei scheme conceptuale inițiale a BDR
ameliorarea progresivă a schemei conceptuale a BDR
Se pleacă de la modelele conceptuale ale datelor, mai precis de la modelul entitate-asociere. Pe baza acestui model, schema conceptuală inițială a BDR se poate obține în două moduri și anume:
reprezentarea entităților și a legăturilor dintre acestea sub formă de relații (conversia entităților și a asocierilor dintre ele în relații). Este o variantă ”top-down” de utilizare a tehnicii.
construirea unei relații unice (relația ”universală”), pe baza atributelor tuturor entităților și asocierilor. Este varianta ”bottom-up” și este mai puțin utilizată, întâmpinând mai multe dificultăți.
Ameliorarea schemei conceptuale a unei BDR reprezintă procesul de trecere succesivă a relațiilor obținute prin formele normale cunoscute (FN1, FN2, FN3). De menționat că mai există și alte forme normale însă trecerea prin acestea trei este suficientă.
Aducerea relațiilor în FN1 presupune eliminarea atributelor compuse și a celor repetitive și se realizează astfel:
se trec în relație, în locul atributelor compuse componentele acestora, ca atribute simple
se plasează grupurile de atribute repetitive, fiecare într-o nouă relație
se introduce în schema fiecărei noi relații create cheia primară a relației din care a fost extras grupul repetitiv
se stabilește cheia primară pentru fiecare relație nou creată
Aducerea relațiilor în FN2 presupune eliminarea dependențelor funcționale parțiale din cadrul relațiilor aflate în FN1, astfel:
pentru fiecare dependența funcțională parțială se creează o nouă relație
se determină cheia primară pentru fiecare relație nou creată
Aducerea relațiilor în FN3 se realizează prin eliminarea dependențelor funcționale tranzitive, în următorii pași:
pentru fiecare dependență tranzitivă se transferă atributele implicate într-o nouă relație
se determină cheia primară a fiecărei noi relații creată
se introduc în relația inițială în locul atributelor transferate cheile primare determinate anterior
Schema externă a BD reprezintă forma sub care apare schema conceptuală pentru un utilizator oarecare. Programele de aplicație operează asupra elementelor schemei conceptuale prin intermediul schemei externe, având acces doar la acele elemente care sunt incluse în schema externă. În general, elementele schemei externe sunt similare celei conceptuale.
Schema internă a BD reprezintă modul de structurare a datelor pe suportul fizic. Unele SGBD-uri folosesc propriile metode, altele le utilizează pe cele ale sistemului de operare gazdă.
Modelul obiectual: bazele de date orientate obiect (OO) sunt destinate să suporte modele de obiecte complexe (organizare de tip heap cu referințe între componente), deci modelul este oarecum asemănător rețelei, iar prin faptul că, pentru accesare directă stochează o hartă a ierarhiilor și relațiilor claselor de obiecte, are ascendent și în modelul ierarhic.
Desigur că lucrurile se întâmpla în conformitate cu principiile programării orientate pe obiecte – încapsularea entităților informaționale împreună cu metodele asociate (unitaritate menținută și la stocare), subtranzacțiile determinate de metodele cascadate etc.
Încapsularea specifică OO are ca efect independența aplicațiilor atât față de reprezentarea internă a datelor, cât și față de semantica acestora (adică de operațiile care se pot executa asupra datelor).
Modelul obiectual se pretează pentru înmagazinarea informațiilor complexe: atribute descriptive asociate datelor multimedia, documentelor, desenelor, arhivelor etc.
Soluțiile unor probleme precum optimizarea bazei de date (paralelism, consistență) și asigurarea moștenirii sunt încă perfectibile.
Modelele hibride: sunt mixturi ale modelelor prezentate anterior, din care cel mai semnificativ pentru noi probabil că este modelul relațional-obiectual, obținut prin extensii ale modelului de organizare tabelar si ale SQL-ului și izvorât din tendința spre universalitate a bazei de date (entități complexe și de naturi diferite, evoluând in condiții eterogene) [7].
Lucrarea își propune, după trecerea în revistă e principalelelor modele de organizare a datelor să prezinte și arhitecturile de implementare care s-au manifestat in domeniu.
Arhitectura integrată
Un mediu software independent, instalat pe un singur calculator, include atât baza de date propriu-zisă, cât și interfața de acces la date, astfel că un singur utilizator va fi beneficiarul. Accesarea datelor se face fie printr-un limbaj de generația IV (4GL) sau printr-un macrolimbaj, fie prin elemente de interfața (comenzi la prompter, dialoguri QBE, comenzi menu). Datele fiind organizate tabelar, există posibilitatea de a proiecta aplicații relaționale [7].
Uzual, astfel de medii îngăduie dezvoltarea de aplicații nerelaționale, ceea ce se mai numește si organizare plată sau bidimensională, spre deosebire de organizarea relațională, care este multidimensionala ( exista pericolul confuziei cu denumirea de ”bază de date multidimensională” care corespunde uzual domeniului data warehouse sau aplicațiilor DSS – decision support system – și OLAP – On-Line Analytical Processing, deservind analize economice necesare deciziilor manageriale, adică extragerii ad-hoc de informații sintetice).
Într-un sistem nerelational (revenind la mediul independent), datele care altfel s-ar preta organizării în nomenclatoare (tabele cu înregistrări unice, legate de celelalte tabele prin relații 1-la-n) cunosc un grad excesiv de redundanță, iar actualizarea lor presupune un efort considerabil. (Redundanța datelor, adică faptul că baza de date conține aceleași date stocate de mai multe ori, ridică atât problema spațiului ocupat, cât mai ales dificultatea asigurării consistenței și actualității.)
Arhitectura file-server
Este prima manifestare a organizării multiutilizator pentru universul PC, constând dintr-o rețea centrată logic pe un calculator puternic, numit file-server, de unde se alimentează cu date/aplicații celelalte PC-uri. File-server-ul partajează datele pentru mai mulți utilizatori, dar aceștia îl vad doar ca pe un disc din rețea (file-server-ul se comportă ca o extensie a mediului de stocare, denumirea „file-server“ nefiind specifică bazelor de date!), astfel că – în lipsa unor medii bine integrate în sistemul de operare al rețelei – accesul la informație înseamnă accesul la fișier (iar dacă acesta nu este foarte mic, traficul prin rețea devine greoi). Daca se bazează pe o rețea centralizată (o stea organizata in jurul hub-ului este mult mai performantă decât cea liniară/bus sau peer-to-peer), implementarea LAN a unei baze de date medii poate satisface în foarte multe cazuri.
Arhitectura client/server
Suntem ispitiți să credem, ca un reflex al superficialității, că dacă se implementează o bază de date ce depășește – să zicem – un milion de înregistrări, baza de date desktop (mediu integrat) nu mai face față și trebuie sa ne orientam către un SGBDR mare. Pentru operarea în regim mono-utilizator lucrurile sunt destul de false: performanțele (viteze de accesare si procesare a datelor) sunt cât se poate de comparabile dacă este vorba de un hardware bine echilibrat (un PC care să suporte fără probleme un SGBDR mare va favoriza și baza de date integrată). Altele sunt criteriile care ne orientează către SGBDR-uri mari organizate în model client/server:
operarea multiutilizator concurențială;
descongestionarea traficului prin rețea datorita transmiterii doar a datelor țintă (adică un minim);
controlul drepturilor utilizatorilor și monitorizarea activității (conectare și aplicații);
implementări unice de logică centralizată (reguli, proceduri, declanșatoare – existente doar la nivelul server-ului);
gestionarea tranzacțiilor (”tranzacția = succesiune de comenzi elementare, definind unitatea logică prin care operează un pachet client”), aspect care devine capital/critic atunci când se administrează un sistem complex de date distribuite sau un mediu OLTP (On-Line Transactions Processing); ceva mai recent – sub influența Internetului – tranzacțiile au loc prin comunicație asincrona (conversațională) sau chiar fără confirmare (”fire-and-forget”);
serverul asigură integritatea, consistența și actualitatea datelor;
optimizarea organizării fizice a datelor (colaborarea la un nivel cât mai jos cu sistemul de operare și cu sistemul de fișiere) și optimizarea accesului la date. (Un exemplu de colaborare la nivel fizic este posibilitatea SGBD-urilor de a face duplicări ale datelor – copiile de siguranță fiind unul dintre primele niveluri ale toleranței la defecte).
recuperarea datelor în caz de blocare/cădere a sistemului și refacerea tranzacțiilor neterminate;
jurnalizarea acceselor, tranzacțiilor și a sesiunilor de lucru sau de administrare;
Se cuvine să facem o scurtă descriere a organizării client/server și să evidențiem câteva particularități interesante.
Client si server pot fi văzute și ca doua procesoare distincte rulând pe mașini diferite (mai rar pe aceeași mașină), bazate eventual (dar nu obligatoriu!) pe același sistem de operare.
Comunicația prin care partea ”client” a aplicației solicită servicii părții ”server” se face prin mesaje (message-passing), fiind complet transparentă utilizatorului.
Posturile de lucru pot fi uzual PC-uri, laptop-uri, stații UNIX sau Macintosh, iar serverul poate fi un mainframe, un server departamental sau chiar un PC bine dopat.
Software-ul bazelor de date implementate prin arhitectura client/server se prezintă generic astfel: SGBD-urile asigura partea de server, iar aplicațiile de exploatare a datelor se afla uzual la nivelul client.
Repartizarea datelor si a aplicației (logicii) între straturile "client” și "server” nu este preimpusă, fiecare implementare fiind susceptibila de un optim.
Arhitectura client/server dovedește suplețe (modularitatea si scalabilitatea oferind disponibilitate crescută la reorganizări și extinderi) și deschidere (chiar se consideră că ea a apărut din necesitatea de a asigura o deschidere și interoperabilitate superioare modelului centralizat).
Modelul client/server a fost si el susceptibil de perfecționări de principiu, iar una dintre cele mai interesante este impunerea de niveluri/straturi intermediare între client și server, ca răspuns la dilema legată de poziționarea programelor de aplicație: care dintre parți trebuie sa fie mai consistentă, clientul sau serverul?
Însă cele mai deranjante dezavantaje ale arhitecturii client/server derivă din complexitatea ei (cerințe asupra personalului implicat: înțelegerea conceptuală a arhitecturii de către persoanele de decizie, precum și cunoștințe aprofundate pentru cei care implementează/dezvoltă efectiv sistemul/aplicațiile) și din standardizarea insuficientă.
Nu putem încheia capitolul despre bazele de date în arhitectura client/server fără să amintim de adaptabilitatea organică pentru Internet. Majoritatea serviciilor Internetului se desfășoară în regim client/server (banala navigare înseamnă un utilizator accesând datele dintr-un site-server prin intermediul unei aplicații client, care este browserul de Web), astfel că devine naturală implicarea SGBDR-urilor în aplicații Internet.
CAPITOLUL 3
MODELAREA CERINȚELOR INFORMAȚIONALE
Modelul structural
(entitate-asociere)
Analiza structurală a sistemului economic are ca obiectiv evidențierea componentelor (obiectelor) din cadrul sistemului, pentru care urmează să se colecteze și să se memoreze date în cadrul BD, precum și evidențierea legăturilor dintre aceste componente [6].
Se cunosc mai multe tehnici de analiză structurală și anume: tehnica entitate-asociere, introdusă de P.P.S. Chen, în 1976, tehnica SDM (”Semantic Datamodel”), introdusă de Hammer în 1981, tehnica IFO, tehnica RM/T, etc. Dintre acestea tehnica entitate-asociere este cea mai utilizată.
Tehnica entitate-asociere permite construirea modelului structural sub forma unei diagrame entitate-asociere prin parcurgerea următorilor pași:
identificarea componentelor (entităților) din cadrul sistemului economic
identificarea asocierilor dintre entități și calificarea acestora
identificarea atributelor aferente entităților și asocierilor dintre entități
stabilirea atributelor de identificare a entităților
Identificarea componentelor sistemului economic
Componentele sistemului economic sunt denumite entități și sunt reprezentate în cadrul diagramei prin blocuri dreptunghiulare.
Pot fi puse în evidență următoarele entități:
clienți (CLIENȚI)
conturi (CONTURI)
facturi (FACTURI)
utilizatori flamingo (UTILIZATORI)
bonusuri (BONUS)
Fiecare entitate reprezintă mai multe instanțe (realizări). De exemplu, firma are mai mulți clienți, vinde mai multe conturi, s.a.m.d.
În urma acestei etape se elaborează o primă formă (fig. 3.1) a diagramei entitate-asociere:
Fig 3.1 Diagrama entitate-asociere (prima formă)
Identificarea asocierilor dintre entități si calificarea lor
În cadrul sistemului analizat, componentele nu apar decât arareori izolate. Cel mai adesea, între acestea se stabilesc legături, asocieri.
De exemplu, dacă luăm entitățile CLIENȚI și CONTURI, între acestea există o asociere, în sensul că un client deține unul sau mai multe conturi, sau, altfel spus, un cont este deținut de un anumit client:
Tipul legăturii se exprimă cu ajutorul cardinalității asocierilor. Aceasta exprimă numărul minim și numărul maxim de relizări (instanțe) de entitate care pot fi asociate cu o realizare a partenerului de asociere. Cardinalitatea se exprimă prin perechi de numere, câte o prereche pentru fiecare entitate din cadrul legăturii.
În cazul formulat mai sus cardinalitatea poate fi descrisă astfel:
1 client minim 0 cont
maxim m conturi
minim 1 clienți 1 cont
maxim 1 clienți
În acest caz asocierea dintre CLIENȚI și CONTURI devine:
Clasificarea legăturilor între entități:
după gradul asocierii (maximele cardinalității) avem:
asocieri de tip ”unu la unu”
asocieri de tip ”unu la mulți”
asocieri de tip ”mulți la mulți”
după obligativitatea participării entităților la asociere (minimele cardinalității) avem:
asocieri parțiale
asocieri complete (totale)
după numărul de entități distincte care participă la asociere avem:
asocieri binare (între două entități distincte)
asocieri recursive (asocieri ale entităților cu ele însele)
asocieri complexe (între mai mult de două entități distincte)
Asocierile de tip ”unu la unu”, sunt cele în care maximele cardinalității au valoarea unu.
Asocierile de tip ”unu la mulți”, sunt cele în care una dintre maximele cardinalității are valoarea unu, iar cealaltă are valoarea mulți.
Asocierile de tip ”mulți la mulți”, sunt cele în care maximele cardinalității au valoarea mulți.
O asociere este parțială atunci când nu există obligativitatea participării la această asociere a tututor entităților vizate, ci numai a unora dintre ele sau a nici uneia. Obligativitatea participări entităților la asociere este reflectată de către minimile cardinalității. Valoarea zero a uneia dintre minime exprimă lipsa de obligativitate a participării partenerului la această asociere, în timp ce o valoare mai mare decât zero exprimă obligativitatea participării partenerului la asociere.
Asocierile totale sunt cele la care este obligatorie participarea tuturor entităților la asociere, altfel spus sunt asocierile pentru care minimile cardinalității au valori mai mari decât zero.
În cazul considerat de noi, după maximele cardinalității avem o relație de tip ”unu la mulți”, iar după minime, avem o asociere parțială (asociere parțială de tip ”unu la mulți”):
maxim minim
Asocierile puse în evidență în cadrul analizei structurate reflectă legături naturale care există între componentele sistemului (domeniului) economic real analizat (fig. 3.2). Aceeași realitate poate fi însă percepută diferit, de diferiți analiști de sistem, pentru un același sistem real putând fi obținute modele structurale distincte. Unele dintre aceste modele pot încorpora aceeași semantică fiind prind urmare echivalente. Altele însă pot reflecta numai partial asocierile dintre entități sau pot exprima asocieri care nu există în realitate, fiind prin urmare modele eronate.
Fig 3.2 Diagrama entitate-asociere (forma a doua)
Identificarea atributelor aferente entităților și asocierilor dintre entități
Atributele exprimă caracteristici, proprietăți ale componentelor sistemului (domeniului) economic analizat sau ale asocierilor dintre aceste componente.
În mod curent atributele sunt asociate entităților (fig. 3.3):
Fig. 3.3 Atributele unei entități
Tipuri de atribute:
atribut compus: este un atribut constituit din cel puțin două alte atribute. Valoarea sa este reprezentată de valorile atributelor componente (fig. 3.3)
atribut calculat (dedus): este un atribut a cărui valoare nu este cunoscută direct, ci calculată pe baza valorilor altor atribute (de exemplu, atributul ”valoare”, calculat ca produs între cantitate și preț)
atribut simplu: este un atribut care nu este nici compus și nici calculat. Valorile sale sunt atomice.
atribut repetitiv: este un atribut care, la un moment dat, are mai multe valori care apar sub forma unei liste de valori
În urma identificării atributelor pentru entitățile și asocierile din cadrul domeniului respectiv diagrama entitate asociere ajunge în forma a treia (fig. 3.4):
Fig 3.4 Diagrama entitate-asociere (forma a treia)
Stabilirea atributelor de identificare dintre entități
Un atribut de identificare (cheie) reprezintă un atribut care se caracterizează prin unicitatea valorii sale pentru fiecare instanță a entității.
În cadrul diagramelor entitate-asociere, atributele de identificare se marchează prin subliniere (fig. 3.5).
În scopul stabilirii atributelor de identificare pentru entitățile din cadru sistemului economic analizat este necesar să se examineze mai întâi potențialitatea fiecărui atribut de a se constitui drept atribut de identificare (cheie).
Un atribut poate fi atribut cheie dacă satisface o serie de cerințe și anume:
oferă o identificare unică a realizărilor (instanțelor) de entitate
posedă o semnificație
este ușor de utilizat (atributele de tip bloc, lipsite de semnificație se utiliează greu, favorizând producerea de greșeli la manipularea lor)
este scurt (de cele mai multe ori atributul de identificare a entității apare și în alte entități, drept cheie externă; pe de altă parte, indecșii pentru accesul direct la date se construiesc, în general, pe atributele cheie, cheile lungi determină scăderea eficienței accesului)
Pentru o aceeași entitate pot exista mai multe atribute care pot fi chei (chei candidate). Selectarea uneia dintre ele drept atribut de identificare se realizează astfel:
Se determină atributele care potențial pot constitui atribute de identificare a entității, deci care respectă cerințele menționate anterior și care poartă numele de candidați cheie. Dacă nu există astfel de atribute se introduce un nou atribut drept candidat cheie.
Dacă există un singur candidat cheie, se va selecta acesta drept atribut de identificare e entității.
Dacă există mai mulți candidați cheie, se selectează unul, cu ajutorul unor criterii, precum:
Se preferă atributele ale căror valori sunt mai puțin volatile
Se preferă atributele ale căror valori sunt mai scurte
Fig 3.5 Diagrama entitate-asociere (forma finală)
3.2 Modelul dinamic
Analiza dinamică (de comportament) a sistemului economic are drept scop explicarea comportamentului componentelor sistemului analizat. În urma acestei analize se obține modelul dinamic al sistemului. Construirea lui presupune:
identificara stărilor în care se pot afla componentele sistemului
identificarea evenimentelor care determină trecerea unei componente dintr-o stare în alta
stabilirea succesiuii (fluxului) de evenimente și contruirea unei diagrame care să reflecte tranzițiiile de stare pentru componentele sistemului (diagramă de flux a evenimentelor)
În realizarea diagramei de flux a evenimentelor (fig. 3.6) este necesar să se țină cont de restricțiile dinamice ale sistemului ce servesc la identificarea tranzițiilor admisibile între două strări.
Fig 3.6 Modelul dinamic al componentei cont
3.3 Modelul funcțional
Analiza cerințelor informaționale (analiza funcțională) are drept scop determinarea transformărilor de date care se produc în cadrul sistemului în scopul satisfacerii cerințelor informaționale aferente acestui sistem. Transformările de date se vor prezenta sub forma unei diagrame de flux a prelucrărilor (modelul funcțional fig. 3.7), în care nodurile reflectă procesele de prelucrare informațională și arcele reflectă fluxurile informaționale.
În cadrul analizei funcționale accentul se deplasează cǎtre cerințele informaționale ale utilizatorilor, cerințe a căror satisfacere constituie obiectivul realizării BD.
Construirea modelului funcțional presupune parcurgerea următoarelor etape:
identificarea datelor de intrare și a datelor de ieșire din sistem
identificarea proceselor, care sugereazǎ modul de transformare a datelor
identificarea stocurilor de date
construirea diagramelor de flux prin care sunt reflectate legăturile procedurale dintre intrări și ieșiri
Punctul de plecare în realizarea analizei funcționale îl constituie delimitarea ariei de cuprindere a sistemului ce urmeazǎ a fi proiectat și specificarea modului de interacțiune cu mediul.
Structura funcțională este organizată în jurul entităților facturi, conturi și clienți, pentru fiecare dintre acestea având mai multe funcții.
Principalele activități ce trebuie avute în vedere la realizarea aplicației și care rezultă din modelul funcțional sunt:
autentificarea utilizatorilor Flamingo
adăugare, ștergere client; un client poate fi șters, doar dacă nu are înregistrat nici un cont
introducere cont nou pentru un client deja înregistrat în baza de date
facturare cont nou sau facturare prelungire a unui cont expirat
modificare factură; un utilizator își poate modifica doar propriile facturi, în schimb le poate vizualiza pe toate
acordare bonus în raport cu fidelitatea clientului, calculată ca sumă a tuturor încasărilor de care s-a beneficiat de pe urma lui, sau cu ocazia altor evenimente (promoții)
cautare client, factură, cont
evidența lunară a vânzărilor, comparativ cu lunile precedente
Inițial, înaintea accesării oricărei pagini, angajatul trebuie să se identifice, prin utilizator și parolă. Apoi, clientul, dacă este deja înregistrat în baza de date, poate achiziționa un cont sau dacă are deja unul, îl poate prelungi. Un cont se prelungește în cazul în care acesta este expirat. Dacă angajatul a greșit unele date se pot opera modificări asupra facturilor sau conturilor. De asemenea, la prelungirea unui cont clientul poate modifica parola sa de acces.
Sunt oferite facilitați pentru căutarea unui client, despre care putem afla informații referitoare la conturile pe care acesta le deține (un client poate să aibe mai multe conturi), pentru căutarea unui cont, în cazul în care nu se cunoaște exact cum se numește acesta, pentru că atunci când se face o prelungire trebuie cunoscut numele de utilizator cu exactitate.
În afară de această organizare funcțională în jurul entităților mai sus amintite, există facilitați în vederea desfășurării următoarelor activități:
fiecare angajat își poate vizualiza bonusurile acordate, precum și motivele pentru care ele au fost acordate
poate fi consultată o situație a fidelitații clienților
Analiza domeniului economic se finalizează prin integrarea rezultatelor obținute în cadrul analizei structurale, dinamice și funcționale, mai precis prin integrarea modelelor structural, dinamic și a celui funcțional.
Modelul structural si cel dinamic sunt obținute printr-o investigare a sistemului real, a proprietăților intrinseci, statice și dinamice ale componentelor acestui sistem, proprietăți care sunt independente de aplicațiile care operează asupra lor.
Modelul funcțional (fig. 3.7) este rezultatul analizei cerințelor informaționale ale utilizatorilor, mai precis a tranzacțiilor prin care pot fi satisfăcute aceste cerințe.
Perspectiva diferită din care este realizată analiza explică de ce rezultatele obținute pot să difere fiind necesară o coordonare, deci o integrare a acestor rezultate.
Fig 3.7 Modelul funcțional
Se stabilește în ce măsură modelul structural și cel dinamic satisfac necesitățile diferitelor aplicații, verificându-se completitudinea (existență elementelor informaționale solicitate) și consistența (în ce măsură componentele modelelor sunt necesare și suficiente în raport cu procesele de prelucrare). Se verifică dacă relațiile dintre componentele sistemului sunt stabilite în mod corespunzător, pentru a face posibilă regăsirea informațiilor din mai multe entități.
Se determină, de asemenea, dacă legăturile dintre entități asigură coerența informațiilor, posibilitatea efectuării de actualizări concomitente asupra datelor redundante.
Se urmărește ca toate elementele informaționale participante la diferitele tranzacții să fie asignate ca atribute ale diverselor entități.
Se ajunge ca modelul structural și cel dinamic să nu mai fie complet independente față de aplicații, iar modelul funcțional să nu mai fie orientat exclusiv pe prelucrǎri. Modelarea orientată exclusiv pe aplicații are dezavantajul înglobării unor cerințe eterogene, care complică artificial modelul și oferă posibilități scăzute de adaptare la noi cerințe informaționale. Pe de altă parte, modelarea complet independentă presupune o analiză costisitoare, atât ca resurse umane cât și financiare. Integrarea analizei structurale, dinamice și a celei funcționale elimină aceste deficiențe.
Proiectarea datelor
din sistem
Modelele obținute în urma analizei sistemului economic sunt modele informaționale, adică modele ale datelor despre sistem.
O caracteristică esențială a acestor modele (denumite și modele conceptuale) este faptul că sunt independente de instrumentul, respectiv SGBD-ul care le va face să devină operaționale.
Este extrem de important ca în etapa de analiză a sistemului economic și a cerințelor informaționale asociate, activitatea de modelare a datelor să se realizeze independent de un SGBD. Orientarea pe conceptele proprii unui anumit SGBD prezintă numeroase dezavantaje, dintre care menționăm:
schimbarea SGBD-ului impune reproiectarea BD
conceptele tehnice ale SGBD-ului pot influența negativ activitatea de analiză (și deci de modelare), prin restricțiile impuse de acestea, care pot încuraja sau descuraja anumite reprezentări
fixând ca punct de plecare facilitățile unui SGBD utilizatorul neinformatician care nu stăpânește acest SGBD nu își poate exprima cerințele în deplină cunoștință de cauză
Trecerea la proiectarea structurii BD impune luarea în considerare a SGBD-ului cu ajutorul căruia va fi implementată și exploatată BD.
Structura BD reprezintă, de fapt, un model al datelor, exprimat în conceptele specific unui anumit SGBD, ceea ce face ca proiectarea BD să reprezinte transpunerea modelelor conceptuale în termenii unui model al datelor suportat de un anumit SGBD (model ierarhic, rețea, relațional, orientat obiect).
În procesul de alegere a unui SGBD se ține cont de următoarele cerințe [8]:
cerințe utilizator sub aspectul:
tipurilor de aplicații
timpului de răspuns
confidențialitatea datelor
securitatea datelor
ușurința de utilizare
cerințe de ordin tehnic, privind realizarea BD:
portabilitatea SGBD
portabilitatea BD și a programelor
facilități de încărcare, exploatare și întreținere
cerințe de ordin economic:
încadrarea în bugetul alocat
timpul necesar pentru pregătirea utilizatorilor
Având în vedere aceste considerente, precum și realizarea pe internet a aplicației, am ales SGBD-ul ”MySQL” ce implementează modelul de date relațional.
Schema conceptuală inițială a BDR în cazul aplicației de evidență a vânzărilor se construiește prin metoda ”top-down”, plecând de la modelul entitate-asociere, iar în cazul analizei în vederea optimizării observăm un singur atribut compus, fără atribute repetitive, fără dependențe între datele aceleași relații.
Definirea datelor din sistem pune în evidență legăturile dintre entități. O legătura ”unu la mulți” sau ”unu la unu” se face prin cheia externă, în timp ce o legătura ”mulți la mulți” se face printr-o nouă tabelă. S-au creat două noi tabele acordărib și beneficierib, prin care se ilustrează legăturile ”mulți la mulți” între UTILIZATORI și BONUS precum și între CLIENȚI și BONUS.
CLIENȚI:
CONTURI:
FACTURI:
UTILIZATORI:
BONUS:
ACORDǍRIB:
BENEFICIERlB:
Descrierea datelor în limbajul de descriere a datelor (LDD) de care dispune MySQL se face astfel:
CREATE TABLE CLIENTI (id_client int(6) NOT NULL auto_increment, nume varchar(40) NOT NULL, oras varchar(20) NOT NULL, str varchar(40) NOT NULL, nr varchar(10) NOT NULL, tel varchar(20) NOT NULL, email varchar(40) NOT NULL, PRIMARY KEY (id_client), UNIQUE ID (id_client));
CREATE TABLE CONTURI (utilizator varchar(20) NOT NULL, parola varchar(20) NOT NULL, luni int(6) NOT NULL, ab varchar(10) NOT NULL, id_client int(6) NOT NULL, data date NOT NULL, datar date NOT NULL, PRIMARY KEY (utilizator), UNIQUE ID (utilizator));
CREATE TABLE FACTURI (id_fact int(6) NOT NULL auto_increment, prod varchar(20) NOT NULL, cant int(6) NOT NULL, val int(9) NOT NULL, id_client int(6) NOT NULL, utilizatorfla varchar(20) NOT NULL, data date NOT NULL, PRIMARY KEY (id_fact), UNIQUE ID (id_fact));
CREATE TABLE UTILIZATORI (nume varchar(30) NOT NULL, utilizatorfla varchar(20) NOT NULL, parola varchar(20) NOT NULL, locatie varchar(20) NOT NULL, PRIMARY KEY (utilizatorfla), UNIQUE ID (utilizatorfla));
CREATE TABLE BONUS (id_bonus int(6) NOT NULL auto_increment, den varchar (40) NOT NULL, perioada int(6) NOT NULL, PRIMARY KEY (id_bonus), UNIQUE ID (id_bonus));
CREATE TABLE ACORDARIB (id_acord int(6) NOT NULL auto_increment, id_bonus int(6) NOT NULL, utilizatorfla varchar (40) NOT NULL, data date NOT NULL, motiv varchar(40) NOT NULL, PRIMARY KEY (id_acord), UNIQUE ID (id_acord));
CREATE TABLE BENFICIERIB (id_ben int(6) NOT NULL auto_increment, id_bonus int(6) NOT NULL, id_client int(6) NOT NULL, data date NOT NULL, PRIMARY KEY (id_ben), UNIQUE ID (id_ben));
CAPITOLUL 4
REALIZAREA SISTEMULUI
INFORMATIC
Proiectarea ieșirilor
Realizarea obiectivelor oricărui sistem informatic are loc practic prin satisfacerea cerințelor informaționale. Concret, acest lucru înseamnă furnizarea la cerere a situațiilor de ieșire, care grupează informații, date necesare cunoașterii realității curente [2]. Pe baza lor se efectuează viitoarele prelucrări, înregistrări sau se fundamentează decizii pentru dirijarea funcționării viitoare a sistemului economic.
În activitatea de proiectare a ieșirilor se ține cont de următoarele aspecte:
respectarea unor cerințe ale factorilor de decizie (managerii) și ale utilizatorilor (angajații firmei) privind macheta situației finale
restricții impuse de caracteristicile și performanțele tehnice ale echipamentelor periferice cum ar fi: număr maxim de caractere pe linie, numărul maxim de linii pe ecran, rezoluția maximă, rezoluția recomandată
elemente de eficiență economică privind: reducerea timpului calculator consumat cu editarea propriu-zisă a situațiilor, afișarea doar a elementelor necesare, posibilitatea identificării datelor, deși datele inițiale sunt incomplete, posibilitatea recăutării
lizibilitatea – parcurgerea unei situații finale trebuie să fie cât mai ușoară, citirea nu trebuie să dea naștere la ambiguități, afișarea de explicații, alegerea unor culori plăcute, cromatică adecvată
reprezentarea informațiilor de ieșire sub formă grafică, recomandată factorilor de decizie, pentru că au un grad de sintetizare a informațiilor mai ridicat
Având în vedere toate aceste considerente s-au proiectat trei tipuri de situații finale:
situații finale grafice (exemplu: graficul vânzărilor pe luni)
situații finale selective (în care există posibilitatea selectării datelor ce vor fi afișate după diferite criterii, de exemplu: afișarea facturilor unui client, sau dintr-o anumită dată, afișarea conturilor ce conțin anumite caractere)
situații finale complete (în care se afișează absolut toate înregistrările despre o anumită entitate, de exemplu: listarea bonusurilor sau a facturilor, iar în cazul în care numărul acestora depășește un anumit prag, afișarea se face pe mai multe pagini)
Situații finale grafice
Deși acest sistem informatic nu este destinat cu precădere fundamentării deciziilor manageriale, am proiectat și un grafic al situației vânzărilor pe luni (fig. 4.1):
Fig. 4.1 Situația lunară a vânzărilor
După cum se poate observa din figură este un grafic comparativ, pe trei luni și există posibilitatea selectării lunii începând cu care se face analiza grafică. Se apasă butonul ”go”, iar graficul în funcție de luna de start se redesenează. Este exprimată si valoarea în cifre a dimensiunii încasărilor.
Cele mai semnificative aspecte ale scriptului PHP care face posibilă afișarea acestei machete sunt următoarele:
mysql_connect("localhost", "bogdan", "bodo");
mysql_select_db("aviatiei_db" );
– conectarea la baza de date locală cu utilizatorul bogdan și parola bodo, apoi selectarea bazei de date (aviatiei_db) în care se află tabelele cu care lucrează aplicația;
$result = mysql_query("SELECT val FROM vanzari where data like '%-0$x-%'");
– executarea unei comenzi SQL care îmi returnează valorile facturilor dintr-o anumită lună
while ($myrow = mysql_fetch_row($result))
{
$v1=$v1+$myrow[0];
}
– însumarea tuturor facturilor dintr-o anumită lună
$aux=$v1+$v2+$v3+1;
$v11=($v1/$aux)*150;
– calculul dimensiunii imaginii ce trebuie afișată pentru o anumită lună (dimensiunea maximă este de 150)
<td height="150" valign="bottom"><img src="pic/galben.GIF" width="40" height='<?echo"$v11"?>'></td>
– afișarea într-un tag HTML a imaginii coresunzătoare unei anumite luni; imaginea are ca lungime dimensiunea calculată anterior
În imagine avem și un obiect de tip select ce are o importanța majoră, pentru că ne indică luna de start, începând cu care se face analiza grafică. Comportamentul lui este descris de următoarele linii de cod:
<select name="luni">
<?
$text=array("Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie");
$i=0;
while($i<4)
{
if ($luni == $i) echo"<option value='$i' SELECTED>$text[$i]</option>";
else echo"<option value='$i'>$text[$i]</option>";
$i=$i+1;
}
?>
Valoarea afișată pe ecran de acest obiect este conținută în variabila $text, iar valoarea internă care care ne indică propriu-zis luna de start este conținută în $luni.
Situații finale selective
Acest tip de machetă este cel mai des utilizat și are două faze:
în prima fază se introduc datele după care se face selectarea și afișarea informațiilor
în a doua fază are loc vizualizarea propriu-zisă a informațiilor
Să luăm spre exemplu cazul în care se dorește căutarea unui anumit cont (fig. 4.2). Sunt cerute anumite informații referitoare la ce caractere să conțină numele utilizatorului contului respectiv.
Fig. 4.2 Informații de selecție a conturilor
Ceea ce stă în spatele acestei machete este prezentat în continuare:
<form action="<?=$PHP_SELF?><?if($QUERY_STRING){ echo"?". $QUERY_STRING;}?>" method="POST">
<table width="50%" height="99%" border="1">
<td valign="top">
<div align="center">
Cauta cont (dati orice combinatie de caractere):
<br><br><br>
</div>
<center>
<table width="50%"border="1">
<td width="10%"><strong><font size="1" face="Arial, Helvetica, sans-serif">Utilizator:</font></strong></td>
<td width="40%"><input name="user" type="text" maxlength="50"></td>
<td width="50%"><input type="Submit" name="Submit" value="cauta"></td>
</table>
</form>
Este de fapt o formă HTML care are ca script de acțiune ce trebuie executată la apăsarea butonului de submit (cauta), chiar scriptul în care se găsește ea (altfel spus atunci când se apasă cauta, se mai execută o dată această procedură). În variabila $user, care este transmisă prin metoda POST, vor fi informațiile de căutare. În funcție de acestea, se caută în baza de date toate conturile care conțin înșiruirea respectivă de caractere, indiferent dacă înainte sau după mai conțin și alte caractere. Astfel, în funcție de cât de completă este informația de căutare, putem aveam unul, două sau chiar toate înregistrările (fig. 4.3) din tabelă (toate înregistrările vor apărea atunci când nu se va introduce nimic). Instrucțiunile care realizează acest lucru sunt:
$result = mysql_query("select * from conturi where user LIKE '%$user%' ORDER BY user");
echo "<b>Toate conturile:</b>\n";
echo "<table border=1>\n";
echo"<tr><td>Utilizator<td>Parola</td><td>Abonament<td>Luni<td>Client<td>Data creare<td>Data reincarcare<td>Expirat</tr>\n";
while ($myrow = mysql_fetch_row($result))
{
printf("<tr><td>%s</td><td>%s<td>%s<td>%s<td>%s<td>%s<td>%s<td>%s</tr>\n",$myrow[0],$myrow[1],$myrow[3],$myrow[2],$myrow[4],$myrow[5],$myrow[6],$stare);
}
echo "</table>\n";
?>
Într-un ciclu while, atâta timp cât mai avem informații de afișat, se introduc în variabila $myrow datele dintr-o linie din tabelă (adică o înregistrare), care urmează să fie afișată pe o linie dintr-un tabel (fig. 4.3)
Fig. 4.3 Toate conturile ce au avut ca și criteriu de selecție litera ”m”
Există și machete în care putem selecta datele după mai multe câmpuri, cum este cazul căutării facturilor. În acest caz, putem introduce date despre client, sau despre data facturării (în formatul zz-ll-aaa, cu ziua, luna sau anul, opționale) sau despre ambele (fig. 4.4).
Exemple:
client: Andrei
data: -01-; în acest caz se vor căuta toate facturile din luna Ianuarie făcute pe numele unui client care are numele sau prenumele de Andrei
client:
data: 23-02-; acum vom aveam toate facturile din ziua de 23 Februarie, indiferent de an.
Fig. 4.4 Informații de selecție a facturilor
În cazul informațiilor din figura 4.4 avem următoarele rezultate (fig. 4.5):
Fig. 4.5 Toate facturile cu criteriul de selecție client: Andrei, luna: Ianuarie
Situații finale complete
Acestea sunt asemănătoare celor anterioare, cu singura deosebire că nu mai există nici un criteriu de selecție premergător, ci se afișează absolut toate înregistrările.
Exista două astfel de machete de ieșire:
afișarea tuturor facturilor (fig. 4.6)
afișarea facturilor utilizatorului Flamingo logat în sesiunea curentă (fig. 4.7)
Fig. 4.6 Toate facturile
Aspectul cel mai important în acest caz (fig. 4.6) este că, pentru a evita situațiile în care lista facturilor ar fi mult prea mare, se poate selecta numărul paginii dintr-o listă (așa cum se observă și în figură). Facturile sunt ordonate după numărul lor, deci cele mai recente (ultimele) vor fi în ultima pagină. Și ca o ultimă observație se afișează 10 facturi pe pagină.
În cazul în care utilizatorul logat în mod curent dorește să afle ce facturi a întocmit el, va selecta din meniul ”Vanzari”, butonul ”Ale Mele” care-l direcționează către o planșa unde sunt numai informații despre facturile întocmite de el (fig. 4.7). Acest lucru este util atunci când dorește să afle, spre exemplu, numărul unei facturi pentru a o modifica. Fiecare angajat Flamingo își poate modifica numai facturile sale. Acest lucru se poate face din meniul ”Vânzari”, butonul ”Modifică”.
Fig. 4.7 Toate facturile întocmite de utilizatorul adinah
Proiectarea intrărilor
Prin ”intrările” sistemului vom înțelege totalitatea datelor care reflectă starea și dinamica fenomenelor și proceselor economice din domeniul analizat, care sunt necesare creării, actualizării bazei de date și obținerii situațiilor de ”ieșire”.
Pentru proiectarea videoformatelor de intrare, există două moduri de desfășurare a dialogului operator-calculator și anume:
întrebare-răspuns cu defilarea liniilor ecranului
afișarea machetei de introducere a datelor de intrare
În cazul aplicației noastre varianta a II-a este cea care satisface cel mai bine cerințele avute în vedere la proiectarea specificațiilor de intrare. Cursorul marchează de fiecare dată câmpul curent care se introduce, iar într-o zonă prestabilită se afișează mesajele de eroare, în cazul în care operatorul încalcă regulile de validare a datelor de intrare. Aceste reguli se referă la lungimea câmpului ce trebuie introdus, selectarea sau nu dintr-o listă a unei anumite variante, etc.
Prima machetă de introducere a datelor este cea care întâmpină orice utilizator Flamingo, înainte de a intra pe site, pentru că înainte de a accesa informațiile de care el are nevoie, trebuie să fie mai intâi autentificat (fig. 4.8). Acest ecran ”se repetă” până când operatorul introduce datele corecte, prin care avem certitudinea că este un angajat al firmei.
Fig. 4.8 Autentificarea angajaților firmei
În cazul în care utilizatorul sau parola sunt invalide, el trebuie să le introducă din nou (fig. 4.9):
Fig. 4.9 Autentificare invalidă
Codul HTML care ne construiește această machetă de validare a informațiilor de logare este următorul:
<form action="<?=$PHP_SELF?><?if($QUERY_STRING){ echo"?". $QUERY_STRING;}?>" method="POST">
<p align="center">Doar angajatii Flamingo. Va rugam logati-va inainte de a intra pe site.</p>
<table align="center" border="0">
<tr><th>
Utilizator:
</th><th>
<input type="text" name="username">
</th></tr>
<tr><th>
Parola:
</th><th>
<input type="password" name="password">
</th></tr><tr>
<th colspan="2" align="right">
<input type="submit" value="Trimite">
</form>
Variabilele $username și $password sunt transmise prin metoda POST, iar în cazul în care ele sunt corecte, vor fi înregistrate prin mecenismul sesiunilor (ce va fi prezentat ulterior), pentru ca orice script să le acceseze, atunci când are nevoie de ele (spre exemplu, scriptul care face afișarea facturilor utilizatorului logat).
Alte machete de intrare sunt cele în care se cer date despre un client (fig. 4.10) sau despre un cont de Internet (fig. 4.12). Observăm că în partea de sus avem afișat un mesaj informativ, care ne indică ce ni se cere sau unde am procedat greșit (respectiv ce date nu respectă regulile de validare și trebuie reintroduse). Ca și prima machetă și aceasta prezintă un buton (facturează, adauga, trimite) care declanșează acțiunea de validare a datelor și apoi, dacă este sunt corecte, introducerea lor în baza de date.
Fig. 4.10 Introducere date client nou
Codul HTML care face posibilă această reprezentare este similar celui din prima formă prezentată:
<form action="<?=$PHP_SELF?><?if($QUERY_STRING){ echo"?". $QUERY_STRING;}?>" method="POST">
<table border="0">
<tr>
<td width="17%"><strong><font size="1" face="Arial, Helvetica, sans-serif">Nume:</font></strong></td>
<td width="83%"><input name="nume" type="text" maxlength="50"></td>
</tr>
<tr>
<td width="17%"><strong><font size="1" face="Arial, Helvetica, sans-serif">Oras:</font></strong></td>
<td width="83%">
<select name="oras">
<?
$text=array("Bucuresti", "Iasi", "Craiova", "Cluj");
$i=0;
while($i<3)
{
if ($oras == $text[$i]) echo"<option value='$text[$i]' SELECTED>$text[$i]</option>";
else echo"<option value='$text[$i]'>$text[$i]</option>";
$i=$i+1;}
?>
</select>
</td>
</tr>
<tr>
<td width="17%"><strong><font size="1" face="Arial, Helvetica, sans-serif">Strada:</font></strong></td>
<td width="83%"><input name="str" type="text" maxlength="50"></td>
</tr>
<tr>
<td width="17%"><strong><font size="1" face="Arial, Helvetica, sans-serif">Nr.:</font></strong></td>
<td width="83%"><input name="nr" type="text" maxlength="50"></td>
</tr>
<tr>
<td width="17%"><strong><font size="1" face="Arial, Helvetica, sans-serif">Tel.:</font></strong></td>
<td width="83%"><input name="tel" type="text" maxlength="50"></td>
</tr>
<tr>
<td width="17%"><strong><font size="1" face="Arial, Helvetica, sans-serif">Email:</font></strong></td>
<td width="83%"><input name="email" type="text" maxlength="50"></td>
</tr>
<tr>
<td colspan="2"><div align="right">
<input type="Submit" name="Submit" value="adauga">
</div></td>
</tr>
</table>
</form>
Observăm că avem un câmp de tip select ale cărei valori sunt în variabila $text (Bucuresti, Iasi, Craiova). Cu ajutorul unor linii scrise în PHP comportamentul acestui câmp este decis dinamic, în sensul că, dacă s-a selectat orașul Craiova, iar unul dintre câmpuri este neintrodus în momentul în care se apasă adauga, și, deci, trebuie reafișată forma, pentru linia oraș va râmăne selectat tot Craiova. În mod implicit acest obiect HTML (select) afișează prima valoare din listă (comportament static).
Regulile de validare în acest caz sunt simple, întrucât se lasă la aprecierea clientului ce date dorește să lase despre sine. Astfel tot ceea ce se verifică este dacă s-a încercat introducearea tuturor câmpurilor, iar în cazul în care informațiile lipsesc se tipărește ”-“ (fig. 4.11). Observăm și că mesajul de informare din partea de sus a machetei s-a schimbat.
Fig. 4.11 Validare client nou
În cazul în care clientul este deja înregistrat în baza de date și el dorește să achiziționeze un cont, i se vor cere acestuia date de identificare pentru accesul Internet (fig. 4.12):
Fig. 4.12 Introducere date cont nou
Codul HMTL asociat acestei forme este similar celei prezentate anterior, iar din acest motiv el nu va mai fi listat. Singura diferență este că avem trei obiecte de tip select (cu același comportament ca cel din forma în care se cereau date despre client) și că numele variabilelor de tip ”edit” diferă.
În acest caz accentul cade pe validarea datelor. Regulile sunt următoarele:
câmpul utilizator trebuie să fie unic (el este și cheie primară în tabela conturi)
câmpul utilizator trebuie să fie din cel putin trei caracetere
câmpul parolă trebuie să fie din cel putin trei caractere
pentru câmpurile luni, abonament, client trebuie selectată o valoare din listă
Validarea se face prin următoarele instrucțiuni:
$result = mysql_query("SELECT user FROM conturi");
$er=0;
$validare=1;
if(strlen($parola) < 3)
{
$validare=0;
$er=3;
}
if(strlen($user) < 3)
{
$validare=0;
$er=2;
}
while ($myrow = mysql_fetch_row($result)) if ($user == $myrow[0])
{
$validare=0;
$er=1;
}
if($luni = = "-") $validare=0;
if($ab = = "-") $validare=0;
if($client = = "-") $validare=0;
În cazul în care se apasă butonul factureaza și variabila $validare are valoarea zero, se procedează la reafișarea machetei, păstrând valorile inițiale și indicând de unde vine eroarea (fig. 4.13). Observăm că valorea pentru luni a rămas tot unu, pentru abonament tot nelimitat, clientul este tot Alexandra Popa, însă am făcut o desfășurare a listei, pentru a se vedea cum se face selectarea dintre toți clienții din baza de date. Parola este scrisă cu steluțe ca un mod de securitate și confidențialitate. Mesajul ne indică faptul că valorea câmpului utilizator este prea scurtă.
Fig. 4.13 Validare cont nou
În momentul în care toate datele sunt valide are loc introducerea lor în baza de date. Data facturării, data creării contului și data reîncărcării lui este data curentă. Valoarea facturii se calculează prin următoarele sintaxe:
$result = mysql_query("select curdate()");
$mydate = mysql_fetch_row($result);
if ($ab == "ISDN") $val=20*$luni;
if ($ab == "nelimitat") $val=12*$luni;
if ($ab == "8 ore”) $val=5*$luni;
$query = "INSERT INTO conturi VALUES ('$user','$parola','$luni','$ab','$client','$data','$data')";
mysql_query($query);
$query = "INSERT INTO vanzari VALUES ('','$ab','$luni','$val','$client','$data','$username')";
mysql_query($query);
Machete similare de introducere de date sunt create prin cod HTML și PHP în cazul în care un anumit utilizator Flamingo dorește să modifice sau să șteargă o factură ce-i aparține (fig. 4.14) sau în cazul în care un client care este deja înregistrat în baza de date și a mai avut un cont de Internet, care între timp i-a expirat (fig. 4.15).
Fig. 4.14 Modificare factură
În fig. 4.14 în cadrul mesajului informativ avem informații despre precedentul abonament pentru Internet de care a beneficiat acest client. În cazul în care se dorește ștergerea facturii trebuie selectate din listă abonamentul, respectiv numărul de luni corespunzătoare facturii în cauză (în acest caz abonament nelimitat pentru o lună de zile) și bifarea opțiunii, iar apoi la apăsarea butonului modifică se șterge factura respectivă.
În fig. 4.15 este prezentată o situație în care clientul dorește să-și prelungească abonamentul său pentru că acesta a expirat. În acest moment el poate opta și pentru o schimbare de parolă (caz în care opțiunea respectivă trebuie bifată). Există și posibilitatea nefacturării acestei tranzații și acordării unui bonus. Acesta poate fi acordat din mai multe motive:
promoție pentru un sistem sau modem sau orice altă componentă
fidelitații clientului, care are încasări mari în cadrul abonamentelor achiziționate de la Flamingo
nervozității clientului care spune că din cauza defecțiunilor nenumărate la serverul de dial-up nu s-a putut conecta în repetate rânduri
Fig. 4.15 Prelungire cont
Pentru acordarea unui bonus trebuie selectate ambele opțiuni (fără factură și bonus client).
Opțiunea ”fǎrǎ facturǎ” se bifează în cazul în care se dorește reschimbarea parolei sau s-au greșit datele despre un cont făcut sau prelungit în aceeași zi.
Mesajul informativ ne spune ce fel de prelungire a avut clientul în trecut.
Prelucrǎrile sistemului
informatic
Prin prelucrǎrile sistemului informatic înțelegem totalitatea regulilor și operațiilor, care, aplicate intrǎrilor, ne conduc cǎtre ieșirile sistemului. Asupra multor intrǎri nu se aplicǎ nici o prelucrare, ele prezentându-se ca ieșiri în același mod în care au fost introduse în baza de date. Existǎ însǎ și tipuri de situații finale, care necesitǎ o prelucrare a intrǎrilor.
Pentru a consulta fidelitatea unui client (fig. 4.16) se merge în meniul clienți, butonul ”fidelitate”, iar acolo se selectează dintr-o listă (în care apare numărul total de clienți înregistrați) numărul primilor clienți despre care se dorește a afla ce încasări au și ce bonusuri li s-au acordat (în valoarea absolută, ordonați descrescător după încasări).
Fig. 4.16 Fidelitate client
Modul în care sunt calculate valorile pentru încasări și bonusuri este similar.
Pentru încasări avem algoritmul prezentat în continuare:
$r1 = mysql_query("SELECT nume FROM clienti");
while ($m = mysql_fetch_row($r1))
{
$r2 = mysql_query("SELECT val FROM vanzari where client='$m[0]'");
$val=0;
while ($my = mysql_fetch_row($r2))
{
$val=$val+$my[0];
}
mysql_query("update clienti set inc=$val where nume='$m[0]'");
}
Pentru fiecare client se însumează valorile tuturor facturilor sale, apoi se face o actualizare a valorii totale în înregistrarea clientului respectiv. În variabila $m se va afla rezultatul interogǎrii $r1, linie cu linie (de fapt, în fiecare linie se aflǎ numai numele tuturor clienților). În variabila $my se va afla rezultatul interogǎrii $r2, care, de asemenea, conține numai valoarea unei facuri. Deci, $m[0] reprezintǎ numele unui client, iar $my[0], reprezintǎ valoarea unei facturi a respectivului client. În final, valoarea tuturor facturilor unui client este reprezentatǎ de variabila $val.
Pentru a afla informații despre starea unui cont (fig. 4.15) se poate merge în meniul conturi, butonul prelungire, cu condiția ca numele complet al utilizatorului sǎ fie cunoscut. Un cont expirǎ dacǎ de la data ultimei prelungiri (adica data reîncǎrcǎrii lui) au trecut un numǎr de luni, specificat în acea prelungire. Exemplu: utilizatorul andrei a fost încǎrcat ultima datǎ pe 18 Februarie 2003 pentru o lunǎ de zile. În mod normal 18 Martie 2003 este ultima zi în care contul este activ, urmând ca pe 19 Martie starea lui sǎ fie ”Expirat”. În data de 27 Martie (data curentǎ, conform exemplului din fig. 4.15) clientul vine la magazin sǎ facǎ o nouǎ reîncǎrcare a contului sǎu.
Algoritmul prin care se aflǎ dacǎ un cont a expirat este prezentat în continuare:
$result = mysql_query("select * from conturi where user='$user'");
$myrow = mysql_fetch_row($result);
$dataexp=array("");
$dataexp=$myrow[6];
$xx=$dataexp[4]+$myrow[2];
if ($xx<10) $dataexp[4]=$xx;
else
if ($xx<13)
{
$dataexp[3]='1';
if($xx == 10) $dataexp[4]='0';
if($xx == 11) $dataexp[4]='1';
if($xx == 12) $dataexp[4]='2';
}
else
{
$dataexp[9]='4';
$xx=$xx-12;
if ($xx<10) $dataexp[4]=$xx;
else
if ($xx<13)
{
$dataexp[3]='1';
if($xx == 10) $dataexp[4]='0';
if($xx == 11) $dataexp[4]='1';
if($xx == 12) $dataexp[4]='2';
}
}
$text=array("");
$text=$dataexp;
$data=array("");
$data=$dataexp;
$data[0]=$text[6];
$data[1]=$text[7];
$data[2]=$text[8];
$data[3]=$text[9];
$data[4]="-";
$data[5]=$text[3];
$data[6]=$text[4];
$data[7]="-";
$data[8]=$text[0];
$data[9]=$text[1];
$dataexp=$data;
$result = mysql_query("select curdate()");
$mydate = mysql_fetch_row($result);
$datacur=$mydate[0];
$x=strcmp($dataexp, $datacur);
if (($x == 0) | ($x > 0)) $stare="In termen";
else $stare="Expirat";
În variabila $myrow[6] se aflǎ în formatul zz-ll-aaaa data reîncǎrcǎrii contului. Aceasta trebuie sǎ fie fie transformatǎ în data expirǎrii unui cont prin adunarea variabilei $myrow[2], ce conține numǎrul de luni de prelungire. Apoi ea trebuie adusǎ în formatul aaaa-ll-zz ($dataexp), format în care se aflǎ și data curentǎ ($datacur) pentru a putea fi comparate ca string-uri. Dacǎ data expirǎrii este mai mare sau cel puțin egalǎ cu data curentǎ, atunci contul nu este încǎ expirat, deci starea lui este ”In termen”. În caz contrar starea este ”Expirat”. În funcție de aceste informații clientul își va prelungi sau nu contul sǎu de acces Internet.
Mecanismul sesiunilor
în PHP
Așa cum am precizat într-un capitol anterior când am vorbit despre ”Securitatea informaționalǎ în contexul Internet”, este important ca accesarea datelor sǎ se facǎ în mod autorizat, iar transmiterea lor între client (browser-ul Web care acceseazǎ pagina) și server (în cazul de fațǎ, serverul HTTP Apache) trebuie sǎ se facǎ criptat, mai ales când e vorba de câmpuri de tip parola. Aceste elemente de securitate sunt implementate și în PHP prin mecanismul sesiunilor.
Termenul de ”sesiune” în PHP reprezintă succesiunea de accesări ale unor pagini aparținând unui website de către un același utilizator. Mai clar, conceptul de ”sesiune” îl acoperă pe cel de ”vizită”, indiferent dacă utilizatorul accesează una sau mai multe pagini. În mod evident sesiunea (vizita) se termină atunci când utilizatorul părăsește website-ul (mergând pe un alt website sau închizând programul de navigare). Problema care a dus la implementarea conceptului de ”sesiune” în PHP a fost nevoia de a păstra în siguranță valoarea anumitor variabile între două accesări consecutive ale unor pagini de către utilizator.
Controlul variabilelor de sesiune (variabilele care își păstrează valoarea de la o accesare la alta, în cadrul aceleiași vizite) se face prin intermediul unor funcții de tip session_start(), session_register(), session_unregister() și session_destroy().
Trebuie reținut faptul că nici una dintre aceste variabile nu este definită la începutul scriptului și că ele își primesc valoarea precedentă (ultima valoare, la terminarea execuției scriptului accesat anterior) doar la execuția uneia dintre funcțiile session_start() și session_register().
Funcția session_register() apelează mai întâi funcția session_start() dacă este apelată înaintea unei astfel de funcții în script. De asemenea funcțiile session_unregister() și session_destroy() funcționează numai dacă una dintre funcțiile session_start() și session_register() a fost apelată anterior în cadrul scriptului.
Utilizarea principală a „sesiunilor” în PHP este în cadrul secvențelor de tip logare/ieșire, caz în care în faza de logare se inițializează sesiunea, se definesc variabilele care se doresc transmise (inclusiv cu valori oferite de utilizator), iar în faza de ieșire se „distruge” sesiunea prin apelul funcției session_destroy().
Prin scriptul prezentat în continuare se face autentificarea utlizatorilor Flamingo atunci când acceseazǎ aplicația on-line. Pentru folosirea lui trebuie sǎ avem instalatǎ o versiune de PHP4 care sǎ fie configuratǎ sǎ accepte sesiunile.
În prima parte avem urmǎtoarele linii de cod:
<?
session_start();
?>
<html>
<head>
<head>
<body BGCOLOR="#185584" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
În afarǎ de puțin HTML, cea mai importantǎ funcție este session_start(), care inițializeazǎ sesiunea sau o rezumǎ pe cea anterioarǎ.
În continuare trebuie sǎ vedem dacǎ utilizatorul este logat. În caz negativ trebuie sǎ afișam o formǎ de introducere date ca în fig. 4.8.
<?
if(!isset($username) | !isset($password)) {
?>
<form action="<?=$PHP_SELF?><?if($QUERY_STRING){ echo"?". $QUERY_STRING;}?>" method="POST">
….. (vezi codul figurii 4.8)
În acest moment $username și $password sunt variabilele sesiunii. Ele vor fi înregistrate pentru ca toate celelalte scripturi sǎ aibe acces la ele.
session_register("username");
session_register("password");
mysql_connect("localhost","bogdan", "bodo");
mysql_select_db("aviatiei_db" );
$sql = mysql_query("SELECT parola FROM users WHERE user = '$username'");
$fetch_em = mysql_fetch_array($sql);
$numrows = mysql_num_rows($sql);
mysql_close();
if($numrows != "0" & $password == $fetch_em["parola"]) {
$valid_user = 1;
}
else {
$valid_user = 0;
}
Se verificǎ dacǎ în tabela users existǎ cineva cu numele de utilizator $username ($numrows != “0”), iar în caz afirmativ dacǎ parola sa ($fetch_em[“parola”]) conincide cu cea din forma ($password) și se seteazǎ variabila $valid_user pe true (adicǎ unu).
Dacǎ informațiile de logare sunt incorecte se distruge sesiunea:
if (!($valid_user))
{
session_unset();
session_destroy();
?>,
și se afișeazǎ o nouǎ formǎ (fig. 4.9) prin care se cer din nou informațiile de autentificare.
<form action="<?=$PHP_SELF?><?if($QUERY_STRING){ echo"?". $QUERY_STRING;}?>" method="POST">
<p align="center">Informatii de logare incorecte.</p>
<table align="center" border="0">
<tr>
<th>
Utilizator:
</th>
<th>
<input type="text" name="username">
</th>
</tr>
<tr>
<th>
Parola:
</th>
<th>
<input type="password" name="password">
</th>
</tr>
<tr>
<th colspan="2" align="right">
<input type="submit" value="Trimite">
</form>
Este bine sǎ avem scris și un script prin care utilizatorul în mod explicit sǎ termine sesiunea curentǎ de lucru. În cazul nostru acesta se executǎ atunci când se apasǎ pe opțiunea iesire din meniu.
<?
session_start();
session_unset();
session_destroy();
?>
<html>
<head>
<title></title>
</head>
<body BGCOLOR="#185584" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<p align="center">Te-ai delogat cu succes…</p>
<p align="center"><a href="index.php">Logati-va din nou</a></p>
</body>
</html>
CONCLUZII
Prin implementarea acestui sistem informatic în mod sigur principalele obiective stabilite în partea introductivă a acestei lucrări au fost realizate:
fluidizare și dinamizare a activitǎții de evidențǎ a conturilor de acces la Internet. Acest tip de vânzǎri are un caracter diferit fațǎ de celelalte, în sensul cǎ, promptitudinea și rapiditatea cu care se realizeazǎ operațiunile sunt foarte importante pentru clienți deoarece ei, pe lângǎ conturile de Internet, primesc și un cont de e-mail, pe care adesea în folosesc în comunicarea cu partenerii de afaceri sau în interes personal.
reactivare rapidă a accesului clientului. În cazul în care contul expirǎ este foarte important ca reactivarea sǎ se facǎ rapid pentru ca afacerile sau interesul privat al clientului sǎ nu aibe de suferit. Pentru cǎ avem clienți în mai multe orașe ale țǎrii și chiar și în București existǎ cel puțin 15 magazine Flamingo, centralizarea informațiilor era absolut necesarǎ. O aplicație on-line se preteazǎ cel mai bine pentru realizarea acestui scop.
sporirea gradului de informare a clienților. Existǎ și un serviciu de suport, prin care clienții pot comunica telefonic cu operatorii noștri pentru a afla date despre starea conturilor lor. Operatorii firmei având toate informațiile concentrate într-un singur loc, pot satisface nevoile clienților printr-o eficiențǎ crescutǎ.
comunicarea între client și server se face securizat. Nivelul de securitate poate fi setat la o cota minimalǎ sau la un nivel maximal prin care absolut toate informațiile sǎ fie criptate. Acest lucru se face prin configurarea serverului HTTP. Existǎ și alte elemente care intervin, cum ar fi algoritmul folosit. Apache suportǎ atât criptarea prin chei simetrice, cât și prin chei asimetrice. Securitatea tranzacțiilor efectuate este importantǎ, deoarece informațiile prelucrate de sistem sunt confidențiale: numai clientul trebuie sǎ cunoascǎ parola contului sǎu, iar informațiile privind volumul vânzǎrilor aparțin în exclusivitate firmei.
Pentru cǎ în acest domeniu piața dezvoltatǎ în România este încǎ la început, potențialul și ritmul anual de creștere sunt ridicate. Din acest motiv evoluția vânzǎrilor trebuie analizatǎ în mod sistematic, pentru a determina aspectele aducǎtoare de profit în vederea dezvoltǎrii și consolidǎrii acestora, precum și reducerea sau chiar eliminarea aspectelor care dǎuneazǎ activitǎții. Sunt avute în vedere, în principal, analizele grafice care prezintǎ evoluția vânzǎrilor, sau orice alte tipuri de analize, direcție în care sistemul poate fi îmbunǎtǎțit.
De asemeni, o altǎ direcție de îmbunǎtǎțire ar putea fi comunicarea și integrarea acestui sistem cu altele din firmǎ pentru a întregi datele referitoare la accesul Internet. Atunci când serverul dial-up, cel care realizeazǎ în mod curent accesul, este afectat de diverși factori (interni sau externi) și el intrǎ în nefuncționare, nu existǎ o legǎturǎ între sistemul de evidențǎ a vânzǎrilor și cel de dial-up în vederea stabilirii timpului de inactivitate din perioada respectivǎ. Atunci când un client solicitǎ un bonus pentru cǎ nu a putut accesa serviciul nostru (din motive ce țin de noi) se merge pe încrederea de care dǎ dovadǎ clientul demonstratǎ prin volumul încasǎrilor, longevitate, etc.
BIBLIOGRAFIE
[1] – Gheorghe Orzan Sisteme informatice de marketing, Uranus, 2001
[2] – I. Lungu, Gh. Sabău, C. Bodea, Tr. Surcel Proiectarea sistemelor informatice economice, Siaj, 1994
[3] – Onete Bogdan Sisteme informatice, ASE, 2001
[4] – SamsNet, Securitatea în internet, Teora, 2000
[5] – C.J.Date An introduction to Database Systems, 7nd Edition, Addison-Wesley, 2000
[6] – I. Lungu, C. Bodea, C. Ioniță, G. Bădescu Baze de date. Organizare, proiectare și implementare, ALL, 1995
[7] – Thomas M. Connolly, Carolyn E. Begg Database systems: a practical approach to design, implementation and management, third edition, Addison-Wesley Pearson Education Lmt., 2002
[8] – M. Velicanu, C. Bodea, I. Lungu, C. Ioniță, G. Bădescu Sisteme de gestiune a bazelor de date, Petrion, 1999
[9] – Paul Dubois, MySQL, Teora, 2001
[10] – Bill McCarty, PHP4, Teora, 2002
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: .sistem Informatic On Line DE Evidenta A Vanzarilor Internet LA Flamingo Computers (ID: 148926)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
