Analýza a modelování dat 5. 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
dimension dimension dimension hierarchy level hierarchy level snímek z Accessu dimension 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říklad http://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 Příklady: Mosha Pasumansky SELECT Years.MEMBERS ON COLUMNS, Regions.Continent.MEMBERS ON ROWS FROM Sales základní syntaxe
Dotazovací jazyk (MDX) výběr pozic z dimenze SELECT { Years.[1996], Years.[1997] } ON COLUMNS, Regions.Continent.MEMBERS ON ROWS FROM Sales
SELECT Dotazovací jazyk (MDX) { Years.[1996], Years.[1997] } ON COLUMNS, Regions.Continent.MEMBERS ON ROWS FROM Sales slice WHERE ( Products.[Product Group].[Computers] )
SELECT Dotazovací jazyk (MDX) { Years.[1996], Years.[1997] } ON COLUMNS, Regions.Continent.MEMBERS ON ROWS FROM Sales slice WHERE ( Products.[Product Group].[Computers], Customers.[AT&T] )
Dotazovací jazyk (MDX) slice SELECT { Years.[1996], Years.[1997] } ON COLUMNS, Regions.Continent.MEMBERS ON ROWS FROM Sales WHERE ( Products.[Product Group].[Computers], Customers.[AT&T], Measures.[Units] )
SELECT Dotazovací jazyk (MDX) { 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
WITH Dotazovací jazyk (MDX) MEMBER Measures.Profit AS 'Measures.Sales Measures.Cost' SELECT Products.MEMEBERS ON COLUMNS, Year.MEMEBERS ON ROWS FROM Sales výrazy WHERE ( Measures.Profit )
WITH Dotazovací jazyk (MDX) 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) výrazy 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
WITH Dotazovací jazyk (MDX) 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 Nevhodný pro OLTP logický pohled odpovídá OLAP dotazům 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 Rolap... sofistikované metody indexace a řešení řídkosti kostek jeden nástroj na vše