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

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

Data Cube. Luboš Kulič Tomáš Kuthan

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

Multi-dimensional expressions

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

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

Operátory ROLLUP a CUBE


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

Informační systémy 2006/2007

Distanční opora předmětu: Databázové systémy Tématický blok č. 3: OLAP, operátory CUBE a ROLLUP Autor: RNDr. Jan Lánský, Ph.D.

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Úvod 9

DATA CUBE. Mgr. Jiří Helmich

10. Datové sklady (Data Warehouses) Datový sklad

Multidimenzionální pohled na zdravotnické prostředí. INMED Petr Tůma

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

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

Podpora OLAP na platformě.net

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

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

Webový informační systém na podporu marketingu

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

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

Dobývání znalostí z databází. Databáze. datum jmeno prijmeni adresa_ulice adresa_mesto cislo_uctu platba zustatek

Business Intelligence. Adam Trčka

Advanced SQL Modeling in RDBMS - SQL Spreadsheet part1. Your Organization (Line #1)

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

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

kapitola 2 Datové sklady, OLAP

Přehled systému Microsoft SQL Server. Komu je kniha určena Struktura knihy Nejvhodnější výchozí bod pro čtení knihy Konvence a struktura knihy

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

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

3 zdroje dat. Relační databáze EIS OLAP

PostgreSQL jako platforma pro datové sklady

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

Základy business intelligence. Jaroslav Šmarda

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

Datový sklad. Datový sklad

Systém analýzy dat. Systém analysis of data

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

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

SQL SQL-SELECT. Informační a znalostní systémy. Informační a znalostní systémy SQL- SELECT

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

Podnikové informační systémy Jan Smolík

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

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

Databáze SQL SELECT. David Hoksza

Jak velká jsou? Obchodní analytici FB velké datové sady BI = business intelligence. OLAP = Online Analytical Processing. DWH = Data Warehouse

STÁTNÍ POKLADNA. Integrovaný informační systém Státní pokladny (IISSP)

Business Intelligence

Zpracování informací

PG 9.5 novinky ve vývoji aplikací

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19

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

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

KAPITOLA 2. Architektura, modelování a implementace Business Intelligence procesů v SQL Serveru V této kapitole:

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.

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

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

Databázové a informační systémy

ANALYSIS SERVICES PROJEKT VYTVOŘENÍ PROJEKTU A DATOVÉ KOSTKY

NÁSTROJE BUSINESS INTELLIGENCE

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

4IT218 Databáze. 4IT218 Databáze

Seriál II.II Vektory. Výfučtení: Vektory

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

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

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

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

Datové sklady. Ing. Jan Přichystal, Ph.D. 1. listopadu PEF MZLU v Brně

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

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

Materializované pohledy

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

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Databázové systémy. 10. přednáška

MS Access Dotazy SQL

Analýza dat skoro zadarmo možnosti rozborů pro malé organizace

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

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

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

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

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

Úvod do databázových systémů. Ing. Jan Šudřich

VYUŽITÍ OLAP NADSTAVEB V GIS

37. Indexování a optimalizace dotazů v relačních databázích, datové struktury, jejich výhody a nevýhody

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

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

MBI - technologická realizace modelu

DIPLOMOVÁ PRÁCE. Petr Melichárek Analytické zpracování XML dokumentů

KAPITOLA 1 Představení platformy Microsoft SQL Server 2008

Paralelní dotazy v PostgreSQL 9.6 (a 10.0)

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

Datové modelování II

KIV/ZIS - SELECT, opakování

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

Michal Krátký, Miroslav Beneš

Databázové a informační systémy Jana Šarmanová

Dotazování v relačním modelu a SQL

Transkript:

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í nahoru - nadkrychle GROUPING SETS vlastní definice seskupujících množin díky těmto operátorům tvoříme v obyčejné relační databázi agregační dotazy nad tabulkami jako nad kostkou

MDX Dotazování pomocí MDX MultiDimensional expressions speciální dotazovací jazyk nad kostkami v rámci OLAP (OnLine Analytical Processing) navržen Microsoftem, standardizován podporován např. v Microsoft SQL Server Analysis Services nadstavba (nástroj) Microsoft SQL Serveru pro OLAP a data mining

Uložení kostky pro OLAP MOLAP - Multidimensional OLAP data a výsledky agregací jsou uloženy ve speciálním formátu ROLAP - Relational OLAP data a výsledky agregací jsou uloženy v relační databázi HOLAP Hybrid OLAP hybridní přístup MS podporuje všechny přístupy

Základní syntaxe SELECT osa1 ON COLUMNS, osa2 ON ROWS FROM kostka [ WHERE specifikace_řezu ] podobnost s SQL je pouze v klíčových slovech SELECT FROM, pracujeme s kostkou, ne s tabulkami

Základní syntaxe dotazy MDX nezpracovává databázový server, ale server OLAP (MS Analysis Services) jako klient může sloužit i MS excel MS Excel umí poslat serveru MS Analysis Services dotaz v MDX výsledek je primárně dvourozměrná tabulka tří a vícerozměrný se rozpadá na více dvourozměrných tabulek třírozměrný by mohl být akceptovatelný ve spojení s 3D brýlemi

Souřadnice bodů (2,4) (2015,Components)

Kostka tabulka prodej_baget takto by mohla být uložena kostka v ROLAP

Kostka Datum bod o souřadnicích (Trója, 30.10.2007,golf) má hodnotu 2 31.10.2007 30.10.2007 cvalík golf Trója Voršilská Menza Bageta

Kostka souřadnice (n-tice, tuple) (Trója, 30.10.2007,golf) neúplná souřadnice (Trója, 30.10.2007) jak se automaticky doplňují další? defaultní, jsou-li definovány všechny hodnoty agreguje se pro všechny členy v dané dimenzi první - pokud předchozí kroky nejsou aplikovatelné (např. u měr, které nemají all members) kostka vrátí z dané dimenze to první, co jí přijde pod ruku

Kostka koncepty: dimenze datum, bageta, menza míra (measure) počet prodaných kusů mohu mít i jiné míry cena, míra může být i vypočítaná zisk jako rozdíl tržeb a nákladů míru mohu chápat také jako další dimenzi (Trója, 30.10.2007,golf, 2)

zdroj: Jiří Neoral Kostka

Kostka co bychom viděli na předchozí obrazovce pro náš příklad? Cube prodej_baget Measure počet_kusu bageta datum menza

Dimenze dimenze mohou mít i úrovňovou hierarchii http://msdn.microsoft.com/en-us/library/aa216772(sql.80).aspx 2 dimenzionální míra, na data se můžeme dívat jako na 5 dimenzionální vektor (Source,Route,Time,Packages,Last)

Příklad: Dimenze rozšíření kostky prodeje na hierarchické dimenze: zachováme 3 dimenze a jednu míru prodané množství dimenze prodejního místa dimenze času dimenze výrobku

1. dimenze: dimenze místa Prodejna menza Voršilská Trója fakulta Právnická MFF

2. dimenze: dimenze času Čas rok pololetí1 leden 1.1.2016 únor pololetí2 červenec

3. dimenze: dimenze výrobku Výrobek bageta golf cvalík nápoj kofola pivo

Čas Kostka Výrobek Nápoj Bageta pivo kofola golf cvalík Trója Voršilská Menza Právnická MFF Fakulta Prodejna Výrobek Prodejna

Kostka přístup k datům [ ] : názvy dimenzí a souřadnic přístup přes hodnotu [Menza].[Trója] [Vyrobek].[Nápoj].[Kofola] přístup přes klíč [Menza].&[1] klíč hodnota pokud bychom samozřejmě měli v kolekci o Menzách definován klíč a klíčem by bylo ID

Kostka přístup k datům ( ) zbytek funkce, priorita matematických operací, n- tice ([Menza].[Trója],[Datum].[30.10.2007],[Bageta].[golf]) { } množiny (sety) souřadnic { ([Menza].[Trója],[Datum].[30.10.2007],[Bageta].[golf]), ([Menza].[Trója],[Datum].[30.10.2007],[Bageta].[golf]) }

Dotazy v DMX dotazy budeme formulovat nad kostkou bez hierarchie, pouze v některých případech použijeme hierarchii pro demonstraci nějakého jevu

Jednoduchý dotaz SELECT [DATUM].MEMBERS ON COLUMNS, [BAGETA].MEMBERS ON ROWS FROM prodej_baget MEMBERS znamená všechny hodnoty (pozice z dimenze), tj. všechny datumy a bagety

Jednoduchý dotaz dotaz agreguje prodeje: výsledek je tabulka: sloupce datumy řádky bagety 30.10.2007 31.10.2007 cvalík 9 11 golf 8 1

Jednoduchý dotaz odkazy na řádky a sloupce lze zapsat i ve formě čísel os sloupce: AXIS(0) řádky: AXIS(1) SELECT [DATUM].MEMBERS ON AXIX(0), [BAGETA].MEMBERS ON AXIS(1) FROM prodej_baget

Výběr pozice z dimenze SELECT [DATUM].[30.10.2007] ON COLUMNS, [BAGETA].MEMBERS ON ROWS FROM prodej_baget 30.10.2007 cvalík 9 golf 8

Výběr více pozic z dimenze uvažujme situaci, že dimenze Datum by měla více hodnot (pozic) 30.10.2007, 31.10.2007, 1.11.2007, atd. pokud bychom chtěli vybrat 2 pozice (pouze dva datumy do dvou sloupců), musíme z nich vytvořit množinu

SELECT Výběr více pozic z dimenze {[DATUM].[30.10.2017], [DATUM].[31.10.2017]} ON COLUMNS, [BAGETA].MEMBERS ON ROWS FROM prodej_baget 30.10.2007 31.10.2007 cvalík 9 11 golf 8 1

Výběr pozic z dimenze uvažujme hierarchický model chceme vypsat součet prodaných nápojů za celý rok do sloupců všechny prodejny do řádků pouze nápoje

Výběr pozic z dimenze Čas Prodejna Nápoj Bageta pivo kofola golf cvalík Trója Voršilská Menza Právnická MFF Fakulta Výrobek Prodejna

Výběr pozic z dimenze SELECT [PRODEJNA].MEMBERS ON COLUMNS, [VYROBEK].[NAPOJ].MEMBERS ON ROWS FROM prodej_baget Trója Voršilská Právnická MFF kofola XX ZZ AA BB pivo YY WW CC DD

Jednorozměrný výsledek agregační dotazy můžeme formulovat pouze do sloupců, tj. jednorozměrně v dotazu vynecháme ON ROWS osy nelze přeskakovat, nesmíme tedy vynechat ON COLUMNS a ponechat ON ROWS SELECT [DATUM].MEMBERS ON COLUMNS, FROM prodej_baget

Jednorozměrný výsledek sečte všechny prodeje dle datumů 30.10.2007 31.10.2007 17 12

Jednorozměrný výsledek chyba nelze přeskočit osy SELECT [DATUM].MEMBERS ON ROWS, FROM prodej_baget

SELECT Kompletní agregace FROM prodej_baget 29

Řez vrátíme se k jednoduchému modelu chceme vypsat tabulku s počtem prodaných kusů baget v jednotlivých dnech, ale pouze pro menzu Voršilská provedeme řez v rovině Voršilská

Datum Řez 31.10.2007 30.10.2007 cvalík golf Trója Voršilská Menza Bageta

Řez SELECT [DATUM].MEMBERS ON COLUMN, [BAGETA].MEMBERS ON ROWS FROM prodej_baget WHERE [MENZA].[Voršilská]

Řez 30.10.2007 31.10.2007 cvalík 5 4 golf 6 0

Řez řez mohu provést i ve více dimenzích za klauzulí WHERE napíši řezovou množinu mezi závorky ( ) provedeme řez (Voršilská, golf) SELECT [DATUM].MEMBERS ON COLUMN, FROM prodej_baget WHERE ([MENZA].[Voršilská], [Bageta].[Golf])

Datum Řez 31.10.2007 30.10.2007 cvalík golf Trója Voršilská Menza Bageta

Řez výsledek je jednodimenzionální, protože mám celkem 3 dimenze a ve dvou jsem provedl řez 30.10.2007 31.10.2007 6 0

Výrazy máme definováno více měr počet prodaných kusů (první míra) tržba za bagety náklady na nákup za bagety jsou v další hierarchické dimenzi MIRY chceme zjistit zisk zisk bude vypočítaná míra

Výrazy WITH MEMBER MIRY.ZISK AS 'MIRY.TZRBA MIRY.NAKLADY' SELECT [DATUM].MEMEBERS ON COLUMNS, [BAGETA].MEMBERS ON ROWS FROM Sales WHERE ( MIRY.ZISK )

Vícedimenzionální výsledek SELECT [DATUM].MEMEBERS ON AXIS(0), [BAGETA].MEMBERS ON AXIS(1), [MENZA].MEMBERS ON AXIS(2) FROM prodej_baget AXIS(2) = PAGES výsledek mohou být dvě tabulky, ne každý klient je umí zobrazit na obrazovce, budou pouze v reportu

Množiny pozic SELECT {[VYROBEK][NAPOJ].[PIVO], [VYROBEK].[BAGETA].MEMBERS } ON COLUMNS, [PRODEJNA].MEMBERS ON ROWS FROM prodej_baget