I N F O W A R EBudovanie DÁTOVÝCH SKLADOV III.A<strong>na</strong>lýza údajov v databázach – OLAP¼UBOSLAV LACKOV tomto vo¾nom pokraèovaní série èlánkov o a<strong>na</strong>lýzeúdajov v databázach vysvetlíme a <strong>na</strong> jednoduchýchpríkladoch ukáeme a<strong>na</strong>lýzu OLAP. Uvieme, e <strong>sk</strong>ratka OLAP z<strong>na</strong>mená Online A<strong>na</strong>lyticalProcessing. Tento termín zaviedol Dr. E . F. Codd <strong>na</strong>opísanie technológie slúiacej <strong>na</strong> preklenutiemedzery medzi vyuitím osobných poèítaèov a riadenímpodnikových dát. Pre OLAP existuje viacerorôznych definícií, <strong>na</strong>príklad: vo¾ne definovaný radprincípov, ktoré po<strong>sk</strong>ytujú dimenzionálny rámec prepodporu rozhodovania.Pojem OLAP sa pomerne èasto zamieòa s pojmomDSS (Decision Support Systems) – systémy <strong>na</strong> podporurozhodovania. Tieto systémy umoòujú pracovníkomprijímajúcim rozhodnutia prístup k údajompotrebným <strong>na</strong> „tvorbu“ takýchto rozhodnutí.Okrem jednej z definícií pojmu OLAP uvedieme ajtzv. dvanástoro pôvodných pravidiel OLAP od Dr.E. F. Codda. 1. Multidimenzionálny konceptuálny poh¾ad:OLAP by mal po<strong>sk</strong>ytova pouívate¾ovi multidimenzionálnymodel zodpovedajúci podnikate¾<strong>sk</strong>ýmproblémom a jeho pouitie by malo by intuitívnea<strong>na</strong>lytické. 2. Transparentnos: Technológia systémuOLAP, podriadená databáza a architektúravýpoètov a aj heterogénnos vstupnýchdát by mali by pre pouívate¾a transparentné,aby si udral svoju produktivitua odbornos pri pouití front-end nástrojova prostredia. 3. Dostupnos: Systém OLAP by malpristupova len k tým dátam, ktoré sú potrebné<strong>na</strong> a<strong>na</strong>lýzu. Systém by mal by <strong>na</strong>vyšeschopný pristupova k dátam zo všetkýchheterogénnych podnikových zdrojovdát potrebných <strong>na</strong> a<strong>na</strong>lýzu. 4. Konzistentné vykazovanie: Aj keïpoèet a ve¾kos databáz rastie, pouívate¾by nemal pocíti podstatné zníenie výkonu. 5. Architektúra klient – server:Systém OLAP musí zodpovedaprincípom architektúry klient– server s prihliadnutím <strong>na</strong> maximálnucenu a výkon, flexibilitua interoperabilitu. 6. Generická dimenzio<strong>na</strong>lita:Kadá dimenzia dát musí byekvivalentná v štruktúre aj operaènýchschopnostiach. 7. Dy<strong>na</strong>mické ošetrenie riedkychmatíc: Systém OLAP by malby schopný adaptova svoju fyzickúschému <strong>na</strong> konkrétny a<strong>na</strong>lytickýmodel, ktorý optimalizuje ošetrenieriedkych matíc, prièom dosiahnea udrí poadovanú úroveòvýkonu. 8. Podpora pre viacerých pouívate¾ov:Systém OLAP musí by schopný podporova pracovnú<strong>sk</strong>upinu pouívate¾ov pracujúcich súèasne <strong>na</strong>konkrétnom modeli. 9. Neobmedzené kríové dimenzionálne operácie:Systém OLAP musí dokáza rozoz<strong>na</strong> dimenzionálnehierarchie a automaticky vyko<strong>na</strong> asociovanékumulované kalkulácie v rámci dimenzií a ajmedzi nimi. 10. Intuitív<strong>na</strong> manipulácia s údajmi: Konsolidovanépreorientovanie ciest <strong>na</strong> detailnú úroveòa spä a iné manipulácie by sa mali vyko<strong>na</strong> priamospôsobom „ukáza a kliknú, zachyti a premiestni“v bunkách kocky. 11. Flexibilné vykazovanie: Musí existovaschopnos usporiada riadky, ståpce a bunky spôsobom,ktorý umoní a<strong>na</strong>lýzu intuitívnou vizuálnouprezentáciu a<strong>na</strong>lytických zostáv. 12. Neobmedzené dimenzie a úrovne agregácie:V závislosti od poiadaviek podnikania môema a<strong>na</strong>lytický model viacero dimenzií, prièomkadá môe ma viacnásobné hierarchie. SystémPríklad hviezdicovejschémy (vytvorený<strong>na</strong>d údajmi z cviènejdatabázy SH, dodávanejs Oracle 9i)Príklad schémy snehovej vloèky(vytvorený <strong>na</strong>d údajmi z cviènejdatabázy FoodMart, dodávanejs MS SQL Serverom 2000)OLAP by nemal zapríèini iadne umelé obmedzeniapoètu dimenzií alebo úrovní agregácie.Výsledkom a<strong>na</strong>lýzy údajov býva obyèajne multidimenzionál<strong>na</strong>dátová štruktúra – kocka.Kocka je v multidimenzionálnom dátovommodeli akýmsi ekvivalentom tabu¾ky v relaènejdatabáze. Kadá kocka má nieko¾ko dimenzií (ekvivalentindexových polí v relaèných tabu¾kách).V prvej èasti seriálu sme pre ilustráciu ukázali ajjednoduché príklady <strong>na</strong> vytvorenie kocky pre databázuspravovanú serverom Oracle 9i v jazykuPL/SQL, <strong>na</strong>príklad:SELECT mesiac, mesto, tovar, SUM(ce<strong>na</strong>) AS SUMA,FROM marketGROUP BY CUBE (mesiac, mesto, tovar)Podobne môeme vytvori „kocku“ pre databázuspravovanú MS SQL Serverom 2000 pomocou príkazujazyka T-SQL:SELECT mesiac, mesto, tovar, SUM(ce<strong>na</strong>) AS SUMA,FROM marketGROUP BY mesiac, mesto, tovar WITH CUBE;Pouitím klauzuly CUBE zí<strong>sk</strong>ame preh¾adnývýpis <strong>na</strong>poèítaných súhrnov súm pre dané rozmery.Na prvý poh¾ad jednoduché, ale jednýmdychom dodáme – v praxi málo vyuite¾né.Kocka sa vytvára <strong>na</strong> základe jednoduchejtabu¾ky, ktorá obsahuje dimenzie aj údaje.Takisto zistíme, e jednotlivé dimenzie kocky(mesiac, mesto, tovar) sú u „ïalej nedelite¾né“.V reálnych kockách sa toti èastovyuíva tzv. drilovanie, to z<strong>na</strong>mená, e niektorúdimenziu zjemníme (drill down), alebo aknás, <strong>na</strong>opak, zaujímajú globálnejšie údaje,pouijeme hrubšie <strong>na</strong>stavenie dimenzie (drillup). ¼ahko to pochopíme <strong>na</strong>príklad <strong>na</strong> èasovejdimenzii. Niekedy potrebujeme údaje za mesiac,inokedy za týdeò alebo dokonca za jedendeò, inokedy zasa potrebujemeúdaje za jednotlivé roky.Kocku vytvárame <strong>na</strong> základe dimenziálnehomodelu, ktorý môema hviezdicovú schému (starschema) alebo schému „snehovejvloèky“ (snowflake schema).Hviezdicová schéma sa <strong>sk</strong>ladáz tabu¾ky faktov obsahujúcej cudziek¾úèe, ktoré sa vzahujú k primárnymk¾úèom v tabu¾kách dimenzií.Hviezdicová schéma nemá normalizovanédimenzie ani relaèné prepojeniemedzi tabu¾kami dimenzií,preto je ve¾mi ¾ahko pochopite¾ná,ale v dôsledku nenormalizovanýchdimenzií je vytvorenie takéhotomodelu relatívne pomalé, ale tentomodel po<strong>sk</strong>ytuje vysoký „dopytovacívýkon“. (Poznámka: Normalizácia86 PC REVUE 1/2002
I N F O W A R Ev tomto prípade z<strong>na</strong>mená, e tabu¾ka vyhovuje <strong>na</strong> zaradeniedo niektorej z tzv. normálnych foriem.)Schéma „snehovej vloèky“ obsahuje niektorédimenzie zloené z viacerých relaène zviazanýchtabuliek. Tento model umoòuje rýchlejšie zavedenieúdajov do normalizovaných tabuliek, ale mápodstatne niší dopytovací výkon, lebo obsahujeväèšie mnostvo spojení tabuliek.Na vytvorenie prakticky pouite¾nej kocky potrebujemeteda logicky dva druhy tabuliek:– tabu¾ky faktov,– tabu¾ky dimenzií.Tabul'ky faktovFakty sú numerické merné jednotky. Tabu¾ka faktovje, pochopite¾ne, <strong>na</strong>jväèšia tabu¾ka vo hviezdicovejschéme a obsahuje ve¾ký objem dát. Hoci hviezdicováschéma zvyèajne obsahuje len jednu tabu¾kufaktov, iné, hlavne DSS schémy, môu obsahova ajviaceré tabu¾ky faktov. Prvotné fakty, <strong>na</strong>príkladdolárový predaj, sa môu kombinova alebo vypoèítapomocou iných faktov a vytvori tak merné jednotky.Merné jednotky sa môu uloi v tabu¾kefaktov, prípadne vyvola, ak je to nevyhnutné, <strong>na</strong>úèely vykazovania.Tabu¾ky dimenziíObsahujú logicky alebo organizaène hierarchickyusporiadané údaje. Dimenzie sú textové opisy obchodovania.Tabu¾ky dimenzií sú zvyèajne menšieako tabu¾ky faktov a dáta v nich sa nemenia takèasto. Tabu¾ky dimenzií vysvet¾ujú všetky „preèo“a „ako“, pokia¾ ideo obchodovanie atransakcie prvkov.Kým dimenzie vovšeobecnosti obsahujúrelatívne stabilnédáta, dimenziezákazníkov sa aktualizujú èastejšie.Tabu¾ky dimenzií obyèajne obsahujú stromovúštruktúru. Dimenzie sa vyberajú <strong>na</strong>príklad pod¾ageografického regiónu:Region Kontinent, Kraji<strong>na</strong>, zemn celok, Mestoalebo pod¾a produktovej klasifikácie:Produkt Druh produktu, Kateg ria, Subkateg ria, NÆzov produktuVe¾mi èasto sa pouíva ako dimenzia èas, <strong>na</strong>príklad:¨as Rok, KvartÆl, Mesiac, DePoèet bodiek z<strong>na</strong>mená úroveò (vnorenie) jednotlivýchatribútov dimenzie.O metodike a teórii návrhu tabuliek faktov a tabuliekdimenzií by sme mohli popísa ve¾a papiera, aleviac ne teória nám urèite poslúia príklady a názornéukáky. Príklad návrhu si ukáeme <strong>na</strong> dvoch cviènýchdatabázach, ktoré sa dodávajú s databázovýmiservermi MS SQL Server 2000 a Oracle 9i.Tabu¾ka faktov je v tomto prípade pomerne jednoducháa obsahuje záz<strong>na</strong>my o jednotlivých predajnýchtransakciách.Po týchto príkladoch by mala by pozornejšiemuèitate¾ovi väzba medzi tabu¾kou faktov a tabu¾kamidimenzií pomerne jasná. Nástroje pre návrh kocieka dimenzií obyèajne umoòujú aj grafické zobrazenieväzieb medzi tabu¾kami faktov a dimenzií.V ïalšom vo¾nom pokraèovaní seriálu siukáeme postup <strong>na</strong> vytvorenie OLAPkocky pomocou sprievodcu (wizard) predatabázové a a<strong>na</strong>lytické servery Oracle 9ia Microsoft SQL Server 2000.Literatúra[1] Chon S. Chua – Richard Green: Data WarehouseMethod. Študijná literatúra firmy ORACLE. OracleUniversity 1999.[2] Corey, M. – Abbey, M. – Abramson, I. – Taub, B.:Oracle 8i Data Warehousing.Firemné zdroje<strong>www</strong>.microsoft.com, <strong>www</strong>.oracle.comTabu¾ky dimenzií – ako dimenzie pre <strong>na</strong>šu jednoduchú kocku sme vybrali:FoodMartCvièná databáza FoodMart je dodávaná s SQL Serverom 2000 (<strong>na</strong>inštaluje sa pri inštalácii a<strong>na</strong>lytickýchsluieb). FoodMart je databáza ve¾kého potravinár<strong>sk</strong>eho obchodného reazca, ktorý má svoje marketyv USA, Mexiku a Ka<strong>na</strong>de.Product Product Family, Product Department, Product Category, Product Subcategory, Product NameStore Store Country, Store State, Store City, Store NameCustomers Country, State Province, City, NameTime Year, Quarter, MonthSales HistoryCvièná databáza SH (Sales History), dodávaná s databázovým serverom Oracle 9i, je <strong>na</strong>vrhnutá ve¾mipodobne, je to takisto databáza obchodnej firmy, ktorá v tomto prípade obchoduje prevane s odevmi.Tabu¾ka faktov je aj v tomto prípadeve¾mi jednoduchá.Tabu¾ky dimenzií – ako príklad predimenzie jednoduchej kocky smevybrali:PRODUCTS PRODUCT_TOTAL, CATEGORY, SUBCATEGORY, PRODUCTCUSTOMERS CUST_TOTAL, STATE, CITY, CUSTOMERTIMES YEAR, QUARTER, MONTH, DAY1/2002 PC REVUE 87