VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
|
|
- Patrik Liška
- před 6 lety
- Počet zobrazení:
Transkript
1 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS GRAFICKÝ EDITOR METADAT PRO OLAP DIPLOMOVÁ PRÁCE MASTER S THESIS AUTOR PRÁCE AUTHOR Bc. Vojtěch Šmerda BRNO 2008
2 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS GRAFICKÝ EDITOR METADAT PRO OLAP GRAPHIC EDITOR FOR OLAP INTERFACE METADATA DIPLOMOVÁ PRÁCE MASTER S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR Bc. Vojtěch Šmerda Prof. Ing. Tomáš Hruška, CSc. BRNO 2008
3 Abstrakt Práce popisuje technologie OLAP a data mining a komunikaci těchto technologií s uživatelem prostřednictvím dynamických tabulek. Jsou uvedena základní teoretická a odborná východiska. Dále je přiblížena implementace dynamických tabulek, které používá portálové řešení společnosti Vema, a. s. Jsou popsána metadata tabulek a navržen grafický editor, který je umožňuje efektivně navrhovat. Poslední část se zabývá implementací grafického editoru. Klíčová slova OLAP, data mining, kostka, pivot, zavrtávání, metadata, křížová tabulka, grafický editor, MFC Abstract This thesis describes OLAP and data mining technologies and methods of their communication with users by using dynamic tables. Key theoretical and technical information is also included. Next part focuses on particular implementation of dynamic tables used in Vema portal solution. Last parts come close to analysis and implementation of the metadata editor which enables the metadata to be effectively designed. Keywords OLAP, data mining, cube, pivot, drill, metadata, cross-table, graphic editor, MFC Citace Šmerda Vojtěch: Grafický editor metadat pro OLAP. Brno, 2008, diplomová práce, FIT VUT v Brně.
4 Grafický editor metadat pro OLAP Prohlášení Prohlašuji, že jsem tuto diplomovou práci vypracoval samostatně pod vedením Prof. Ing. Tomáše Hrušky, CSc. Uvedl jsem všechny literární prameny a publikace, ze kterých jsem čerpal. Vojtěch Šmerda Poděkování Tímto bych chtěl poděkovat svému vedoucímu Prof. Ing. Tomášovi Hruškovi, CSc. za odborné konzultace a poskytnutí potřebných informací a materiálů. Poděkování také patří mé přítelkyni za morální podporu. Vojtěch Šmerda, Tato práce vznikla jako školní dílo na Vysokém učení technickém v Brně, Fakultě informačních technologií. Práce je chráněna autorským zákonem a její užití bez udělení oprávnění autorem je nezákonné, s výjimkou zákonem definovaných případů.
5 Obsah Obsah Úvod Datové sklady a OLAP Ukládání a získávání dat Od relačního k multidimenzionálnímu modelu Typy OLAP ROLAP MOLAP HOLAP In-memory OLAP OLAP operace Roll up Roll down Slice & dice Pivot Dolování dat Komunikace s uživatelem Křížové tabulky Interaktivní grafy Srovnání různých přístupů Odlišnosti získávání a aktualizace dat Odlišnosti zobrazení souhrnů a vypočítaných hodnot Dynamické tabulky v portálu Vema Funkcionalita dynamických tabulek Technické zabezpečení Metadata Metadata uživatelské tabulky Metadata startovací tabulky Odkazy na programový kód v metadatech Současný způsob návrhu metadat Editor metadat Analýza požadavků Funkční požadavky Nefunkční požadavky
6 7 Architektura aplikace Framework a technologie Rozšíření o další komponenty Technika Dynamic subclassing Kostra aplikace Objektový model metadat Mapování XML elementů na třídy v C Model metadat Prezentační vrstva Záložky a aktualizace obsahu Rozhraní master-detail Rozbalovací seznamy Vizualizace dynamické tabulky Generování náhledu dynamické tabulky Využití JavaScriptu Obsluha událostí Konfigurace prvků dynamické tabulky Závěr...41 Literatura...42 Seznam příloh
7 1 Úvod Technologie OLAP (Online Analytical Processing) slouží k uspořádávání velkých objemů dat do takové podoby, která je vhodná pro zkoumání souhrnných informací a obchodních výsledků. Zavedení této technologie potom spočívá většinou ve vytvoření datového skladu, který je postaven nad operační databází, a v nasazení vhodného OLAP nástroje, který analýzu dat bude umožňovat. Uživatel poté komunikuje s OLAP nástrojem zejména prostřednictvím dynamických tabulek nebo interaktivních grafů. Mezi skladem a OLAP nástrojem může existovat další vrstva OLAP server. Záleží na konkrétně použitém softwaru. Nástroje, pomocí kterých uživatel komunikuje s OLAP serverem nebo přímo s databázovým serverem skladu, nabízejí více či méně intuitivní rozhraní. Vzhled a chování těchto rozhraní jsou dána jejich metadaty. Uživatele OLAP nástrojů potom můžeme dělit na ty, kteří informace z dynamických tabulek získávají a umí je správně interpretovat, a dále na ty, kteří navrhují metadata. Je vhodné, aby existoval snadno použitelný editor, který by umožňoval grafický návrh metadat. V první části této práce jsou popsány a zhodnoceny metody komunikace technologie OLAP a data miningu s uživatelem prostřednictvím dynamických tabulek a srovnány různé přístupy k této problematice. Dále je přiblížena implementace tabulek, kterou používá portálové řešení společnosti Vema, včetně jejich metadat a současného způsobu návrhu. Druhá část práce popisuje řešení návrhu a implementace grafického editoru metadat, který zjednodušuje editaci dynamických tabulek. Zvláštní pozornost je věnována rozšíření použitého frameworku o nové komponenty, které editor metadat používá. 3
8 2 Datové sklady a OLAP Datové sklady chápeme jako komplexní databáze, ve kterých jsou data uložena v takových strukturách, které umožňují jejích efektivní analýzu. Technologie OLAP (Online Analytical Processing) je technologie rychlé (online) analýzy dat. Ačkoliv spolu oba pojmy úzce souvisejí, nemohou být chápány jako synonyma. Následující podkapitoly představují úvod do problematiky datových skladů, technologií OLAP a multidimenzionálního přístupu k datům, kterého se v OLAP využívá. 2.1 Ukládání a získávání dat OLTP (Online Transaction Processing) je technologie, která umožňuje ukládat informace o uskutečněných (typicky obchodních) transakcích do databází. Jsou realizovány nejčastěji pomocí relačních databází. Klíčovými výhodami jsou jednoduchost a efektivita. Přístup k datům v pojetí OLTP umožňuje jejich rychlé pořízení i modifikaci, proto se OLTP využívá v informačních systémech. Nevýhodou je nesnadné (ne nemožné) použití dat pro analýzu. Používá-li se informační systém v různých pobočkách firmy, kde každá pobočka má svoji instalaci informačního systému, a je potřeba efektivně analyzovat data ze všech poboček, nastává problém. Tento problém je možné řešit pomocí datových skladů. Datové sklady (anglicky Data warehouse) umožňují ukládání zpravidla souhrnných dat z jedné nebo více zdrojových operačních databází. Vztah mezi operačními databázemi a datovým skladem je takový, že data z operačních databází jsou periodicky čtena a ukládána do datového skladu. Data v operačních databázích se rychle mění ukládají se stále nové záznamy a data se modifikují. Operační databáze se optimalizují tak, aby se maximalizovala propustnost transakcí. Narozdíl od operačních databází jsou datové sklady využívány zejména k analýze (zpravidla historických) dat. Nejčastěji se jedná o agregovaná data. Výkon datových skladů se posuzuje podle propustnosti dotazů a časových odezev. Proces ukládání dat do datového skladu se označuje jako ETL (Extraction Transformation Loading). Extrakce spočívá ve čtení dat ze zdrojových databází. Jejich datové modely ani nemusejí být stejné. Transformace převede načtená zdrojová data do unifikovaného tvaru. Data se následně uloží do datového skladu (Loading). Některá literatura popisuje fázi Loading jako Transport. Jsou-li zdrojové databáze založeny na rozdílných datových modelech, nebo je jich hodně, je vhodné návrh jednotlivých fází automatizovat pomocí vhodných nástrojů. Příkladem takového nástroje je Oracle Warehouse Builder. 4
9 Následující diagram ukazuje proces vytvoření a aktualizace datového skladu. Vidíme, že data ze zdrojových databází jsou procesem ETL uložena do výsledného datového skladu. Obrázek 1: Zdrojové databáze a datový sklad OLAP (Online Analytical Processing) je technologie uložení dat v takové podobě, aby byla srozumitelná pro uživatele, kteří je budou používat pro analýzu. Tato technologie není synonymem pro datový sklad datový sklad může být jeho součástí. Budeme-li OLAP chápat jako třívrstvou architekturu, můžeme vrstvy popsat takto: Spodní vrstva: Server datového skladu a vlastní sklad. Prostřední vrstva: OLAP server. Různé OLAP servery poskytují různé implementace (typy) OLAP. Jsou jimi ROLAP, MOLAP a HOLAP (viz níže). Vrstva klienta: Nástroje pro zadávání OLAP dotazů a zpracovávání reportů (viz kapitola 4 Tabulky a interaktivní grafy). 2.2 Od relačního k multidimenzionálnímu modelu Relační model představuje data uložená do dvourozměrných tabulek. Všechny záznamy jedné tabulky nesou nejčastěji stejný druh informace. Lze nalézt výjimky např. pokud má tabulka sloupec, který označuje typ záznamu, a jedna informace se ukládá do více řádků tabulky. Relační model se snadno navrhuje a realizuje. 5
10 V OLPT se dále využívá databází postrelačních. Mohou jimi být objektově-relační databáze, temporální databáze, deduktivní databáze a jiné. Multidimenzionální model tvoří jedna nebo více kostek, kde každá kostka může mít několik dimenzí. V [1] je uveden typický příklad kostky, která má tři dimenze: čas, region a produkt. Obrázek 2: Příklad 3rozměrné kostky Každá kostka sestává z dimenzí a faktů. Ke kostce se proto definují tabulky dimenzí a tabulky faktů. Průsečíky dimenzí jsou jednotlivé záznamy v tabulce faktů. Trojrozměrnou kostku si lze představit jako zobrazení: ( X, Y, Z ) W W :. Atributy X, Y a Z odpovídají dimenzím kostky. W je hodnota, se kterou každá z uspořádaných trojic (X, Y, Z) koresponduje. Dalo by se říci, že způsob uložení tohoto zobrazení v podstatě ovlivňuje výkon celého OLAP systému (viz kapitola 3 Typy OLAP), tedy propustnost dotazů a časové odezvy. Dimenze je tvořena atributy, které jsou logicky rozděleny do úrovní. Následnost úrovní je dána její hierarchií. Různé OLAP systémy podporují více nebo méně propracované definice dimenzí. K jednotlivým úrovním je možné definovat několik popisů různých délek a jazykových mutací. Při vizualizaci kostky tabulkou se použijí delší popisy, při zobrazení grafu se použijí kratší. Protože OLAP umožňuje analýzu souhrnných dat, musí být někde definován druh agregace a údaje, které se agregují. Druhem agregace je zpravidla suma, aritmetický průměr, lokální extrémy atd. Vznikají nové položky, kterým se říká metriky. Metriky rozdělujeme na distributivní, algebraické a holistické. Distributivní metriky jsou počet, suma, minimum a maximum, algebraické metriky jsou takové, které mohou být vypočteny z distributivních metrik (např. průměry) a holistické metriky nelze algebraicky vyjádřit představují modus apod. 6
11 Jako příklad lze uvést kostku z obrázku 2 (viz výše) s tabulkou faktů o prodeji zboží. Taková kostka může mít metriky sumu prodaného množství a sumu celkových cen (ceny vynásobené množstvím). Tabulky dimenzí obsahují data, která jsou logicky členěna nebo hierarchicky uspořádána. Například u dimenze Region může nejvyšší úroveň představovat celé území republiky a dále se pak data hierarchicky rozpadají na kraje, okresy atd. Sestavení vhodné tabulky dimenze Čas je složitější. Jednak kvůli povaze údaje, který datum představuje (čísla dnů a měsíců se opakují), ale také kvůli potřebám uživatelů, kteří kladou složité dotazy s kritérii jako: před 5 pracovními dny, minulý kvartál atd. Časové dimenze se proto ve většině případů navrhují jako vícenásobné. Jsou-li dimenze vícenásobné, jejich hierarchie tvoří stromy, které mají několik větví. Každá větev poskytuje jiný způsob členění dat. Jako příklad je v [1] použita vícenásobná dimenze času. Popisu dimenze odpovídá následující tabulka. Tabulka 1: Dvě různé hierarchie dimenze Čas Úroveň vnoření/agregace První členění Druhé členění 1 Rok Fiskální rok 2 Kvartál Fiskální kvartál 3 Měsíc Fiskální měsíc 4 Fiskální týden 5 Den Hlavní výhodou relačního modelu je jeho jednoduchost, snadná implementace a použitelnost v transakčních databázích i v datových skladech. Na trhu je nepřeberné množství nástrojů určených k návrhu a vývoji aplikací pracujících nad relačním modelem, i aplikací pro tvorbu sestav reportovacích nástrojů. Hlavní nevýhodou je především absence nástrojů pro složitou analýzu. S rostoucím množstvím dat rostou i časové odezvy analýz. Výhodou multidimenzionálního modelu je snadné použití pro komplexní analýzu, prognózu a modelování. Tento model se vyznačuje rychlým komplexním přístupem k velkému množství dat. Multidimenzionální model umožňuje také přístup k relačním datovým strukturám. Nevýhodou jsou problémy, které nastávají při změnách dimenzí. Při konceptuálním modelování datových skladů se používají tři základní schémata hvězda, sněhová vločka a souhvězdí (galaxie). Schéma hvězdy představuje tabulka faktů, na kterou jsou navázány tabulky dimenzí. Tabulky dimenzí nejsou normalizované. Hvězda je nejjednodušší schéma a její hlavní výhodou je vysoký dotazovací výkon. Nevýhodou je pomalé vytvoření modelu, které je způsobeno nenormalizovanými daty. 7
12 Obrázek 3: Schéma hvězdy Druhým schématem je sněhová vločka, které představuje rozšíření schématu hvězdy o více tabulek faktů, které jsou mezi sebou relačně svázány. Tabulky dimenzí se normalizují a dimenze se rozdělí do více tabulek. Každá tabulka potom odpovídá jedné úrovni v hierarchii dimenze. Výhodou je snadné zavedení normalizovaných tabulek. Nevýhodou tohoto schématu je, že větší množství spojení tabulek snižuje dotazovací výkon. Obrázek 4: Schéma sněhové vločky Posledním používaným schématem je schéma souhvězdí (galaxie). V tomto schématu se nachází více tabulek faktů. Na ně jsou napojeny tabulky dimenzí. Navíc je možné, aby dvě nebo více tabulek faktů odkazovaly na stejné tabulky dimenzí. Obrázek 5: Schéma souhvězdí 8
13 2.3 Typy OLAP Implementují se OLAP technologie různých typů podle způsobu uložení dat. Následující podkapitoly stručně popisují tři základní typy ROLAP ROLAP (Relational Online Analytical Processing) poskytuje multidimenzionální pohled na data, která jsou ve skutečnosti uložena v relačních tabulkách. OLAP dotazy jsou převáděny na dotazy běžné pro relační databáze např. klauzule CUBE 1. To samo o sobě představuje velkou nevýhodu je potřeba velkého výpočetního výkonu MOLAP Dalším typem OLAP je MOLAP (Multidimensional Online Analytical Processing). Z dat čtených z datového skladu (nebo přímo z transakčních databází) se vypočítávají agregace a výsledky se ukládají do multidimenzionálních datových struktur. Tyto struktury jsou navrženy tak, aby bylo možné rychle získávat data z více dimenzí. Výhodou je velký výkon (data se při analýze nepočítají pouze se čtou). Nevýhodou je prostorová náročnost této technologie HOLAP Kombinací dvou předchozích typů OLAP je technologie HOLAP (Hybrid Online Analytical Processing). Kombinace spočívá v použití jak multidimenzionálních struktur tak relačních tabulek. HOLAP může pracovat ve dvou režimech Vertical partitioning nebo Horizontal partitioning. V režimu Vertical partitioning jsou zdrojová data uložena v klasických relačních tabulkách; vypočtené agregace se naopak ukládají do speciálních multidimenzionálních struktur. Režim Horizontal partitioning pracuje tak, že často používaná data jsou uložena v multidimenzionálních strukturách. Ostatní data jsou uložena v relačních tabulkách. 2.4 In-memory OLAP Výkon OLAP do jisté míry závisí i na propustnosti disků. Výkon OLAP systému lze znatelně zvýšit ukládáním dat do paměti namísto na pevné disky. V takovém případě mluvím o tzv. in-memory systémech. Příkladem je systém TM1 společnosti Applix, který používá multidimenzionálních 1 V SQL se používá klauzule GROUP BY CUBE (sloupce). Výsledkem je multidimenzionální přehled dat, ve kterém jsou použity všechny kombinace dostupných dimenzí sloupců uvedených v závorkách za slovem CUBE. 9
14 struktur jako hlavní úložiště dat právě operační paměť. Při startu systému se data načtou z disku do paměti a nadále se používají. Praktické zkušenosti hovoří o pomalém startu systému, ale o velké propustnosti dotazů. 2.5 OLAP operace Procházením datové kostky měníme pohled na data. Agregujeme podle jiných kritérií nebo prostupujeme kostkou z nejvyšší úrovně agregace do nejmenších detailů na úroveň relačních dat. Bez ohledu na to, jak jsou zadávány jednotlivé příkazy (pomocí interaktivních tabulek, grafů,...), se používají OLAP operace, které jsou popsány v následujících podkapitolách. Ke každé operaci je uvedeno i několik synonym Roll up Roll up neboli drill-up je operace, která sumarizuje data posunem v hierarchii jedné dimenze směrem nahoru. Pohled na data se zobecňuje, do agregací se zahrnuje více dat. Agregace není třeba počítat, OLAP systém je uložil předem a pouze se načítají Roll down Roll down neboli drill-down je operace, které se česky také říká zavrtávání. Je to posun v hierarchii jedné dimenze směrem dolů. Z agregovaných dat se postupně dostáváme k detailů. Operace drill-through je posun v hierarchii až na nejnižší úroveň na úroveň relačních dat. Operace drill-across slouží pro posun ve více tabulkách faktů najednou Slice & dice Operace slice & dice je současně použitou projekcí a selekcí, která umožňuje kombinovat několik dimenzí a metrik najednou Pivot Operace pivot neboli rotate způsobí reorganizaci zdrojové kostky. Například výsledkem operace pivot nad 3rozměrnou kostkou je série 2rozměrných kostek. 10
15 3 Dolování dat Dolování dat (anglicky Data mining nebo Knowledge discovery) je metodologie, kterou analyzujeme data a získáváme potenciálně užitečné informace nebo závislosti v datech. Dolování používá netriviální metody analýzy a statistického zpracování dat. Metod dolování dat se využívá při analýze trhu, rizik, biologických dat atd. Analýzou trhu máme na mysli cross selling, analýzu nákupního košíku (jako zdroj informací pro reklamní akce), využití analýz dat v CRM 2 systémech apod. Do analýzy rizik řadíme kontrolu kvality, předpovědi, analýzu konkurence (sledování a analýza chování) atd. Na obr. 6 (viz níže) je znázorněno typické schéma dolování dat. Přestože lze dolovat přímo z operačních databází, je schéma rozšířeno o datový sklad včetně procesu ETL pro jeho vytváření a aktualizaci. Proces výběru dat představuje čištění a transformaci dat tak, abychom získali data relevantní pro danou dolovací úlohu. Obrázek 6: Typické schéma dolování dat 2 Zkratka pro Customer Relationship Management. Jedná se o skupinu informačních systému pro podporu řízení vztahů se zákazníky. Kvalitní CRM využívají dolování dat ke zvýšení konkurenceschopnosti podniku uživatele. 11
16 Mezi základní metody dolování dat patří sumarizace, klasifikace, regresní a korelační analýza, hledání asociačních pravidel a shluková analýza. Metodologie se opírá o mnoho různých disciplín: databázové technologie, strojové učení (neuronové sítě, ), složitou algoritmizaci, vizualizaci, statistiku a jiné. 12
17 4 Komunikace s uživatelem OLAP nástroje nebo data mining nástroje slouží jako rozhraní mezi datovým skladem (případně operačními databázemi) a uživatelem většinou obchodním analytikem. Není vhodné, aby obchodní analytik zadával OLAP dotazy pomocí jazyků jako DMQL, MSQL a podobně. Vývojáři OLAP nástrojů musí připravit intuitivní prostředí, ve kterém lze snadno využívat veškerou funkcionalitu a výhody, které OLAP technologie poskytují. Typickým rozhraním je dynamická tabulka nebo interaktivní graf. Na trhu se objevuje velké množství softwaru pro generování dynamických tabulek a velké množství komponent, kterými lze dynamické tabulky a jejich funkcionalitu komunikace s OLAP systémem integrovat do stávajících informačních systémů. Výše uvedený software spadá do kategorie BI (Business Intelligence). Tato skupina zahrnuje technologie, aplikace a postupy vhodné pro sběr, integraci, zobrazení a analýzu obchodních informací. Jako příklady komerčních produktů lze uvést balíky společností Microsoft Corporation (produkt Microsoft Analysis Services), Oracle Corporation (produkt Oracle Business Intelligence) nebo SAS Institute Inc. (produkt SAS Business Intelligence). 4.1 Křížové tabulky Křížové tabulky [5] (anglicky Cross-tables) jsou dvourozměrné dynamické tabulky. Často jsou ale nazývány Pivot tables nebo Multi-dimensional tables. Operací Pivot se např. třírozměrná kostka rozloží na dvourozměrnou, kterou lze zobrazit ve standardní tabulce. Křížová tabulka je rozšířena o sloupcové nebo řádkové agregace, které jsou dány typem metriky. Může se jednat o součet, průměr atd. V nadpisech sloupců (počínaje druhým sloupcem) jsou hodnoty nejvyšší úrovně v hierarchii platné pro jednu dimenzi. V řádcích prvního sloupce (počínaje druhým řádkem) jsou hodnoty nejvyšší úrovně v hierarchii platné pro druhou dimenzi. Buňkové hodnoty jsou hodnoty agregací korespondující s příslušnými dimenzemi. Interaktivita spočívá v rozbalování nebo sbalování hodnot v řádcích prvního sloupce nebo ve sloupcích prvního řádku. Rozbalování odpovídá OLAP operaci drill-down, sbalování operaci drill-up. Protože tabulka je schopná zobrazit pouze dvě dimenze, OLAP nástroje zpravidla umožňují zvolit, jakým způsobem se vypořádáme se zbylými dimenzemi. Typickým řešením je rozbalovací seznam umístěný nad křížovou tabulkou. Výběr v rozbalovacím seznamu odpovídá OLAP operaci pivot. Při návrhu křížové tabulky jde především o výběr zdrojové kostky a o rozmístění dimenzí nad tabulku (rozbalovací seznamy) nebo dovnitř tabulky. Některé dimenze mohou být vyloučeny úplně opět se definuje, jak se s nimi má OLAP nástroj vypořádat. 13
18 Na obr. 7 (viz níže) je znázorněna křížová tabulka, která zobrazuje kostku o dimenzích čas, produkt a region. Od dimenze region abstrahuje tím, že do analýzy zahrnujeme data za všechny možné regiony. Obrázek 7: Příklad křížové tabulky Následující obrázek obr. 8 znázorňuje novou tabulku, do které se OLAP nástroj přepne po vybrání kategorie produktů Všechny produkty. Uvažujeme dimenzi Produkt takovou, že na nejvyšší úrovni jsou Všechny produkty, které se dále dělí na skupiny, podskupiny a jednotlivé produkty. Některé nástroje nezobrazují novou tabulku, ale původní rozšíří o další data. Záleží na použité technologii a možnostech, které skýtá (webové vs. desktopové aplikace). Obrázek 8: Křížová tabulka po rozbalení kategorie Všechny produkty Obrázek 9 (viz níže) zobrazuje další křížovou tabulku, do které se OLAP nástroj přepne po vybrání roku Uvažujeme případ, že na nejvyšší úrovní času jsou roky a následují měsíce, týdny a dny. Jemnější dělení nemá smysl. Obrázek 9: Křížová tabulka po rozbalení roku 2004 Analytik procházením křížových tabulek může zjišťovat potenciálně užitečné informace. Jedná-li se o procházení kostky prodeje zboží, může hledat lokální maxima a odvozovat sezónní vlivy na prodej a podobně. Většina nástrojů zobrazuje hodnoty v tabulkách s různým barevným podkladem 14
19 nebo doplněné o ikonu. Například hodnoty mimo definovaný rozsah je možné zobrazovat červeně atd. 4.2 Interaktivní grafy Pokud není tabulková forma dostatečně názorná, používají se interaktivní grafy. Grafy jsou zobrazeny buď samostatně nebo společně s křížovou tabulkou, se kterou jsou svázány. Operace nad kostkou jsou prováděny buď pomocí křížové tabulky nebo grafu nebo obou komponent najednou. Pivot chart je interaktivní grafická reprezentace dat z křížové tabulky. Interaktivita spočívá v tom, že při výběru části grafu simulujeme OLAP operace drill-down a drill-up. 4.3 Srovnání různých přístupů V následujících podkapitolách jsou uvedeny odlišnosti a srovnány výhody a nevýhody dvou různých přístupů k dolování dat prostřednictvím křížových tabulek s využitím technologie OLAP a bez této technologie (tj. s využitím standardních metod získávání dat z relačních databází atd.) Odlišnosti získávání a aktualizace dat OLAP technologie jsou koncipovány pro zpracování velkého množství dat. Veškeré agregace a výpočty jsou prováděny na straně OLAP serveru (databázového serveru, který OLAP podporuje, nebo speciálního serveru, který tvoří vrstvu mezi OLAP klientským nástrojem a datovým skladem). Výhodou je, že agregace a výsledky výpočtů jsou již uloženy. Při získávání dat bez použití OLAP jsou agregace a výpočty zahrnuty do běžných dotazů Odlišnosti zobrazení souhrnů a vypočítaných hodnot Výhoda předem připravených souhrnů a výpočtů (OLAP) zvyšuje propustnost dotazů nevýhodou je nemožnost měnit druh agregace nebo předpis pro výpočty během dotazování. Zobrazování mezisoučtů vyžaduje další výpočty, které mohou být pomalé ve srovnání s načítáním předem připravených součtů. 15
20 5 Dynamické tabulky v portálu Vema Následující podkapitoly se zabývají existující implementací dynamických tabulek, které jsou využívány v portálové aplikaci společnosti Vema, a. s. Postupně jsou popsány následující aspekty dynamických tabulek. Funkcionalita tabulek a některé užívané pojmy. Princip generování tabulek a integrace v portálu. Metadata dynamických tabulek jako předloha pro generování vlastní tabulky. Současný způsob návrhu metadat. 5.1 Funkcionalita dynamických tabulek Dynamická tabulka sestává z nástrojové lišty (horní část) a vlastní interaktivní tabulky (zbytek). Pracuje ve dvou režimech režimu dat a režimu nastavení. Přepínání mezi režimy zajišťují tlačítka Nastavení a Data. Tabulka má 2 druhy vlastností: neměnné, dané metadaty (viz podkapitola 5.3 Metadata), a vlastnosti podléhající nastavení. Nastavení se uchovává pro každého uživatele. Součástí vlastností je i příznak, jaké akce (tlačítka) na nástrojové liště budou aktivní. Následující obrázek zobrazuje základní rozvržení ukázkové tabulky v režimu dat. Obrázek 10: Rozvržení dynamické tabulky v režimu dat V tabulce č. 2 jsou uvedeny vysvětlivky jednotlivých poznámek použitých v obrázku č
21 Tabulka 2: Nejdůležitější prvky dynamické tabulky Číslo Popis 1 Nástrojová lišta. Význam tlačítek je vysvětlen dále v textu. 2 Titulek s názvem tabulky. 3 Tlačítko umístěné v záhlaví sloupce. Tlačítkem se ovládá viditelnost sloupce. Viditelnost neovlivňuje výsledky agregace a výpočtů. Viditelnost lze obnovit na původní stav příkazem Viditelnost zpět na nástrojové liště. 4 Název sloupce (dimenze). Název je interaktivní řídí řazení dat podle daného sloupce. Ikona nalevo od názvu sloupce zobrazuje aktuální druh řazení. 5 Konfigurace filtru pro data. Kritérium filtru je relevantní k danému sloupci. K tabulce je možné zobrazit graf (příkazem Graf v nástrojové liště). Zobrazí se standardní sloupcový graf (tedy dvourozměrný) umístěný nad dynamickou tabulkou. Graf lze upravovat sloupce lze zobrazovat horizontálně nebo vertikálně, černobíle nebo barevně, stínované nebo s jednobarevnou výplní. Tisk výsledků je možný přepnutím se do náhledu tisku (příkazem Náhled tisku). Náhled tisku je zobrazen bez stylů a černobíle. K tabulce mohou být definovány přechody. Přechodem rozumíme odkaz na jinou dynamickou tabulku. Před zobrazením odkazované tabulky se uloží aktuální kontext aktuální nastavení viditelnosti, řazení a filtrů. Příkazem Přechody se zobrazí menu se seznamem definovaných přechodů. Kliknutím na konkrétní přechod se přepneme do konkrétní tabulky. Pod titulkem (název tabulky) může existovat další panel. Na takový panel lze umístit rozbalovací seznamy. Pokud zobrazujeme data třírozměrné kostky, úroveň agregace za vynechanou dimenzi řídíme nastavením hodnoty v rozbalovacím seznamu. Další interaktivitu zajišťuje samotný obsah tabulky. Textové popisy úrovní dimenzí se rozbalují podle dané hierarchie. K hodnotám metrik na různých průsečících v tabulce mohou být definovány přechody. Hodnoty mohou mít různé barevné podklady. Má-li tabulka definované Alerty, může existovat pro různé hodnoty metrik několik barevných variant. Toto barevné odlišení slouží pro rychlejší orientaci v datech. Dynamické tabulky se seskupují tvoří rodiny. Jedna tabulka z dané rodiny je startovací. Počáteční nastavení každé tabulky je dáno charakteristikami. 5.2 Technické zabezpečení Každá dynamická tabulka je tvořena jedním souborem.htm a jedním souborem.js. Soubor.js obsahuje metadata dané tabulky tedy způsob jejího zobrazení. V souboru.htm je potom HTML kód pro získání a přenos dat a přenos kontextu tabulky. Dvojice souborů.htm a.js je generována automaticky programem GenHtmlTable.exe na základě metadat (viz podkapitola 5.3 Metadata). 17
22 Generátor validuje vstupní metadata. Pokud obsahuje chyby, vypíše hlášení. Generování lze řídit několika parametry. Jedná se o nastavení, zda-li se bude generovat startovací tabulka nebo běžná tabulka. Podstatným parametrem je jazyk. Metadata mohou obsahovat několik jazykových mutací. Vygenerovaný pár souborů.htm a.js odpovídá ale vždy konkrétní jazykové mutaci. 5.3 Metadata Dynamická tabulka je univerzální komponenta, kterou lze pomocí metadat kompletně nastavit. Metadata tvoří podklad pro sestavení tabulky a představují XML dokument, kterým se definuje uživatelská nebo startovací tabulka Metadata uživatelské tabulky Uživatelská tabulka je běžná dynamická tabulka, která zobrazuje data. Definice uživatelské tabulky je dána následujícími sekcemi: Definice základních vlastností tabulky XML element dyntblk. Tento element zároveň tvoří kořenový element celého XML dokumentu. Volitelnou sekcí textů XML element texty. Metadata mohou obsahovat několik jazykových mutací. Povinnou sekcí dotazu a sloupců XML element dotaz a sloupec. Obě sekce tvoří definici zdroje dat (dynamická tabulka obdrží homogenní tabulku složenou z dimenzí a faktů) a definici rozvržení dimenzionálních sloupců a sloupců faktů. V této sekci lze rovněž definovat pevné číselníky. Pomocí pevných číselníků se transformují hodnoty na textové popisy. Povinným blokem charakteristik XML element charakteristiky. Přičemž element charakteristiky nesmí být prázdný, tj. musí existovat alespoň jedna charakteristika. Charakteristika udává počáteční vzhled a chování tabulky a počáteční řazení sloupců. Povinnou sekcí odkazů XML element odkazy. Odkaz má definovány přechody, které umožňují přepínání z jedné tabulky do dalších nebo přepínání do číselníků. Volitelnými sekcemi přechodů a pomocných definic pro přechody XML elementy prechody a GenPrechody. Volitelnou sekcí zvýraznění hodnot (alertů) XML element Alerty. Přesná struktura metadat je dána souborem DTD 3. Na základě této definice lze provádět syntaktickou kontrolu souborů metadat. Podrobný popis metadat uživatelské tabulky je dostupný v příloze č Zkratka pro Document Type Definition. Jedná se o definici struktury dokumentu. 18
23 5.3.2 Metadata startovací tabulky Startovací tabulka nezobrazuje data, ale slouží jako rozcestník dané rodiny dynamických tabulek. Od toho se odvíjí i definice metadat. Ta vychází z podobného schématu jako uživatelské tabulky (viz podkapitola Metadata uživatelské tabulky), ale omezuje se pouze na texty a přechody Odkazy na programový kód v metadatech Metadata mohou obsahovat odkaz na kód v jazyce JavaScript. Týká se to metadat uživatelských tabulek, konkrétně sekcí Alerty a sekce GenPrechody. V [4] se tento fakt hodnotí jako nevýhoda. Ovšem při částečně automatizovaném procesu návrhu metadat by tato skutečnost takto hodnocena být nemusela. Zároveň je v [4] uvedeno několik příkladů, ze kterých je patrný princip těchto odkazů. V souboru metadat se objevuje název procedury, která dané rozšíření realizuje. Procedura je implementována jako funkce v JavaScriptu. Umístění kódu dané implementace souboru s kódem rozšíření je rovněž uvedeno v souboru metadat. Programový kód odkazovaný ze sekce Alerty řídí vizualizaci některých hodnot v tabulce. Algoritmus alertu předpokládá několik parametrů. Na základně hodnot parametrů a konfigurace je sestavena návratová hodnota, která ovlivňuje vizualizaci hodnot. Další možnost rozšíření je podporována v sekci GenPrechody. Algoritmus je programován funkcí v JavaScriptu stejně jako v předchozím případě. Odkaz je realizován obdobným způsobem. Návratová funkce obsahuje kód pro sestavení rozbalovacího menu (viz Nástrojový panel v podkapitole 5.1 Funkcionalita dynamických tabulek). Oddělení programového kódu od metadat umožňuje opětovné použití jednou navržené funkcionality. Více dynamických tabulek může sdílet stejné algoritmy pro vizualizaci hodnot. Algoritmy využívají navíc globálních funkcí. 5.4 Současný způsob návrhu metadat Současný návrh metadat spočívá v ručním sestavení XML dokumentu metadat. Některé elementy a atributy dokumentu obsahují výčty identifikátorů jiných elementů a představují seznamy neviditelných sloupců v tabulkách, pořadí sloupců a jejich třídění a další nastavení, které by bylo vhodné umožnit graficky navrhnout pomocí vhodného editoru. 19
24 6 Editor metadat Řešeným projektem této diplomové práce je grafický editor metadat, který má za úkol zjednodušit současný způsob návrhu metadat. Výsledný editor je implementován v prostředí Microsoft Windows. V následujících kapitolách je popsáno vlastní řešení grafického editoru metadat od analýzy přes návrh architektury a objektového modelu metadat až po vlastní implementaci. Požadavky byly analyzovány tak, aby pokryly následující cíle editoru metadat: Načítání/ukládání modelu metadat z/do XML dokumentu. Zajištění kompletní editace metadat. Možnosti grafického návrhu těch aspektů metadat, které souvisejí s vizuální stránkou vlastní dynamické tabulky. 6.1 Analýza požadavků Při analýze požadavků vycházím z nedostatků současného způsobu návrhu metadat a z definice jejich struktury. Primárním úkolem editoru metadat je sestavení validního dokumentu metadat, ze kterého bude možné standardním způsobem (viz kapitola 5. Dynamické tabulky v portálu Vema) vygenerovat dynamickou tabulku a tu následně použít na portálu. Dalším úkolem je pak umožnit uživateli takový postup návrhu metadat, který by zvýšil jeho produktivitu. V následujících podkapitolách jsou popsány funkční i nefunkční požadavky na aplikaci Funkční požadavky Na následující stránce na obrázku je znázorněn diagram případů užití grafického editoru metadat. V podkapitolách následují stručné popisy jednotlivých případů. 20
25 Obrázek 11: Diagram případů užití Načtení existujících metadat Aplikace umožňuje načíst již vytvořená metadata, což umožňuje modifikovat metadata, která byla vytvořena ještě před samotnou implementací editoru Uložení metadat Aplikace umožňuje ukládat editovaná metadata do XML souboru. Díky tomu lze z metadat průběžně generovat dynamické tabulky, které jsou dále testovány na portále. 21
26 Modifikace vlastností dynamické tabulky Uživatel začne editaci vlastnosti tím, že přejde na detail dynamické tabulky. Aplikace načte aktuální data z modelu a nastaví hodnoty do příslušných textových polí, případně rozbalovacích seznamů. Uživatel může modifikovat veškeré vlastnosti dynamické tabulky a aplikace zajistí aktualizaci modelu Správa textů Uživatel začne správu textů tím, že přejde na záložku textů. Aplikace zobrazí aktuální seznam textů a umožní uživateli tento seznam procházet a vybírat jednotlivé položky. Po výběru položky se aktualizuje detail textu. Uživatel může modifikovat detail jednotlivých textů a aplikace zajistí aktualizaci modelu. Dalšími funkcemi jsou přidávání a mazání textů a smazání celé kolekce textů. V posledním případě aplikace zobrazí potvrzovací dialog Editace dotazu Dotaz je psán ve specifickém jazyce firmy Vema. Proto bylo upuštěno od původního nápadu vytvořit takovou funkcionalitu, která by pomohla dané dotazy vizuálně navrhovat. Následující funkce přibližují případ užití editace dotazu. Podrobné vysvětlení pojmů, které jsou psány kurzívou, lze nalézt v [4]. Vytvoření, modifikace nebo mazání úvodních částí dotazu. Vytvoření, modifikace nebo mazání úvodních filtrů. Modifikace dotazu pro odvozené a závislé sloupce. Modifikace vlastností dotazu (příznak, jestli se dotaz provádí). Aplikace neprovádí žádnou syntaktickou analýzu zadávaných dotazů, zajišťuje pouze aktualizaci modelu Konfigurace sloupců Vizuální stránku dynamické tabulky ovlivňují sloupce svým nastavením šířek a datových typů. Další vlastnosti určující vzhled tabulky jsou charakteristiky. Proto některé vlastnosti, které by bylo možné graficky navrhovat, jsou zahrnuty až do grafické editace charakteristik. Případ užití konfigurace sloupců nezajišťuje načtení sloupců výsledné datové sady (pro jeho velice specifickou syntaxi), ale poskytuje funkce pro přidávání, modifikaci a mazání sloupců. Aplikace umožňuje často se opakující hodnoty vlastností vybírat z rozbalovacích seznamů. Toto se týká především textů záhlaví sloupců. Technologie OLAP pracuje s dimenzemi a fakty. Dynamické tabulky na portálu Vema zobrazují data sloupců dimenzí a faktů. V metadatech existuje parametr poslklic. Ten definuje, který sloupec je posledním sloupcem dimenzí. Další sloupce již představují sloupce faktů. Aplikace umožňuje nastavit tento parametr tím, že pro každý sloupec se definuje, zda se jedná o poslední 22
27 sloupec dimenzí. Pokud uživatel nastaví tento příznak, aplikace zaručují aktualizaci modelu s tím, že bude existovat pouze jeden sloupec určující konec dimenzí a začátek faktů Správa odkazů a přechodů Správa přechodů vyžaduje, aby v modelu (v rozpracovaných metadatech) existovaly definované odkazy. Odkazem je rozuměn pojmenovaný odkaz na jinou dynamickou tabulku. Přechod představuje akci, jejíž spouštěcí odkaz (v kontextu HTML stránek) bude zobrazen na dynamické tabulce, nebo bude svázán s hodnotou (případně záhlavím) sloupce atd. Aplikace poskytuje funkce pro přidání, modifikaci a mazání odkazů i přechodů. Výběr je realizován v obou případech pomocí rozbalovacího seznamu. V případě správy odkazů je uživateli umožněno vybírat typ odkazu, v případě editace přechodů si lze vybrat odkaz, textové záhlaví, charakteristiku cílové tabulky a styl Modifikace napojení na externí skripty Alertů Některou funkcionalitu nebo vzhled dynamických tabulek je možné ovlivňovat kódem napsaným v JavaScriptu. Tento kód není přímo součástí metadat tabulky, ale načítá se z externího souboru. V metadatech je pouze uložen název souboru a název procedury, která dané rozšíření zajišťuje. Aplikace umožňuje editovat výše uvedené parametry Modifikace charakteristik Charakteristika popisuje vizuální stránku dynamické tabulky. Každá tabulka může mít definováno více charakteristik, minimálně však jednu. Proto, pokud uživatel začne editovat charakteristiky, má k dispozici seznam charakteristik s minimálně jedním záznamem. Vybráním charakteristiky se načte její detail. Uživatel může měnit vlastnosti, které nesouvisí se vzhledem. Editace vizuálních parametrů spadá do následujícího případu užití zobrazení náhledu charakteristiky Zobrazení náhledu charakteristiky Náhled charakteristiky představuje vizualizaci rozvržení tabulky v takové podobě, která v co možná největší míře napodobuje skutečný vzhled výsledné tabulky. Uživateli jsou poté umožněny následující operace: Změna pořadí, třídění, filtru a viditelnosti sloupců. Tyto vlastnosti se projeví pouze pro vybranou charakteristiku. Změna počáteční úrovně agregace. Tato vlastnost se projeví pouze pro vybranou charakteristiku. Změna šířky a záhlaví sloupce. Tyto vlastnosti se projeví pro daný sloupec ve všech charakteristikách. Změna záhlaví tabulky. Záhlaví je společné pro všechny charakteristiky. 23
28 Charakteristika rovněž popisuje, které funkce dynamické tabulky (tlačítka, možnosti atd.) budou uživateli přístupné. V metadatech se jedná o tzv. prvky. Aplikace umožňuje aktivaci nebo deaktivaci jednotlivých prvků s tím, že se provedené změny automaticky projeví v modelu metadat Modifikace textů Případ užití modifikace textů je součástí grafické editace charakteristiky. Zároveň se jedná o rozšíření případu užití Správy textů. Rozšíření spočívá v tom, že se uživatel nemusí přepínat mezi správou textů a správou charakteristik a může měnit záhlaví tabulek a sloupců. Aplikace sama modifikuje příslušná data, případně vytváří potřebné nové záznamy Nefunkční požadavky Vema, a. s., která je potenciálním uživatelem grafického editoru metadat, využívá ve svých projektech programovacího jazyka C++. To vedlo také ke stanovení zásadního nefunkčního požadavku použít právě jazyk C++. Dynamické tabulky jsou spouštěny na webovém portálu. Integrace editoru do existujícího portálu by byla velice složitá. Odtud plyne další nefunkční požadavek vytvořit desktopovou aplikaci (pro platformu Microsoft Windows). Výhody desktopové aplikace oproti webovému rozhraní integrovanému do existujícího portálu jsou zřejmé máme k dispozici velké možnosti tvorby a ladění komponent. Na druhé straně nevýhody jsou také jasné vizualizace tabulky nebude dokonale odpovídat skutečnosti. 24
29 7 Architektura aplikace Zvolení jazyka C++ pro implementaci vedlo k nutnosti navrhnout architekturu aplikace a vybrat nejvhodnější framework pro implementaci grafického uživatelského rozhraní. Výběr frameworku zohledňuje i další aspekty, např. rozšiřitelnost o další ovládací prvky apod. Následující podkapitoly popisují výběr frameworku, jeho rozšíření a následně popis vrstev aplikace použitých v grafickém editoru metadat. 7.1 Framework a technologie Jazyk C++ nabízí při dodržení jistých konvencí dobrou přenositelnost mezi operačními systémy Windows a Linux. To platí i v případě implementace aplikací s grafickým uživatelským rozhraním. Nicméně nutí nás použít některého z GUI frameworků (wxwidgets, Qt a další). Tyto frameworky mají vykoupeny své výhody přenositelnosti a rozšiřitelnosti vysokou režií výsledných aplikací (ve srovnání s GUI aplikacemi psanými pomocí nativních rozhraní příslušných operačních systémů). Pro implementaci grafického editoru metadat bylo využito frameworku MFC (Microsoft Foundation Classes), který je součástí vývojového prostředí Visual Studio. Jedná se o objektové zapouzdření WIN32 API. Editor metadat ve velké míře používá XML dokumentů. Framework MFC sám o sobě nenabízí žádné knihovny pro prácí s těmito dokumenty. Bylo proto třeba vybrat rozšiřující knihovny, které by umožnily přistupovat k XML prostřednictvím DOM 4 a využít také jazyka XPath 5. Nabízelo se několik variant. Následující tabulka shrnuje různé varianty, jejich výhody a nevýhody. Tabulka 3: Srovnání knihoven pro XML Knihovna Výhody/nevýhody MSXML 6 Výhody: Jednoduše použitelné rozhraní a velmi dobrá dokumentace. Podporuje XPath. Nevýhody: Musí se instalovat na cílovou stanici. 4 Document Object Model je rozhraní pro přístup k XML datům. Bližší informace lze nalézt v [2]. 5 Jazyk pro adresování částí XML dokumentů. 6 Microsoft XML. 25
30 Pokračování tabulky z předchozí stránky. Knihovna Výhody/nevýhody Xerces 7 Výhody: Lze staticky linkovat k aplikaci. Knihovna se vyvíjí a lze očekávat její zlepšení (výkon, stabilita). Nevýhody: Nepodporuje XPath. Xalan 8 Výhody: Lze staticky linkovat k aplikaci. Nevýhody: Vyžaduje knihovnu Xerces. Pro editor metadat byla vybrána knihovna MSXML. Její instalace je jednoduchá a je navíc součástí i jiných aplikací. Vzhledem k tomu, že potenciálním uživatelem editoru metadat je vývojář, lze očekávat, že MSXML bude mít již nainstalováno (např. Visual Studio tuto knihovnu standardně instaluje). 7.2 Rozšíření o další komponenty Snad každá aplikace při své implementaci vyžaduje vytvoření doposud neexistující komponenty, případně vytvoření komponenty coby potomka existující, která bude doplněna o funkcionalitu použitou v aplikaci na více místech. Proto je důležité, aby použitý framework umožňoval jednoduché rozšíření o další ovládací prvky. Framework MFC je objektovým zapouzdřením samotného WIN32 API. Toto API není objektově orientované. Každý prvek je identifikován pomocí handle a je považován za okno. I tlačítka a textové popisy jsou okna. Oknům jsou odesílány zprávy, které zpracovává smyčka zpráv. Každé okno má tzv. classname, což jednoznačně identifikuje prvky, které mají stejné počáteční vlastnosti a funkcionalitu. Ve Windows je několik rezervovaných názvů classname. Prvky jimi označené jsou standardními ovládacími prvky. Pokud chceme vytvořit vlastní prvek s novou funkcionalitou a vzhledem, vytvoříme okno a doplníme smyčku zpráv. Framework MFC zapouzdřuje většinu prvků pomocí tříd. V kořeni hierarchie těchto tříd je CWnd. Vytvořením instance této třídy vytvoříme okno v pojetí WIN32 API. Smyčka zpráv odchytává jednotlivé události a deleguje je na metody třídy CWnd. To, které události budou odchyceny a delegovány, definujeme v implementaci třídy odvozené od třídy CWnd pomocí speciálních maker. 7 Více na 8 Více na 26
31 7.2.1 Technika Dynamic subclassing Vývojové prostředí Visual Studio umožňuje grafický návrh dialogů. Ve frameworku MFC může být každý dialog obsluhován pomocí třídy dědící po CDialog. Jednotlivé prvky mohou být svázány (pomocí speciálního makra) s atributem třídy. Tento atribut je potom referencí na instanci třídy, která odpovídá danému prvku. Například rozbalovací seznam bude svázán s instancí třídy CComboBox. Pokud vytvoříme potomka třídy CComboBox a implementujeme mu odlišné chování pomocí přepsání obsluh některých událostí, vytváříme tím vlastní komponenty a zároveň zachováváme možnost grafického návrhu dialogu. Technika, která tyto možnosti zajišťuje, se nazývá Dynamic subclassing [6]. Po vytvoření dialogu se vytvoří všechny jeho prvky způsobem standardním ve Windows. Poté, co se začnou tyto prvky vázat na atributy obslužné třídy dialogu, jsou jim vyměněny smyčky zpráv a tím i jejich vzhled a chování. Podrobné informace o této technice je možné nalézt v [6]. 7.3 Kostra aplikace Editor metadat je navržen jako dvouvrstvá aplikace. Jsou jimi Document a View. V podstatě se jedná o ekvivalent architektury MVC (Model-View-Controller). Vrstva Document v MFC odpovídá vrstvě Model, vrstva View v MFC potom vrstvám View a Controller. Na následující stránce ukazuje diagram tříd kostru aplikace a přibližuje architekturu editoru metadat. 27
32 Obrázek 12: Diagram tříd znázorňující kostru aplikace Po spuštění aplikace (CGEMApp) je vytvořeno hlavní okno (CMainFrame), kterému je přiřazen dokument (CGEMDoc) a pohled (CGEMView). Hlavní okno dále zobrazí panel nástrojů (m_wndtoolbar) a stavový panel v dolní části okna (m_wndstatusbar). Dokument aplikace uchovává referenci na DOM objekt knihovny MSXML. Pokud se má načíst nebo uložit soubor metadat, delegují se tyto operace právě na tento objekt. Třídy, které jsou popsány v následující kapitole (8. Objektový model metadat), slouží jako adaptéry mezi uživatelským rozhraním a DOM objektem. 28
33 8 Objektový model metadat Cílem návrhu a implementace objektového modelu bylo vytvoření aplikační vrstvy, která umožňuje přistupovat a měnit veškeré elementy XML dokumentu metadat. Pro návrh byl vytvořen jednoduchý vzor, který byl použit při mapování XML elementů a jejich atributů na třídy v jazyce C++. Vycházel jsem z poznatku, že XML element obsahuje konečný počet atributů a může být do něj vnořeno teoreticky nekonečno potomků (definovaných typů) nebo jedna řetězcová (případně jiná) hodnota. Tento návrhový vzor popisuje podkapitola Další podkapitola (8. 2.) popisuje vlastní objektový model. 8.1 Mapování XML elementů na třídy v C++ Následující diagramy zobrazují nejprve fragment schématu XML dokumentu a dále výsledný diagram tříd, na které byl převeden. Uvedený příklad popisuje mapování elementů oddeleni, zamestnanci a zamestnanec, které představují entity oddělení firmy a k nim příslušejících zaměstnanců. Vztah počítá s tím, že zaměstnanec náleží právě k jednomu oddělení. Element zamestnanci je z hlediska vazby oddělení-zaměstnanec zcela zbytečný, v XML dokumentech se však tohoto přístupu často využívá nejen pro přehlednost. (Například konfigurační soubor tomcatusers.xml známého kontejneru Tomcat obsahuje konfiguraci uživatelů a jejich práv. Záznamy o rolích a uživatelích jsou na stejné úrovni mají stejného rodiče. Tento přístup je správný, ale značně nepřehledný.) Obrázek 13: Fragment XML schématu Výše uvedený fragment schématu ukazuje existenci elementu oddeleni, který má atribut nazev. Element obsahuje povinného potomka zamestnanci, který dále obsahuje 0 až nekonečno elementů zamestnanec. Tento element má potom atributy jmeno, prijmeni a plat. Následující obrázek znázorňuje diagram tříd, na které byl popisovaný fragment schématu převeden. 29
34 Obrázek 14: Výsledný diagram tříd Výše uvedený diagram ukazuje dvě třídy, které postačují na vytvoření popisovaného vztahu mezi odděleními a zaměstnanci. Třídy mají selektory a modifikátory pro všechny privátní atributy, které odpovídají atributům příslušných XML elementů. Třída COddeleni navíc obsahuje metody pro přidávání a mazání záznamů o zaměstnancích. Jedná se o delegování, vlastní činnost těchto metod vykovají příslušné metody objektu třídy CPtrArray. Její instance se vytvoří automaticky po vytvoření objektu třídy COddeleni. Reference se uloží do atributu m_entries. Elementy XML dokumentu mohou mít povinné a nepovinné atributy. K jednotlivým atributům jsou definovány jejich datové typy a mohou být definovány i výchozí hodnoty. Docílit toho, aby objekt (odpovídající danému elementu) nemohl vzniknout bez zadání hodnot pro povinné atributy, můžeme tak, že doplníme konstruktor o příslušné atributy. V konstruktoru můžeme navíc dosazovat implicitní hodnoty atributů a tím doplňovat jejich výchozí hodnoty. Datové typy XML atributů se mapují na datové typy jazyka C++ podle následující tabulky. Tabulka 4: Mapování XML typů na typy v C++ Typ v XML Reprezentovaná hodnota 9 Primitivní typ nebo třída v C++ xs:string Nespecifikováno CString 10 xs:nmtoken Příznak true/false bool xs:id Unikátní identifikátor CString xs:idref ID daného typu elementů CString xs:idrefs Seznam ID daného typu elementů CString xs:nmtoken Výčet styl0, styl1, styl6 CString xs:string Celé číslo int 9 Význam hodnoty, kterou atribut reprezentuje, není zřejmý ze syntaxe XML dokumentu, ale až z jiného popisu. Tento popis je uveden v [2]. 10 Standardní třída v MFC pro řetězec. Třída nabízí operátory přiřazení, relační operátory, operátor konkatenace a spoustu metod, čímž značně zjednodušuje práci s řetězci v C++. 30
35 Uvedené mapování pravděpodobně povede k otázce, z jakého důvodu jsou atributy typu IDREF a IDREFS mapovány na textové řetězce (CString). Důvod vychází z povahy těchto atributů v metadatech. Jedná se většinou o pořadí sloupců nebo o výčet neviditelných sloupců. Některé atributy navíc představují seznam ID sloupců oddělených mezerami, kde každé ID je doplněno o relační znaménko. Toto znaménko udává třídění příslušného sloupce. Mapovat atributy IDREF na referenci na příslušný objekt (případně IDREFS na kolekci objektů) se mi zdálo zbytečné. Přesvědčíme se o tom v kapitolách pojednávajících o prezentační vrstvě aplikace. 8.2 Model metadat Třídy modelu metadat tvoří adaptéry mezi třídami uživatelského rozhraní a DOM objektem metadat. Například seznam sloupců v metadatech představuje třída CFields. Tato třída načte příslušná data z DOM objektu. Možná se tento přístup zdá neefektivní, ale umožňuje doplnit editor metadat o editaci XML s tím, že každá změna se ihned projeví v celé aplikaci. Tento přístup byl testován i na velkých souborech metadat. Typické velikosti metadat jsou v řádech jednotek až desítek kilobytů. Aplikace byla testována s megabytovými XML soubory a nedocházelo ke znatelnému zpomalení. Následující tabulka představuje stručný přehled tříd modelu metadat a XML elementů, ze kterých jednotlivé třídy vycházejí. Kompletní diagram tříd modelu metadat je uveden v příloze č. 2. Tabulka 5: Třídy modelu a příslušné XML elementy Třída modelu Data, která instance třídy udržuje XML element metadat CDynamicTable Vlastnosti dynamické tabulky. dyntblk CTexts Kolekce textů. texty CTextEntry Vlastnosti textu a kolekce jazykových mutací. text, jaz CQuery Vlastnosti dotazu a kolekce úvodních částí a dotaz úvodních filtrů. CPrologueEntry Vlastnosti úvodní části dotazu. uvod, uvodcast CPrologueFilterEntry Vlastnosti úvodního filtru dotazu. uvodfiltry, uvodfiltr CFields Vlastnosti sloupců a kolekce sloupců. Udržuje sloupce také ID posledního sloupce dimenzí, tedy ID sloupce, který v seznamu sloupců představuje předěl mezi sloupci dimenzí a faktů. CFieldEntry Vlastnosti sloupce a kolekce transformací. sloupec 31
36 Pokračování tabulky z předchozí stránky. Třída modelu Data, která instance třídy udržuje XML element metadat CTransformEntry Vlastnosti transformace. transformy, transform CCharacters Kolekce charakteristik. charaktery CCharacterEntry Vlastnosti charakteristiky a kolekce filtrů. charakter CFilterEntry Vlastnosti filtru. filtry, filtr CLinks Kolekce odkazů na jiné dynamické tabulky. odkazy CLinkEntry Vlastnosti odkazu. odkaz CTransitions Kolekce přechodů. prechody CTransitionEntry Vlastnosti přechodu. prechod CAlerts Odkazy na externí JavaScriptový kód alertů. alerty 32
37 9 Prezentační vrstva Prezentační vrstva představuje vlastní editor metadat. Komunikuje s modelem a zobrazuje jednotlivé aspekty nastavované v metadatech ve formě několika záložek. Ovládací prvky v záložkách umožňují měnit veškerá nastavení metadat a jsou více či méně propracované. Ty vlastnosti metadat, které lze navrhovat graficky, obsluhují vlastní komponenty. Následující podkapitoly pojednávají o vlastní implementaci prezentační vrstvy. První podkapitola popisuje rozdělení do záložek a způsob jejich aktualizace. Druhá podkapitola popisuje implementaci komponenty, která zobrazuje náhled dynamické tabulky podle aktuálního nastavení metadat a chová se interaktivně, čímž umožňuje editaci. 9.1 Záložky a aktualizace obsahu Hlavní okno aplikace je rozděleno do záložek. Každá záložka nabízí vlastní uživatelské rozhraní pro editaci určité části metadat. V MFC neexistuje příliš propracovaná podpora záložek. Pro vytvoření dialogu se záložkami byl použit následující postup. Postup vychází z návodu, který lze nalézt v [8]. 1. Přidání ovládacího prvku tab control do příslušného dialogu. V případě editoru metadat se jedná o dialog IDD_GEM_FORM, který je obsluhován třídou CGEMView. 2. Pro každou záložku se vytvoří dialog s obslužnou třídou. Ve vlastnostech dialogu se nastaví, aby neměl žádné orámování a jeho styl (v pojetí WIN32) byl WS_CHILD. To znamená, že dialog nebude vytvořen v novém okně, ale bude součástí okna rodičovského. 3. Přidání záložek a jejich popisů v metodě OnInitialUpdate třídy obsluhující dialog. V této metodě se také vytvoří instance všech dialogů navržených v kroku Implementace obsluhy systémové události TCL_SELCHANGE, která se vyvolá po změně vybrané záložky. Metoda provede následující akce. a. Skryje aktuálně zobrazený dialog. b. Zobrazí dialog odpovídající vybrané záložce. Metoda OnInitialUpdate může být volána několikrát, tedy i v případě, že záložky již byly vytvořeny. V takovém případě by ovšem došlo k havárii aplikace, proto je vytvoření záložek podmíněno příznakem m_tabscreated, který je logického typu. Implicitní hodnota tohoto příznaku je false. Po vytvoření záložek se nastaví na true. Dialogy mají tu vlastnost, že po stisknutí tlačítka ESC nebo ENTER ukončí svoji činnost a zmizí. Také u nich není možné nastavit průhlednost. Proto byla implementována třída CInTabDialog, která je potomkem CDialog a všechny dialogy, které reprezentují obsah záložek, po 33
38 ní dědí. Třída CInTabDialog přepisuje některé metody třídy CDialog a upravuje její funkcionalitu. A to tím způsobem, že zabraňuje ukončení dialogu a překreslení pozadí. Aby byly všechny dialogy spojeny s modelem metadat, vlastní třída CInTabDialog privátní atribut m_document. Jedná se o referenci na model. Mechanismus aktualizace obsahu záložek je následující: Po změně vybrané záložky se příslušnému dialogu aktualizuje reference na model. Poté, co je dialog zobrazen, dojde automaticky k zavolání metody DoDataExchange příslušné obslužné třídy. V této metodě se svážou ovládací prvky dialogu s atributy třídy (MFC podporuje vázání prvků nebo hodnot těchto prvků) a nahradí se hodnoty v těchto prvcích aktuálními hodnotami z modelu. Změna hodnot prvků dialogů vyvolá událost, která je obsloužena metodou OnChange. Ta zavolá metodu UpdateData a hodnoty prvků dialogu jsou uloženy do modelu. Ovládací prvky ve Windows mají tu vlastnost, že pokud je měněna hodnota prvku (a to buď uživatelským vstupem, nebo voláním metody SetWindowText), vyvolává to událost OnChange. Proto je aktualizace dat podmíněna příznakem m_updating, který je logického typu. Hodnota true znamená, že aplikace vyplňuje hodnoty jednotlivých prvků, hodnota false umožňuje aktualizovat model metadat na základě uživatelských vstupů. Dialogy obsahují rozbalovací seznamy (combo boxy), které umožňují vybrat hodnotu buď z pevného seznamu možností, nebo ze seznamu hodnot definovaných v metadatech na jiném místě. V metadatech existuje například kolekce textů. Tyto texty jsou použity i v jiných částech metadat pomocí odkazů. Rozbalovací seznam pro výběr textu zobrazuje aktuální kolekci textů a umožňuje vybrat určitou hodnotu. Aby bylo možné některé typy rozbalovacích seznamů použít na více místech, byly pro ně implementovány obslužné třídy. Podrobný diagram tříd prezentační vrstvy je uveden v příloze č. 3. Následující tabulka je přehledem záložek, které byly použity v uživatelském rozhraní editoru metadat. Ke každé záložce je definována část metadat, která je pomocí dané záložky editována. V tabulce jsou také uvedeny názvy elementů, jejichž podrobné popisy jsou uvedeny v příloze č. 1. Uvedeny jsou i ID jednotlivých dialogů, které tvoří uživatelská rozhraní jednotlivých záložek. Tabulka 6: Přehled záložek Název záložky ID příslušného dialogu Editovaná část metadat Vlastnosti IDD_PROPSDIALOG Vlastnosti dynamické tabulky. Odpovídá elementu dyntblk. Texty IDD_TEXTSDIALOG Texty a jazykové mutace. Odpovídá elementům text a jaz. 34
39 Pokračování tabulky z předchozí stránky. Název záložky ID příslušného dialogu Editovaná část metadat Dotaz IDD_QUERYDIALOG Dotaz, jehož výsledkem budou data zobrazovaná v dynamické tabulce. Odpovídá elementům dotaz, uvod, uvodfiltr a odvoz. Sloupce IDD_FIELDSDIALOG Sloupce, které budou vráceny jako výsledek dotazu, a transformace hodnot. Odpovídá elementům sloupec a transform. Charakteristiky IDD_CHARACTERISTICSDIALOG Rozvržení dynamické tabulky a filtry pro jednotlivé sloupce. Je použita speciální komponenta, která umožňuje grafický návrh dynamické tabulky (viz kapitola 9.4 Vizualizace dynamické tabulky). Odpovídá elementům charakter a filtr. Odkazy IDD_LINKSDIALOG Odkazy na jiné dynamické tabulky. Odpovídá elementu odkaz. Přechody IDD_TRANSITIONSDIALOG Přechody, tj. pojmenované odkazy a doplňující informace o přenosech filtrů, kontextu atd. Odpovídá elementu prechod. Alerty IDD_ALERTSDIALOG Alerty (zvýraznění některých hodnot). Jedná se o napojení na externí JavaScriptovou proceduru. Odpovídá elementu Alerty. 9.2 Rozhraní master-detail Rozhraní master-detail jsou taková, která zpravidla obsahují seznam položek určitého typu v levé části okna a formulář s podrobnými údaji v pravé části. Rozhraní pracuje tak, že po vybrání položky ze seznamu se načtou podrobnosti a zobrazí se ve formuláři. Uživatel může přidávat a mazat záznamy nebo modifikovat jejich vlastnosti (hodnoty). Editor metadat používá tohoto typu uživatelského rozhraní v několika záložkách. Implementace je následující: V metodě DoDataExchange jsou nejprve do seznamu položek vloženy příslušné hodnoty z modelu. Událost změny výběru tohoto seznamu je odchycena a v její obsluze se 35
40 načtou detailní data a zobrazí se v příslušných ovládacích prvcích. Ukládání dat zpět do modelu (po jejich modifikaci) je pak rozšířeno o zjištění aktuální vybrané hodnoty. 9.3 Rozbalovací seznamy Rozbalovací seznamy (combo boxy) jsou ovládací prvky, které umožňují vybrat jednu hodnotu ze seznamu. Seznam je navíc kvůli aktuálnosti svázán s určitým modelem. Aby bylo možné použít rozbalovací seznamy určitého typu na více místech v aplikaci, jsou implementovány obslužné třídy. Na instance těchto tříd se potom vážou konkrétní rozbalovací seznamy v dialozích a tím se modifikuje jejich funkcionalita (viz kapitola Dynamic subclassing). Následující obrázek znázorňuje diagram tříd výše popsaného rozbalovacího seznamu. Je pojmenován CCustomCombo. Obrázek 15: Diagram tříd rozbalovacího seznamu V místě programu, kde je potřeba aktualizovat obsah rozbalovacího seznamu, se zavolá metoda SetDocument. Tato metoda se postará o smazání původního obsahu a vložení aktuálního. Při vkládání se dále porovnává aktuální vkládaný záznam s parametrem lookup. Pokud je nalezena shoda, aktuální záznam se stane vybraným záznamem rozbalovacího seznamu. 9.4 Vizualizace dynamické tabulky V následující kapitole je popsána implementace komponenty CTableViewDialog. Tato komponenta zobrazuje náhled dynamické tabulky a umožňuje její editaci. Některé editované vlastnosti jsou společné pro všechny charakteristiky, jiné pro jednu konkrétní. Díky této komponentě lze editor metadat nazvat grafickým. Následující výčet přibližuje funkcionalitu této komponenty. Zobrazení náhledu dynamické tabulky pro konkrétní charakteristiku. Načtení českých mutací textů a jejich zobrazení na příslušných místech v dynamické tabulce. Změna pořadí sloupců pomocí operací drag-drop. 36
41 Změna šířky sloupce pomocí myši. Změna viditelnosti sloupce kliknutím na speciální ikonu. Nastavení směru třídění kliknutím na speciální ikonu. Editace filtru pro konkrétní sloupec. Editace textového popisu sloupce. Editace textového popisu v záhlaví tabulky. Nastavení počáteční úrovně agregace. Framework MFC nabízí velice užitečnou technologii, tzv. DHTML dialogy. Jedná se o dialogová okna, jejichž uživatelské rozhraní je vytvořeno v jazyce HTML. K dialogu je přiřazen soubor HTML, který se při překladu linkuje k vlastní aplikaci. Aplikace pro účely DHTML dialogů využívá internetového prohlížeče Internet Explorer, který je standardně součástí Windows a není třeba jej instalovat. V [7] je popsán příklad DHTML dialogu. Dialogy s DHTML uživatelským rozhraním umožňují použití skriptovacího jazyka JavaScript. Chování dialogu lze potom velice efektivně upravovat a přidávat funkcionalitu, která by se v MFC implementovala velice pracně. Dynamické tabulky v portálu Vema lze pomocí DHTML dialogů zobrazovat tak, že jejich náhled může být velmi podobný skutečnosti. Komponenta CTableViewDialog je v podstatě třídou, která obsluhuje DHTML dialog IDD_TABLEVIEW. Tomuto dialogu jsou nastaveny podobné vlastnosti jako v případě dialogů, které představují uživatelské rozhraní záložek. Po vytvoření dialogu IDD_CHARACTERISTICSDIALOG (odpovídá záložce Charakteristiky) je vytvořena instance třídy CTableViewDialog. Po vybrání konkrétní charakteristiky je aktualizován obsah DHTML dialogu a vlastní komponenta je zobrazena. Následující podkapitoly vysvětlují mechanismus generování náhledu dynamické tabulky a mechanismus obsluhy událostí Generování náhledu dynamické tabulky Tato podkapitola přibližuje mechanismus generování obsahu DHTML dialogu IDD_TABLEVIEW. Soubor HTML, který je k dialogu připojen, slouží jako kostra celé HTML komponenty. V HTML dokumentu jsou definovány CSS styly a dále JavaScriptové funkce, které zajišťují vzhled podobný skutečné dynamické tabulce a umožňující editaci. Následující obrázek představuje diagram tříd komponenty CTableViewDialog. V diagramu je znázorněna třída CCharacterEntry, která je popsána v kapitole 8. Objektový model metadat a zároveň uvedena v příloze č
42 Obrázek 16: Diagram tříd komponenty CTableViewDialog Potom, co uživatel vybere ze seznamu charakteristik záznam, zavolá se metoda SetDocument třídy CTableViewDialog. Tato metoda vygeneruje HTML obsah tak, aby výsledný náhled dynamické tabulky odpovídal aktuálnímu nastavení charakteristiky. Dynamická tabulka a její sloupce jsou reprezentovány HTML elementy DIV. Je vyplněna jejich třída a ID. Záhlaví tabulky a sloupce i výraz ve filtru jsou reprezentovány HTML elementy A. Těmto elementům je navíc nastaven atribut onclick. Následující snímek ukazuje příklad náhledu charakteristiky. Obrázek 17: Náhled dynamické tabulky zobrazený editorem metadat Generátor obsahu bere v úvahu aktuální nastavení charakteristiky, zejména velikost, pořadí a viditelnost sloupců. Zároveň zajišťuje, aby bylo možné nastavit zcela novou charakteristiku. Tím je myšleno, že uživatel vytvoří novou charakteristiku, která nemá ještě nastaveny žádné hodnoty 38
43 (pořadí, viditelnost atd.). Generátor v takovém případě vygeneruje tabulku se všemi sloupci v takovém pořadí, v jakém byly definovány v záložce Sloupce Využití JavaScriptu Jelikož se v komponentě CTableViewDialog jedná o rozhraní definované HTML dokumentem, je nanejvýš vhodné použití skriptovacího jazyku JavaScript. Ten nabízí všechny potřebné prostředky pro modifikaci existujícího HTML dokumentu a vytvoření propracované funkcionality. Navíc je možné tuto funkcionalitu dobře ladit mimo vývojové prostředí i mimo aplikaci. Komponenta CTableViewDialog využívá JavaScriptu, aby umožnila uživateli editovat zobrazenou tabulku. V případě modifikace textů se jedná o zobrazení dialogu, ve kterém uživatel zadá novou hodnotu záhlaví. Editaci šířek a pořadí sloupců zajišťují metody onmousedown, onmousemove a onmouseup. Podle elementu, který danou událost vyvolal, a podle relativní pozice kurzoru myši se buď přesouvá sloupec, nebo mění jeho šířka. Současně se mění kurzor myši. Existuje jeden element DIV, který v HTML dokumentu není viditelný, ale plní zcela zásadní funkci. Modifikací jeho obsahu je možné vyměňovat informace mezi HTML dokumentem a její implementací v MFC tedy třídou CTableViewDialog. V následující podkapitole je tento mechanismus vysvětlen Obsluha událostí Tato podkapitola popisuje mechanismus obsluhy událostí, které jsou spojené s editací charakteristiky a jejichž výčet následuje. Změna pořadí, šířky nebo viditelnosti. Změna počáteční úrovně agregace (parametr zlom, jehož hodnotou je ID sloupce). Změna záhlaví tabulky nebo sloupce. Změna výrazu ve filtru. Dialogy v MFC mají definovány obsluhy událostí pro jednotlivé ovládací prvky pomocí speciálních maker. Makrem se definuje událost, která se zachytí, a metoda, která tuto událost obslouží. Je možné definovat i rozsah ovládacích prvků, jejichž určitou událost obslouží jedna společná metoda. V případě HTML dialogů je situace podobná, ale v případě použití pro grafický náhled dynamické tabulky trochu komplikovaná. Především v době implementace komponenty není znám počet a ID jednotlivých sloupců, které dynamická tabulka bude mít v metadatech definovány. Nelze tedy odchytit všechny potřebné události pomocí maker. Proto, jak již bylo uvedeno na konci předchozí podkapitoly, existuje speciální neviditelný HTML element s identifikátorem context, který umožňuje přenášení kontextu mezi HTML dokumentem a obslužnou třídou CTableViewDialog. 39
44 Pokud nastane taková událost, kterou je třeba sdělit obslužné třídě, postupuje se podle následujícího výčtu operací. 1. Sestaví se řetězec, který uvádí: a. ID prvku, který událost způsobil. b. Označení typu události, ke které došlo. c. Doplňující zprávu, která je relevantní pro některé typy událostí. 2. Sestaveným řetězcem se vyplní vlastnost innerhtml elementu context. 3. Vyvolá se událost, která je nastavena k odchycení ve třídě CTableViewDialog metodou OnNotify. Metoda OnNotify načte hodnotu vlastnosti innerhtml elementu context a rozloží ji na jednotlivé části, které jsou odděleny symbolem. Poté se činnost metody větví podle jednotlivých typů událostí a tyto se obsluhují. Obsluhami se rozumí příslušné modifikace modelu metadat. 9.5 Konfigurace prvků dynamické tabulky Každá charakteristika dynamické tabulky udává, jaké prvky na ní budou povoleny. Jedná se o nejrůznější tlačítka a funkce. Pro konfiguraci prvků byla vytvořena komponenta CFeaturesDialog, která pracuje na podobném principu jako komponenta CTableViewDialog. Také se jedná o DHTML dialog doplněný o JavaScript a specifickou obsluhu událostí. Klíče prvků a funkcí, které budou v dynamické tabulce povoleny, se uvádějí v metadatech v atributu prvky v elementu charakter metadat. Komponenta CFeaturesDialog tento řetězec zpracuje a vygeneruje DHTML dialog. V dialogu jsou zobrazeny jednotlivé prvky v podobě tlačítek. Je-li prvek zakázán, je zobrazen průhledně. Kliknutím na tlačítko se příslušný prvek povolí případně zakáže a tuto událost zpracuje metoda OnNotify třídy CFeaturesDialog. Následující obrázek znázorňuje komponentu konfigurace prvků. Obrázek 18: Komponenta pro konfiguraci prvků 40
45 10 Závěr Práce popisuje technologie OLAP a data mining a komunikaci těchto technologií s uživatelem prostřednictvím dynamických tabulek. Dále je popsána implementace dynamických tabulek, kterou používá portálové řešení akciové společnosti Vema. Tabulky použité na portále Vema jsou generovány pomocí speciálního programu a následně umístěny na portál. Generátor vytváří HTML a další kód dynamických tabulek na základě tzv. metadat. Práce popisuje strukturu těchto metadat a poukazuje na nedostatky současného ručního způsobu jejich návrhu. Na základě studia struktury metadat je navržen a implementován grafický editor metadat. Součástí práce je implementace editoru v prostředí Microsoft Windows a popis řešení této problematiky. V první části práce jsou zpracována základní teoretická a odborná východiska a přiblížena implementace dynamických tabulek společnosti Vema. Tato část se ve velké míře odkazuje na přílohu, která detailně popisuje strukturu metadat dynamických tabulek. Druhá část práce představuje vlastní popis řešení návrhu a implementace editoru metadat. Zvláštní pozornost je věnována implementaci komponenty, která umožňuje grafickou editaci dynamické tabulky. Přínosem této práce je zejména zjednodušení a zrychlení návrhu metadat. Předchozí ruční editace je nahrazena grafickým návrhem. Díky implementaci vlastních komponent, které používají technologii DHTML dialogů, je grafická reprezentace dynamické tabulky v editoru podobná skutečné tabulce na portálu. Do budoucna lze předpokládat některá vylepšení. Program, který na základě metadat generuje dynamické tabulky, je možné integrovat do editoru metadat a jeho chybová hlášení (zobrazovaná v případě sémantických chyb v metadatech) správně zobrazit uživateli. 41
46 Literatura [1] Lacko, L. Oracle Správa, programování a použití databázového systému. Brno: Computer Press 2003 [2] Skonnard, A., Gudgin, M. XML pohotová referenční příručka. Praha: Grada 2006 [3] Škultéty, R. JavaScript Kapesní přehled. Brno: Computer Press 2005 [4] Dynamické tabulky příručka programátora, Brno: Vema a. s [5] Cross Tables and Deviation Analysis Software [online]. c2005 [cit ]. Dostupný z WWW: < [6] Exploring MFC Demystifying Subclassing [online]. c1997 [cit ]. Dostupný z WWW: < [7] DHtmlExplore Sample [online]. c2008 [cit ]. Dostupný z WWW: < [8] CodeProject: CCustomTabCtrl : MFC Tab Control [online] [cit ]. Dostupný z WWW: < 42
47 Seznam příloh Příloha 1. Podrobný popis metadat uživatelské tabulky Příloha 2. Diagram tříd modelu metadat Příloha 3. Diagram tříd prezentační vrstvy Příloha 4. CD s elektronickou podobou práce a zdrojovými soubory 43
48 Příloha 1 Podrobný popis metadat uživatelské tabulky Struktura metadat uživatelské tabulky Následující podkapitoly popisují strukturu metadat uživatelské tabulky. Použité diagramy jsou standardní pro vizualizaci XML schémat a byly pořízeny pomocí nástroje Oracle JDeveloper 10. Diagram sestává z elementů, které obsahují atributy. Povinné elementy mají obrys tvořený plnou čárou, nepovinné přerušovanou čárou. Povinné atributy jsou označeny hvězdičkou před názvem, nepovinné malou ikonou čtverce. Význam jednotlivých atributů není součástí struktury, ale je popsán vždy v tabulce pod diagramem. Je-li název atributu vynechán, jedná se o CDATA daného elementu. Popis struktury začíná kořenovým elementem a další podkapitoly popisují podrobně všechny povinné nebo nepovinné sekce definice metadat. Element dyntblk Element dyntblk obsahuje základní vlastnosti dynamické tabulky a slouží jako kolekce ostatních sekcí. Následující diagram znázorňuje element dyntblk a další elementy, které tento může bezprostředně obsahovat. Obrázek 1 Kořenový element Atribut metakod start mejmeno help zahl styl maxpocpar olong radnas matadid Význam Kód tabulky. Předpokládá se 4místné číslo. Jméno startovací tabulky. Jméno souboru dynamické tabulky. Jméno souboru s nápovědou. ID textu záhlaví tabulky (viz Texty). Barevný styl tabulky. Možnosti jsou: styl0, styl1,, styl6. Maximální počet parametrů pro tabulku. Hodnota systémové proměnné olong. Počet zobrazovaných řádků. Identifikace metadat unikátní v celém systému. Není-li uveden, vygeneruje se i
49 Příloha 1 Podrobný popis metadat uživatelské tabulky modul automaticky hodnota. Kód modulu systému Vema, do kterého je tabulka logicky začleněna. Element texty Element texty slouží jako kolekce textových popisů, které se mohou v tabulce na různých místech vyskytovat. Díky této kolekci je možné vytvářet jazykové mutace tabulek a dále zabránit nežádoucím redundantním textům v metadatech. Obrázek 2 Elementy tvořící sekci textů Každý záznam v této kolekci sestává z elementu text. Element text má identifikaci unikátní v rámci metadat a několik jazykových mutací elementů jaz. Element Atribut Význam text id Identifikace textu. jaz lang Definice jazyka (standardní zkratky názvů jazyků). jaz Vlastní text. Element dotaz Element dotaz specifikuje zdroj dat pro dynamickou tabulku. Výsledkem je homogenní tabulka tvořená dimenzemi a fakty. Popis použitého dotazovacího jazyka není předmětem této přílohy. Obrázek 3 Elementy tvořící dotaz Element Atribut Význam dotaz jenkontext Uvádí, zda-li se má dotaz provádět, nebo tabulka zpracovává pouze kontextové informace. uvodcast Vlastní dotaz. uvodfiltr kamfiltr Cílový sloupec, na který se uplatňuje filtr. uvodfiltr Vlastní filtr. Element Sloupce Element sloupce slouží jako místo definice rozložení sloupců na sloupce dimenzí a faktů. Kolekce sloupců je tvořena tak, že se uvádějí nejprve sloupce dimenzí a následně sloupce faktů. ii
50 Příloha 1 Podrobný popis metadat uživatelské tabulky Obrázek 4 Elementy tvořící rozvržení tabulky Definice sloupců může obsahovat pro každý sloupec i kolekci transformací. Jedná se o vytvoření pevného číselníku. Hodnoty se překládají na složitější textové popisy. Element Atribut Význam sloupce poslklic ID posledního sloupce dimenzí. sloupec id ID sloupce. Shoduje se s názvem sloupce, které generuje vrstva GES, která vrací data. sloupec jmprechod ID přechodu, který se provede při kliknutí na hodnotu sloupce. sloupec propagcis Udává, zobrazuje-li se u hodnoty sloupce také název příslušného číselníku číselník se dá potom aktivovat. sloupec delpo3 Udává, zobrazuje-li se hodnota sloupce dělená po třech znacích mezerou. Standardní pro čísla. sloupec typ Udává datový typ sloupce. Možnosti jsou: S řetězec, N přirozené číslo, D datum, R reálné číslo a DT datetime. sloupec suma Aktivuje/deaktivuje zobrazení sumy nebo průměru. sloupec zahl ID textu záhlaví sloupce. sloupec jmprechsl ID přechodu, který se provede při kliknutí na záhlaví sloupce. sloupec detail Určuje, že se sloupec vyskytuje v tabulce jen v režimu detailu. sloupec jmdofilt Jméno sloupce ve filtru. sloupec dotcis Položka pro doplnění dotazu pro získání číselníku. Používá se zřídka. sloupec kamfiltr Určuje pozici dotazu, kam se má umístit filtr. sloupec sirka Určuje šířku sloupce ve znacích. sloupec gkontext Způsob předávání globálního kontextu pro tento sloupec. Možnosti jsou: gkobdobi období, gknakln nákladové středisko nejvyšší, gknaklv nákladové středisko vyšší, gknaklz nákladové středisko základní, gkzak zakázka a gkfirma firma. sloupec cis Určuje, má-li sloupec číselník. transform hodn Zdrojová hodnota pro transformaci. transform vysl Výsledek transformace daný ID příslušného textu. iii
51 Příloha 1 Podrobný popis metadat uživatelské tabulky Element charaktery Element charaktery slouží jako definice charakteristik tabulky. Charakteristiky jsou počáteční nastavení vzhledu a chování tabulky. Každá tabulka má minimálně jednu charakteristiku. Obrázek 5 Elementy tvořící charakteristiky tabulky Element Atribut Význam charakter id Identifikace charakteristiky unikátní v rámci metadat. charakter beznapovedy Určuje zobrazování tooltipů. charakter jedzahl Aktivuje pouze jednoduché záhlaví sloupců. charakter zlom ID sloupce dimenze, který určuje počáteční úroveň agregace. charakter dlradky Implicitní nastavení zalamování dlouhých řádků (true/false). charakter zahl ID textu v záhlaví charakteristiky. charakter help Jméno souboru s nápovědou (přepisuje globální nápovědu definovanou v elementu dyntblk). charakter vzhled Počáteční způsob zobrazení. Možnosti jsou: T tabulka, G graf, T S tabulka ve standardním režimu a T N tabulka v režimu tiskového náhledu. charakter prvky Počáteční nastavení ovládacích prvků, které jsou přístupné uživateli. charakter poradi Seznam ID sloupců dimenzí, který určuje pořadí sloupců dimenzí. charakter ladeni Aktivuje/deaktivuje režim ladění. charakter trideni Definice počátečního třídění. Seznam ID sloupců a symbolů směru třídění. Symbol < udává vzestupné řazení, symbol > řazení sestupné. charakter nevid Seznam ID sloupců, které jsou neviditelné. filtr sloupec ID sloupce, který má definován filtr. filtr Kód filtru (JavaScript). Element odkazy Element odkazy definuje skoky na ostatní tabulky v rodině tabulek. iv
52 Příloha 1 Podrobný popis metadat uživatelské tabulky Obrázek 6 Elementy tvořící odkazy Element Atribut Význam odkaz odkatyp Typ odkazu. Možnosti jsou: dyntabul odkaz na standardní dynamickou tabulku nebo bezkontext odkaz bez přenosu kontextu. odkaz odkajmeno ID souboru odkazované tabulky. odkaz odkameta ID metadat odkazované tabulky. odkaz id ID odkazu unikátní pro celou rodinu tabulek. odkaz metakod Čtyrmístné číslo identifikující odkazovanou tabulku. aref URL odkaz na tabulku. Element prechody Element prechody definuje možné přechody z tabulek na tabulky nebo číselníky a využívá výše popsaných odkazů. Odkazy a přechody tedy spolu tvoří navigaci mezi tabulkami. Přechod může být s přenosem hodnot filtrů. Obrázek 7 Elementy tvořící přechody Element Atribut Význam prechod sloupec Definuje název sloupce pro vyplnění hodnoty z číselníku, případně seznam sloupců, jejichž filtry se přenáší. prechod odkud ID sloupce, ze kterého se v tabulce číselníku bere výsledná hodnota. prechod charakter ID charakteristiky, která má být použita v odkazované tabulce. prechod styl Barevný styl textu v menu (menu se zobrazuje u hodnot s více přechody). prechod kam Seznam ID sloupců pro přenos filtrů. prechod text ID textu, který se zobrazí v menu (zobrazeného u hodnoty s více přechody). prechod odkaz ID odkazu. prechod id Identifikace přechodu unikátní v rámci metadat. v
53 Příloha 1 Podrobný popis metadat uživatelské tabulky Element GenPrechody Element GenPrechody definuje menu přechodů, které může být dostupné v nástrojové liště tabulky. Jedná se o dynamické vytvoření rozbalovacího seznamu. Obrázek 8 Element položky menu přechodů Atribut Význam include Název souboru s JavaScriptovým kódem pro vytvoření rozbalovacího menu. Název procedury, která obsluhuje dané menu. Procedura má dané rozhraní. Element Alerty Element Alerty definuje možnosti zvýraznění hodnot v dynamické tabulce. Alerty se programují a odkaz na kód se realizuje obdobně, jako tomu je u menu přechodů. Obrázek 9 Element tvořící odkaz na program alertů Atribut Význam alinclude Název souboru s JavaScriptovým kódem, který realizuje funkcionalitu přechodů. Název procedury. Procedura má dané rozhraní. vi
54 Příloha 2 Diagram tříd modelu metadat i
55 Příloha 3 Diagram tříd prezentační vrstvy i
10. Datové sklady (Data Warehouses) Datový sklad
10. Datové sklady (Data Warehouses) Datový sklad komplexní data uložená ve struktuře, která umožňuje efektivní analýzu a dotazování data čerpána z primárních informačních systémů a dalších zdrojů OLAP
Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Úvod 9
Obsah Úvod 9 Kapitola 1 Business Intelligence, datové sklady 11 Přechod od transakčních databází k analytickým..................... 13 Kvalita údajů pro analýzy................................................
MBI - technologická realizace modelu
MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,
Informační systémy 2006/2007
13 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení Informační systémy 2006/2007 Ivan Kedroň 1 Obsah Analytické nástroje SQL serveru. OLAP analýza
AdventureWorksDW2014 SQL Server Data Tools Multidimenziona lnı model Tabula rnı model Multidimenziona lnı mo d Tabula rnı mo d MS SQL Server 2016 Tabula rnı mo d Azure Analysis Services 16 3.2 Dimenzionální
Základní informace o co se jedná a k čemu to slouží
Základní informace o co se jedná a k čemu to slouží založené na relačních databází transakční systémy, které jsou určeny pro pořizování a ukládání dat v reálném čase (ERP, účetní, ekonomické a další podnikové
Databáze Bc. Veronika Tomsová
Databáze Bc. Veronika Tomsová Databázové schéma Mapování konceptuálního modelu do (relačního) databázového schématu. 2/21 Fyzické ik schéma databáze Určuje č jakým způsobem ů jsou data v databázi ukládána
Základy business intelligence. Jaroslav Šmarda
Základy business intelligence Jaroslav Šmarda Základy business intelligence Business intelligence Datový sklad On-line Analytical Processing (OLAP) Kontingenční tabulky v MS Excelu jako příklad OLAP Dolování
Marketingová komunikace. 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3bph)
Marketingová komunikace Kombinované studium Skupina N9KMK3PH (vm3bph) 3. soustředění Mgr. Pavel Vávra 9103@mail.vsfs.cz http://vavra.webzdarma.cz/home/index.htm Zdroje Studijní materiály Heleny Palovské
Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý
Uživatelský manuál Aplikace GraphViewer Vytvořil: Viktor Dlouhý Obsah 1. Obecně... 3 2. Co aplikace umí... 3 3. Struktura aplikace... 4 4. Mobilní verze aplikace... 5 5. Vytvoření projektu... 6 6. Části
Operátory ROLLUP a CUBE
Operátory ROLLUP a CUBE Dotazovací jazyky, 2009 Marek Polák Martin Chytil Osnova přednášky o Analýza dat o Agregační funkce o GROUP BY a jeho problémy o Speciální hodnotový typ ALL o Operátor CUBE o Operátor
Business Intelligence
Business Intelligence Josef Mlnařík ISSS Hradec Králové 7.4.2008 Obsah Co je Oracle Business Intelligence? Definice, Od dat k informacím, Nástroj pro operativní řízení, Integrace informací, Jednotná platforma
1 Webový server, instalace PHP a MySQL 13
Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
Kontingenční tabulky v MS Excel 2010
Kontingenční tabulky v MS Excel 2010 Autor: RNDr. Milan Myšák e-mail: milan.mysak@konero.cz Obsah 1 Vytvoření KT... 3 1.1 Data pro KT... 3 1.2 Tvorba KT... 3 2 Tvorba KT z dalších zdrojů dat... 5 2.1 Data
Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)
Marketingová komunikace Kombinované studium Skupina N9KMK3PH (vm3aph) 2. a 3. soustředění Mgr. Pavel Vávra 9103@mail.vsfs.cz http://vavra.webzdarma.cz/home/index.htm Co nás čeká: 2. soustředění 16.1.2009
KOMPONENTY APLIKACE TreeINFO. Petr Štos ECM Business Consultant
KOMPONENTY APLIKACE TreeINFO Petr Štos ECM Business Consultant CO JE TO APLIKACE TreeINFO Sada komponent Komponenty rozšiřující sloupce Komponenty rozšiřující pohledy na data Aplikační části Využití jednotlivě
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE
Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23
Stručný obsah 1. Stručný úvod do relačních databází 13 2. Platforma 10g 23 3. Instalace, první přihlášení, start a zastavení databázového serveru 33 4. Nástroje pro administraci a práci s daty 69 5. Úvod
Analýza a modelování dat. Přednáška 9
Analýza a modelování dat Přednáška 9 Další dotazování nad kostkou Rozšíření SQL99 rozšíření SQL99 (minulá přednáška): seskupovací operátory za GROUP BY CUBE statistiky dle řezů ROLLUP statistiky dle rolování
Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.
Průběžná klasifikace Nová verze modulu Klasifikace žáků přináší novinky především v práci s průběžnou klasifikací. Pro zadání průběžné klasifikace ve třídě doposud existovaly 3 funkce Průběžná klasifikace,
Analýza a modelování dat. Přednáška 8
Analýza a modelování dat Přednáška 8 OLAP, datová kostka, dotazování nad kostkou Motivace většina DB relační zaznamenání vztahů pomocí logicky provázaných tabulek jakou mají velmi často vztahy povahu vztah
1. Webový server, instalace PHP a MySQL 13
Úvod 11 1. Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
BALISTICKÝ MĚŘICÍ SYSTÉM
BALISTICKÝ MĚŘICÍ SYSTÉM UŽIVATELSKÁ PŘÍRUČKA Verze 2.3 2007 OBSAH 1. ÚVOD... 5 2. HLAVNÍ OKNO... 6 3. MENU... 7 3.1 Soubor... 7 3.2 Měření...11 3.3 Zařízení...16 3.4 Graf...17 3.5 Pohled...17 1. ÚVOD
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 25. Otázka : Komponentní technologie - základní pojmy a principy, metody specifikace komponent. Obsah : 1. Základní pojmy 1.1 Komponenta Komponenta
3 zdroje dat. Relační databáze EIS OLAP
Zdroje dat 3 zdroje dat Relační databáze EIS OLAP Relační databáze plochá dvourozměrná tabulková data OLTP (Online Transaction Processing) operace selekce projekce spojení průnik, sjednocení, rozdíl dotazování
Zobrazte si svazy a uspořádané množiny! Jan Outrata
LatVis Zobrazte si svazy a uspořádané množiny! Jan Outrata Motivace potřeba visualizovat matematické (algebraické) struktury rychle, přehledně a automaticky počítačovými prostředky ruční kreslení je zdlouhavé
kapitola 2 Datové sklady, OLAP
Tomáš Burger, burger@fit.vutbr.cz kapitola 2 Datové sklady, OLAP Získávání znalostí z databází IT-DR-3 / ZZD Co je to datový sklad A data warehouse is a subjectoriented, integrated, time-variant and nonvolatile
PRODUKTY. Tovek Tools
jsou desktopovou aplikací určenou k vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci i s velkým objemem textových dat z různorodých informačních zdrojů.
Přehledy pro Tabulky Hlavním smyslem této nové agendy je jednoduché řazení, filtrování a seskupování dle libovolných sloupců.
Přehledy pro Tabulky V programu CONTACT Professional 5 naleznete u firem, osob a obchodních případů záložku Tabulka. Tuto záložku lze rozmnožit, přejmenovat a sloupce je možné definovat dle vlastních požadavků
METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1
METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1 DOLOVÁNÍ V DATECH (DATA MINING) OBJEVUJE SE JIŽ OD 60. LET 20. ST. S ROZVOJEM POČÍTAČOVÉ TECHNIKY DEFINICE PROCES VÝBĚRU, PROHLEDÁVÁNÍ A MODELOVÁNÍ
2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML
ROZHRANÍ ESA XML Ing. Richard Vondráček SCIA CZ, s. r. o., Thákurova 3, 160 00 Praha 6 www.scia.cz 1 OTEVŘENÝ FORMÁT Jednou z mnoha užitečných vlastností programu ESA PT je podpora otevřeného rozhraní
Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází
1 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Požadavky kreditového systému. Relační datový model, relace, atributy,
GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím
GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER váš partner na cestě od dat k informacím globtech spol. s r.o. karlovo náměstí 17 c, praha 2 tel.: +420 221 986 390 info@globtech.cz
Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz
Databázové systémy Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Vývoj databázových systémů Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace 60.-70. léta Program Komunikace Výpočty
QAD Business Intelligence
QAD Business Intelligence Vladimír Bartoš, Pavel Němec Konzultanti 13.6.2012 Komponenty QAD BI Analytické tabule pro podporu rozhodování Spolupráce uživatelů nad analyzovanými daty Reporty Generátor analytických
Pokročilé techniky tvorby sestav v Caché. ZENové Reporty
Pokročilé techniky tvorby sestav v Caché ZENové Reporty Úvodem Jednoduché sestavy Pokročilé sestavy Ladění Historie ZEN reporty sdílejí podobný princip definování obsahu jako ZENové stránky Byly uvedeny
43 HTML šablony. Záložka Šablony v systému
43 HTML šablony Modul HTML šablony slouží ke správě šablon pro výstupy z informačního systému modularis ve formátu HTML. Modul umožňuje k šablonám doplňovat patičku, dokumentaci a vázat šablony na konkrétní
Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová. 5. Statistica
Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová 5. Statistica StatSoft, Inc., http://www.statsoft.com, http://www.statsoft.cz. Verze pro Mac i PC, dostupná
DATABÁZOVÉ SYSTÉMY. Metodický list č. 1
Metodický list č. 1 Cíl: Cílem předmětu je získat přehled o možnostech a principech databázového zpracování, získat v tomto směru znalosti potřebné pro informačního manažera. Databázové systémy, databázové
POKROČILÉ POUŽITÍ DATABÁZÍ
POKROČILÉ POUŽITÍ DATABÁZÍ Barbora Tesařová Cíle kurzu Po ukončení tohoto kurzu budete schopni pochopit podstatu koncepce databází, navrhnout relační databázi s využitím pokročilých metod, navrhovat a
Dotazovací jazyky I. Datová krychle. Soběslav Benda
Dotazovací jazyky I Datová krychle Soběslav Benda Obsah Úvod do problematiky Varianty přístupu uživatelů ke zdrojům dat OLTP vs. OLAP Datová analýza Motivace Vytvoření křížové tabulky Datová krychle Teorie
WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK
WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK Systém WorkWatch je určen pro malé a střední firmy, které se zabývají službami nebo zakázkovou výrobou. Zajistí dokonalý přehled o všech zakázkách a jejich rozpracovanosti.
xrays optimalizační nástroj
xrays optimalizační nástroj Optimalizační nástroj xoptimizer je součástí webového spedičního systému a využívá mnoho z jeho stavebních bloků. xoptimizer lze nicméně provozovat i samostatně. Cílem tohoto
Průvodce aplikací FS Karta
Průvodce aplikací FS Karta Základní informace k Aplikaci Online aplikace FS Karta slouží k bezpečnému ukládání osobních údajů fyzických osob a k jejich zpracování. Osobní údaje jsou uloženy ve formě karty.
Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19
3 Obsah Novinky v tomto vydání 10 Význam základních principů 11 Výuka principů nezávisle na databázových produktech 12 Klíčové pojmy, kontrolní otázky, cvičení, případové studie a projekty 12 Software,
Modul IRZ návod k použití
Modul IRZ návod k použití Verze: 2 Datum: 26. 2. 2016 Tento dokument představuje stručný návod na použití modulu IRZ v programu EVI 8. Modul IRZ je určen na evidenci odpadů pro IRZ provozovny a hlášení
FORTANNS. havlicekv@fzp.czu.cz 22. února 2010
FORTANNS manuál Vojtěch Havlíček havlicekv@fzp.czu.cz 22. února 2010 1 Úvod Program FORTANNS je software určený k modelování časových řad. Kód programu má 1800 řádek a je napsán v programovacím jazyku
Úvod do MS Access. Modelování v řízení. Ing. Petr Kalčev
Úvod do MS Access Modelování v řízení Ing. Petr Kalčev Postup při tvorbě aplikace Vytvoření tabulek Vytvoření relací Vytvoření dotazů Vytvoření formulářů Vytvoření sestav Tabulky Slouží k definování polí,
APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze 2.2.0.6
APS mini.ed programová nadstavba pro základní vyhodnocení docházky Příručka uživatele verze 2.2.0.6 APS mini.ed Příručka uživatele Obsah Obsah... 2 Instalace a konfigurace programu... 3 Popis programu...
Bc. Martin Majer, AiP Beroun s.r.o.
REGISTR DIGITALIZACE HISTORICKÝCH FONDŮ (RDHF) A DIGITÁLNÍCH KONKORDANCÍ (DK) Návrh uživatelského rozhraní klientských aplikací verze 1.0 Bc. Martin Majer, AiP Beroun s.r.o. 28.11.2016-1 - Obsah 1 Seznam
Popis ovládání. Po přihlášení do aplikace se objeví navigátor. Navigátor je stromově seřazen a slouží pro přístup ke všem oknům celé aplikace.
Popis ovládání 1. Úvod Tento popis má za úkol seznámit uživatele se základními principy ovládání aplikace. Ovládání je možné pomocí myši, ale všechny činnosti jsou dosažitelné také pomocí klávesnice. 2.
Databáze pro evidenci výrobků
Databáze pro evidenci výrobků Databáze ve formátu Microsoft Access je součástí systému, který řídí automatizovanou výrobní linku. Tabulka tblcharge obsahuje data o výrobcích a je plněna automaticky řídicím
Access. Tabulky. Vytvoření tabulky
Access správa databáze (tabulky, relace, omezující podmínky, data...) uživatelské prostředí pro práci s databází (formuláře, sestavy, datové stránky, makra...) ukázková aplikace Northwind hlavní okno databáze
8.2 Používání a tvorba databází
8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam
Tovek Tools. Tovek Tools jsou standardně dodávány ve dvou variantách: Tovek Tools Search Pack Tovek Tools Analyst Pack. Připojené informační zdroje
jsou souborem klientských desktopových aplikací určených k indexování dat, vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci s velkým objemem textových
PRODUKTY. Tovek Tools
Analyst Pack je desktopovou aplikací určenou k vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci i s velkým objemem textových dat z různorodých informačních
Architektury Informačních systémů. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/
Architektury Informačních systémů Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Nutné pojmy Co je to informační systém? Jaké oblasti zahrnuje? Jaká je vazba IS na podnikovou strategii?
InsideBusiness Payments CEE
InsideBusiness Payments CEE Referenční příručka k novému vzhledu Přístupová cesta do střední a východní Evropy InsideBusiness Payments CEE Potřebujete pohodlný a bezproblémový přístup k úplné nabídce služeb
Kurz Databáze. Prezentace dat. Obsah. Tiskové sestavy (Report) Ing. Jolana Škutová
Kurz Databáze Prezentace dat Ing. Jolana Škutová Obsah Sestavy: tvorba, členění, zobrazení a kontrola platnosti zobrazení zdrojových dat. Třídění a seskupování záznamů v sestavě. Agregované výpočty, číslování
Úvod do databázových systémů. Ing. Jan Šudřich
Ing. Jan Šudřich jan.sudrich@mail.vsfs.cz 1. Cíl předmětu: Úvod do databázových systémů Poskytnutí informací o vývoji databázových systémů Seznámení s nejčastějšími databázovými systémy Vysvětlení používaných
Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky
Otázka 20 A7B36DBS Zadání... 1 Slovníček pojmů... 1 Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky... 1 Zadání Relační DB struktury sloužící k optimalizaci
Stručný obsah. K2118.indd 3 19.6.2013 9:15:27
Stručný obsah 1. Stručný obsah 3 2. Úvod 11 3. Seznamy a databáze v Excelu 13 4. Excel a externí data 45 5. Vytvoření kontingenční tabulky 65 6. Využití kontingenčních tabulek 81 7. Kontingenční grafy
UŽIVATELSKÁ PŘÍRUČKA K INTERNETOVÉ VERZI REGISTRU SČÍTACÍCH OBVODŮ A BUDOV (irso 4.x) VERZE 1.0
UŽIVATELSKÁ PŘÍRUČKA K INTERNETOVÉ VERZI REGISTRU SČÍTACÍCH OBVODŮ A BUDOV (irso 4.x) VERZE 1.0 OBSAH 1 ÚVOD... 3 1.1 HOME STRÁNKA... 3 1.2 INFORMACE O GENEROVANÉ STRÁNCE... 4 2 VYHLEDÁVÁNÍ V ÚZEMÍ...
Postupy práce se šablonami IS MPP
Postupy práce se šablonami IS MPP Modul plánování a přezkoumávání, verze 1.20 vypracovala společnost ASD Software, s.r.o. dokument ze dne 27. 3. 2013, verze 1.01 Postupy práce se šablonami IS MPP Modul
MIS. Manažerský informační systém. pro. Ekonomický informační systém EIS JASU CS. Dodavatel: MÚZO Praha s.r.o. Politických vězňů 15 110 00 Praha 1
MIS Manažerský informační systém pro Ekonomický informační systém EIS JASU CS Dodavatel: MÚZO Praha s.r.o. Politických vězňů 15 110 00 Praha 1 Poslední aktualizace dne 5.8.2014 MÚZO Praha s.r.o. je certifikováno
MST - sběr dat pomocí mobilních terminálů on-line/off-line
MST - sběr dat pomocí mobilních terminálů on-line/off-line Stručný přehled název: MST, software pro sběr dat mobilními terminály ve skladu (příjem, výdej, inventura) autor aplikace: FASK, spol. s r.o.,
Datový sklad. Datový sklad
Datový sklad Postavení v rámci IS/ICT Specifika návrhu Modelování Datový sklad POSTAVENÍ NÁVRH Postavení datového skladu (DW) v IS/ICT z hlediska aplikací jako součást Business Intelligence z hlediska
Pravidla a plánování
Administrátorský manuál TTC TELEKOMUNIKACE, s.r.o. Třebohostická 987/5 100 00 Praha 10 tel.: 234 052 111 fax.: 234 052 999 e-mail: ttc@ttc.cz http://www.ttc-telekomunikace.cz Datum vydání: 7. května 2013
Kritéria hodnocení praktické maturitní zkoušky z databázových systémů
Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Otázka č. 1 Datový model 1. Správně navržený ERD model dle zadání max. 40 bodů teoretické znalosti konceptuálního modelování správné
Dotyková obrázovká v prográmu TRIFID
Dotyková obrázovká v prográmu TRIFID Nastavení Nastavuje se volbou funkce SYSTÉMOVÉ FUNKCE/KONFIGURACE/WIN KONFIGURACE (spustí se tlačítkem )/LOKÁLNÍ PARAMETRY/ZÁLOŽKA PRODEJ. V této tabulce lze zapnout
Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda
Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda Proces vývoje HRIS Vema Vlastnosti HRIS (Human Resources Information System) HRIS Vema Proces vývoje HRIS Vema Vema, a. s. Přední
Základní popis Toolboxu MPSV nástroje
Základní popis Toolboxu MPSV nástroje Nástroj XLS2DBF ze sady MPSV nástroje slouží pro zkonvertování souboru ve formátu XLS do formátu DBF. Nástroj umožňuje konvertovat buď vybraný list nebo listy ze sešitu
Mapa Česka: www.mapa-ceska.cz
Mapa Česka: www.mapa-ceska.cz Mapový portál Mapa Česka, který je dostupný na internetové adrese www.mapa-ceska.cz, byl vytvořen v roce 2014 v rámci bakalářské práce na Přírodovědecké fakultě Univerzity
Inthouse Systems s.r.o. Specifikace. Inthouse App a Inthouse Studio pro Siemens Climatix 6XX. Verze software 1.X. Revize dokumentu 6
Inthouse Systems s.r.o. Specifikace Inthouse App a Inthouse Studio pro Siemens Climatix 6XX Verze software 1.X Revize dokumentu 6 Datum 4. 11. 2016 Obsah Obsah 1 Úvod 2 Základní přehled systému 2 Inthouse
Multidimenzionální pohled na zdravotnické prostředí. INMED Petr Tůma
Multidimenzionální pohled na zdravotnické prostředí INMED - 21.11.2003 Petr Tůma Koncepce multid pohledu Poskytování péče probíhá v multidimenzionálním světě; dimenze tento svět mapují podobně jako souřadnice
CYCLOPE PRINT MANAGEMENT SOFTWARE- UŽIVATELSKÁ PŘÍRUČKA
CYCLOPE PRINT MANAGEMENT SOFTWARE- UŽIVATELSKÁ PŘÍRUČKA Obsah Cyclope Print Management Software- uživatelská příručka... 1 1. Přehled produktu... 2 2. Stručný popis produtku CPMS... 2 2.1. Stažení CPMS...
Nápověda k části Generování sestav
Nápověda k části Generování sestav Jedná se o grafické rozhraní, které umožňuje návrh a generování vlastních sestav ze struktury OLAP databáze. ( OLAP - Online Analytical Processing, jedná se technologii
DATABÁZE MS ACCESS 2010
DATABÁZE MS ACCESS 2010 KAPITOLA 5 PRAKTICKÁ ČÁST TABULKY POPIS PROSTŘEDÍ Spuštění MS Access nadefinovat název databáze a cestu k uložení databáze POPIS PROSTŘEDÍ Nahoře záložky: Soubor (k uložení souboru,
Business Intelligence. Adam Trčka
Business Intelligence Adam Trčka 09:00 11:30: BI v kostce Navrhněme si sklad Ukázka BI Datamining 12:30 14:30: Pokračování kurzu 14:30 15:00: Q&A Agenda Co se dnes dovíme? Data informace znalost Business
RELAČNÍ DATABÁZE ACCESS
RELAČNÍ DATABÁZE ACCESS 1. Úvod... 2 2. Základní pojmy... 3 3. Vytvoření databáze... 5 4. Základní objekty databáze... 6 5. Návrhové zobrazení tabulky... 7 6. Vytváření tabulek... 7 6.1. Vytvoření tabulky
SignEditor 1 - návod k použití
SignEditor 1 - návod k použití Tomáš Ryba tryba@kky.zcu.cz Zdeněk Krňoul zdkrnoul@kky.zcu.cz Jakub Kanis jkanis@kky.zcu.cz 27. března 2012 1 Vznik za podpory projektu Pojabr - Potlačení jazykové bariéry
Práce s velkými sestavami
Práce s velkými sestavami Číslo publikace spse01650 Práce s velkými sestavami Číslo publikace spse01650 Poznámky a omezení vlastnických práv Tento software a související dokumentace je majetkem společnosti
Tvorba kurzu v LMS Moodle
Tvorba kurzu v LMS Moodle Před počátkem práce na tvorbě základního kurzu znovu připomínám, že pro vytvoření kurzu musí být profil uživatele nastaven administrátorem systému minimálně na hodnotu tvůrce
Datové sklady. Ing. Jan Přichystal, Ph.D. 1. listopadu 2011. PEF MZLU v Brně
PEF MZLU v Brně 1. listopadu 2011 Úvod Intenzivní nasazení informačních technologií způsobuje hromadění obrovské spousty nejrůznějších údajů. Příkladem mohou být informace z obchodování s cennými papíry
45 Plánovací kalendář
45 Plánovací kalendář Modul Správa majetku slouží ke tvorbě obecných ročních plánů činností organizace. V rámci plánu je třeba definovat oblasti činností, tj. oblasti, ve kterých je možné plánovat. Každá
Obsah. Zpracoval:
Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč
RadioBase 3 Databázový subsystém pro správu dat vysílačů plošného pokrytí
Databázový subsystém pro správu dat vysílačů plošného pokrytí RadioBase je datový subsystém pro ukládání a správu dat vysílačů plošného pokrytí zejména pro služby analogové a digitální televize a rozhlasu.
Wonderware Information Server 4.0 Co je nového
Wonderware Information Server 4.0 Co je nového Pavel Průša Pantek (CS) s.r.o. Strana 2 Úvod Wonderware Information Server je výrobní analytický a reportní informační portál pro publikaci výrobních dat
4IT218 Databáze. 4IT218 Databáze
4IT218 Databáze Osmá přednáška Dušan Chlapek (katedra informačních technologií, VŠE Praha) 4IT218 Databáze Osmá přednáška Normalizace dat - dokončení Transakce v databázovém zpracování Program přednášek
DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 61 DATABÁZE - ACCESS. (příprava k vykonání testu ECDL Modul 5 Databáze a systémy pro zpracování dat)
DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 61 DATABÁZE - ACCESS (příprava k vykonání testu ECDL Modul 5 Databáze a systémy pro zpracování dat) DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 62 Databáze a systémy pro uchování
Možnosti tisku v MarushkaDesignu
0 Možnosti tisku v MarushkaDesignu OBSAH 1 CÍL PŘÍKLADU...2 2 PRÁCE S PŘÍKLADEM...2 3 UKÁZKA DIALOGOVÉHO OKNA...3 4 STRUČNÝ POPIS PŘÍKLADU V MARUSHKADESIGNU...5-1 - 1 Cíl příkladu V tomto příkladu si ukážeme
Reliance 3 design OBSAH
Reliance 3 design Obsah OBSAH 1. První kroky... 3 1.1 Úvod... 3 1.2 Založení nového projektu... 4 1.3 Tvorba projektu... 6 1.3.1 Správce stanic definice stanic, proměnných, stavových hlášení a komunikačních
Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN RESEARCH / DATA
Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN RESEARCH / DATA Modul FADN RESEARCH je určen pro odborníky z oblasti zemědělské ekonomiky. Modul neomezuje uživatele pouze na předpřipravené
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího
Ukládání a vyhledávání XML dat
XML teorie a praxe značkovacích jazyků (4IZ238) Jirka Kosek Poslední modifikace: $Date: 2014/12/04 19:41:24 $ Obsah Ukládání XML dokumentů... 3 Ukládání XML do souborů... 4 Nativní XML databáze... 5 Ukládání
Analýza a Návrh. Analýza
Analysis & Design Návrh nebo Design? Design = návrh Není vytváření použitelného uživatelského prostředí (pouze malinká podmnožina celého návrhu) Často takto omezeně chápáno studenty nedokáží si představit,
10 Balíčky, grafické znázornění tříd, základy zapozdření
10 Balíčky, grafické znázornění tříd, základy zapozdření Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům balíčkům, grafickému
Maturitní témata Školní rok: 2015/2016
Maturitní témata Školní rok: 2015/2016 Ředitel školy: Předmětová komise: Předseda předmětové komise: Předmět: PhDr. Karel Goš Informatika a výpočetní technika Mgr. Ivan Studnička Informatika a výpočetní