1 MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Webový informační systém na podporu marketingu DIPLOMOVÁ PRÁCE Zbyněk Ošmera Brno, Jaro 20062 Prohlášení P...
Prohlášení Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj.
Poděkování Rád bych poděkoval svému vedoucímu práce prof. RNDr. Jiřímu Hřebíčekovi, CSc. za odbornou pomoc a připomínky.
Shrnutí Diplomová práce Webový informační systém na podporu marketingu charakterizuje, co je to OLAP a systémy na podporu rozhodování, popisuje stávající OLAP systémy na podporu rozhodování a líčí návrh a implementaci mého OLAP nástroje.
Klíčová slova Systémy na podporu rozhodování, marketing, OLAP (On Line Analytical Processing), OLAP kostka, XML, UDM (Unified Dimensional Model), MDX (multi-dimensional expressions), Java
Obsah 1. Úvod ________________________________________ 2 2. O této práci ___________________________________ 3 3. Co je informační systém pro podporu řízení v marketingu_____________________________________ 4 3.1.
Systémy pro podporu řízení ______________________________________ 4
Doprovodné CD _______________________________________________ 26
8.2.
Schéma pro server Modrian _____________________________________ 26
1
1. Úvod Jako téma své diplomové práce jsem zvolil projekt webového informačního systému na podporu marketingu, který mě zaujal tím, že kromě oboru informatiky zasahuje též i do oboru ekonomie, což je také oblast, která mne zajímá. Tato práce má za cíl vytvořit informační systém, který bude pomáhat při řešení otázek řízení podniku, zvláště pak v oblasti marketingu. Abych mohl tento problém vyřešit, bylo nutné nejprve zjistit, jaké prostředky se na takovéto informační systémy používají a provést analýzu stávajících systémů pro podporu marketingu. Jedná se o takzvané systémy na podporu řízení, které dnes často využívají OLAP, což jsou databáze zaměřené právě na zpracování analytických dotazů v reálném čase. Provedl jsem rovněž porovnání již existujících systémů pro podporu rozhodování. Poté bylo nutné najít nějaké open source nástroje, pomocí kterých bych mohl vytvořit informační systém pro podporu v marketingu. Nabízelo se jich několik, ale nakonec jsem zvolil Modrian od firmy Pentaho. Jedná se javovský server, který používá postupy OLAP kostky pro rychlé zpracování analytických dotazů. Pomocí javy jsem pak naimplementoval další metody, jejichž pomocí lze snadno zobrazovat různé marketingové analýzy mého zvoleného imaginárního podniku.
2
2. O této práci Tato práce vznikla na základě projektu Webový informační systém na podporu marketingu. Skládá se ze tří částí. V první části práce stručně vysvětlím co je to informační systém na podporu rozhodování, OLAP, OLAP kostka a marketing. Druhá část práce se zabývá popisem a analýzou již existujících informačních systémů. A třetí a největší část se pak zabývá zvoleným open source nástrojem a popisem, jak jsem systém tvořil.
3
3. Co je informační systém pro podporu řízení v marketingu Nejprve bychom měli zodpovědět, co je to vlastně systém pro podporu řízení.
3.1. Systémy pro podporu řízení Systém pro podporu řízení (decision support system - DSS) je sada počítačových nástrojů, které jsou určeny k pomoci při rozhodování. Tento pojem se chápe v mnoha různých významech, ale je nejběžněji chápán jako počítačový informační systém určený pro podporu rozhodování při řešení manažerských problémů. Různých definic pojmu systém pro podporu řízení je mnoho, možná tolik jako jejich autorů, ale dvě výše uvedené jsem si vybral jako nejvýstižnější. Počátky výzkumu systémů pro podporu řízení spadají již do 50. a 60. let. Jako samostatná disciplína vznikají až v 70. a 80. letech. S rozvojem větších informačních systémů, tudíž i větších souborů dat, vzniká snaha o využití těchto dat pro získávání nových informací vhodných pro podporu rozhodování. V 90. letech pak vznikají on-line systémy (on-line analytical procesing - OLAP) pro podporu rozhodování a dnes se hlavně vyvíjí webové informační systémy. Systémy pro podporu řízení či rozhodování využívají či v sobě zahrnují vlastně mnoho disciplín jako jsou databáze, umělá inteligence, softwarové inženýrství nebo telekomunikace.
3.2. OLAP OLAP je zkratka pro On Line Analytical Processing, neboli on-line analytické zpracování. Snaží se rychle poskytnout odpovědi na analytické dotazy. Jsou nejmodernější podmnožinou systémů na podporu řízení a většinou se zabývají problémy jako jsou marketing, management, rozpočty, finanční zprávy a předpovědi.
4
První, kdo použil pojem OLAP, byl E.F. Codd (1923-2003), mimo jiné také vynálezce relačního databázového modelu, a to v roce 1993, kdy publikoval knihu Providing OLAP to User-Analysts. V ní popsal základy OLAPu a multidimenzionálního datového modelu. OLAP vznikly na základě požadavku rychlého vyhodnocování dat pro potřeby managementu, která je v dnešní rychlé době čím dál více potřeba. Klasické relační databáze se výborně hodí na transakční zpracování dat, ale nejsou již tak výhodné na zpracování analytických dotazů nad daty. Tyto dotazy jsou často kladeny z různých pohledů a to lze u relačních databází hůře zpracovávat. Databáze, které jsou určeny pro používání OLAPu používají multidimensionální datový model, který umožňuje velmi rychlé zpracování rozličných dotazů. Umožňuje to právě díky použití různých pohledů na data neboli dimenzí. Dimenze mohou být např. časové období či zeměpisná oblast. Tento náhled na data se nazývá OLAP cube, neboli OLAP kostka. V ní jsou data organizována do star schema - hvězdicového schéma. Ve středu schéma je tabulka s fakty a na ni jsou napojeny dimenzní tabulky, které udávají, jak se dají data v tabulce faktů různě analyzovat. Existuje
několik
druhů
OLAP.
Mezi
nejvýznamnější
patří
MOLAP
(Multidimensional OLAP) – multidimenzionální OLAP. Jedná se o klasickou verzi OLAPu, která používá databázové struktury, které obsahují takové atributy, že využívají přímo multidimezionálního datového modelu. Dalším velmi častým druhem OLAPu je ROLAP(Relational OLAP), který pracuje s běžnými relačními databázemi. Dimenze jsou pak nadefinovány v pomocných dimenzních tabulkách a data jsou uložena v klasických databázích. Nelze je však použít v klasických informačních systémech, protože tabulky musí být navrženy speciálně pro ROLAP. Díky větší optimalizaci mají MOLAPy větší výkonnost, ale oproti ROLAPům jsou složitější a vyžadují speciální databáze, jak vystihuje následující obrázek 3.1:
5
obrázek 3.1 Jako příklad mohu uvést třeba zpracování dat o zákaznících. Tabulka s fakty pak bude obsahovat informace o zákaznících. Dotazy na zákazníky pak můžeme volit podle různých kritérií – například lokace, tj. ze kterého města, či státu zákazníci pocházejí. Dalším kritériem může být druh zboží, které od nás zákazníci odebírají. Můžeme chtít vyhodnocovat po jednotlivých druzích zboží, či po celých kategoriích zboží. Toto jsou dvě dimenze, podle kterých se mohou vytvářet dotazy. Ke každé dimenzi pak existuje dimenzní tabulka, která udává, jak je daná dimenze členěna. Přínosem OLAPu je právě zavedení víc než klasických dvou až tří pohledů na data (dimenzí), které jsou používány v běžných relačních databázích, čímž se dosáhne většího informačního přínosu. A také při použití standardních transakčních databází je velmi těžké zpracovat data z jiného pohledu, než na který byly původně vytvořeny. U OLAPu je pak zpracování dotazů oproti nim mnohem rychlejší.
6
3.3. Marketing Když už se bavíme o marketingových informačních systémech, bude jistě vhodné věnovat pár řádků i samotnému marketingu. Uvedu zde dvě definice, první je od americké marketingové asociace: Marketing je proces řízení, v jehož rámci se identifikují a předvídají požadavky zákazníků a účinně a rentabilně se uspokojují. Druhá je od P. Kotlera: Marketing je společenský a řídící proces, kterým jednotlivci a skupiny získávají to, co potřebují a požadují, prostřednictvím tvorby, nabídky a směny hodnotných výrobků s ostatními. Abychom mohli správně rozhodovat a zjišťovat, jaké jsou požadavky zákazníků a jak vydělat, je potřeba mít kvalitní informace a s nimi nám mohou právě pomoci systémy pro podporu řízení.
3.4. Co tedy je informační systém pro podporu řízení v marketingu Co je to tedy marketingový informační systém? Asi bych znovu použil definici americké marketingové asociace - je to informační systém, který na základě určitých postupů a metod shromažďuje data, zpracovává a analyzuje je a poskytuje výstupy pro podporu rozhodování při řešení marketingových problémů. Marketingové informační systémy shromažďují data o procesech probíhajících v podniku – jako jsou zisky, tržby, provádí nad nimi za pomocí statistických metod odhady, jak by se mohly vyvíjet do budoucnosti a vytváří modely a prezentace, které pak pomáhají manažerům v jejich marketingových rozhodnutích.
7
4. Existující systémy na podporu rozhodování 4.1. Historie a předchůdci OLAPu Ačkoli termín OLAP vznikl až v roce 1993, podobné technologie existovaly už dávno před ním. Prvním programovacím jazykem, který použil multidimenzionální analýzu, která je základem OLAP, byl APL z roku 1962. Byl to matematicky nedefinovaný programovací jazyk, který používal multidimenzionální proměnné. První aplikace v něm vznikly na konci 60. let a jazyk APL byl používán až do 70. a 80. let dvacátého století. V 70. letech vznikl na akademické půdě multidimenzionální produkt, zaměřený více na aplikace – Express. Byl již mnohem více podobný moderním OLAPům a dodnes je součástí OLAP produktů společnosti Oracle. V 80.
letech
bylo
vyvinuto
mnoho
dalších
produktů,
které
používaly
mutidimenzionální analýzu. Patří mezi ně například produkt Systém W, který poprvé použil hvězdicové schéma. Byl hlavně používán pro návrh podpůrných finančních aplikací. Jiným produktem z té doby je Metaphor, který přinesl mnoho nových konceptů, které se staly populární zvláště v 90. letech, jako jsou klient/server architektura, multidimenzionální dotazy na relačních datech či objektová analýza a vývoj. Jedná se tak vlastně o předchůdce ROLAPů – OLAPů založených na relačních databázích. V 80. letech přicházejí do obliby tabulkové programy a k nim vznikají i první OLAP nástroje. Mezi nejčastější dnes patří různé přídavné programy pro Excel.
4.2. Současné OLAPy První OLAP systémy, jak je známe dnes, přišly na trh v polovině 90. let a brzy začal velký růst poptávky po OLAP systémech. Kolem roku 2000 se sice růst zpomalil, ale v posledních letech už opět patří mezi nejvíce se rozvíjející se oblasti softwaru pro firmy. Na trhu nyní existuje několik velkých dodavatelů komerčních OLAP systémů jako
8
jsou Microsoft, SAP, Oracle, MicroStrategy či Hyperion, kteří ovládají většinu trhu. Tito dodavatelé ovšem OLAP systémy poskytují většinou jako součást balíků svých služeb, takže se samostatně OLAP systémy moc nevyskytují. Každý z dodavatelů OLAP systémů se zaměřuje na jiné zákazníky. Ať už se jedná o velikost, kde je například Microsoft Analysis Services od Microsoftu určen spíše pro menší zákazníky oproti SAP BW od SAP, který je dodáván spíše větším firmám, nebo třeba oblast pro, kterou je jejich produkt nejvíce vhodný. Například pro oblast prodeje jsou nejvíce používány produkty od MicroStrategy oproti produktům od Microsoft, které jsou využívány nejvíce v průmyslu. Pro znázornění rozložení podílu hlavních firem dodávajících OLAP systémy na trhu, zde ukáži graf, který jsem našel na internetových stránkách OLAP Report:
obrázek 4.1 A protože největší podíl na trhu má nyní firma Microsoft, zmíním se nejdříve několika slovy o Microsoft Analysis Services.
9
4.3. Microsoft Analysis Services Jedná se o balíček OLAP služeb dodávaný společně s Microsoft SQL Server. Microsoft na ní začal pracovat v roce 1996 poté, co získal OLAP technologie od izraelské společnosti Panorama. V roce 1998 uvedl na trh první verzi, která se jmenovala OLAP Services a byla dodávána společně s SQL Server 7. OLAP Services podporovala MOLAP, ROLAP a HOLAP architektury a používala MDX jako dotazovací jazyk. V roce 2000 vznikla nová verze Analysis Services 2000. Ta oproti původní již neobsahovala jen OLAP služby, ale také i služby Data Mining. Přinesla sebou i mnoho dalších novinek – větší flexibilita návrhu dimenzí či obohacený výpočetní aparát. V roce 2005 pak byla představena zatím poslední verze Analysis Services 2005. Ta přinesla novou architekturu produktu. Byla však zachována kompatibilita na API úrovni a také zůstalo MDX pro dotazy na OLAP. Microsoft SQL Server 2005 Analysis Services přináší OLAP technologii a data mining pomocí klient-server technologie. Obsahuje v sobě také nástroje a objektový model určené pro návrh, tvorbu a údržbu aplikací pro podporu rozhodování obchodních záležitostech. Analysis Services pracují na principu tenkého klienta, kdy veškeré výpočty a dotazy na databázi jsou prováděny na straně serveru. Díky tomu je pak výkon docela slušný a je potřeba jen jeden dotaz a odpověď mezi klientem a serverem na jeden analytický dotaz. Pro komunikaci mezi serverem a se používá XML pro analýzu (XML/A), díky čemuž se dá použít několik různých rozhraní pro komunikaci se serverem. Lze použít klientské aplikace, které komunikují přímo se serverem. Může se také použít klasický webový prohlížeč, který se spojí se prostřední vrstvou – Internet Information Service, která převádí odpověď serveru z XML do vizualizovaného HTML. Klientská technologie umožňuje i provádění analýz přímo na počítači klienta. Což se hodí, když je počítač odpojen od sítě. Data se natáhnou do počítače klienta, uloží se a pak se nad nim provádí dotazy. Ukázky z Microsoft Analysis Services můžeme vidět na obrázcích číslo 4.2 a 4.3:
10
obrázek 4.2
11
obrázek 4.3 Microsoft Analysis Services má ještě jednu věc, o které bych se měl zmínit a tím je UDM - Unified Dimensional Model. Tento model, který je určen pro zobrazování obchodní logiky, výpočtů apod. se používá pro všechny OLAP nástroje, tabulkové programy a analytické aplikace, které v sobě Analysis Services obsahují. Model pak má sloužit k usnadnění pohledu uživatele na obsažená data, která mohou být uložena v různých databázích. UDM také usnadňuje pohled na data z různých aplikací, které jej používají, protože díky UDM se na ně dá dívat ze stejné business logiky. Jak naznačuje obrázek 4.4.
12
obrázek 4.4.
4.4. Hyperion Solutions Nabízí několik OLAP produktů, jedná se například o webový server, či plug-in do microsoft excelu. Jeho hlavním produktem v této oblasti je Hyperion System 9. Jedná se sadu nástrojů, která je určena pro různé obchodní a manažerské činnosti. Hyperion System 9 v sobě slučuje aplikace pro podporu rozhodování, finanční aplikace a aplikace pro řízení. Umožňuje tak provádět činnosti jako jsou management, hlášení o produktech, pokročilé analýzy, finanční hlášení a konsolidace v jednom systému. Mnohé z těchto funkcí pak využívají OLAP databází pro své fungování. Jedná se například o Hyperion System 9 Planning, což je webová aplikce a plug-in do MS Excelu, který slouží k plánování, účtování a odhadování řešení, která slučuje finační a řídící procesy. Viz obrázek 4.5
13
obrázek 4.5 Další aplikací, kterou v sobě Hyperion System 9 zahrnuje a obsahuje v sobě prvky systému pro podporu rozhodování a OLAPu je Hyperion Web Analysis. Jedná se o nástroj určený k rychlému analyzování problému z mnoha pohledů. Používá různorodé grafické zobrazení pro ukázání výsledků dotazů na data. Web Analysis pomáhá podnikům při provádění významných analýz, které jim pak umožní získat reálný pohled na stav jejich obchodu. Viz obrázek 4.6
14
obrázek 4.6
15
5. Můj informační systém Protože vytvořit celý úplně nový OLAP server by bylo velmi náročné, rozhodl jsem použít open source OLAP server Modrian od firmy Pentaho pro vytvoření OLAP informačního systému. Můj OLAP informační systém se skládá ze tří vrtev. První z nich je prezentační vrstva, kterou jsem vytvořil v Javě pomocí univerzálních grafických komponent Awt a Swing. Druhou částí je OLAP server Modrian od firmy Pentaho. Tento OLAP server by napsán pomocí Javy a je jakýmsi prostředníkem mezi prezentační vrstvou a databázovou vstvou. Třetí částí je již zmíněná databázová vrstva, kterou tvoří databáze mysql. Základem je open source server Modrian, který umí zpracovávat OLAP dotazy na speciálně připravenými relačními databázemi. Jde se tedy o ROLAP, neboť pracuje nad klasickými databázemi. Pro OLAP dotazy používá speciálního jazyka MDX (multidimensional expressions), což by se dalo přeložit jako mnoho-dimenzní výraz/dotaz. Pomocí MDX klade prezentační vrstva dotazy na server a ten pak komunikuje s databází a posílá odpověď podobnou klasické javovské komunikaci s databází (JDBC) zpět prezentační vstvě. Nejprve se tedy podíváme jak funguje OLAP server od firmy Modrian a MDX. Pak se podíváme, jak musí vypadat databáze, určená pro ROLAP server a jak jsem navrhl prezentační prostředí pro OLAP dotazy. Nakonec ukážu můj návrh celkového informačního systému pro konkrétní firmu.
5.1. OLAP server Modrian Jak jsem se již zmínil, použitý open source OLAP server je jakýmsi prostředníkem mezi prezentační a databázovou vrstvou. Pomocí něj lze klást dotazy na databázi, které budou přímo vyjadřovat potřeby, podle kterých dimenzí máme data vybrat, aniž bychom byli nuceni psát přímo sql dotazy. Prezentační vrstva naváže spojení s OLAP serverem a pošle mu dotaz v MDX.
16
Pro lepší pochopení dotazů na server a odpovědí si musíme podrobněji vysvětlit MDX.
5.2. MDX a OLAP kostky MDX neboli multi-dimensional expressions je syntaxe, která slouží definování a manipulování multidimenzionálních objektů a dat. MDX je v mnoha ohledech podobný sql, ale není jeho rozšířením nýbrž syntaxe zaměřená na jiné problémy. Přesto by se dala mnohá funkčnost, kterou MDX poskytuje nahradit pomocí klasických sql dotazů, ovšem s menší efektivností a jednoduchostí. Zároveň si v této kapitole lépe objasníme, co je pojem OLAP kostka. Většina jazyků pro definování a manipulaci s daty, jako například sql, je navržena tak, aby získávala data ve dvou dimenzích. Klasické databázové tabulky mají dvě dimenze – řádky a sloupce. V každém průsečíku řádků a sloupců se nachází jedna položka dat. Multidimenzionální data naproti tomu mohou být reprezentovány strukturami s více než dvěma dimenzemi. Tyto struktury, které mají více dimenzí (rozměrů), se nazývají kostky (někdy také OLAP kostky). V průsečíku dimenzí v kosce se může nacházet jedna či více položek dat, kterým se říká míry. Pro ilustraci nabízím obrázek kostky určené pro problém dopravy. Tato koska má 3 dimenze – čas(time), původ(route) a způsob přepravy(source). Každá z dimenzí se pak dělí na různé podstupně. Kostka má v každém průsečíků dimenzí 2 míry – počet dodávek a datum poslední.
17
Abychom mohli pochopit, jak se vytváří MDX dotazy musíme vysvětlit nejprve několik pojmů. Prvním z nich je pojem member (člen). Dimenze se rozpadají na různé stupně a nejmenší z nich jsou členové. Ke každému členu pak připadá jeden či více výskytů dat. V naší ukázkové kostce jsou takoví členové například Afrika či Evropa pro dimenzi původ (Route). Zapisují se: Route.[Eastern Hemisphere].Africa Route.[Eastern Hemisphere].Europe Závorky [ a ] se používají pro názvy obsahují mezeru nebo tečku. Toto je způsob odkazování pomocí jména. Na členy jde odkazovat pomocí členského klíče, pokud se třeba název mění a to tak, že před klíč dáme znak &. Místo přesného určení lze také používat zabudované funkce, jako např. FirstChild, která vrátí prvního člena dané dimenze či skupiny. Místo výše uvedeného zápisu, jak získat člen Afrika, bychom mohli napsat:
18
Route.[Eastern Hemisphere]. FirstChild Dalším důležitým pojmem jsou tuple (sada údajů). Používá se k určení průřezu kostkou. Skládá se z uspořádané množiny členů. Tuple se používá k vymezení specifické části multidimenzionálních dat z kostky. Pokud bychom vybrali
z každé dimenze
jednoho člena, pak by se tuple skládala z jedné buňky s mírami. Členové, ze kterých se skládá tuple, mohou být z jedné či více dimenzí. V zápisu se dá použít kromě jednotlivých členů i vyšší stupně dimenze. Jako příklad uvedu dvě tuple, první je jen z jedné dimenze a druhá je složená z členů ze dvou dimenzí: (Source.[Eastern Hemisphere]) (Time.[2nd half], Source.[Western Hemisphere]) Obdobně jako u členů se dají u tuple používat různé zabudované funkce. Posledním pojmem je set (množina), což je nula, jedna či více uspořádaných tuple: {(Time.[1st
half].[1st
quarter]),(Time.[2nd
half].[3rd
quarter])} Podobně jako sql dotaz, který vymezuje data, která se mají z načíst z databáze, tím že vybere dané sloupečky v SELECT klauzuli a ve WHERE klauzuli se vymezí, které řádky se mají načíst, tak i v MDX dotazu se SELECT klauzule používá pro definování dimenzí a členů, které se mají vrátit z databáze a WHERE klauzule pak vytyčuje omezení na vybírané dimenze a členy. MDX dotaz má následující strukturu: SELECT [ [, ...]] FROM [<cube_specification>] [WHERE [<slicer_specification>]]
SELECT klauzule definuje jednu či více takzvaných osových dimenzí (axis dimensions), které určují, jak bude výsledná část dat z kostky vypadat. Těchto os může být velké množství, ale nepoužívá se jich většinou více než 5, protože pak nastává problém se zobrazením takových dat. Na definici osových dimenzí se používá množina (set). FROM klauzule určuje kostku, ze které se berou data.
19
WHERE klauzule pak definuje průřezovou osu (slicer dimension), což je také množina (set) a výsledná data pak obsahují jen ty osy a dimenze, které jsou v průřezové ose. Výsledkem následujícího příkladu na výše ukázané kostce by byla tabulka (dvou rozměrná/dimenzionální kostka) se dvěma sloupečky a dvěma řádky: SELECT { Route.nonground.Members } ON COLUMNS, { Time.[1st half].Members } ON ROWS FROM TestCube WHERE ( [Measures].[Packages] )
5.3. Databáze Aby mohl server Modrian pracovat s relační databází a my na něj mohli klást dotazy v MDX, je nutné kromě vytvoření samotných tabulek s fakty a dimenzních tabulek vytvořit schéma. Jedná se o logický model definují multidimezionální databázi. Tento model se skládá z kostek, hierarchií, členů a mapování tohoto modelu na databázi. Schéma se pro Server Modrian definuje pomocí XML (EXtensible Markup Language) souboru. V něm jsou pak nadefinovány dimenze tak, aby mohl Modrian komunikovat s databází. Kořenovým elementem každého schématu je element <Schema>. V něm je pak obsažen jeden element , který odpovídá celé kostce dat a v něm se dále definují dimenze, míry a mapování. Základním prvkem hvězdicového schématu je tabulka faktů, v níž jsou uložena všechna data. Ta se definuje pomocí elementu
a jeho atributu name, který udává jméno tabulky faktů v databázi: <Schema>
...
20
Dalším složkou, kterou je potřeba v kostce potřeba nadefinovat jsou míry. Jsou to data uložená v tabulce faktů a definují se pomocí elementu <Measure>: <Measure name="Pocet prodanych" column="pocet_prodanych" aggregator="sum" datatype="Integer" formatString="#,###"/> <Measure name="Trzba" column="trzba" aggregator="sum"datatype="Numeric" formatString="#,###.00"/> Atribut name určuje jméno míry, atribut column určuje sloupeček v tabulce faktů. Atribut aggregator určuje, jaká funkce se má použít pro slučování buněk míry, což je obvykle součet (sum). Atribut datatype určuje typ dat a atribut formatString formátování výstupu. Poslední a asi nejdůležitější část kostky, kterou je potřeba nadefinovat do schématu, je definice dimenzí, které se definují pomocí elementu . Ten v sobě obsahuje element , což je definice stupňů dané dimenze až po konečné členy. V něm se pomocí atributu name elementu
určí mapování na dimenzní tabulku v databázi. Dimenzní tabulka je navázána na tabulku faktů pomocí primárního a cizího klíče. Primární klíč je v dimenzní tabulce a ve schématu je určen atributem primaryKey v elementu , na něj odkazuje cizí klíč z tabulky faktů, který je určen atributem foreignKey v elementu . Nakonec se jednotlivé stupně dimenze nadefinují elementem . Jeho atribut name určuje jméno stupně a column sloupeček s jmény jednotlivých členů stupně v dimenzní tabulce:
21
V tomto případě máme nadefinovanou dimenzi území, která má dva stupně – stát a město. Stupeň město, který jen nejnižší, obsahuje jednotlivé členy. Tato dimenze je v databázi reprezentována dimenzní tabulkou uzemi, která bude mít 3 sloupečky – uzemi_id, stat a mesto. V tabulce faktů budou cizí klíč sloupečku uzemi_id odkazovat na primární klíč dimenzní tabulky. Na definování dimenze se někdy používá více dimenzních tabulek než jen jedna. Ve schématu je to možné definovat pomocí elementu <Join>, který spojuje jednotlivé tabulky, které reprezentují jednotlivé stupně dimenze. Tento způsob jsem nepoužil, ale zmínil jsem ho proto, že se často využívá na definování dimenze více provázaných tabulek. Celá definice schématu k mojí firmě je v příloze a sql skripty pro založení tabulek kostky a jejich naplnění daty jsou na přiloženém CD.
5.4. Prezentační vrstva Pro implementaci prezentační vrstvy jsem se rozhodl použít jazyk Java a to univerzální komponenty AWT a SWING, aby tato vrstva byla systémově nezávislá. Pro komunikaci s OLAP serverem Modrian se používá spojení, které pracuje podobně jako JDBC. Pro získání informací z databáze se naváže spojení se serverem Modrian pomocí třídy Connection. Na její vytvoření se použije metoda getConnection v níž se určí, jaká databáze a schéma se mají použít. Dále se vytvoří MDX dotaz a odešle na server pro zpracování. Příklad spojení s OLAP serverem Modrian: import mondrian.olap.*; Connection connection = DriverManager.getConnection( "Provider=mondrian;" + "Jdbc=jdbc:odbc:ProdejDatabaze;" + "Catalog=/WEB-INF/ProdejSchema.xml;", null,
22
false); Query query = connection.parseQuery( "SELECT { [uzemi].[USA], [uzemi].[Velka Britanie]} on columns," + " {[product].[elektonika]} on rows " + "FROM [Prodej] " + "WHERE ([Measures].[Trzba])"); Result result = connection.execute(query); Výsledek Result je pak velmi podobný klasickému ResultSet při komunikacích s databází pomocí JDBC, jen zde nejsou řádky a sloupce, ale dimenze (osy) a buňky. Prezentační vrstva může klást na databázi různé dotazy nad ukázkovými daty z rozdílných pohledů a výsledky pak zobrazuje do tabulky. Na dimenzích se může zobrazovat různé stupně členů.
5.5. Moje ukázková firma Pro můj informační systém jsem si vymyslel ukázkovou firmu. Ta se zabývá prodejem různého zboží v různých státech a městech. Nad těmito daty bude chtít provádět analýzy prodeje v různých státech, městech s různým zbožím v různém čase. Navrhl jsem pro tento problém jednoduché schéma, připravil databázi mysql a vytvořil a naplnil jí daty dimenzní tabulky a tabulku faktů. Nastavil server Modrian, aby pracoval s danou databází, aby na něj mohla prezentační vrstva klást dotazy.
23
6. Závěr Co říci na závěr? Cílem této diplomové práce bylo provést analýzu stávajících systémů pro podporu rozhodování v marketingu a vytvořit vlastní informační systém. Na začátku jsem shrnul, co jsou to systémy pro podporu rozhodování a OLAP systémy. Poté jsem provedl zhodnocení nejpoužívanějších systémů pro podporu rozhodování využívajících OLAP. Nakonec jsem našel open source OLAP server Modrian a pomocí něho vytvořil informační systém, určený k podpoře rozhodování.
24
7. Použitá literatura: OLAP, From Wikipedia, the free encyclopedia, článek je dostupný na: http://en.wikipedia.org/wiki/OLAP Decision support systém, From Wikipedia, the free encyclopedia, článek je dostupný na: http://en.wikipedia.org/wiki/Decision_Support_Systems Marketing, e-skripta, Evropský polytechnický institut v Kunicích, skripta jsou dostupná na: http://www.foxdizajn.com/skola/index.php?id=marketing/marketing-cile Providing olap to user analysts, E. F. Codd & Associates, 1993, dokument je dostupný na: http://dev.hyperion.com/resource_library/white_papers/providing_olap_to_user_analysts. pdf Modrian project documentation, Pentaho Analysis Services, dokumentace je dostupná na: http://mondrian.pentaho.org/documentation/doc.php OLAP report, Business Application Research Center, 2006, články jsou dostupné na: http://www.olapreport.com Microsoft analysis services, Microsoft Corporation, 2006, články jsou dostupné na: http://www.microsoft.com/sql/technologies/analysis/default.mspx Hyperion products, Hyperion system 9, Hyperion Solutions Corporation, 1997-2006, články jsou dostupné na: http://www.hyperion.com/ Pavel Herout, Java grafické uživatelské prostředí a čeština, vydalo nakladatelství KOPP v Českých Budějovicích 2001
25
8. Přílohy 8.1. Doprovodné CD Součástí diplomové práce je doprovodné CD, které obsahuje materiály a zdrojové kódy. Obsah CD •
Zdrojové kódy této práce
•
Zdrojové kódy programu
•
XML schéma a skripty na naplnění databáze
•
Soubory serveru Modrian
8.2. Schéma pro server Modrian Zde uvádím celé schéma pro kostku pro můj OLAP informační systém: <Schema>