Multi-dimensional expressions

Podobné dokumenty
Analýza a modelování dat. Přednáška 9

Analýza a modelování dat. Přednáška 8

Analýza a modelování dat 5. přednáška. Helena Palovská

KIV/ZIS cvičení 5. Tomáš Potužák

On line analytical processing (OLAP) databáze v praxi

Operátory ROLLUP a CUBE

Úvod do databázových systémů

Databázové systémy Cvičení 5.2

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Úvod do databázových systémů

Databáze I. Přednáška 6

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

Databáze SQL SELECT. David Hoksza

PG 9.5 novinky ve vývoji aplikací

6. blok část C Množinové operátory

4. blok část A Logické operátory

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

Dotazovací jazyky I. Datová krychle. Soběslav Benda

PostgreSQL jako platforma pro datové sklady

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Databázové systémy Cvičení 5.3

Dotazy tvorba nových polí (vypočítané pole)

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

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.

Informační systémy ve zdravotnictví. 8. cvičení

Úvod do databázových systémů

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Databázové systémy. Cvičení 6: SQL

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Databázové systémy I

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

Microsoft Office. Excel vyhledávací funkce

MS Access Dotazy SQL

Tabulkový procesor. Základní rysy

Excel tabulkový procesor

Stručný obsah. K2118.indd :15:27

Úvod do databázových systémů

Databázové systémy a SQL

Nápověda k části Generování sestav

DATA CUBE. Mgr. Jiří Helmich

Informační systémy ve zdravotnictví. 6. cvičení

Informační systémy 2006/2007

Novinky v PostgreSQL 9.4. Tomáš Vondra, 2ndQuadrant

Řazení řádků ve vzestupném pořadí (A až Z nebo 0 až 9) nebo sestupném pořadí (Z až A nebo 9 až 0)

Architektury databázových

Databáze I. Přednáška 4

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Jazyk SQL databáze SQLite. připravil ing. petr polách

Databázové systémy Cvičení 5

Podpora OLAP na platformě.net

Vytváření grafů v aplikaci Helios Red

Ukládání a vyhledávání XML dat

Databáze v Excelu EU peníze středním školám Didaktický učební materiál

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

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)

Microsoft Access. Typy objektů databáze: Vytvoření a návrh nové tabulky. Vytvoření tabulky v návrhovém zobrazení

Excel - pokračování. Př. Porovnání cestovních kanceláří ohraničení tabulky, úprava šířky sloupců, sestrojení grafu

Databázové systémy. Dotazovací jazyk SQL - II

Informační systémy ve zdravotnictví. 10. cvičení

1 Tabulky Příklad 7 Access 2010

Microsoft. Access. Výběrové dotazy. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

6. blok část B Vnořené dotazy

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Jazyk PL/SQL Úvod, blok

2. cvičení z ZI1 - Excel

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

KAPITOLA 11 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

3. přednáška z předmětu GIS1 atributové a prostorové dotazy

KIV/ZIS - SQL dotazy. stáhnout soubor ZIS- 04_TestovaciDatabaze accdb. SQL dotazy. budeme probírat pouze SELECT

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

II. Úlohy na vložené cykly a podprogramy

XMW4 / IW4 Pokročilé SELECT dotazy. Štefan Pataky

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

Marketingová komunikace. 3. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK3PH (vm3bph)

Databázové systémy a SQL

8.2 Používání a tvorba databází

PostgreSQL. Podpora dědičnosti Rozšiřitelnost vlastní datové typy. Univerzální nasazení ve vědecké sféře

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

RELAČNÍ DATABÁZE ACCESS

Databáze. datum jmeno prijmeni adresa_ulice adresa_mesto cislo_uctu platba zustatek

Základní informace o co se jedná a k čemu to slouží

Databáze I. 1. přednáška. Helena Palovská

U koly na procvic ení jazyka T-SQL

Mechanismus obarvení řádků browse

Evropský zemědělský fond pro rozvoj venkova: Evropa investuje do venkovských oblastí. v cestovním ruchu P3. Pavel Petr Petr.USII@upce.

Databáze I. 5. přednáška. Helena Palovská

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Střední odborná škola stavební Karlovy Vary Sabinovo náměstí 16, Karlovy Vary Autor: Ing. Hana Šmídová Název materiálu:

Microsoft Excel kopírování vzorců, adresování, podmíněný formát. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

12. blok Pokročilé konstrukce SQL dotazů - část II

EXCELentní tipy a triky pro mírně pokročilé. Martina Litschmannová

Úvod do databázových systémů 3. cvičení

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Kontingenční tabulky v MS Excel 2010

KIV/ZIS - SELECT, opakování

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Transkript:

Multi-dimensional expressions Query sent to cube / returned from cube jazyk pro multidimenzionální dotazy ekvivalent SQL pro multidimenzionální databáze je jen prostředkem pro přístup k datům jako SQL navigace v multidimenzionálních datech vybírá datovou množinu z datové krychle zobrazí ji v dvojrozměrné tabulce

příkaz select SELECT [<specifikace_osy> [, <specifikace_osy>]] FROM [<specifikace_krychle>] WHERE [<specifikace_řezu>] SELECT <<set>> ON COLUMNS, <<set>> ON ROWS, <<set>> ON PAGE FROM <<cube>> WHERE <<tuple>> SELECT [ sloupec ] ON COLUMNS, [ řádek ] ON ROWS, [ stránka ] ON PAGE FROM <<cube>> WHERE <<tuple>>

příkaz select výpis jedné hodnoty v jednom sloupci celkovou sumu, kterou všichni zákazníci zaplatili za nápoje SELECT { [Measures].[Unit Sales] } ON COLUMNS jména objektů se doporučuje uzavřít do [ ] není to povinnost nutné u názvů objektů obsahující mezery [Unit Sales] nebo obsahující vyhrazená slova [Select] nutné používat úplné názvy objektů -> [2017].[Q1] jinak se použije první výskyt daného názvu objektu v krychli

příklad Year 2015 2016 2017 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Červenec Srpen Září Duben Květen Červen SELECT { [Time].[Year].[2015].[Q3].[2] } ON COLUMNS SELECT { [Year].[2015].[Q3].[2] } ON COLUMNS SELECT { [2015].[Q3].[2] } ON COLUMNS SELECT { [Time].[Q3].[2] } ON COLUMNS SELECT { [2015].[2] } ON COLUMNS

základní pojmy prvek / member libovolný prvek / objekt v hierarchii [Year] [2016] [2015].[Q3].[2] n-tice / tuple jeden prvek / průnik dvou prvků / průnik více prvků průnik více prvků oddělit, { [Time].[Year].[2015].[Q3].[2] } {( [2017].[Q2].[1], [Customers].[USA]) } množina / cellset množina n-tic / množina prvků množina buněk ve výsledné tabulce každý prvek stejnou dimenzi SELECT { ([2015].[Q1]), ([2016].[Q1]) } ON COLUMNS

Dimenze = osy tabulky výpis dvourozměrné tabulky údajů SELECT = volba dimenzí výsledné tabulky, FROM = výběr krychle 1. dimenze = 3 sloupce, 2. dimenze = 2 řádky SELECT { [sloupec] } ON COLUMNS { [řádek] } ON ROWS FROM [cube] SELECT { [Product].[All products].[drink], [Product].[All products].[food], [Product].[All products].[non-consumable] } ON COLUMNS, { [Customers].[Country].[CR].[UL], [Customers].[Country].[CR].[LT] } ON ROWS Drink Food Non-consumable UL 4 352,00 28 643,00 7 521,00 LT 3 957,00 29 157,00 8 364,00

Dimenze = osy tabulky výpis dvourozměrné tabulky údajů WHERE = výřez / omezení množiny údajů nepovinná část SELECT { [sloupec] } ON COLUMNS { [řádek] } ON ROWS FROM [cube] WHERE ( [podmínka] ) SELECT { [Product].[All products].[drink], [Product].[All products].[food], [Product].[All products].[non-consumable] } ON COLUMNS, { [Customers].[Country].[CR].[UL], [Customers].[Country].[CR].[LT] } ON ROWS WHERE ( [Gender].[F] )

Dimenze omezení na max. 128 dimenzí? definujeme slovně nebo číselně AXIS( <index> ) COLUMNS, ROWS, PAGES, SECTIONS, CHAPTERS, AXIS(0), AXIS(1), AXIS(2), AXIS(3), SELECT { [Product].[All products].[drink], [Product].[All products].[food] } ON COLUMNS, { [Customers].[Country].[CR].[UL], [Customers].[Country].[CR].[LT] } ON ROWS SELECT { [Product].[All products].[drink], [Product].[All products].[food] } ON AXIS(0), { [Customers].[Country].[CR].[UL], [Customers].[Country].[CR].[LT] } ON AXIS(1)

Dimenze definice osy - absolutně syntaxe AXIS(0) odpovídá ose X, AXIS(1) odpovídá ose Y, AXIS(2) odpovídá ose Z, <specifikace_osy> ::= <set> ON <jmeno_osy> <jmeno_osy> ::= COLUMNS ROWS PAGES SECTIONS CHAPTERS AXIS(<index>) SELECT { [Product].[All products].[drink], [Product].[All products].[food] } ON COLUMNS, { [Customers].[Country].[CR].[UL], [Customers].[Country].[CR].[LT] } ON ROWS, { [Year].[2015].[Q3].[2], [Year].[2016].[Q3].[2] } ON PAGES

Dimenze definice osy - relativně syntaxe PREVMEMBER = předchozí záznam dimenze NEXTMEMBER = následující záznam dimenze SELECT { [Product].[All products].[drink] } ON COLUMNS, {[Year].[2015].[Q3].[2] } ON ROWS SELECT { [Product].[All products].[drink] } ON COLUMNS, {[Year].[2015].[Q3].[2].PREVMEMBER } ON ROWS SELECT { [Product].[All products].[drink] } ON COLUMNS, {[Year].[2015].[Q3].[2].NEXTMEMBER } ON ROWS

Dimenze definice osy - relativně syntaxe LEAD(n) = předstih, předchozí n-tá dimenze LAG(n) = zpoždění, následující n-tá dimenze SELECT { [Product].[All products].[drink] } ON COLUMNS, {[Year].[2015].[Q3].[2] } ON ROWS SELECT { [Product].[All products].[drink] } ON COLUMNS, {[Year].[2015].[Q3].[2].LEAD(2) } ON ROWS SELECT { [Product].[All products].[drink] } ON COLUMNS, {[Year].[2015].[Q3].[2].LAG(2) } ON ROWS

Dimenze os změna dimenze osy MEMBERS SELECT { [Product].[All products].[drink] } ON COLUMNS, {[Time].[Year].MEMBERS } ON ROWS Drink 2015 215 358,00 2016 231 569,00 2017 239 492,00

Dimenze os změna dimenze osy MEMBERS SELECT { [Product].[All products].[drink] } ON COLUMNS, {[Time].MEMBERS } ON ROWS Drink 2015 215 358,00 Q1 59 367,00 Leden 21 168,00 Únor 19 765,00 Březen 18 434,00 Q2 59 207,00 Duben 19 257,00 Květen 18 979,00 Červen 20 971,00 Q3 60 841,00 Červenec 22 013,00 Srpen 20 024,00 : :

řezy WHERE není určen pro omezení množiny údajů jako v SQL určen pro definování řezu množinou údajů SELECT { [Product].[All products].[drink], [Product].[All products].[food] } ON COLUMNS, { [Year].[2015].[Q3].[2], [Year].[2016].[Q3].[2], [Year].[2017].[Q3].[2] } ON ROWS WHERE [Customers].[Country].[CR].[UL] Drink Food 2015 Srpen 2 168,00 18 287,00 2016 Srpen 2 641,00 19 164,00 2017 Srpen 1 975,00 21 037,00

interval osy operátor : pro vymezení určitého intervalu dimenze např. časová dimenze potravin od února 2015 do srpna 2015 SELECT { [Product].[All products].[food] } ON COLUMNS, {[Year].[2015].[Q1].[2] : [Year].[2015].[Q2].[3] } ON ROWS Food Únor 18 287,00 Březen 19 164,00 Duben 21 037,00 Květen 20 513,00 Červen 19 841,00

fakta výpis měrných jednotek obchodování SELECT { [Product].[All products].[drink] } ON COLUMNS, { [Measures].[Unit Sales], -- jednotky prodeje [Measures].[Store Sales], -- obchody [Measures].[Sales Count], -- počet prodejů [Measures].[Sales Average] } ON ROWS, -- průměrný prodej

prázdné buňky NON EMPTY vypíše jen neprázdné buňky SELECT NON EMPTY { [Product].[All products].members } ON COLUMNS, { [Year].[2015].[Q1].[1] } ON ROWS WHERE [Customers].[Country].[CR].[UL] Drink Food Non-consumable Leden 4 352,00 7 521,00 Drink Non-consumable Leden 4 352,00 7 521,00

vypočtené prvky WITH pro výpočty hodnot pomocí aritmetických operátorů a funkcí v případě nevyhovující hierarchie dimenze WITH MEMBER [Time].[1.pololetí] AS SUM({[Time].[Q1], [Time].[Q2]}) MEMBER [Time].[2.pololetí] AS SUM({[Time].[Q3], [Time].[Q4]}) SELECT NON EMPTY { [Product].[All products].members } ON COLUMNS, { [Time].[1.pololetí], [Time].[2.pololetí] } ON ROWS Drink Food Non-consumable 1.pololetí 4 352,00 28 643,00 7 521,00 2.pololetí 3 957,00 29 157,00 8 364,00

podmínka IIF() vypíše hodnoty pouze pokud splňují zadanou podmínku WITH MEMBER [Measures].[Super Obrat] AS IIF([Measures].[Store Sales] > 20000, Yes, No ) SELECT NON EMPTY { [Product].[All products].members } ON COLUMNS, { [Measures].[Store Sales], [Measures].[Super Obrat] } ON ROWS WHERE [Customers].[Country].[CR].[UL]

křížové spojení CROSSJOIN() slouží ke spojení dvou různých dimenzí a výpisu všech možných kombinací SELECT CROSSJOIN( { [Product].[Mléko plnot], [Product].[Mléko polot] }, { [Time].[2015], [Time].[2016] } ) ON COLUMNS, { [Country].[CR].[UL], [Country].[CR].[LT] } ON ROWS UL LT Mléko plnotučné Mléko polotučné 2015 2016 2015 2016

křížové spojení CROSSJOIN() můžeme kombinovat s NON EMPTY SELECT NON EMPTY CROSSJOIN( { [Product].[Mléko plnot], [Product].[Mléko polot] }, { [Time].[2015], [Time].[2016] } ) ON COLUMNS, NON EMPTY { [Country].[CR].[UL], [Country].[CR].[LT] } ON ROWS UL LT Mléko plnotučné Mléko polotučné 2015 2016 2015 2016

křížové spojení CROSSJOIN() můžeme kombinovat dimenze i v řádcích SELECT NON EMPTY CROSSJOIN( { [Product].[Mléko plnot], [Product].[Mléko polot] }, { [Time].[2015], [Time].[2016] } ) ON COLUMNS, NON EMPTY CROSSJOIN( { [Country].[CR].MEMBERS }, { [Gender].[M], [Gender].[F] } ) ON ROWS UL LT M F M F Mléko plnotučné Mléko polotučné 2015 2016 2015 2016

křížové spojení operátor * (asterix) používá se podobně jako operátor násobení SELECT NON EMPTY ( { [Product].[Mléko plnot], [Product].[Mléko polot] } * { [Time].[2015], [Time].[2016] } ) ON COLUMNS, NON EMPTY ( { [Country].[CR].MEMBERS } * { [Gender].[M], [Gender].[F] } ) ON ROWS UL LT M F M F Mléko plnotučné Mléko polotučné 2015 2016 2015 2016

redukce údajů FILTER() omezení množiny údajů (jako where u selectu) syntaxe FILTER(<<set>>, bool podmínka) operátory pro podmínku porovnávání = <> > < >= <= logické NOT, AND, OR SELECT { [Product].[All products].[food] } ON COLUMNS, FILTER( { [Time].[Year].MEMBERS }, [Product].[All products].[food] > 20000 ) ON ROWS

setřídění množiny ORDER() syntaxe ORDER(<<set>>, {<<výraz1>> <<výraz2>>} ASC DESC BASC BDESC ) setřídění hierarchické DESC = sestupně, tj. od nejvyšší hodnoty po nejnižší zajímají nás hlavně vysoké obraty ASC = vzestupně, tj. od nejnižší hodnoty po nejvyšší zajímají nás hlavně skryté rezervy setřídění nehierarchické BASC BDESC

setřídění množiny ORDER() syntaxe ORDER( <<set>>, { <<výraz1>> <<výraz2>> }, ASC DESC BASC BDESC ) SELECT { [Product].[All products].[food] } ON COLUMNS, NON EMPTY ORDER( { [Time].[Year].MEMBERS }, [Product].[All products].[food], DESC ) ON ROWS SELECT { [Product].[All products].[food] } ON COLUMNS, NON EMPTY ORDER( { [Time].[Year].MEMBERS }, [Product].[All products].[food], BDESC ) ON ROWS

vytvoření krychle CREATE CUBE syntaxe zjednodušená CREATE CUBE <název krychle> ( DIMENSION <název> [TYPE <typ>], LEVEL <název> [TYPE <typ>], LEVEL <název> [TYPE <typ>], MEASURE <název> FUNCTION <název>, ) CREATE CUBE Prodeje ( DIMENSION [Kraje], LEVEL [Vse] TYPE ALL, LEVEL [Kraje], LEVEL [Okresy], LEVEL [Mesta], LEVEL [ZakaznikID], DIMENSION [Datum] TYPE TIME, LEVEL [Vse] TYPE ALL, LEVEL [Rok], LEVEL [Kvartal], LEVEL [Mesic], LEVEL [Den], DIMENSION, LEVEL, MEASURE [Soucet Ceny] FUNCTION SUM MEASURE [Soucet Celkem] FUNCTION SUM )

http://olap.com/types-of-olap-systems/ https://mondrian.pentaho.com/documentation/olap.php http://etl-tools.info/en/pentaho-tutorial-l003_cube_designer.htm