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

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

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

Analýza a modelování dat5. přednáška

Helena Palovská

Historie databázových modelů

Multidimenzionální model

● Kvantitativní typ faktu s určitými hledisky –– např.:

– „Kdo komu kdy jak moc čeho prodal.“

– kdo, komu, čeho, kdy – hierarchická hlediska:– divize – pobočka – oddělení – pracovník– region – země – kraj – okres – zákazník– nadkategorie – kategorie – produkt – rok – čtvrtletí – měsíc – den– rok – týden – den

● i více různých hierarchií pro jedno hledisko

– hlediska jsou vzájemně nezávislá

Multi-dimenzionalita

● Každé hledisko = jedna dimenze● Kvantitativní ukazatel (measure) = číselná

funkce v multi-dimenzionálním prostoru

Ukázka OLAP v MS Access:http://nb.vse.cz/~palovska/bivs/SevVi.zip

snímek z Accessu

dimension

dimension dimension

dimension hierarchy level

hierarchy level

hierarchy level

measure

slice

drill down

roll up

Agregace (roll up)

● Nadřízené elementy „agregují“ measure– rok agreguje čtvrtletí, ...

– kategorie produktu agreguje její podkategorie

Více různých ukazatelů...

● Pro stejné dimenze různé ukazatele (measures):

– množství

– tržba

– zisk

– očekávané prodeje

– ...

Příkladhttp://msdn.microsoft.com/en-us/library/aa216772(SQL.80).aspx

Speciální varianta measure

● ano/ne (žádný/nějaký)● „agregace“ je také ano/ne (žádný/nějaký)

Vlastnosti pozic (members) v dimenzích

● Mohou mít popisné atributy– váha, charakteristika, adresa

● Dají se použít efektivní identifikátory– množina pozic dané dimenze je většinou

relativně stálá

Schéma 1

Schéma 2

Dotazovací jazyk (MDX)

SELECT axis1 ON COLUMNS, axis2 ON ROWS FROM cube

SELECT

Years.MEMBERS ON COLUMNS,

Regions.Continent.MEMBERS ON ROWS

FROM Sales

základní syntaxe

Příklady: Mosha Pasumansky

Dotazovací jazyk (MDX)

SELECT

{ Years.[1996], Years.[1997] } ON COLUMNS,

Regions.Continent.MEMBERS ON ROWS

FROM Sales

výběr pozic z dimenze

Dotazovací jazyk (MDX)

SELECT

{ Years.[1996], Years.[1997] } ON COLUMNS,

Regions.Continent.MEMBERS ON ROWS

FROM Sales

WHERE ( Products.[Product Group].[Computers] )

slice

Dotazovací jazyk (MDX)

SELECT

{ Years.[1996], Years.[1997] } ON COLUMNS,

Regions.Continent.MEMBERS ON ROWS

FROM Sales

WHERE ( Products.[Product Group].[Computers], Customers.[AT&T] )

slice

Dotazovací jazyk (MDX)

SELECT

{ Years.[1996], Years.[1997] } ON COLUMNS,

Regions.Continent.MEMBERS ON ROWS

FROM Sales

WHERE

( Products.[Product Group].[Computers],

Customers.[AT&T],

Measures.[Units] )

slice

Dotazovací jazyk (MDX)

SELECT

{ Continent.[Europe], Continent.[Asia] } ON AXIS(0),

{ Product.[Computers], Product.[Printers] } ON AXIS(1),

{ Years.[1996], Years.[1997] } ON AXIS(2)

FROM Sales

více-dimenzionální výsledek

Dotazovací jazyk (MDX)

WITH

MEMBER Measures.Profit AS 'Measures.Sales – Measures.Cost'

SELECT

Products.MEMEBERS ON COLUMNS,

Year.MEMEBERS ON ROWS

FROM Sales

WHERE ( Measures.Profit )

výrazy

Dotazovací jazyk (MDX)

WITH

MEMBER Measures.Profit AS 'Measures.Sales – Measures.Cost'

MEMBER Measures.ProfitPercent AS 'Measures.Profit / Measures.Cost', FORMAT_STRING = '#.#%'

SELECT

{ Measures.Profit, Measures.ProfitPercent } ON COLUMNS

FROM Sales

výrazy

Dotazovací jazyk (MDX)

WITH MEMBER Time.[97 to 98] AS 'Time.[1998] – Time.[1997]'

SELECT

{ Time.[97 to 98] } ON COLUMNS,

Measures.MEMBERS ON ROWS

FROM Sales

výrazy

Dotazovací jazyk (MDX)

WITH MEMBER Measures.Profit AS 'Measures.Sales – Measures.Cost'

MEMBER Time.[97 to 98] AS 'Time.[1998] – Time.[1997]'

SELECT { Measures.Sales, Measures.Cost, Measures.Profit } ON COLUMNS,

{ Time.[1997], Time.[1998], Time.[97 to 98] } ON ROWS

FROM Sales

výrazy

Dotazovací jazyk (MDX)

WITH

MEMBER Measures.PercentageSales AS '(Regions.CurrentMember, Sales) / (Regions.CurrentMember.Parent, Sales)' , FORMAT_STRING = '#.00%'

SELECT

{ Sales, PercentageSales } ON COLUMNS, Regions.Cities.MEMBERS ON ROWS

FROM Sales

relativní odkazy

Dotazovací jazyk (MDX)

WITH MEMBER Measures.[Sales Growth] AS '(Sales) – (Sales, Time.PrevMember)'

SELECT

{ [Sales], [Sales Growth] } ON COLUMNS,

Month.MEMBERS ON ROWS

FROM Sales

relativní odkazy

Dotazovací jazyk (MDX)

WITH MEMBER Measures.[Sales Growth] AS '(Sales) – (Sales, Time.PrevMember)'

SELECT

{ [Sales], [Sales Growth] } ON COLUMNS,

Product.MEMBERS ON ROWS

FROM Sales

relativní odkazy

Dotazovací jazyk (MDX)

SELECT { [Europe], [USA], [USA].Children, [WA].Children, [Asia]} ON COLUMNS,

Year.MEMBERS ON ROWS

FROM Sales

množiny pozic

Multidimenzionální model● Přednosti

– vhodný pro OLAP aplikace● logický pohled odpovídá OLAP dotazům

● Nevhodný pro– OLTP

● zpracování transakcí business procesů

– proměnlivé struktury a množiny prvků dimenzí

– relační vyhledávání● knihovny, kina, dopravní spojení...

Populární vhled: http://www.dwreview.com/OLAP/Introduction_OLAP.html

Fyzická realizace

● Molap– sofistikované metody indexace

a řešení řídkosti kostek

● Rolap– „jeden nástroj na vše“

● ...