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

Podobné dokumenty
SQL Spreadsheet. Jakub Čermák

Kukhar Maria. Dotazovací jazyky I MFF UK 2012

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

Základy business intelligence. Jaroslav Šmarda

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

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

Operátory ROLLUP a CUBE

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

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

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

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


BI v rámci IS/ICT komponenty BI architektura. Charakteristika dat a procesů v IS/ICT. Datové sklady ukládání dat návrh datového skladu

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

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

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.

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

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

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

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

DATA CUBE. Mgr. Jiří Helmich

Databáze SQL SELECT. David Hoksza

Business Intelligence. Adam Trčka

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

Datový sklad. Datový sklad

Michal Krátký, Miroslav Beneš

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

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

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

Data Cube. Luboš Kulič Tomáš Kuthan

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 Bc. Veronika Tomsová

Temporální databáze. Jan Kolárik Miroslav Macík

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

PG 9.5 novinky ve vývoji aplikací

Informační systémy 2006/2007

TimescaleDB. Pavel Stěhule 2018

Optimalizace plnění a aktualizace velkých tabulek. Milan Rafaj, IBM

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

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

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

Dolování v objektových datech. Ivana Rudolfová

Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

Obsah. Úvod do problematiky. Datový sklad. Proces ETL. Analýza OLAP

Datové modelování II

Zdroje informací v organizaci IS/ICT BI v rámci IS/ICT historie architektura OLTP x DW ukládání dat

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

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

Pattern Datový sklad. RNDr. Ondřej Zýka

kapitola 2 Datové sklady, OLAP

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

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

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

4IT218 Databáze. 4IT218 Databáze

Multi-dimensional expressions

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

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

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

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

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

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

Datové sklady. Multidimenzionální modelování Modely datového skladu Návrh datového skladu v rámci návrhu IS/ICT. Vladimíra Zádová, KIN, EF, TUL

Dotazovací jazyk pro řazená data

Data Warehouses. Jaroslav Bayer 1. Fakulta informatiky Masarykova univerzita

Tvorba informačních systémů

NÁSTROJE BUSINESS INTELLIGENCE

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

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í

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

Trendy v IS/ICT přístupy k návrhu multidimenzionální modelování

Business Intelligence

Zpracování informací

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

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

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

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

Kapitola 6: Omezení integrity. Omezení domény

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

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

PV005 Služby počítačových sítí: Data Warehouses

METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15

Databázové systémy I

Databázové systémy úvod

Kapitola 4: SQL. Základní struktura

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

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

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

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

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

Ing. Roman Danel, Ph.D. 2010

Vkládání, aktualizace, mazání

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

Databáze 2011/2012 SQL SELECT II. RNDr.David Hoksza, Ph.D.

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

01. Kdy se začala formovat koncept relačních databází (Vznik relačního modelu, první definice SQL)? a) 1950 b) 1960 c) 1970 d) 1980

CSPUG 2011-květen. GridSQL a pg-pool II. Vratislav Beneš benes@optisolutions.cz

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

Jazyk S Q L základy, příkazy pro práci s daty

Importy dat z relační databáze do OLAP datových kostek

Transkript:

Advanced SQL Modeling in RDBMS - SQL Spreadsheet part1 2005-12-31 1.12.2009 Your Daniel Name Vojtek Jakub Your Valčík Title Your Organization (Line #1) Your Organization Query Languages (Line #2) I

Agenda SQL Spreadsheet OLAP, ROLAP Spreadsheet klauzule Reference Spreadsheets Pořadí vyhodnocení formulí UPDATES v SQL Spreadsheet Motivační příklad 2

SQL Spreadsheet Tabulkový procesor - MS Excel, OO Calc + Snadné vkládání dat, formulí, pěkné UI + Tvorba grafů - Omezení (velikost dat, 2 dimenze) - Paralelní zpracování - Žádná standardizace RDBMS Složité a neefektivní dotazování ve více rozměrných polích Mnohonásobná spojení (join) SQL Spreadsheet Spreadsheet-like rozšíření k SQL 3

SQL Spreadsheet Relace => n-dimenzionální pole formule definované přes buňky pole Adresace buněk je symbolická (dimenze) Rekurzivní reference a konvergenční podmínky Zahuštění Vyplnění mezer v řídkých datech Formule jsou definovány v nové SQL klauzuli Výsledek je relace a může být dále použit Paralelní zpracování 4

OLAP x OLTP Online Transaction Processing Snadné a bezpečné ukládání Konkurenční prostředí Online Analytical Processing Jednorázově nahrávaná data Optimalizace pro (složité) dotazování Velké objemy dat, analýza obchodních trendů Tabulky nejsou normalizované (často redundantní uložení) 5

OLAP, ROLAP, MOLAP, HOLAP Multidimenzionální datový model MOLAP (Multidimensional OLAP) Vyžaduje před počítání a ukládání dat v kostce optimalizované multidimenzionální pole Rychlé výpočty, menší objem dat (x ROLAP) Pomalé nahrávání dat Problémy s kostkami o více jak 10 dimenzích ROLAP (Relational OLAP) Data jsou uložena relační databázi Pro výpočet je vygenerován SQL dotaz Škálovatelné, velké objemy dat, rychlé nahrávání dat(etl) Tvorba agregovaných tabulek, výpočty musí SQL zvládat Není hierarchické indexování HOLAP (Hybrid OLAP) 6

ROLAP Faktové tabulky, dimenzionální tabulky Dimenze určují úhel pohledu čas, produkt, zákazník Dimenze udržují hierarchie (vztah 1:N) Faktové tabulky (sledované ukazatele) prodej, náklady 3 dimenze Region PRODEJ Granularita Kvartál Rok Kategorie produktu Typ produktu Produkt 7

Schéma tabulek Schéma napojení hvězda, sněhová vločka D_TIME ID_CAS Datum Rok Kvartal Mesic... F_PRODEJ ID_CAS ID_REGION ID_PRODUKT SALES COST... D_PRODUCT ID_PRODUKT Nazev Kategori Subkategorie... D_REGION ID_REGION Nazev Uzemni jedn.... 8

Spreadsheet klauzule Faktová tabulka f(t,r,p,s,c) Dimenze t čas, r region, p produkt Metriky s prodej, c ceny Relační atributy dimenze x metriky PARTITION(PBY) Rozdělení do disjunktních podmnožin DIMENSION(DBY) Identifikují jedinečný řádek v každé části (partition) Buňka MEASURES(MEA) - Počítané výrazy <existing parts of a query block> SPREADSHEET PBY (cols) DBY (cols) M EA (cols) <processing options> (<formula>, <formula>,.., <formula>) 9

Příklad SQL Spreadsheet Vyhodnocení po spojeních, agregacích, finální projekcí, před ORDER BY Array notation - s[ vcr, 2002] SELECT r, p, t, s FROM f SPREADSHEET PBY(r) DBY (p, t) MEA (s) ( s[p='dvd',t=2002] =s[p='dvd',t=2001]*1.6, s[p='vcr',t=2002] =s[p='vcr',t=2000]+s[p='vcr',t=2001], s[p='tv', t=2002] =avg(s)[p='tv',1992<t<2002] ) 10

UPDATE, UPSERT SPREADSHEET PBY(r) DBY (p, t) MEA (s) ( UPSERT s[ tv, 2000] = s[ black-tv,2000] + s[ white-tv,2000] ) 11

Reference spreadsheet Objekty s různou dimenzionalitou Prodej(region, product, time, sales) Budget (r region, p prediction factor) SELECT r, t, s FROM f GROUP by r, t SPREADSHEET REFERENCE budget ON (SELECT r, p FROM budget) DBY(r) MEA(p) DBY (r, t) MEA (sum(s) s) ( s[ west,2002]= p[ west ]*s[ west,2001], s[ east,2002]= s[ east,2001]+s[ east,2000] ) 12

Pořadí vyhodnocení formulí Implicitně se formule vyhodnocují podle závislostí AUTOMATIC ORDER SPREADSHEET PBY(r) DBY (p, t) MEA (s) ( s[ dvd,2002] = s[ dvd,2000] + s[ dvd,2001] s[ dvd,2001] = 1000 ) SEQUENTIAL ORDER SPREADSHEET DBY(r,p,t) MEA(s) SEQUENTIAL ORDER (...<formulas>...) 13

UPDATES v SQL Spreadsheet SQL Spreadsheet je součástí dotazu Nezpůsobuje žádné změny v uložených datech Použití UPDATE a MERGE Obahuje explicitní spojení dotazu se spreadsheetem do cílové relace WHERE u ANSI SQL UPDATE se vztahuje na data, která chceme aktualizovat Čistší, ale slabší 14

UPDATE, MERGE MERGE INTO f USING ( SELECT r, p, t, s FROM f SPREADSHEET PBY(r) DBY (p, t) MEA (s) ( UPSERT s[ tv, *] = s[ black-tv,cv()] + s[ white-tv,cv()] ) ) v ON f.r = v.r AND f.p = v.p AND f.t = v.t WHEN MATCHED THEN UPDATE SET f.s = v.s WHEN NOT MATCHED THEN INSERT VALUES (v.r, v.p, v.t, v.s) 15

Motivační příklad Analytik předpovídá prodej pro rok 2002 Prodej 'tv' v roce 2002 je spočítán podle obchodního trendu jako průměrný přírůstek mezi lety 1992 a 2001 Prodej 'vcr' v roce 2002 je součet prodeje 'vcr' za 2000 a 2001 Prodej 'dvd' v 2002 je průměr předchozích tří let Nakonec chce analytik do každého regionu přidat nového člena dimenze 'video' pro rok 2002 definovaného jako prodej 'tv' + prodej 'vcr' Předpokládáme že řádky pro 'tv', 'dvd' a 'vcr' existují 16

Motivační příklad SELECT r, p, t, s FROM f SPREADSHEET PBY(r) DBY (p, t) MEA (s) ( F1: UPDATE s[ tv,2002] = s[ tv,2001] + Slope(s,t)[ tv,1992<=t<=2001]*s[ tv,2001], F2: UPDATE s[ vcr, 2002] = s[ vcr,2000]+s[ vcr,2001], F3: UPDATE s[ dvd,2002] = (s[ dvd,1999]+s[ dvd,2000]+s[ dvd,2001])/3, F4: UPSERT s[ video, 2002] = s[ tv,2002]+s[ vcr,2002] ) 17

ANSI SQL F1: agregační poddotaz, spojení do faktové tabulky f F2: dvojité spojení faktové tabulky sama se sebou F3: trojité spojení faktové tabulky sama se sebou F4: operaci UNION Složité generovat a neefektivní pro vykonání 18

SQL Spreadsheet Pouze jeden průchod dat pro vytvoření adresovatelné struktury hašovací tabulka nebo indexace všech formulí SLOPE funkce prochází data pro nalezení řádků vyhovujícím predikátu 1992 <= t <= 2001 Vyvodíme z omezení db že se jedná o Integer F1 se transformuje na F1: UPDATE s[ tv,2002] = s[ tv,2001]+ SLOPE(s,t)[ tv,t in (1992,...,2001)]* s[ tv,2001] To umožnuje použít náhodný přístup a nemusejí se data procházet a zjišťovat zda vyhovují predikátu F2, F3, F4 využívají strukturu přímo 19

Motivační příklad 2 Určení maximální splátky hypotéky Příjem je tvořen 2 složkami platem a výnosy z kapitálu Plat minus úroky hypotéky je daněn 38% Výnosy kapitálu jsou daněny 28% Čistý příjem = plat plus výnosy z kapitálu minus úroky minus daně Maximální odepsatelné výdaje v podobě úroků hypotéky jsou 30% čistého příjmu 20

Motivační příklad 2 SELECT account, b FROM ledger SPREADSHEET DBY (account) MEA (balance b) RULES IGNORE NAV ITERATE (100) UNTIL (ABS(b[ net ] - PREVIOUS(b[ net ])) < 0.01) ( F1: b[ interest ] = b[ net ] * 0.30, F2: b[ net ] = b[ salary ] +b[ capital gains ] - b[ interest ] - b[ tax ], F3: b[ tax ]=(b[ salary ]-b[ interest ])* 0.38 + b[ capital gains ] * 0.28 ) 21

Závislosti formulí F1 F2 F3 22

Výpočet pomocí iterací Account Input Balance Result Balance Salary 100,000.00 100,000.00 Capital gains 15,000.00 15,000.00 Net 0 61,382.80 Tax 0 35,202.36 Interest 0 18,414.83 23

Part - 2 PART - 2 24