Baze de Date Netezza
Baze de date Netezza
Introducere
Netezza este construit pe standardele depozitelor de date bazat pe integrarea arhitecturală a bazelor de date, serverelor de stocare și are capacități analitice avansate într-un singur sistem, ușor de gestionat. IBM Netezza 1000 este proiectat pentru analiza rapidă și profundă a volumelor de date scalare în petabytes, oferind 10-100x performanță la o fracțiune din costul altor opțiuni disponibile de la vânzătorii tradiționale.
Analiză profundă, sofisticată pe volumele de date istorice este seva întreprinderilor într-o economie inteligentă, oferindu-le un avantaj peste concurența. Cu toate acestea, cele mai multe organizații au de a face o alegere între volumul de date și complexitatea analitică din cauza limitărilor de infrastructură de tehnologie.
Cele mai multe analize efectuate pe date de mari au dimensiuni relativ simple. Infrastructura bazată pe baze de date tradiționale și tehnologie de stocare, se extind doar pentru a ține pasul cu creșterea de utilizare și a volumelor de date. Cu depozitul de date IBM Netezza organizațiile nu mai trebuie să facă o alegere între volum de date și analitică de complexitate. Aparatele IBM Netezza sunt scalabile, sisteme paralele masive care permit clienților să ronțaie volume de date enorme, care un număr mare de utilizatori care solicită întrebări de date care nu a putut chiar să fie avute în vedere înainte.
Capitol 1 – Netezza
1.1. Arhitectura
Arhitectura aparatului depozitului de date Netezza se bazează pe un principiu fundamental de informatică: atunci când operează cu seturi mari de date, nu muta datele dacă nu ai altă obține. Arhitectura IBM exploatează pe deplin acest principiu de utilizarea a componentelor de mărfuri numite Field Programmable Gate Arrays (sau FPGA) pentru a filtra datele străine cât mai devreme în fluxul de date în care este posibil. Arhitectura bazei de date Netezza combină cele mai bune elemente Symmetric multi-processing (SMP) și MPP pentru a crea un aparat construit cu scopul de a rul pentru analiza rapidă a datelor în volume de dimensini de petabytes. Fiecare componentă a arhitecturii, inclusiv procesorul, FPGA, memorie și rețeaua, este atent selectata și optimizată pentru serviciile de date pentru le mută rapid de disc.Abordarea IBM pentru depozitare de date este foarte diferită de ceea ce au oferit alți furnizori cum ar fi Oracle și Teradata. Aparatele Netezza sunt pentru ronțăit volume masive de date rapid și eficient.Acest lucru permite organizațiilor să realizeze valoare afacerii rapid, și analitic explorează zonele neimaginate anterior. O mare parte din avantaj de performanță ale depozitului de date IBM Netezza vine de la arhitectura AMPP unică, care combină un SMP front-end cu un comun MPP back-end pentru prelucrare datelor de interogare.Fiecare componentă a arhitecturii este atent aleasă și integrata pentru a se obține un sistem general echilibrat. Fiecare element de procesare funcționează pe fluxuri de date multiple, filtrarea datelor străine cât repede posibil. Mai mult de o mie de aceste fluxuri de MPP personalizate lucreze împreună pentru a "divide și cuceri" volumul de muncă.
Fig. 1.1.1. Arhicetura AMPP
Să examinăm elementele centrale ale aparatului:
• IBM host: Hosturile SMP sunt servere IBM de înaltă performanță care rulează pe Linux și sunt stabilite într-o configurație activ-pasivă pentru o disponibilitate înaltă. Hostul activ prezintă o interfață standardizată pentru instrumente și aplicații externe. Compilează interogări SQL în segmente de cod executabil numite fragmente, creează planuri optimizate de interogare și distribuie fragmentele la ganglionii PPM pentru execuție.
• Snippet Blades (S-Blades): S-Blades sunt noduri de procesare inteligente care alcătuiesc motorul turbo MPP al aparatului. Fiecare S-Blade este un server independent care conține puternice procesoare multi-core, FPGA multimotor și gigabytes de memorie RAM, toate echilibrate și lucrează în același timp pentru a oferi performanțe de vârf. Miezurile CPU-urilor sunt proiectate pentru a putea trecere la rularea algoritmilor complecși împotriva volume mari de date pentru aplicații analitice avansate.
• Disk enclosures: Carcasele disc contion densitate de inalta performantă, discurile de stocare IBM sunt protejate RAID. Fiecare disc conține o felie de date într-un tabel baza de date.
• Network fabric:Toate componentele sistemului sunt conectate printr-o țesătură rețea de mare viteză. IBM rulează un protocol IP personalizat care utilizează în totalitate la lățimea de bandă transversală a rețelei. Rețeaua este optimizată pentru a scala la mai mult de o mie de noduri, permițând în același timp fiecarui nod sa inițializeze transferuri de date mari pentru fiecare alt nod simultan.
Toate sistemele componente sunt redundante. In timp ce hostul este active-pasiv, toate celelalte component ale aplicatiei sunt hot-swappable. Date utilizatorului sunt pe deplin reflectate, permițând o disponibilitate de 99,99%.
Un procesor fragment (unu din multe): componente depozitului de date IBM Netezza se combină pentru a extrage cel mai mare debit din fiecare nod MPP.
Fig. 1.1.2. Arhitectura de procesare intens paralelă
Fiecare FPGA conține motoare care îndeplinesc funcții de filtrare și de transformare pe fluxul de date încorporat. Aceste motoare sunt FAST dinamic reconfigurabile, permițându-le să fie modificate sau extinse prin intermediul software-ului. Ele sunt personalizate pentru fiecare fragment prin parametri furnizați în timpul executării interogării și acționează în fluxul de date furnizat de un modul de acces direct la memorie (DMA) la viteză mare.
Motoarele FAST includ:
• Motorul de compresie, un depozit de date IBM stimulează performanța sistemului cu un factor de 4-83 datele motorului de compresie la viteza de rețea, transformând instantaneu fiecare bloc de pe disc în 4-8 blocuri în memorie. Rezultatul este o accelerare semnificativă a componenței lente în orice depozit de date – disc.
• Proiectul și Restricții motoare, motoarele sporesc performanța prin filtrarea coloane și rânduri, respective, pe baza parametrilor din SELECT și WHERE într-o interogare SQL.
• Vizibilitate motorului joacă un rol critic în menținerea ACID (atomicitate, coerență, izolare și durabilitate). Se filtrează rândurile ce nu ar trebui să fie "văzute" de către o interogare; de exemplu, rândurile care aparțin la o tranzacție care nu este încă compilată.
Fig. 1.1.3. Motorul IBM FAST
Stocarea inteligentă conține două controlere RAID redundante care gestionează discurile și hardware-urile asociate în cadrul unui grup de stocare. Controlorii RAID sunt dispozitivele cache, care îmbunătățesc performanțele de citire și operațiunile de scriere pe discuri. Cache sunt oglindite între cele două controlere RAID pentru redundanță; fiecare controler are un dispozitiv bliț de rezervă și o baterie pentru a proteja împotriva pierderii de energie cache.
Controlorii RAID funcționează independent de software Netezza și hosturi. De exemplu, dacă vă opriți software-ul Netezza (cum ar fi pentru un upgrade sau alte activități de întreținere), controlere RAID continuă să ruleze și să gestioneze discurile în cadrul grupului de stocare. LED-urile de activitate sunt pe grupe de stocare de operare chiar și atunci când sistemul Netezza este oprit. Dacă un disc se defectează, controller RAID inițiază procesul de recuperare și regenerare;
Cache și RAID sunt dezactivate atunci când apar oricare dintre următoarele condiții:
Eșuarea bateriei
Eșecul dispozitivului de rezervă Cache
Eșecul controlorului RAID Peer (care este, o pierdere a oglinzii cache)
Când memoria cache este dezactivată, grupul de stocare (și sistemul Netezza) trece printr-o degradare de performanță până când starea este rezolvată și cache-ul este activat din nou.
Netezza folosește DHD într-un mod sincronic, care are un sistem de oglindire strâns cuplat. Atunci când un bloc este scris, hostul activ nu înregistrează scrisul până când hostul activ și hostul standby au scris complet blocul . Hostul activ trebuie să primească o confirmare de la hostul de așteptare pe care, de asemenea, a finalizat scrierea. Oglindă sincron este de cele mai multe ori utilizată în mediul HA, care doresc cea mai mare asigurarea posibilă că nu au nicio tranzacție pierdut în cazul în care nodul failover activ trece la nodul stanby. Oglindirea datele utilizatorului crește fiabilitatea și disponibilitatea datelor utilizatorului și menține o copie redundanță și consecventă a tuturor datelor stocate pe fiecare felie de date primare.
Fiecare disc deține seturi de date de utilizator: .
– felie de date primare gestionate de S-Blade care deține disc / felie de date
– partiția oglindă, CARE este o copie identică a unui alt felie de date disc.
Fig. 1.1.4. Parționarea primară/Partionarea oglindă
Sarcinile oglinda.
-Replicarea: Replicarea datelor modificae pepartitia discului primar corespunde partitiei oglinda.
-Failover: Sprijinirea failover înseamnă că atunci când un disc nu răspunde în mod automat trecerea la copia în oglindă a datelor.
-Regenerarea: regenerarea partiției primare a unui disc esuat se face prin utilizând copiei de pe oglindă, și regenerarea partiției oglindă folosind datele primare.
1.2. Componentele Aparatului Netezza
Aparatul Netezza are un număr de componente hardware care sprijină funcționarea dispozitivul. Aparatul Netezza este format din una sau mai multe rafturi de hardware, cu servere gazda, switch-uri, SPUs, discuri, regulatoare de putere, dispozitive de răcire, și are un management al
modulelor și cablurilor. Cu toate acestea, în administrarea de zi cu zi a aparatului, doar un subset
din aceste componente necesită o atenție administrative de orice fel. Multe dintre aceste componente sunt redundante și hot-swappable pentru a asigura funcționarea înalță pe sistemele hardware.
Componentele hardware-cheie pentru monitorizarea includ următoarele:
Host servers: Fiecare sistem Netezza HA are una sau două servere gazda pentru a rula software-ul Netezza și pentru a sprijinii aplicații. Dacă un sistem are două servere gazdă, gazdele operează într-un mediu disponibil (HA) de configurare performant ; adică, o gazdă este gazdă activă sau primară, și cealaltă este o gazdă standby gata să preia ce este activ sau nu.
Snippet processing arrays (SPAs): SPAs conține SPUs și discul asociat de depozitare care conduce interogarea procesată pe aplicația Netezza.
Storage Group: include monitorizarea satului pe disc.
Disks: Discurile sunt medii de stocare pentru utilizatorii bazei de date și pentru management tabelelor de către aplicația Netezza.
Data slices: Felii de date sunt partițiile virtuale de pe discuri. Fiecare partiție are o copie redundanta pentru a se asigura că datele pot supraviețui unui eșec pe disc.
Fans and blowers: Aceste componente controlează temperatura de răcire pentru rafturi și componente, cum ar fi :SPAs-urile și discurile încinse.
Power supplies: Aceste componente oferă energie electrică diferitelor componente hardware ale sistemului.
Aparatul Netezza folosește evenimente și indicatori de stare pentru a trimite notificări cu privire la orice erori de hardware. Cele mai multe componente hardware sunt redundante; astfel,dacă apare un eșec celelalte componente hardware rămase vor asuma activitatea componentei care a eșuat. Sistemul poate sau nu poate să opereze într-un mediu degradat, în funcție de componentă care a eșuat. Sistemul nu trebuie rulat într-o stare degradată pentru o perioadă lungă de timp.
Netezza folosește două formate pentru a descrie poziția unui component hardware într-un rack.
Locația logic este un șir într-un format dot care descrie poziția unei componente hardware în rack-ul Netezza.
Locație fizică este un șir de text care descrie amplasarea unei componente. Locația fizică a unei componente poate di afișata folosind comanda nzhw
Fig.1.2.1. Componentele aparatului Netezza și locația acestora
Fiecare componentă hardware a sistemului de Netezza are un rol hardware, ceea ce reprezintă
modul în care este utilizat hardware.
Rolurile care sunt afișate după folosirea comenzii nzhw:
None – Rolul None indică faptul că hardware-ul este inițializat, dar urmează să fie descoperit de către sistemul Netezza. Acest lucru se întâmplă de obicei în timpul pornirii sistemului.
Active – Componenta hardware-ul este un participant activ al sistemului.
Assigned – Hardware-ul este tranzacționat pentru a activa.
Faild – Hardware-ul nu își poate folosi spațiul.
Inactive – Nu este disponibil pentru nici un sistem operațional.
Mismatched – Acest rol este specific discuri. Dacă discul are o UUID care nu se potrivește cu UUID gazdă, atunci se consideră nepotrivite. Trebuie să activați hardware
utilizând comanda nzhw înainte de a putea deveni o rezervă utilizată în sistem.
Spare – Hardware nu este utilizat în funcționare curentă a Sistemului Netezza, dar este disponibil pentru a deveni activ în eventualitatea unui failover.
Incompatible – Hardware-ul este incompatibil cu sistemul, trebuie scos și înlocuit cu componente compatibile hardware.
Un disc este o unitate fizică pe care se află datele. Într-un sistem Netezza, servere gazdă au mai multe discuri care dețin software-ul Netezza, sistemul de operare gazdă, metadatele bazelor de date, și uneori fișierele mici ale utilizatorilor. Sistemul Netezza are, de asemenea mult mai multe discuri care dețin baze de date ale utilizator și tabelelor. Pentru IBM Netezza 1000 sau IBM System PureData Analytics Sisteme N1001 sunt 48 locuri pe discuri într-o matrice de stocare pentru un total de 96 de discuri în rack-ul de configurare complet. Pentru sistemele IBM Netezza C1000, 36 discuri de ședere în fiecare grup de stocare, și există patru grupuri de depozitare într- un suport pentru un total de 144 de discuri. O felie de date este o reprezentare logică a datelor salvate pe un disc. Felie de date conține "bucăți" din fiecare bază de date. Atunci când utilizatorii creează tabele și încărca datele, distribuția datelor pentru tabelul în sistemul folosit se face pe cheie. O distribuție optimă este una în care fiecare felie de date are aproximativ aceeași valoarea pentru fiecare tabel. Sistemul Netezza distribuie datele de utilizare a tuturor feliilor de date în sistemul folosind un algoritm cash. O partiție de date este o reprezentare logică a unei felii de date care este gestionat de un anumit SPU. Adică, fiecare SPU deține una sau mai multe partiții de date, care conține datele de utilizator. SPU este responsabil pentru procesarea în timpul interogărilor. De exemplu, în IBM Netezza 1000 sau IBM System PureData Analytics N1001, fiecare SPU de obicei deține 8 partiții de date deși un SPU are doar 6 partiții. Pentru un sistem IBM Netezza C1000, fiecare SPU deține 9 partiții de date implicit.
Fig. 1.2.2. SPUs, Disks, Data Slices and Data Partition
Dacă un SPU eșuează, sistemul muta toate feliile sale de date la activ. Sistemul le mută în perechi (perechea de discuri care conțin bucăliile primare și oglinzile pentru fiacre în parte). În această situație, unele SPUs vor avea 10 partiții de date (numerotate de la 0-9).
Balanța sistemului de resurse este o parte importantă pentru performanta sistemului. Când o component eșuează, sau când un administrator efectuează un failover manual configurația rezultată (adică, topologie) poate conduce la încărcări de lucru inegale și posibile efecte de performanță. Dacă este posibil ca discuri failover și piese de schimb să aibă o topologie dezechilibrată în care discurile nu sunt distribuite uniform între incintele impare și pare. Aceasta face ca unul dintre traseele SAS (de asemenea, numit HBA), care sunt prezentate ca linii negre și fă legătură șasiu lamacla incintele pe disc, pentru a transporta mai mult trafic decât celălalt.
1.3. NZSQL
Netezza SQL este un limbaj structural (SQL), care rulează pe aparatul Netezza. Pe parcursul acestui document, termenul SQL se referă la Netezza.
Standardele care se referă la definiția SQL Netezza:
-SQL 92 (de asemenea, numit SQL / 2) este un standard operativ ANSI/ISO pentru baze de date relaționale de astăzi.
SQL / CLI – Callable language interface (CLI) care este un plus față de specificațiile SQL / 92 din 1995. CLI a fost în mare parte determinată de ODBC, JDBC dar este de asemenea, o interfață CLI-based.
SQL: 1999 (de asemenea, numit SQL-99) – Adăugarea de potrivirilor de expresie regulată, interogări recursive și alte caracteristici orientate-obiect.
Aveți posibilitatea să utilizați comanda nzsql pe sistemul Netezza sau de la un sistem client UNIX care poate accesa hostul Netezza. Comanda folosește un model de server client, care include:
Un server care gestionează fișierele bazei de date, acceptă conexiuni la baza de date de la client la aplicații și efectuează acțiuni în baza de date în numele clientului.
O aplicație client, care poate efectua o varietate de operațiuni de baze de date.
Când comanda nzsql este invocată, aceasta trebuie să furnizeze un nume de utilizator de cont al bazei de date, parola și numele bazei de date la care vă conectați. Puteți intra în acest informații cu privire la linia de comandă nzsql, sau puteți specifica informațiile din mediu variabile înainte de a începe sesiunea nzsql.
Administratorul Netezza creează și gestionează conturile de utilizator de bază de date folosind comenzi SQL sau Netezza NzAdmin și administrarea Interfeței Admin Web. Sistemul Netezza are un "admin" cont de utilizator de bază de date implicit, care este suprapus cu baza de date Netezza. Utilizatorul admin se poate conecta la orice bază de date, poate crea, modifica și șterge obiecte. Tipic, utilizator admin creează conturi noi, astfel încât alți utilizatori pot accesa unul sau mai multe baze de date și rulă interogări. Utilizatorul admin poate crea, de asemenea, conturi cu permisiuni administrative, astfel care alți utilizatori poate fi permis pentru a efectua sarcini, cum ar fi gestionarea bazelor de date și crearea utilizatorilor, backup, și alte sarcini administrative.
Fiecare utilizator client care se conectează la sistemul de Netezza deschide o sesiune. Utilizatorii pot vizualiza informații despre sesiunile lor, precum și a le gestiona.
O declarație Netezza SQL este o secvență de comenzi. Fiecare comandă constă dintr-un
secvența de token-uri terminate cu un punct și virgulă opțional cu sfârșitul terminatorul de intrare
comanda.
Token-urile pot fi:
Cuvinte cheie – Cuvintele care au un sens fix în SQL. Pentru o listă de cuvinte cheie, a se vedea Anexa A, "SQL cuvinte și cuvinte cheie rezervate."
Identificatorii – Nume de utilizatori, tabele, coloane, sau alte obiecte de baze de date.
Constante – Numere întregi, și numere în virgulă mobila.
Comentarii – O secvență arbitrară de caractere începând cu liniuțe duble și extinderea la sfârșitul liniei.
Constrângeri – O regulă care limitează valoarea de una sau mai multe coloane într-un tabel
Un tabel extern este un tabel ale cărui date nu sunt stocate în baza de date Netezza. Este ca un tabel prin aceea că prezintă o definiție (o schemă de Tabel), care este stocată în baza de date,
dar datele reale sunt salvate în afara bazei de date într-o locație accesibilă de gazdă Netezza sau un sistem client.
Puteți utiliza tabele externe pentru a face următoarele:
Încărcați datelor în Netezza dintr-un tabel extern care să profite de toate caracteristicile
Netezza SQL să structureze operația de încărcare, astfel încât datele să fie manipulate.
Stocarea datelor în afara Netezza, fie pentru a transfera la altă aplicație, sau pe un tabel
de rezervă.
Creați un tabel extern și apoi utiliza datele dintr-o tabelă externă, ca parte a unui SQL
interogare.
Puteți utiliza comanda CREATE EXTERNAL TABLE pentru a crea un tabel extern. Tabele externe au două formate de date: textul și format binar comprimat. Format text permite crearea unui tabel extern, care este non-proprietate și independent de Topologie Netezza. Formatul binar comprimat produce de obicei fișiere mai mici de date, și păstrează informații despre topologia Netezza, și, astfel, este de multe ori mai rapid de backup și restaurare. Când alegeți format binar comprimat, sistemul comprimă datele și le decomprimat atunci când reîncărcați date.
sintaxă: CREATE TABLE
1.4. Analiza și optimizarea performanței de interogare
Netezza folosește un optimizator bazat pe costuri pentru a determina cea mai bună metodă de scanare și joinare a operațiunilor, de ordonare a joinurilor și de mișcare a datelor între SPUs. Sistemul ar putea redistribui datele pentru join, gruparea agregatelor, crearea tabelelor. Deciziile cu privire la redistribuirea sunt făcute de către proiectant și se bazează pe costuri, cum ar fi dimensiunile tabelelor estimate. (Planificatorul încearcă să evite redistribuirea tabelelor mari din cauza impactului de performanță.)
Pentru optimizare poate, de asemenea, rescrie dinamic interogări pentru a îmbunătăți performanța de interogare. Multe depozite de date utilizează aplicații BI care generează SQL, care este proiectat pentru a rula pe baze de date pentru furnizori multipli. Portabilitatea acestor aplicații este de multe ori în detrimentul unui SQL eficient. Performanța generală a sistemului Netezza și performanța individuală de interogare pot fi afectată de mai mulți factori, inclusiv concurente resurse de joburi în paralel, prioritate sesiunilor și interogărilor de funcționalitate lungă. Primul pas este validarea sistemului folosind nzstate și a înțelegerea care este următoarea rulare pe sistemul de Netezza folosind nzsession. După ce se determina că performanța interogării nu are un impact de starea asupra sistemului (eșuare S-Blades, etc.) sau de competiție a performanței jobului sau de prioritate a sesiunii se folosește nzsession uită-te la ora de începere pentru interogările active și identificarea interogărilor cu funcționare lungă care pot consuma o cantitate mare de resurse de sistem. Performanța individuală de interogare pot fi afectate de date semnificative oblice și / sau de prelucrare oblic.metodele Join pot de asemenea impacta performanța unui query. O partiționare hash în memorie este o metodă optimă pentru joinul dintre tabele. Oricum, dacă etapa de contrure a joinarii hash implică un număr foarte mare și nu poate fi suficientă memorie. în acest scenariu SNPS va procesa joinul hash ca un disc hash.
Capitolul 2 Analiza de sistem
2.1. Propunerea de proiectare/reproiectare a sistemului informatics
Scopul proiectului este de a realizarea o aplicație informatică pentru a gestiona o activitatea de vânzare a cărților online. În vederea cumpărării, clientul poate achiziționa una sau mai multe cărți. Situl are ca obiectiv principal navigarea de către client în lista de produse, construirea unui coș virtual pe care îl poate plăti direct online. Acest magazine virtual urmărește să crească numărul de client, să reducă costurile șiș a îmbunătățească imaginea firmei care să ducă la creșterea profitului. Navigatorii au acces rapid și sigur la informațiile din librăria online își își pot actualiza datele în timp real, în timp ce modificările sunt înregistrate în baza de date netezza. Prima pas, consta în găsirea cât mai rapidă a produselor din catalogul site-ul web de către navigator. Clientul trebui să aibă acces la mai multe criterii de căutare (să își poate pune filtre pe nume, preț, firmă, etc.). Navigatorul își poată alege un criteriu: tip de carte, autor, editură, etc. sau mai multe criterii simultan. Rezultate vor fi afișate pe o pagină astfel încât acestea să poate fi parcurse cu ușurință. Dacă clientul nu are o idei precise despre produsul dorit acesta se pate plimba ca într-o librărie online, vor fi afișate cele mai noi cărți, clasice etc. Fiecare carte sau produs vândut în cadrul site-ului trebuie să fie prezentată în detaliu, punându-se în evidență următoarele elemente:
Prețul și disponibilitatea produsului/carții;
Imaginea carții;
O scurta recenzie a acesteia;
Comentarii utilizatoriilor;
În acestă aplicație online, clientul își poate crea un cont de utilizare în care își adauga cumpărăturile într-un coș virtual pe care îl poate modifica prin adăugarea sau ștergerea carților și/sau a cantităților înainte de a efectua plata. În orice moment, clientul poate avea acces la bonului de comandă, în care își are toate informațiile necesare pentru plată și livrare. Trimiterea datelor se impune să fie criptată pentru singurața acestora. Clientul își poate alege modalitatea de plată, card, la livrare, prin transfer bancar etc. Realizarea acestor cerințe determina îmbunătățirea activității prin reducerea timpului de lucru, prin oferirea informațiilor complete și precise care conduc la scăderea costurilor și evitarea erorilor.
De asemenea interfață grafică trebuie să fie cât mai prietenoasă atractivă, ușurând înțelegerea și utilizarea ei și în același timp sporind viteza de lucru.
Avantajele librăriei virtuale:
Librărie online funcționează non-stop;
Produsele oferite sunt prezentate detaliat;
Simplificarea procesului de cumpărare;
Automatizarea procesului de cumpărare;
Ușurința administrării;
Costuri reduse;
Cerințe funcționale ale aplicației vor fi:
Reducerea timpului procesului de comandă;
Reducerea timpului unui proces de comandă;
Reducerea timpului pentru crearea rapoartelor de orice gen;
Crearea unui sistem sigur și eficient;
Creșterea promptitudinii în oferirea unui răspuns clienților;
Reducerea timpului pentru crearea de facturilor;
Evitarea erorilor sau întârzierilor;
Ușurința extragerilor de date anuale, semestriale din baza de date pentru studierea evoluției firmei pentru a oferi clienților servicii mai bune și mai performante.
2.2. Studiu de fezabilitate – oportunitatea proiectării sistemului informatic, costuri, impactul estimat.
Structura studiului de fezabilitate este centrată în jurul analizei cost-beneficiu. Înainte de a avea costuri (semnificative) în direcția elaborării acestui site online, trebui să avem în vedere dacă proiectul este în măsură să își îndeplinească obiectivele propuse, dacă acesta este fezabil și viabil. Acestea sunt întrebările generale care trebuie luate în considerare înainte de a construi un site online. Saitul este construi pentru a veni în ajutor celor care vor să achiziționeze produse/cărți la prețuri accesibile și mai ieftine decât în diferite magazine cu desfacere pe piață. Proiectul se adresează unui număr mare de client de toate vârstele deoarece oricine are nevoie la un moment dat de o carte. .
Obiectivele proiectului:
– atingerea unui număr mare de clienți;
– creșterea vânzărilor într-un timp scurt de la lansarea website-ului;
– reducerea costurilor;
– atingerea unui prag rentabil de profitabilitate;
– apariția site-ului printre primele la căutările pe google.
Proiectul va fi promovat pe diferite medii de socializarea și va fi cu siguranță unul viabil care își va atinge obiectivele propuse,. Site-ul respectă întocmai normele tehnice și reglementările în acest domeniu. În contextul socio-economic actual, caracterizat printr-o concurență acerbă, dinamica mediului în care își desfășoară activitatea agenții economici impune o eficiență sporită în procesul de adoptare a deciziilor. Mulțimea factorilor care influențează activitatea magazinului online reiese din folosirea sistemelor informatice care asigura suportul pentru managementul de vârf în luarea deciziilor. Aceasta șaiț de vânzare a produselor online va avea ca avantaj: prețul relativ redus față de concurență și ușurință căutării produselor,livrarea rapidă, etc.
Acest proiect este viabil și se adresează unui piețe largi de client(în special oamenii constrânși de timp, aceasta aplicație este o soluție la îndemâna având în vedere că pot accesa oricând online siteul și produsele vor putea fi livrate la domiciliu fără ai mai fi nevoie să se deplaseze.
2.3. Stabilirea cerințelor funcționale și nefuncționale
În cadrul procesului de proiectare a sistemului informatic, nu s-a considerat necesară rafinarea diagramelor cazurilor de utilizare, a diagramelor de activități sau a diagramelor de stare. Cu ajutorul diagramelor UML vom încerca o transpunere a realității în modelul informatizat. Următorul pas al analizei îl reprezintă descrierea în detaliu a cazurilor de utilizare și actorilor, împreună cu fluxurile de evenimente specifice fiecărui caz. În ceea ce urmează vom prezenta diagrama generală a cazurilor de utilizare pentru a evidenția procesele precum și fluxul de informații din cadrul magazinului virtual.
Pentru site-ul Web avem următorii actori umani:
Vizitator: persoana care vizitează site-ul;
Web-master-ul: rolul angajaților care au în sarcină bună funcționare și întreținerea site-ului Web;
serviciul clienți: rolul angajaților care se ocupă cu urmărirea comenzilor clienților;
mecanicul: rolul angajaților responsabili de conținutul redacțional al site-ului.
Vizitatorul căuta cărțile, gestionează coșul și efectuează comenzii. Web-master-ul are următoarele sarcini:
să întrețină catalogul: “Modele noi” și “Gestiunea stocurilor”;
să întrețină informațiile editoriale;
să întrețină site-ul.
Fig. 2.3.1. Diagrama general
Cele două cazuri de utilizare ale vizitatorului sunt legate în mod natural prin relații de extensie: căutarea se poate finaliza cu punerea cărților/produselor în coșul de cumpărături iar gestiunea acestuia se poate finaliza cu o comandă. Diferitele posibilități de căutare pot fi modelate cu precizie printr-o relație de generalizare/ specializare. Funcționalitățile magazinului virtual pot fi implementate prin analiza următoarelor scenarii:
Adăugarea produs dorit în coșul de cumpărături virtual;
Gestiunea conturilor;
Gestiunea produselor;
Fiecare caz de utilizare include la rândul său alte cazuri de utilizare esențiale în desfășurarea fluxului informațional:
– Gestiune conturi: Creare cont, evaluare utilizator, ștergere cont (Dacă este cazul)
– Gestiune comenzi: adăugare produs, timpul alocat cumpărăturilor, gestionarea sumei curente , expirarea sesiunii.
În continuare, am realizat diagramele de activități pentru scenariul “Autentificare client”. Clientul se poate autentifica numai dacă completează formularul de autentificare cu un nume existent în baza de date, parola corespunzătoare și numărul de telefon (introducerea unui cod valid pentru recuperarea contului)sau prin crearea unui nou cont.
Diagramele de activitate ajuta la vizualizarea fluxurilor, la modelarea case-urilor și pentru modelarea proceselor de business. Aceste diagrame sunt folosite pentru descrierea elementelor interne ale unui caz de utilizare dar și pentru logică metodelor.
2.4. Analiza datelor si a procedurilor din punct de vedere static, dinamic, functional utilizand un instrument CASE
„Un caz de utilizare reprezintă o colecție de scenarii posibile, referitoare la comunicarea între sistem și actorii externi, caracterizate de anumite scopuri. Aceste scenarii sunt definite că
secvențe de pași cărora le pot corespunde cazuri de utilizare de nivel inferior.”
Fig. 2.4.1. Diagrama cazurilor de utilizare
Diagrama cazurilor de utilizare este reprezentarea grafică a cazurilor de utilizare și a actorilor (fig. 2.4.1.) și este adesea însoțită de o descriere textuală. Această diagramă documentează interacțiunile sistemului cu mediul, respectiv interacțiuni cu factorul uman, interacțiuni cu alte sisteme și interacțiuni între calculatoare.
Fig. 2.4.2.Diagrama cazurilor de utilizare
În momentul logării, clientul își poate schimba parola sau să se deconecteze. Dacă rămâne logat, poate filtra căutările în funcție de produsul pe care îl căuta și perioada în care are nevoie.
Descrieri textuale
I.
COD: CU 01
STARE: Schiță
SCOP: vizualizarea cărților
NUME: Alegerea cărților
ACTOR: Client
DESCRIERE: Clientul căuta un produs
PRECONDIȚII: Operator logat pe site-ul web
POSTCONDITII: Clientul primește confirmare că produsul este existent în stoc DECLANȘATOR: Clientul solicita modalitatea de plată
FLUX DE BAZĂ:
1. Clientul alege un produs;
2. Operatorul verifica disponibilitatea lui;
3. În situația ideală, operatorul informează pe client că poate începe să aleagă metoda de plată
FLUX ALTERNATIV A: produsul dorit nu este disponibil
A1: Operatorul oferă alternative (se trece la pasul 4);
A2: Clientul accepta alternativele, altfel scenariul se încheie;
4. Operatorul informează clientul despre prețul minim pentru a începe tranzacția;
5. Clientul adaugă produsul în coșul de cumpărături
6. clientul alege metoda de plată
FLUX ALTERNATIV B: clientul nu este de acord cu prețul produsului;
B1: Scenariul se termină;
6. Operatorul solicita informațiile de identificare;
7. Clientul furnizează informațiile necesare;
[Flux alternativ C: client existent în sistem]
C1: Se trece la pasul 8;
8. Operatorul efectuează rezervarea;
9. Clientul primește confirmarea.
FRECVENȚA UTILIZĂRII: foarte frecvent
II.
COD: CU 02
STARE: Schiță
SCOP: Achiziționarea produselor;
NUME: Cumpărarea produselor
ACTOR: Client
DESCRIERE: Clientul preia produsul de la firmă
PRECONDIȚII: Operator să finalizeze rezervarea
POSTCONDITII: Clientul primește confirmare că rezervarea s-a realizat cu succes
DECLANȘATOR: Clientul plătește produsul
FLUX DE BAZĂ:
1. Sistemul conferă disponibilitatea produsului;
2. Operatorul finalizează rezervarea;
3. Clientul primește confirmarea.
FRECVENȚA UTILIZĂRII: foarte des
Navigatorul după logarea pe site își poate introduce un număr de produse în coșul virtual. Acesta poate finaliza comanda prin plătirea produselor sau o poate anula.
Figure 2.4.3. Diagrama cazurilor de stare a facturii
Dacă navigatorul achita factura, aceasta devine pentru aplicație "plătită", în caz contrar devenind "neplătită". Starea facturii va fi înregistrată în baza de date.
Capitolul 3. Modelarea logică și fizică a sistemului
3.1. Proiectarea statică, dinamica și funcțională utilizând instrumente CASE:
rafinarea diagramelor UML din etapa de analiză – diagrame de secvența,
interacțiune, stare, colaborare
definitivarea diagramelor de clase (completarea cu atribute și metode)
Prin diagrama de activități sunt reprezentate secvențele de acțiuni prin care poate trece sistemul informatic, identificând căile de decizie. Deși în practică astfel de modele se construiesc pentru fiecare caz de utilizare, s-a realizat elaborarea lor doar pentru una dintre acestea.
Fig. 3.1.1. Diagrama de activitate
Diagrama de secventa descrie cronologic interacțiunea obiectelor, identificând mesajele schimbate între obiecte care au răspuns la un eveniment, împreună cu secvența mesajelor.
Este prima vizualizare a intercomunicării claselor pentru un anumit scenariu al cazurilor de utilizare. Scopul este înțelegerea ordinii evenimentelor pentru a parcurge întregul scenariu. Pe măsură ce ordonarea devine stabilă, un eveniment devine o operație specifică pe care o inițializează obiectul receptor.Diagramele de secvență sunt recomandate pentru realizarea de specificații în timp real și pentru scenarii complexe. Diagrama de secvență listează obiectele diagramelor de secvență implicate într-un scenariu al cazurilor de utilizare în partea superioară de la stânga către dreapta. Când se include numele clasei cu numele obiectului, se separă clasa de obiect prin „:“. Se plasează mesajele schimbate între obiecte, pe verticală de sus în jos. Perioada de existență se propagă în jos, de la fiecare obiect. Pentru fiecare pas în scenariul cazurilor de utilizare, un obiect trimite mesajul din linia sa de viața către linia de viața a unui alt obiect. Mesajul conține informații necesare obiectului doi să acționeze. Cu alte cuvinte, mesajul declanșează o acțiune la obiectul receptor. Un obiect poate să fie atât receptor, cât și emițător (recursiv).
Opțional se poate include un actor care să participe în scenariul cazurilor de utilizare ca fiind un obiect care trimite și primește mesaje. Un singur pas în timpul scenariului cazurilor de utilizare uneori poate crea sau distruge un obiect. Linia de viață a obiectului se monitorizează prin alinierea verticală a obiectului cu pasul său de instanțiere. Se marchează cu X sfârșitul liniei de viață, adică pasul în care obiectul este distrus.
Fig.3.1.2. Diagrama de secvență
„Diagramele de clasă exprimă cel mai bine structura statică a unui sistem (clasele, obiectele și relațiile dintre ele), dar nu ilustrează modul în care acestea cooperează pentru gestionarea taskurilor și pentru realizarea funcționalității sistemului; pentru aceasta avem la dispoziție diagramele de stare, secvență, colaborare și activitate.”
Diagrama de clasă este cea mai importantă diagrama pentru proiectarea orientată pe obiect și are ca scop structurarea naturii statice a claselor
Fig. 3.1.3. Diagrama claselor
Diagrama claselor cuprinde șapte clase. Clasa clienți are ca atribute publice nume, prenume, adresa, număr de telefon, id, parola și că metoda stare client. Clasa comanda are ca atribute publice număr comanda și dată comanda, iar metode afișează data unei comenzi și adăugă comanda nouă. Clasa stoc are ca atribute publice codul ISBN, titlul cărții, autorul,prețul cărții și numărul de exemplare, iar ca metode are adaugă cărți noi și calculează valoarea stocului.
Clasa cărți comandate cuprinde ca atribute publice codul ISBN, titlul cărții, autorul, cantitate ,valoare iar ca metoda verificarea prezenței în stoc.
Clasa documente cuprinde ca atribute publice număr document și data document și metoda afișează data unui document.Atributul public ale clasei facturi este valoare facturată,iar metodele, afișarea valorii facturii fără TVA,calcularea TVA și afișarea valorii totale.
Clasa marfa facturată are drept atribute publice codul ISBN, titlul cărții, autorul,prețul cărții, numărul de exemplare și valoare de facturare, iar ca metodă este reprezentată de calcularea valorii mărfii pe o factură.
Diagrama claselor (Class Diagram) – prezintă structura fizică a claselor identificate în sistem. Clasele reprezintă “lucruri” gestionate de sistem. Este cel mai utilizat tip de diagrame în modelarea sistemelor orientate obiect. Diagramele de clase fac parte din categoria diagramelor statice. Ele descriu structura internă a sistemului informatic prin identificarea claselor, a atributelor și operațiilor acestora și a relațiilor dintre clase. Construcția diagramelor de clase are loc în faza de elaborare a sistemului informatic fiind cele mai importante din această fază.
Figure 1Digrama cazurilor
3.2. Proiectarea bazei de date:
i) Schema conceptuală/logică/fizică a bazei de date:
Schema conceptuală a bazei de date are 8 tabele si este o schema fulg de zapadă.
Fig. 3.2.1. Schema bazei de date
ii) Descrierea tabelelor și a legăturilor dintre acestea
Tabela T_F_USER contine datele de autetificarea a navigatorului pe site-ul web: username, mail, password si telefon, nume și prenue.
Fig. 3.2.2. T_F_USER
Tabela T_D_COMANDA contine date referitoare la comenzile faculte: data, modalitate,stare.
Fig. 3.2.3. T_D_COMANDA
Tabela T_D_COMENTARIU contine comentariile lasate de navigator pe site-ul web si data postarii.
Fig. 3.2.4. T_D_COMENTARIU
Tabela T_D_FRNIZORI contine informatii legate de furnizorii librariei online precum numele furnizorului, adresa si telefonul.
Fig. 3.2.5. T_D_FRNIZORI
Tabela T_F_PRODUSE contine informatii despre toate catile librariei: denumire, descriere, pret, autor.
Fig. 3.2.6. T_F_PRODUSE
Tabela T_F_ADRESA contine informatii legate de adresele de livrare si adresele furnizorilor: tara, localitate, strada, bloc, nr, cod postal.
Fig.3.2.7. T_F_ADRESA
Tabela F_D_AUTOR contine informatii despre autori.
Fig. 3.2.8 F_D_AUTOR
Tipuri de legaturi în baza de date:
1-n T_F_USER – T_D_COMENTARIU
1-n T_F_USER – T_D_COMANDA
1-n T_D_COMANDA – T_D_RAND COMANDA
1-n T T_D_RAND COMANDA – T_F_PRODUSE
1-n T_F_PRODUSE – T_D_FRNIZORI
1-1 T_F_PRODUSE – T_D_AUTOR
1- n T_D_FRNIZORI – T_F_ADRESA
1- n T_F_USER – T_F_ADRESA
3.3. Proiectarea videoformatelor și a ieșirilor
Cu ajutorul formular audentificare navigatorul se poate loga pe site pentru a introduce cumpărăturile în coșul de cumpărături, pentru a își putea accesa istoricul comenzilor etc.
Fig. 3.3.1. Formular audentificare
Dacă navigatorul nu are un cont creat acesta își poate crea unul nou, rapid prin introducerea cateorva date cum ar fi: nume, prenume, adresa de email, parolă, numar de telefon și adresa.
Fig3.3.2. Crearea unui cont nou
3.4. Proiectarea ierarhiei de ferestre ale aplicației
In cele ce urmeaza sunt prezentate intr-o singura figura, ferestrele aplicatiei ce ilustreaza toate etapele ce se pot parcurge in cadrul aplicatiei .
Aceste ferestre se pot regasi detaliate in ultimul capitol.
Utilizatorii pot utiliza aplicația pentru cumpărături doar după ce se loghează cu ajutorul ușerului și a parolei.
Navigatorul poate vizualiza istoricul comenzilor, poate căuta noi produse pe care le poate adăuga în coșul de cumpărături. Utilizatorul poate avea acces direct din fereastră de opțiuni și la : vizualizarea produselor detaliat.
3.5. Stabilirea necesarului de resurse software și hardware: textual
Pentru implementarea sistemului informatic acem nevoie să stabilim necesarul de resurse software și hardware.
Hardware: Server netezza, processor (cpu) de 900MHz, monitor;
Software: Sistem de operare windows; internet explorer sau mozilla Firefox sau google crome, mysql.
Capitolul 4 IMPLEMENTAREA APLICAȚIEI
Mai jos sunt prezentare tehnologiile utilizate pentru a realiza aplicația unui magazin online care să migreze datele de pe un server mysql pe un server netezza pentru a putea accesa mai rapid datele și a genera raporturi în timp real pentru bună desfășurare a activității.
Serverul netezza a fost ales deoarece lucrează cu seturi mai de date, iar aceste date au devenit o problemă în zilele noastre. Big Date a devenit o problemă în afaceri, sau cel puțin o problemă pe care oamenii de afaceri încep să o conștientizeze. Problema pe care o avem atunci când ne ocupăm cu atât de multe date este faptul că devine aproape imposibil de separat faptele importante de non-faptele importante. Deci, avem nevoie de programe de calculator pentru a ne ajuta să procesăm datele. Dar un singur program, care să lucreze cu terabytes, are nevoie de mult timp pentru a procesa datele. Și în momentul în care prelucrarea a fost finalizată, răspunsul nu mai poate fi relevant.
Mysql
„MySQL este un sistem de gestiune a bazelor de date relaționale, produs de compania suedeză MySQL AB și distribuit sub Licența Publică Generală GNU.” MySql este un sistem open-source fiind folosit împreună cu limbajul de programare PHP. Cu ajutorul acestui sistem se pot controla aplicații în orice limbaj cum ar fi: C, C++,C#, PHP, FreeBasic, Java, etc. Bazele de date Mysql pot fi administrate prin linie de comandă sau printr-o interfața grafică ( MySQL Administrator și MySQL Query Browser)
În MySQL structurile de date sunt organizate în fișiere fizice optimizate pentru viteză. Modelul logic, cum ar fi bazele de date, tabelele, vizualizările, rândurile, coloanele oferă un mediu de programare flexibil. Configurați normelor care reglementează relațiile dintre diferitele tipuri de date, cum ar fi unu-la-unu, unu-la-mulți, unic. Partea SQL a "MySQL" vine de la "Structured Query Language". SQL este cel mai frecvent limbajul standardizat folosit pentru a accesa bazele de date. În funcție de mediul de programare, ați putea introduce SQL direct (de exemplu, pentru a genera rapoarte), declarațiile SQL încorpora în codul scris în altă limbă, sau de a folosi un limbaj API specific care ascunde sintaxa SQL. SQL este definit de standardul ANSI SQL / ISO. Standardul SQL a evoluat din 1986 și există mai multe versiuni. În acest manual, "SQL-92" se referă la standardul lansat în 1992, "SQL: 1999" se referă la standardul lansat în 1999, și "SQL: 2003" se referă la versiunea curentă a standardului.
Netezza
Netezza (pronunțat Ne-Tease-Ah) proiectată și comercializată ca aparat depozit de date de înaltă performanță și aplicații analitice avansate pentru utilizări, inclusiv întreprinderi de stocare a datelor, business intelligence, analiză predictivă și planificarea continuității afacerii. A fost fondată în 1999 de către Foster Hinshaw, Netezza a fost achiziționat de IBM în 2010 pentru 1.7 miliarde dolari. Netezza și Hinshaw sunt din categoria aparatului depozit de date pentru a aborda în mod eficient analiza consumatorilor prin asigurarea unui modular, sistem de baze de date scalabile, ușor de a gestionat și rentabil. Această clasă de mașină este necesară pentru a gestiona volumul de lucru "de date intens" de analiza modernă. Implementare Netezza este caracterizată prin arhitectura partajată a datelor inteligent, în cazul în care întrega interogare este executată pe nodurile cu accent pe minimizarea circulației datelor.
Netezza este proprietatea AMPP (Asymmetric Massively Parallel Processing) și are arhitectura unui sistem de două niveluri proiectat să se ocupe repede de cereri foarte mari de la mai mulți utilizatori.
Primul nivel este un server de înaltă performanță Linux SMP care compilează sarcinile de interogare pentru aplicații de business intelligence, și generează planurile de execuție. Apoi împarte o interogare într-o secvență de sub-sarcini, sau fragmente care pot fi executate în paralel, și distribuie fragmenate la al doilea nivel de execuție. Al doilea nivel este contruit din sute de lame prelucrate fragment, sau S-Blades, în cazul în care se execută toate lucrările de prelucrare primare ale aparatului. S-Blades sunt noduri de procesare inteligente care alcătuiesc motorul aparatului de procesare masiv paralelă (MPP). Fiecare S-Blade este un server independent care conține procesoare multi-core Intel bazate pe Netezza proprietate multi-motor, FPGA high-throughput. S-Lama este compus dintr-o lamă-servere standard, combinat cu un card Netezza special, accelerator de date care este fixat alături de lame. Fiecare S-Blade este, la rândul său, conectat la mai multe unități de disc de prelucrare mai multe fluxuri de date în paralel în TwinFin sau Skimmer.AMPP are interfețe standard în industrie (SQL, ODBC, JDBC, OLE DB.
Aginity
Aginity Netezza Workbench face dezvoltatorii mai productive, cu instrumente care oferă acces la noile aparatele de date Netezza. Creat de dezvoltatorii Aginity proprii, Workbench este construit pentru o înțelegere profundă a aceea ce poate să facă aparatul Netezza. Acum e disponibil ca freeware ca un instrument de dezvoltare Netezza pentru dezvoltatorii Netezza, oferind o interfață intuitivă pentru crearea, gestionarea și urmărirea ambele interogări SQL individuale și baze de date întregi.
Aginity Amp reduce semnificativ ciclurile analitice, oferind coerență a algoritmilor analitici. Cu Amp, utilizatorii pot proiecta cu ușurință și încărca datele într-un depozit analitic,
Aginity Workbench este o aplicație ușor de utilizat, care îmbunătățește performanța și creează eficiență atunci când se lucrează cu depozitul de date MPP. Aplicația oferă un set puternic de instrumente bazate pe GUI pentru dezvoltatori, DBA, și analiști de date pentru a maximiza productivitatea utilizatorilor din aceste roluri. Creat de către și pentru dezvoltatorii de software Aginity proprii. Ediții Aginity Workbench includ IBM PureData for Analytics (Netezza), Pivotal Greenplum, Amazon Redshift, Actian ParAccel și dashDB.
Pentru performanta bazei de date se folosesc proceduri stocate. Procedurilor stocate Netezza combina beneficiile SQL pentru interogarea bazei de date și manipularea informațiilor cu beneficiile unui limbaj de programare procedural care se ocupa cu prelucrarea datelor. În timp ce o astfel de cerere ar putea fi gestionate cu o aplicație de afaceri terță parte care accesează baza de date Netezza pentru a efectua aceste sarcini, puteți utiliza, de asemenea, proceduri stocate Netezza de a încapsula această aplicație ca un obiect în baza de date Netezza. SQL oferă puterea de a accesa și actualiza informațiile bazei de date. Cu proceduri stocate Netezza, puteți profita de asemenea de prestații de asigurări și de acces. Procedurile stocate pot fi definite pentru a rula cu acreditările utilizatorului care a creat procedura sau acreditările utilizatorului care se execută procedura. Procedura gestionează accesul la informațiile conținute în diferite tabele de bază și punctele de vedere. Puteți
acordă o permisiune utilizator pentru a rula o procedură stocată fără a acorda acel utilizator accesul explicit la tabele sau vederi care stau la bază.
Procedurile stocate se pot utiliza pe gazda Netezza folosind limbajul NZPLSQL. NZPLSQL este un limbaj interpretat, care se bazează pe Postgres limbajul PL / pgSQL.
NZPLSQL este un limbaj de scripting încorporat în SQL. Subprogramul,cunoscut sub numele de proceduri, pot lua argumentele și declară variabile interne. Aceste proceduri pot fi apelate de cadrul altor baze de date din aceiași gazdă Netezza.
Limbajul NZPLSQL prevede următoarele tipuri de logică procedurală:
Condiționalele (dacă / altceva)
Looping (în timp ce, pentru)
Executarea SQL (inclusiv SQL dinamic)
Variabile
argumente de intrare
Executarea în contextul de așteptare (sesiune și de tranzacție)
Funcționalitate extinderii (adăugarea rutine de bibliotecă NZPLSQL)
Procedurile stocate Netezza sunt un hibrid între funcții și proceduri (cum sunt definite de
SQL: standard de 2003 pentru rutine care invocă-SQL). La punerea în aplicare Netezza, în
Procedura NZPLSQL stocată are argumente numai de intrare și sprijină o valoare de retur ca
Funcțiile face. Spre deosebire de funcții, o procedură stocată trebuie să fie numită folosind apelul.
Ca un rezumat la nivel înalt, urmați acești pași pentru a crea și a folosi o procedură stocată.Crearea și gestionarea procedurilor stocate.
1.Proiectarea logică și funcțională a procedurii stocate.
2. Definirea obiectului procedurii stocate folosind comanda CREATE [OR REPLACE] ROCEDURA.
3. Run sau execute pentru rularea procedurii în linia de comandă SQL.
Când o procedură stocată este definită se poate specifica dacă sistemul netezza ar trebui să execute procedura folosind id-ul proprietarului care are creat-o sau id-ul altui utilizator.Acest lucru permite un strat suplimentar de securitate (sau acces extins) pentru datele prelucrate de procedura memorată. Deoarece procedurile memorate sunt definite ca un bloc sau un organism de numeroase linii de text, Netezza oferă un mecanism de citire a blocului pentru a ajuta la ușura și definirea corpului procedurii și pentru a face conținutul mai ușor de citit pentru depănare și învățare. O secțiune de text delimitat de BEGIN_PROC și END_PROC este un citat bloc. Un exemplu urmează:
CREATE OR REPLACE PROCEDURE name() RETURNS INT4 LANGUAGE NZPLSQL AȘ
BEGIN_PROC
DECLARE
BEGIN
END;
END_PROC;
Secțiunea de declarații a unui bloc poate conține zero, unu, sau mai multe sub-blocuri. Un sub-bloc este folosit pentru gruparea logică sau pentru a localizarea variabilelor la un mic grup de declarații.
Toate cuvintele cheie și identificatori sunt sensibili la majuscule. Identificatori sunt convertite automat la majuscule, deoarece acestea sunt în instrucțiunile SQL generale, cu excepția cazului în care acestea sunt închise în ghilimele pentru a le mentine-sensitive. Variabilele declarate în secțiunea declarații precedentă un bloc sunt inițializate la valorile lor implicite de fiecare dată blocul este introdus, nu doar o dată pe apel procedură.
PHP
Hypertext Preprocesor" este un limbaj de programare, care are cod-sursă deschis (Open Source), utilizat pe scară largă, și care este folosit în special pentru dezvoltarea aplicațiilor Web deoarece se poate integrat în HTML(codul PHP este interpretat de server și generează un cod HTML: care este văzut de browser). Sintaxa sa provine din C, Java și Perl și este ușor de aplicat. Scopul principal al limbajului este acela de a permite programatorilor web să creeze rapid pagini web generate dinamic. PHP este unul dintre dintre cele mai folosite limbaje datorită caracteristicilor sale : familiaritate, simplitate, eficienta, securitate, flexibilitate și poate rula pe majoritatea sistemelor de operare : UNIX, Windows sau Mac OS X.
Html
HTML este prescurtarea de la Hypertext Markup Language, ceea ce reprezintă de fapt limbajul pe care browserele de internet îl înțeleg și cu ajutorul lui pot fi afișate paginile web. Acesta este un limbaj de marcare și este utilizat pentru crearea paginilor web. HTML furnizează mijloacele prin care conținutul unui document poate fi adnotat cu diverse tipuri de metadate și indicații de redare.. Limbajele de programare se numesc editoare HTML și pot fi de două tipuri: editoare clasice și editoare de tipul WYSIWYG (What You See is What You Get). În cazul celei de-a două categorii de editoare HTML, utilizatorii nu trebuie decât să se ocupe de partea grafică, de așezarea în pagina etc., scrierea codului HTML rămânând în seama acestor programe. HTML se poate genera direct utilizând tehnologii de codare din partea serverului cum ar fi PHP, JSP sau ASP. Multe aplicații ca sistemele de gestionare a conținutului, wiki-uri și forumuri web generează pagini HTML. HTML nu ține cont de forma originală a textului. Nu contează cum arata textul când este scris,ci cum va arăta pe ecran în fața unui privitor. Nu contează tab-urile, spațiile multiple, nu se ține cont de sfârșitul de linie, etc. Pentru realizarea aspectului obținut de regulă cu ajutorul acestor caractere se folosesc tag-uri.
4.2. Realizarea magazinului online:
Procesul de realizare a unui site web este destul de anevoios care necesită o perioadă îndelungată de timp și trebui să respecte anumite reguli pentru a putea obține un produs complex. Aplicația magazinului online de vânzare a cărților este scris în HTML și PHP. Aceasta aplicație va conține referințe la alte pagini.
Elementele de bază ale aplicației sunt:
Tip document <HTML></HTML>
Titlu <TITLE></TITLE>
Header <HEAD></HEAD>
Corp <BODY></BODY>
Prima pagină a site-uli va avea o bară de meniu pe care clientul o poate accesa: Acasă, Catalog cărți, contact și coșul de cumpărături. Cărțile sunt așezate pe câtori.
4.3 Testarea aplicației
Aplicațiile web s-au dezvoltat foarte mult în ultima perioadă și au devenit cruciale pentru comerț, și schimbul de informații. Realizarea acestor aplicații constituie o provocare pentru utilizatorii viitori și pentru cei actuali. Cea mai bună măsură pentru a asigura calitatea site-ului este testarea. Există numeroase metode și tehnici de testare. Pentru testarea aplicației web pe lângă testarea softwarului trebuie să mergem mai departe și să testăm ușurința parcurgerii pe site, securitatea, actualizarea datelor, compatibilitatea browserelor, etc.
Aplicație trebuie testată la nivel de client și de observat cât de rapid răspunde sistemul la solicitările unui navigator. Pentru testarea performanței se va pune accent pe partea back-end.
Persoanele care se ocupă de testare trebui să aibă în vedere următoarele:
Posibilitatea înăregistrări în aplicație a navigatorilor deja existenți precum și a celor noi;
Imposibilitatea intrării în aplicație dacă nu au fost completate toate câmpurile;
Verificarea accesului la catalogul cu produse;
Accesarea datelor personale și a istoricului comenzilor pentru navigatori;
Testarea securității;
Testarea interfeței cu utilizatorul aplicației;
Posibilitatea realizării rapoartelor;
Verificarea accesului la rapoarte;
Ștergerea clienților din baza de date.
4.4. Descrierea activităților de mentenanță
Întreținerea aplicației online de vânzarea a cărților este externalizată. Astfel schimbările asupra conținutului saitului sunt realizate de o echipă specializată care are următoarele atribuții:
Crearea de noi pagini;
Actualizarea conținutului său editarea paginilor existente;
Rezolvarea erorilor apărute;
Îmbunătățirea imagini site-ului;
Backup săptămânal;
Administrarea serviciilor de emai;
Analiza tăticului și monitorizarea performanței.;
Administrarea bazelor de date.
4.5. Elaborarea unui chestionar de audit pentru sistemul informatic
1. Clientul folosește sistem informatice integrate?
2. Cât de critică este disponibilitatea sistemelor IT pentru afacerea clientului? (foarte critic – întrerupere tolerabilă < 1 zi, critic – întrerupere tolerabilă 1-3 zile, necritic – întrerupere tolerabilă > 3 zile)
3. Care părți din mediul IT sunt externalizate?
4. Cum este formalizată relația dintre client și furnizorul de servicii externe? (cum ar fi indicatori de măsurare a nivelului serviciilor)
5. Este IT-ul critic pentru atingerea obiectivelor clientului?
6. Cum se asigură clientul că proiectele pe care dorește să le inițieze sunt planificate corespunzător?
7. Cum sunt monitorizate proiectele pentru a se asigura că își vor atinge obiectivele într-un mod eficient din punct de vedere al timpului și costului?
8. Are clientul dezvoltat DRP (disaster recovery plan) / BCP (business continuity plan)? (DA/NU)
9. Planul (DRP/BCP) acoperă toate aplicațiile și funcțiile de infrastructură care suportă procesele? Care continuitate este critică pentru client? Cât de des și cât de riguros este testat planul?
10. Este clientul conștient de date care îi sunt critice?
11. Este IT-ul critic pentru atingerea obiectivelor clientului? Ce a întreprins clientul pentru a asigura securitatea datelor sale? (politici/proceduri)
12. Care sunt riscurile identificate de dumneavoastră pentru clientul selectat, din răspunsurile date la întrebările de mai sus?
13. Cum este IT-ul organizat astfel încât să asigure o delimitarea a responsabilităților și continuitatea activității? (cum ar fi pe perioada concediilor)
14. Cum este reglementat (limitat) accesul către funcțiile importante din mediul IT? (administrator de baze de date, administrator de aplicație, administrator de rețea)
15. Prezentați principalele setări de securitate ale sistemului (server de domeniu) și analizați completitudinea lor?
16. Cum este monitorizat accesul în aplicație? (revizuire de loguri, revizuire de listă de utilizatori)
17. Prezentați și analizați setările de parolă aferente aplicației?
18. Accesul utilizatorilor este autorizat și creat corespunzător? (cine face cererea, cine stabilește drepturile, cine aprobă accesul, cine creează contul, cine notifică plecarea angajatului din organizație)
19. Cine și cum inițiază o modificare care să fie adusă aplicației?
20. Cine aprobă modificarea pentru a fi dezvoltată?
21. Cum apreciați calitatea documentației tehnice ? Este ea suficientă, utilă, acoperitoare, actualizată ?
22. Tematica privind instruirea utilizatorilor, informaticieni și neinformaticieni, a fost suficientă ?
23. S-au acoperit toate aspectele ? Au apărut necesități suplimentare legate de pregătirea personalului ?
Concluzii
Diferite sisteme stochează datele în diferite formate, chiar și în cadrul aceleiași companii, ceea ce face dificil agregarea datelor pentru analiză. Ca urmare, investițiile unei organizații în date, unul dintre activele sale cele mai de valoarea, nu sunt utilizate în totalitate. Creșterea gradului de conștientizare a valorii dobândite prin analiza datelor într-un context geografic duce la dorința de a descoperi tipare și relații bazate pe locație în Big Data care permit luarea de decizii informate pentru rezultate mai bune în afaceri. Din acesta cauza am ales ca datele sa vie liberate pe un server netezza. Analiza datelor reprezintă oportunitatea companiilor de a vedea structură acolo unde aparent nu există și de analiza informații imposibil de corelat și filtrat până acum. Iar concluziile analizei pot duce la schimbări eficiente în privința modului de livrare al business-ului companiei.Soluția de Business Intelligence integrate de Business Objects/Netezza este compusă din următoarele:
-applications: BusinessObjects Enterprise, BusinessObjects Web Intelligence (R) Crystal Reports (R), Crystal și BusinessObjects Dashboard Manager de XcelsiusTM
-BusinessObjects Data Integrator și SAP Business Objects Rapid Marts
– Date -Warehouse " Netezza
Această soluție integrată permite utilizatorilor să migreze rapid datele de la aplicarea lor la depozitul de date Netezza pentru a produce analize sofisticate și raportare cu Business Objects. Arhitectura unica a acestei soluții facilitează implementare și permite să beneficiați de performanta de neegalat a interogărilor cu volume mari de date detaliate în timp ce costurile totale de funcționare sunt reduse.Companii de top cum ar fi CompuCredit Corporation, Debenhams și Epsilon au ales să se integreze Netezza și Business Objects își sisteme Business Intelligence și astăzi se bucură de mai multe beneficii.
Magazinele online reprezintă un model al afacerii profitabile si prezintă numeroase avantaje atât pentru întreprinzători cat si pentru client. Magazinul online poate fi la dispoziția oricui si se adresează unui număr mare de oameni, costurile pentru deschidere sunt mici, stocurile nu sunt necesare sa fie pline, se poate penetra ușor pe alte piețe si cu ajutorului sistemului pentru stocarea unui număr mare de date se pot scoate rapoarte despre client,nevoile, dorințele acestora pe diferite in funcție de anumiți factori.
Pe lângă întreprinzători si consumatorii au un număr mare de avantaje. Acești client numiți si navigator economic timp folosind metoda de cumpărare online, pot vedea pararea celorlalți despre un anumit produs, si au posibilitatea de a salva anumite produse in lista de cumpărături.
Bibliografie
http://www.aginity.com/wp-content/uploads/2013/02/Aginity_Workbench_for_Netezza_Functionality_Overview.pdf
http://www.aginity.com/portals/0/workbench/aginity_netezza_workbench_documentation.pdf
http://www.slideshare.net/bijugs/using-netezzaqueryplan
http://www.bpmnw.com/bpmnw/assets/File/YTW03202CAEN.PDF
http://www.ibmbigdatahub.com/sites/default/files/document/redguide_2011.pdf
http://www.ibmbigdatahub.com/sites/default/files/document/redguide_2011.pdf
http://d1.scribdassets.com/ScribdViewer.swf?document_id=37962403&access_key=key-1085u53lcemxwouac0rw
http://d1.scribdassets.com/ScribdViewer.swf?document_id=37962403&access_key=key-1085u53lcemxwouac0rw
Anexe
Crearea tabelelor:
CREATE TABLE T_F_USER
(user_id NUMERIC(10,0),
id_adresa NUMERIC(10,0),
id_comanda NUMERIC(10,0),
username CHARACTER VARYING(40),
password CHARACTER VARYING(30),
email CHARACTER VARYING(50),
telefon NUMERIC(10,0),
prenume CHARACTER VARYING(30),
nume CHARACTER VARYING(30))
CREATE TABLE T_D_COMANDA
(id_comanda NUMERIC(10,0)
data timestamp,
modalitate CHARACTER VARYING (20),
stare CHARACTER VARYING (15))
CREATE TABLE T_D_RAND_COMANDA
(id_comanda NUMERIC(10,0),
id_produs NUMERIC(10,0),
pret DECIMAL(8,2),
cantitate DECIMAL(8,2),
valoare DECIMAL(8,2))
CREATE TABLE T_D_COMENTARIU
(id_comentariu NUMERIC(10,0)
user_id NUMERIC(10,0)
data timestamp
comentariu CHARACTER VARYING(255))
CREATE TABLE T_D_FURNIZORI
(id_furnizor NUMERIC(10,0),
nume_furnizor CHARACTER VARYING(60),
id_adresa NUMERIC(10,0),
telefon NUMERIC(10,0))
CREATE TABLE T_F_PRODUSE
(id_produs NUMERIC(10,0),
id_furnizor NUMERIC(10,0),
id_autor NUMERIC(10,0),
denumire CHARACTER VARYING(60),
descriere CHARACTER VARYING(2000),
pret NUMERIC(8,2))
CREATE TABLE T_F_ADRESA
(id_adresatara NUMERIC(10,0),
localitate CHARACTER VARYING(20),
strada CHARACTER VARYING(30),
bloc CHARACTER VARYING(5),
nr NUMERIC(10,0),
cod_postal NUMERIC(10,0))
CREATE TABLE F_D_AUTOR
(id_autor NUMERIC(10,0),
nume CHARACTER VARYING(20),
prenume CHARACTER VARYING(20))
Anexe
Crearea tabelelor:
CREATE TABLE T_F_USER
(user_id NUMERIC(10,0),
id_adresa NUMERIC(10,0),
id_comanda NUMERIC(10,0),
username CHARACTER VARYING(40),
password CHARACTER VARYING(30),
email CHARACTER VARYING(50),
telefon NUMERIC(10,0),
prenume CHARACTER VARYING(30),
nume CHARACTER VARYING(30))
CREATE TABLE T_D_COMANDA
(id_comanda NUMERIC(10,0)
data timestamp,
modalitate CHARACTER VARYING (20),
stare CHARACTER VARYING (15))
CREATE TABLE T_D_RAND_COMANDA
(id_comanda NUMERIC(10,0),
id_produs NUMERIC(10,0),
pret DECIMAL(8,2),
cantitate DECIMAL(8,2),
valoare DECIMAL(8,2))
CREATE TABLE T_D_COMENTARIU
(id_comentariu NUMERIC(10,0)
user_id NUMERIC(10,0)
data timestamp
comentariu CHARACTER VARYING(255))
CREATE TABLE T_D_FURNIZORI
(id_furnizor NUMERIC(10,0),
nume_furnizor CHARACTER VARYING(60),
id_adresa NUMERIC(10,0),
telefon NUMERIC(10,0))
CREATE TABLE T_F_PRODUSE
(id_produs NUMERIC(10,0),
id_furnizor NUMERIC(10,0),
id_autor NUMERIC(10,0),
denumire CHARACTER VARYING(60),
descriere CHARACTER VARYING(2000),
pret NUMERIC(8,2))
CREATE TABLE T_F_ADRESA
(id_adresatara NUMERIC(10,0),
localitate CHARACTER VARYING(20),
strada CHARACTER VARYING(30),
bloc CHARACTER VARYING(5),
nr NUMERIC(10,0),
cod_postal NUMERIC(10,0))
CREATE TABLE F_D_AUTOR
(id_autor NUMERIC(10,0),
nume CHARACTER VARYING(20),
prenume CHARACTER VARYING(20))
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: Baze de Date Netezza (ID: 149585)
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.
