PROJEKT I REALIZACJA APLIKACJI WSPIERAJĄCEJ ZARZĄDZANIE SKLEPEM INTERNETOWYM ZA POMOCĄ USŁUG ANALIZY DANYCH W SQL SERVERZE



Podobne dokumenty
Usługi analityczne budowa kostki analitycznej Część pierwsza.

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Wdrożenie modułu płatności eservice. dla systemu Magento

REFERAT O PRACY DYPLOMOWEJ

Referat pracy dyplomowej

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Spis treści. Część I Wprowadzenie do pakietu oprogramowania Analysis Services

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych

Platforma e-learningowa

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Część I Istota analizy biznesowej a Analysis Services

Kostki OLAP i język MDX

Przewodnik użytkownika (instrukcja) AutoMagicTest

Oferta szkoleniowa Yosi.pl 2012/2013

Wykład I. Wprowadzenie do baz danych

PHP: bazy danych, SQL, AJAX i JSON

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

REFERAT PRACY DYPLOMOWEJ

dziennik Instrukcja obsługi

Wprowadzenie do Hurtowni Danych. Mariusz Rafało

SPECYFIKACJA WDROŻENIA SKLEPU MAGENTO

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

Hurtownie danych. Wprowadzenie do systemów typu Business Intelligence

Migracja XL Business Intelligence do wersji

Projektowanie baz danych za pomocą narzędzi CASE

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Podręcznik użytkownika Wprowadzający aplikacji Wykaz2

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

REFERAT O PRACY DYPLOMOWEJ

Podręcznik użytkownika Publikujący aplikacji Wykaz2

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Forex PitCalculator INSTRUKCJA UŻYTKOWNIKA

E-commerce. Genialnie proste tworzenie serwisów w PHP i MySQL.

Pracownia internetowa w szkole ZASTOSOWANIA

Migracja Business Intelligence do wersji

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Wprowadzenie do Doctrine ORM

Hurtownie danych. 31 stycznia 2017

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Szkolenie autoryzowane. MS Wdrażanie hurtowni danych w Microsoft SQL Server 2012

Migracja Business Intelligence do wersji

1 Moduł Konfigurowanie Modułu

Przewodnik użytkownika (instrukcja) AutoMagicTest

Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny

SAS Institute Technical Support

Instrukcja generowania certyfikatu PFRON i podpisywania dokumentów aplikacji SODiR w technologii JS/PKCS 12

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Języki programowania wysokiego poziomu. Ćwiczenia

Bydgoskie Centrum Archiwizacji Cyfrowej sp. z o.o.

Diagram wdrożenia. Rys. 5.1 Diagram wdrożenia.

Ulotka skrócona Moduł Analizy BI. Wersja:

Wymagane jest podłączenie serwera do Internetu (konieczne do zdalnego dostępu).

Instrukcja aktualizacji programu Integra 7

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Sesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

1. Logowanie się do panelu Adminitracyjnego

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

System magazynowy małego sklepu.

Minimalna wspierana wersja systemu Android to zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4.

Bazy danych 2. Wykład 1

Serwis jest dostępny w internecie pod adresem Rysunek 1: Strona startowa solidnego serwisu

Instalacja i konfiguracja Symfonia.Common.Server oraz Symfonia.Common.Forte

Instrukcja instalacji i obsługi programu Szpieg 3

Instalacja systemu zarządzania treścią (CMS): Joomla

Załącznik 1 instrukcje instalacji

Baza danych sql. 1. Wprowadzenie

Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski. Bazy danych ITA-101. Wersja 1

Wprowadzenie do technologii Business Intelligence i hurtowni danych

Budowa aplikacji ASP.NET współpracującej z bazą danych do obsługi przesyłania wiadomości

IIIIIIIIIIIIIIIMMIMMIII

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

Instrukcja logowania i realizacji podstawowych transakcji w systemie bankowości internetowej dla klientów biznesowych BusinessPro.

OfficeObjects e-forms

Prezentacja programu. Parentis Sp. z o.o. Dział Informatyki. Kartoszyno, ul. Przemysłowa 5, Krokowa

HURTOWNIE DANYCH I BUSINESS INTELLIGENCE

Elektroniczny Urząd Podawczy

AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7

Ramowy plan kursu. Lp. Moduły Wyk. Lab. Przekazywane treści

Wydział Informatyki, Elektroniki i Telekomunikacji. Katedra Informatyki

ShopGold Integrator by CTI. Instrukcja

MAMP: Można to pobrać i zainstalować z XAMPP: Można go pobrać i zainstalować z

Hurtownie danych. Wstęp. Architektura hurtowni danych. CO TO JEST HURTOWNIA DANYCH

Webowy generator wykresów wykorzystujący program gnuplot

Instrukcja logowania i realizacji podstawowych transakcji w systemie bankowości internetowej dla klientów biznesowych BusinessPro.

Kontrola dostępu w ASP.NET

Aplikacje WWW - laboratorium

Dokumentacja panelu Klienta

Kasy Fiskalne Lublin Analityk

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

System. Instalacja bazy danych MySQL. Autor : Piotr Zielonka tel Piotrków Tryb., sierpień 2018r.

Transkrypt:

WYŻSZA SZKOŁA INFORMATYKI I ZARZĄDZANIA COPERNICUS WE WROCŁAWIU KIERUNEK: INFORMATYKA (INF) SPECJALNOŚĆ: SYSTEMY I SIECI KOMPUTEROWE (SSK) PRACA DYPLOMOWA INŻYNIERSKA Grzegorz ŚLIWIŃKI PROJEKT I REALIZACJA APLIKACJI WSPIERAJĄCEJ ZARZĄDZANIE SKLEPEM INTERNETOWYM ZA POMOCĄ USŁUG ANALIZY DANYCH W SQL SERVERZE Ocena pracy:... (ocena pracy dyplomowej, data, podpis promotora) (pieczątka uczelni) Promotor: dr inż. Zofia KRUCZKIEWICZ WROCŁAW 2007 1

Spis treści 1. Wprowadzenie...4 2. Zagadnienia teoretyczne...6 2.1 OLAP...6 2.2 SQL Server Analysis Services...8 2.3 SQL Server Reporting Services...8 2.4 PHP 5...9 2.5 Istniejące systemy...9 2.6 Narzędzia...12 2.6.1 SQL Server Business Intelligence Development Studio...12 2.7.2 SQL Server Management Studio...14 2.7.3 Eclipse platform PDT Project...15 2.7.4 Sybase PowerDesigner 11...16 3. Wymagania i koncepcja projektu...17 3.1 Wymagania...17 3.2 Obraz sytemu...17 3.2.1 Model logiczny...18 3.2.2 Funkcje systemu...18 3.2.3 Model bazy danych...20 3.2.4 Związki pomiędzy encjami...21 3.3 Rozdzielenie warstwy prezentacji od warstwy logicznej...22 4. Projekt...24 4.1 Szczegółowy diagram bazy danych...24 4.2 Szczegółowy diagram kostki OLAP...25 4.3 Interfejs projekt...28 4.4 Funkcjonalność systemu...29 4.5 System szablonów...34 5. Implementacja...37 5.1 Logowanie użytkownika...37 5.2 Operacje na danych testowych, na przykładzie modułu produktów...38 5.3 Generacja testowych danych zakupów...41 5.4 Konstrukcja kostki OLAP...46 5.5 Raporty...47 5.6 System szablonów...49 6. Testy...54 6.1 Test działania systemu...54 6.2 Test trybów logowania użytkownika...54 6.3 Test funkcji manipulacji danymi...56 6.4 Test generacji danych do analizy...58 6.5 Test raportowania...61 7. Podsumowanie...64 8.Bibliografia...65 2

Spis rysunków Kostka OLAP...7 Statystyki dostępne w systemie oscommerce [8]...10 Statystyki dostępne w Shop [9]...11 SQL Server Business Intelligence Development Studio - praca z wielowymiarową bazą danych...13 SQL Server Business Intelligence Development Studio - projektowanie raportów...13 SQL Server Management Studio...14 Eclipse - PDT Project [10]...15 Sybase PowerDesigner 11 Evaluation [11]...16 Schemat koncepcyjny systemu...18 Funkcje użytkownika systemu...19 Diagram ERD. Ogólny obraz bazy danych...20 Relacje diagramu ERD...21 Idea rozdzielenia warstw...22 Fizyczny model bazy danych...25 Diagram wielowymiarowej bazy danych OLAP...27 Projekt interfejsu...28 Logowanie użytkownika...29 Dodawanie nowego produktu...30 Usuwanie klienta...31 Generacja danych do analizy...32 Generacja raportu...33 Ogólny schemat działania systemu szablonów...35 Moduł zarządzania klientami, widok standardowy...36 Moduł zarządzania klientami: widok edycji...36 Panel logowania...37 Operacje na produktach...38 Dimmension Usage: Połączenia pomiędzy wymiarami i miarami...46 Ekran logowania systemu...54 Logowanie do systemu bez opcji Zapamiętania...54 Ekran powitalny...55 Spis ciasteczek logowania bez opcji Zapamiętaj...55 Logowanie z opcją Zapamiętaj...55 Spis plików cookie z ciasteczkiem autologin...55 Panel manipulacji danych produktów...56 Dodawanie nowego produktu...57 Nowy produkt w bazie danych...57 Nowy produkt w spisie treści...57 Edycja produktów...57 Zmienione dane w bazie danych...58 Komunikat ostrzegający przed przypadkowym usunięciem...58 Komunikat o istniejacych danych transakcyjnych...59 Krok pierwszy generacji danych transakcyjnych...59 Krok drugi generacji danych transakcyjnych...60 Krok trzeci generacji danych transakcyjnych...60 Komunikat o wygenerowanych danych...61 Wybór raportu...61 Ustawianie parametrów raportu...62 Raport rocznego zestawienia sprzedaży...63 3

1. Wprowadzenie Dziedzina pracy W dzisiejszych czasach handel prowadzi się coraz częściej drogą elektroniczną. Sklepy przeprowadzają coraz więcej transakcji bezgotówkowych przy użyciu kart płatniczych. W Internecie, jak grzyby po deszczu powstają sklepy internetowe: księgarnie, ze sprzętem komputerowym, z bielizną, kosmetykami, elektroniką, a nawet spożywcze, choć te przeważnie oferują zasięg lokalny. Projektanci takich sklepów prześcigają się w pomysłach na ergonomię i przejrzystość interfejsu, możliwościach zapłaty za zamówienie, a także na nowe funkcje, dostępne dla klientów. W takim natłoku rzeczą naturalną jest silna konkurencja, a klienci są kuszeni coraz szerszym wachlarzem promocji, coraz obszerniejszą zawartością sklepu, coraz lepszymi warunkami dostawy i wygodniejszymi możliwościami zapłaty, bardziej ergonomicznymi i przejrzystymi interfejsami. Oferuje im się również kolejne funkcje, poszerzające funkcjonalność sklepów. I tu powstają pytania. Jak zwrócić uwagę klienta na nasz sklep? Którzy klienci są skłonni wydać więcej pieniędzy? Którym warto zaoferować promocję? Z drugiej strony, jakie produkty sprzedawać? Jakie warunki dostawy, zaproponować? Jakie warunki płatności? Czy podnieść cenę towarów, ale obniżyć cenę przesyłki, czy może na odwrót, obniżyć ceny towarów, a podnieść za przesyłkę? Cel pracy Odpowiedzi na te pytania może dostarczyć system, który wspomoże właściciela, bądź też managera sklepu, poprzez analizę zgromadzonych danych. Stworzenie takiego systemu jest też celem tej pracy. Ma to być system przyjazny, wygodny w obsłudze, odwzorowywać ogólne zasady transakcji w Internecie. System powinien także móc współpracować z większością dostępnych na rynku sklepów internetowych, jak również dokładnie zobrazować rzeczywistość. Jest to istotne, ze względu na istotę decyzji podejmowanych na podstawie analizy danych. Do realizacji tych celów opracowano, zaprojektowano i wykonano system oparty transakcyjnej bazie danych i powiązanej z nią analitycznej bazie danych typu OLAP. Wykorzystano również narzędzia dostarczone przez producenta sytemu bazodanowego, w celu maksymalnego uproszczenia poszerzania możliwości systemu o nowe typy raportów, jak i modyfikacji tych już istniejących. Zaprojektowano również przejrzysty interfejs użytkownika, oraz system generujący strony, który pozwoli bez żadnych problemów dostosować wygląd interfejsu do konkretnego sklepu internetowego. W kolejnym rozdziale opisano zagadnienia teoretycznie związane z celem pracy dyplomowej. Przedstawiono teoretyczne zagadnienia związane z bazami danych typu OLAP, których użyto do analizy zgromadzonych danych. Przedstawiono dwie usługi dołączone do systemu baz danych MS SQL Server 2005: Analysis Services oraz Reporting Services. Opisano również możliwości piątej wersji języka PHP, jednego z najpopularniejszych rozwiązań, używanych w tworzeniu dynamicznych stron WWW, w tym sklepów internetowych. Rozdział trzeci przedstawia koncepcję systemu, jak również wymagania, które powinien spełniać. Zaprezentowano również ideę rozdzielenia w php warstwy logicznej systemu od warstwy prezentacji. 4

Projekt systemu przedstawiony jest w rozdziale czwartym. Zawiera on schematy obrazujące architekturę systemu oraz idee kierujące przedsięwzięciem. Zobrazowane zostały w nim również projekt interfejsu oraz funkcjonalność. Rozdział piąty omawia aspekty implementacji systemu. Umieszczono w nim informację o językach programowania użytych do stworzenia systemu. Kolejny rozdział, szósty, zawiera testy kluczowych elementów systemu, mających gwarantować czytelność i poprawność analizowanych danych. W rozdziale siódmym zawarto wnioski, jakie narodziły się podczas tworzenia systemu, jak również zawarto perspektywy rozwoju systemu. 5

2. Zagadnienia teoretyczne W pierwszym podpunkcie zajęto się zagadnieniem OLAP (On-Line Analytical Processing). Opisano historię baz OLAP, specyfikę oraz zalety. W dzisiejszych czasach, mimo coraz szerszego zastosowania narzędzi typu BI (Business Intelligence), raporty często generowane są ze źródeł transakcyjnych, co przy coraz większej ilości danych zabiera coraz więcej czasu, powodując nawet czasowe zblokowanie bazy danych. Bardzo ważne jest, by wraz ze wzrostem ilości danych, coraz większego ruchu w sklepie, raporty były serwowane dokładnie i szybko. W związku z tym opracowano opis baz danych typu OLAP, porównano je z systemami transakcyjnymi, oraz innymi rozwiązaniami stosowanymi w zarządzaniu organizacjami. W drugim podpunkcie przedstawiono pokrótce SQL Server Analysis Services, oraz jego głównych konkurentów. Wyjaśniono również dlaczego wybrano ten system. Kolejny podpunkt przedstawia SQL Server Reporting Services oraz jego możliwości. Następnie, zajęto się najnowszą, piątą, wersję języka PHP. W dzisiejszych czasach, biznes internetowy próbuje zminimalizować wydatki, jednocześnie nie obniżając niezawodności i jakości świadczonych usług. Poszukuje się rozwiązań tanich, powszechnych, stabilnych i łatwych w zastosowaniu, a jednocześnie przenośnych. Takim właśnie rozwiązaniem jest PHP. Podpunkt ten opisuje możliwości piątej wersji tego języka, a także opisuje jego zastosowania. W piątym podpunkcie krótko przedstawiono wybrane systemy e-commerce oraz ich możliwości z zakresu analizy i wspomagania decyzji biznesowych. W ostatnim podpunkcie krótko opisano narzędzia służące do pracy na wybranych technologiach. 2.1 OLAP W roku 1993 Edward F. Codd wprowadził termin OLAP (On-Line Analytical Processing przetwarzanie analityczne w trybie online) i zaproponował 12 reguł opisujących bazy danych tego typu, wzorem terminu OLTP (On-Line Transactional Processing) i 12 reguł z 1985 opisujących transakcyjne bazy danych. I o ile jego reguły zostały odrzucone przez środowisko, to sam termin OLAP idealnie pasował do baz danych projektowanych z myślą ułatwienia procesów decyzyjnych w firmach [2]. Termin ten dzisiaj jest używany do opisywania narzędzi służących łatwemu udostępnianiu zgromadzonych w hurtowni danych w postaci informacji, czyli tak potrzebnej do zarządzania organizacjami wiedzy [2]. Zgromadzone w Hurtowni, czy też w bazie produkcyjnej dane, trudno nazwać informacją. Jednocześnie, by móc udostępnić je w postaci informacji, muszą zostać przetworzone przez silnik OLAP. Aby to było możliwe, dane te są pobierane przez systemy OLAP za pomocą odpowiednich sterowników baz danych - ODBC (Open Database Connectivity). Centralną pozycję w bazie analitycznej OLAP posiada tabela faktów. W niej to zebrane są miary, numeryczne, agregowane wartości będące danymi analizowanymi. Do opisu danych 6

wykorzystywane są tabele wymiarów. Wszystko to razem tworzy kostkę danych, zwaną także sześcianem. Sześcian w geometrii posiada trzy wymiary, jednak kostka danych może posiadać równie dobrze jeden wymiar, jak i znacznie większą liczbę wymiarów, ograniczoną tylko potrzebami użytkownika. Tak więc wyrażenie to tak naprawdę nie oddaje wyglądu kostki OLAP, a jej istotę. Podobnie jak w geometrii, wielkość kostki danych oblicza się mnożąc przez siebie jej wymiary. Rysunek 1: Kostka OLAP Jak widać na powyższym rysunku (rys.1), OLAP prezentuje dane w postaci wielowymiarowej, co różni się od systemów transakcyjnych, gdzie główną rolę grają pojedyncze wiersze. W systemach OLAP analizie podlegają zbiory danych, transakcji. Analityczne bazy danych są stosowane głowie w systemach wspomagania decyzji (DSS Decision Support System) do generowania przekrojowych raportów z działalności danej organizacji według różnych kierunków analiz.. Typowe zastosowania to systemy sprzedaży, marketing, raporty kierownictwa, budżety, prognozy pogody, raporty finansowe [1]. Jedną z zalet systemów opartych na bazach danych OLAP, jest ich szybkość. Analizy przeprowadzone w bazie wielowymiarowej nierzadko zajmują ułamek czasu, który potrzebowałyby na te same analizy bazy transakcyjne. W niektórych przypadkach jest to nawet 0,1% tego czasu. Jest to możliwe dzięki agregacjom. Powstają one na bazie tabeli faktów i są wstępnie obliczane dla różnych granulacji tychże faktów dla określonego wymiaru, a także kombinacji wszystkich wymiarów. Ten właśnie zabieg drastycznie skraca czas odpowiedzi. Takie podejście ma jedną wadę, baza OLAP potrafi się dość szybko rozrosnąć, szczególnie wtedy, gdy istnieje dość dużo wymiarów. By tego uniknąć, współczesne systemy oferują zmianę stopnia agregacji danych, a także różnorodne metody kompresji. 7

Kostka OLAP zawiera dużą liczbę metadanych. Są to informacje o sposobie przechowywania danych, ich strukturze, a także ich znaczeniu. Tworząc kostkę OLAP, definiując miary, mamy wpływ również na sposób agregacji, zalecane tytuły nagłówków, a nawet formatowanie liczb, a podczas tworzenia wymiarów, możemy zdecydować o grupowaniu niektórych atrybutów, a także, czy dana grupa tychże atrybutów może być połączona w hierarchię. Język SQL nie jest przystosowany do korzystania z metadanych. Bazy relacyjne, dla których został stworzony, nie zawierają ich wiele. Dlatego też wielu dostawców technologii stworzyło własne języki zapytań. Jednak w 2001 roku powstała rada XMLA (XML for Analysis), utworzony przez firmy Microsoft, Hyperion oraz SAS. Zadaniem rady było opracowanie wspólnej specyfikacji pracy z bazami danych typu OLAP, a językiem specyfikacji wybranym przez radę został MDX (MultiDimensional expressions) [2]. Dzięki metadanym zawartym w kostce, możliwe jest korzystanie z niej przez dowolne narzędzie klienckie obsługujące XMLA i/lub MDX, generowanie poprawnych raportów [2]. Kolejną zaletą technologii OLAP są proste formuły, które do złudzenia przypominają te stosowane w arkuszach kalkulacyjnych. XMLA ma jednak przewagę nad formułami z arkuszy. Raz stworzona formuła nie musi być kopiowana i będzie działała tak samo zarówno dla dziesięciu, jak też i tysiąca wierszy. Wprowadzając niewielką modyfikację w formule można ją wielokrotnie używać. Kolejną zaletą są nazwy opisowe odwołań w formułach, zamiast =C2*B2, jak to ma miejsce w arkuszach kalkulacyjnych, formuły XMLA wyglądają tak: [Cena]*[Ilosc]. Istotną zaletą są ponownie metadane, do których próżno próbować się odwoływać w formułach arkuszy kalkulacyjnych [2]. 2.2 SQL Server Analysis Services Decydując się na technologię OLAP można wybierać spośród kilku dostawców. Oprócz Microsoft Corporation oferującego SQL Server Analysis Services (SSAS), są to między innymi Hyperion Solutions Corporation z programem Essbase (na krótko nazwanego Hyperion System 9 BI+ Analytic Services przez wydawcę), oraz Oracle z Oracle OLAP. Essbase jest dostarczany jako osobna aplikacja, rozwiązanie firmy Oracle Corporation jest dostępne w formie płatnej opcji do systemu zarządzania bazą danych Oracle Database. Za to SQL Server Analysis Services jest już zawarty w pakiecie Microsoft SQL Server 2005, podobnie jak inne narzędzia Business Intelligence Microsoftu. Za tym ostatnim rozwiązaniem przemawia przede wszystkim cena, która jest dużo niższa niż Essbase, jego dostępność na rynku polskim oraz prostota obsługi [2]. Dodatkowym atutem jest możliwość nawiązania połączenia z bazą danych MySQL za pomocą sterowników MySQL dla platformy.net dostarczanych przez sam MySQL bądź też przez niezależną firmę CoreLab. Jest to o tyle ważne, że duża część sklepów internetowych opartych na PHP, korzysta właśnie z bazy danych MySQL. 2.3 SQL Server Reporting Services Przy stosowaniu technologii OLAP istotne są również raporty. SQL Server Reporting Services (SSRS), jest właśnie narzędziem, do generacji tychże raportów. Może pracować zarówno na relacyjnej bazie danych, jak i na bazie danych typu OLAP. Co jest bardzo istotne, Reporting Services jest dostarczany w tym samym pakiecie, co Analysis Services. Taki sposób dystrybucji tworzy z Reporting Services naturalne uzupełnienie możliwości wielowymiarowej bazy danych Microsoftu. 8

SSRS jest narzędziem serwerowym, znaczy to tyle, że do działania potrzebuje serwera WWW obsługującego technologię ASP.NET. Jednym z takich serwerów jest właśnie IIS (Internet Information Services), który jest dostępny w systemach serwerowych Microsoftu współpracujących z SQL Server 2005, tj. Windows 2000 SP4 oraz Windows 2003. SSRS oferuje możliwość projektowania raportów w Microsoft Visual Studio dzięki dostarczanym wtyczkom, oraz w ograniczonym stopniu poprzez interfejs WWW. Stworzone raporty mogą być wygenerowane w różnych formatach, między innymi PDF, XLS (Excel), CSV, XML, jak również może rozsyłać raporty za pomocą poczty elektronicznej. Również zabezpieczenia można stosować szeroko, zabezpieczając pojedyncze raporty, folder zawierający ich zbiór, bądź też źródło danych. 2.4 PHP 5 Historia tego niezwykłego języka zaczęła się w 1994 roku, jako zestaw narzędzi do obsługi osobistej strony swojego twórcy Rasmusa Lerdorfa. Jego popularność wybuchła, gdy w 1998 zespół złożony z Rasmusa oraz Andi Gutmansa Zeeva Suraskiego wydał 3 odsłonę języka. Przyczyniła się do tego modułowość języka oraz łatwa możliwość rozszerzenia możliwości PHP za pomocą nowych rozszerzeń. W 10 lat od pierwszej wersji, w roku 2004 została upubliczniona piąta odsłona języka [5]. Jednym z największych usprawnień w PHP 5 jest model obiektowy. Poprzedni, wprowadzony w 3 wersji języka i utrzymany w 4, posiadał istotne ograniczenia. Obiekty były również przekazywane, między innymi jako parametry funkcji, tak jak inne zmienne, co powodowało ich kopiowanie. W aktualnej wersji przekazanie obiektu jako parametru powoduje tylko przekazanie wskaźnika, co jest bardziej intuicyjne. Od wersji piątej programiści mogą używać również modyfikatorów dostępności ( public, private, protected, static ) oraz interfejsów [7]. Kolejnym usprawnieniem jest obsługa wyjątków, jednak w samym php, ze względu na wsteczną kompatybilność, wyjątki są wykorzystywane tylko w nowych rozszerzeniach [7]. Istotnym elementem w PHP jest Zend Engine. Zend Engine, to od 4 wersji języka, wirtualna maszyna odpowiedzialna za uruchamianie skryptów PHP. Wersję piątą php obsługuje druga odsłona silnika Zend Engine, która znacznie poprawia wydajność aplikacji. Zend Engine II posiada również nowy, wydajny, moduł zarządzania pamięcią, który znacznie lepiej radzi sobie w środowiskach wielowątkowych. PHP 5 poprawia również bezpieczeństwo aplikacji internetowych, dzięki domyślnym wyłączeniu zmiennych globalnych, jak również innych opcji ułatwiających pracę, jednak będących źródłem wielu niebezpiecznych luk w aplikacjach. PHP również może generować różne treści, nie tylko html, xml, ale również pliki obrazków w różnych formatach, pliki PDF, arkusze kalkulacyjne xls i wiele innych. Również dzięki wbudowanym funkcjom potrafi on nawiązać połączenie z różnymi typami serwerów, na przykład telnet, serwery ftp, inne serwery http [5]. 2.5 Istniejące systemy Z powodu dostępności na rynku hostingowym platform obsługujących język PHP, niskich kosztach, przy jednoczesnej ich dużej wydajności i dużych możliwościach, na rynku istnieje wiele 9

darmowych systemów e-commerce, jak np. oscommerce, Zen Cart, CRE Loaded (oparty na oscommerce), BakeSale. Spośród tych systemów, tylko oscommerce (rys.2) posiada moduł statystyk, jednak jego użycie w raportach i analizach jest bardzo ograniczone, tym bardziej, że statystyki generuje na transakcyjnej bazie danych. Rysunek 2: Statystyki dostępne w systemie oscommerce [8] Oczywiście, oprócz darmowych systemów istnieją również płatne, jak JShop Server (rys.3), polska edycja Zen Cart Zen Cart PL, czy też wiele systemów bazujących na oscommerce. 10

Rysunek 3: Statystyki dostępne w Shop [9] Jak widać, dostępne systemy nie dają zbyt wielu możliwości generowania raportów, a rozszerzanie funkcjonalności istniejących jest długie i czasochłonne, nie wspominając o ograniczeniach raportowania opartego na transakcyjnej bazie danych. 11

2.6 Narzędzia W niniejszym podpunkcie przedstawiono narzędzia związane z zagadnieniami przedstawionymi do tej pory. Podano ich krótką charakterystykę, a także napisano, do czego służą. Zajęto się tutaj narzędziami SQL Server Business Intelligence Development Studio i SQL Server Management Studio firmy Microsoft, Power Designer 11 firmy Sybase oraz Eclipse PDT Project korporacji non-profit Eclipse Foundation. 2.6.1 SQL Server Business Intelligence Development Studio SQL Server Business Intelligence Development Studio jest w rzeczywistości nakładką na Visual Studio 2005, rozszerzającą jego możliwości o projektowanie i wdrażanie wielowymiarowych baz danych typu OLAP oraz o tworzenie i publikowanie reportów SQL Server Reporting Services. Jednak nie wymaga obecności w systemie zainstalowanej pełnej wersji Visual Studio. Pakiet ten jest dostępny razem z SQL Server 2005 i posiada potrzebne do samodzielnego działania składniki Visual Studio 2005. Na poniższych zrzutach ekranowych przedstawiono pracę z wielowymiarową bazą danych (rys.4) i z raportami (rys.5). 12

Rysunek 4: SQL Server Business Intelligence Development Studio - praca z wielowymiarową bazą danych Rysunek 5: SQL Server Business Intelligence Development Studio - projektowanie raportów 13

2.7.2 SQL Server Management Studio SQL Server Management Studio jest aplikacją dostępną w pakiecie wraz z SQL Server 2005. Służy ona do zarządzania serwerem bazodanowym, bazami danych oraz innymi usługami wchodzącymi w skład pakietu SQL Server 2005. Poniżej (rys.6) przedstawiono zrzut ekranowy aplikacji. Rysunek 6: SQL Server Management Studio 14

2.7.3 Eclipse platform PDT Project Eclipse platform jest darmowym i wygodnym środowiskiem developerskim napisanym w Javie. Dzięki wsparciu wielkich korporacji, między innymi IBM, Borland, Red Hat oraz QNX Software Systems, a także statusie projektu jako Open Source, powstaje do niego wiele wtyczek pozwalających na programowanie nie tylko w Javie, ale również C/C++, COBOL i php. Eclipse platform jest również oprogramowaniem wieloplatformowym, działa między innymi na systemach Linux, HP-UX, QNX, Solaria, Mac OS X oraz Windows. Pakietem pozwalającym na wygodne programowanie w php jest PDT Project (PDT - PHP Development Tools) zawierający oprócz szeregu ułatwień również debugger kodu. Około marca 2007 roku powinna się ukazać wersja 0.7 PDT Project opartego na Eclipse 3.2.2 [10]. Poniżej (rys.7) umieszczono zrzut ekranu obrazujący pracę z pakietem. Rysunek 7: Eclipse - PDT Project [10] 15

2.7.4 Sybase PowerDesigner 11 PowerDesigner firmy Sybase jest potężną aplikacją wspomagającą projektowanie aplikacji. Korzysta przy tym z języka UML, pozwalając na tworzenie diagramów aktywności, diagramu klas, diagramów ERD, diagramów fizycznych baz danych. Współpracuje ona z większością systemów bazodanowych, pozwalając między innymi na utworzenie bezpośrednio na serwerze bazodanowym zaprojektowanej bazy danych. Wersja Evaluation, którą wykorzystano, zawiera pełną funkcjonalność pełnej wersji i jest jedynie ograniczona czasowo. Można ją używać przez 15 dni [11]. Aplikację przedstawia poniższy (rys.8) zrzut ekranu. Rysunek 8: Sybase PowerDesigner 11 Evaluation [11] 16

3. Wymagania i koncepcja projektu Rozdział ten, jak podano we wstępie, zawiera wyszczególnione wymagania, jakie powinny zostać spełnione, by system prawidłowo działał i nie sprawiał problemów w przyszłości. Wyszczególniono cele, oraz opracowano listę zadań do wykonania. Następnie przedstawiono diagramy, wraz z opisami, obrazujące ogólne działanie systemu, jak i procesy, które powinny w nim zachodzić. Ma to pomóc w zrozumieniu idei przedsięwzięcia. W czwartym rozdziale system został przedstawiony bardziej szczegółowo. 3.1 Wymagania Przedstawiono tutaj wymagania ze strony użytkownika systemu, czyli właściciela lub managera sklepu, jakie musi spełnić tworzony system. W wyniku analizy wymagań zidentyfikowano funkcje systemu, jakie musi wykonać, aby spełnić postawione wymagania. Wymagania użytkownika 1. Wygodny i ergonomiczny interfejs systemu. 2. Szybko wykonywane funkcje systemu np. szybkie generowanie raportów 3. Całkowita wydajność systemu - generacja raportów nie powinna mieć wpływu na wydajne działanie sklepu. 4. Przenośność systemu -możliwość dołączenia systemu do istniejącej aplikacji sklepu internetowego. 5. Niezawodność systemu konieczność przeprowadzenia testów systemu przed jego wdrożeniem. Wszystkie funkcje powinny zostać poddane testom, a najważniejsze z nich powinny zostać udokumentowane. Zadania zaplanowane w celu opracowania koncepcji, projektu i zrealizowania systemu spełniającego postawione wymagania 1. Zaprojektowanie relacyjnej bazy danych opartej na bazie istniejącego systemu oscommerce, będącej źródłem danych dla kostki OLAP. 2. Zaprojektowanie kostki OLAP - wielowymiarowej bazy danych, w oparciu o usługę SQL Server Analysis Services firmy Microsoft. 3. Opracowanie generatora danych testowych sklepu w oparciu o PHP 5, system baz danych MS SQL. 4. Zaprojektowanie poszczególnych raportów w oparciu o usługę SQL Server Reporting Services firmy Microsoft. 5. Przeprowadzenie wnikliwych testów opracowanego systemu, zbadanie działania i usunięcie błędów i wad systemu. 3.2 Obraz sytemu W tym podrozdziale przedstawiono realizację postawionych zadań. Określono również odpowiednie, z punktu widzenia obranej technologii i kierunku badań, rozwiązania. 17

3.2.1 Model logiczny Istotą aplikacji będzie SQL Server Analysis Services, usługa systemu bazodanowego SQL Server 2005 firmy Microsoft, jednakże z uwagi, iż kostki OLAP służą przede wszystkim do analizy danych, system korzysta również z bazy danych sklepu, która powinna przechowywać informacje autoryzacyjne, logi oraz niektóre dane konfiguracyjne. Jak widać na schemacie koncepcyjnym systemu (rys.9), SQL Server Analysis Services jest zależna od bazy danych sklepu, z której pobiera dane, by je następnie przetworzyć w wielowymiarową bazę danych. Z Bazy danych korzysta również sklep/generator oraz system wspomagania decyzji. Generator korzysta z danych autoryzacyjnych, oraz zapisuje w niej wygenerowane testowe dane transakcyjne. System wspomagania decyzji podobnie jak generator, korzysta z danych autoryzacyjnych przechowywanych w bazie, a jednocześnie jest zależny od generatora, do którego jest podłączony jako moduł (podobnie jak to może mieć miejsce w części administracyjnej aplikacji sklepowej). System Wspomagania Decyzji zależny jest od SQL Server Reporting Services, który przedstawia informacje zawarte w SQL Server Analysis Services w prostych i czytelnych dla użytkownika raportach obrazujących procesy zachodzące w sklepie, wygenerowane generatorem. SQL Server A nalysis Services Baza Danych S klepu S QL S erver Reporti ng S ervi ces Skl ep Internetowy/Generator System Wspom agani a Decyzji Rysunek 9: Schemat koncepcyjny systemu 3.2.2 Funkcje systemu Przedstawiono tutaj funkcje, jakie system będzie udostępniał użytkownikom (rys.10). Przez użytkownika rozumiemy pracownika, właściciela, lub managera, który w aplikacji sklepowej otrzymał dostęp i uprawnienia do systemu. Użytkownik może się zalogować do systemu i wylogować z niego. Będąc zalogowany, może najpierw utworzyć podstawowe informacje opisowe, to jest dane kategorii, produktów, producentów 18

i klientów, które będą służyć do opisu wygenerowanych później transakcyjnych danych przeznaczonych do analizy. Oczywiście, oprócz utworzenia danych służących do opisywania transakcji, użytkownik ma również możliwość ich zmiany i usunięcia. Dane transakcyjne również będą generowane przez użytkownika, który również będzie mógł je usunąć by np. wygenerować nowe. Wszystkie, powyżej przedstawione funkcje, ze względu na swoją naturę, wykorzystują relacyjną bazę danych. Z wielowymiarowej bazy danych typu OLAP korzysta ostatnia funkcja, dzięki której użytkownik może przeglądać raporty. Są one tworzone na podstawie przetworzonych przez OLAP danych. Logowanie Wylogowanie Dodaj /Usuń/E dytuj kategorie produktów Dodaj /Usuń/E dytuj producentów Dodaj/Usuń/Edytuj kl ientów testowych Użytkowni k Wygeneruj dane testowe Wyczyść testowe dane zakupów Przegl ądaj Raporty Rysunek 10: Funkcje użytkownika systemu Korzystanie z systemu uprawnień i użytkowników sklepu zapobiega dublowaniu tych informacji, jak i konieczność podwójnej rejestracji, ponownego przyznania uprawnień. Zapobiega to również sytuacji, gdy administrator usuwający pracownika z jednego systemu, zapomni zrobić tego w drugim. 19

3.2.3 Model bazy danych Poniżej przedstawiono ogólny model bazy danych, jaki wykorzystano przy projektowaniu systemu. Jest to zmodyfikowana wersja bazy danych systemu oscommerce, jednego z bardziej popularnych systemów służących do tworzenia sklepów internetowych. Zdecydowano się posłużyć bazą istniejącego systemu, ze względu na charakter aplikacji, która nie powinna istnieć w oderwaniu od sklepu, którego zarządzanie ma wspomagać. Zabieg ten pozwala wiernie odwzorować strukturę danych sklepu, oraz umożliwia płynny i dokładny przepływ danych pomiędzy sklepem, a systemem wspomagania decyzji. m anufacturers categories products 0,n orders_products 1,n custom ers orders orders_del ivery Rysunek 11: Diagram ERD. Ogólny obraz bazy danych Diagram ERD (związków encji), przedstawiony na rysunku 11, przedstawia model relacyjnej bazy danych. Diagram ten pokazuje związki logiczne zachodzące pomiędzy poszczególnymi encjami w bazie danych, a także krotność, tj ilość encji wchodzących w skład związku. 20

Jeden do jednego Jeden do wielu Wiele do wielu Opcjonalne Wymagane Rysunek 12: Relacje diagramu ERD Diagram zawiera siedem tabel, połączonych relacjami różnych typów, z których każda reprezentuje obiekt rzeczywisty. Tabele te są niezbędne do działania systemu i występują w podobnej postaci w większości systemów sklepowych. W porównaniu z oryginalną bazą systemu oscommerce, wyodrębniono w osobnej encji adres dostawy złożonego zamówienia, który oryginalnie był częścią złożonego zamówienia. 3.2.4 Związki pomiędzy encjami W encji customers przechowywane są dane klienta używane w systemie, takie jak dane osobowe, kontaktowe, autoryzacyjne. Każdy użytkownik może złożyć wiele zamówień, dlatego też połączono encję customers z encją orders relacją jeden do wielu. Oczywiście, każdy użytkownik może chcieć, by dostarczyć zamówienie na inny adres niż swój, nawet w kilka różnych miejsc, dlatego też encję customers połączona relacją jeden do wielu z encją orders_delivery. Czymś naturalnym jest również to, że na ten sam adres dostawy, klient może złożyć wiele zamówień. Aby to umożliwić, encję orders_delivery z encją orders połączono relacją jeden do wielu. Czym byłby jednak sklep i możliwość zamawiania, gdyby nie dostępne produkty? Właśnie w encji products przechowywane są informacje o produktach, cenie, ich ilości. Każdy produkt ma oczywiście producenta, z których każdy tworzy różne produkty. Odwzorowano to wprowadzając związek wiele do jednego z encją manufacturers. Z drugiej strony, by katalog produktów był przejrzysty, potrzebne są kategorie, które zgromadzą wewnątrz grupy produktów. Z tego powodu encję products połączono relacją wiele do jednego z encją categories. 21