Krzysztof Dembczyński Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Inteligentne Systemy Wspomagania Decyzji Studia magisterskie, semestr I Semestr letni 2007/08
Plan wykładu Systemy baz i hurtowni danych wprowadzenie do wykładu Modele danych i ewolucja systemów baz danych Projektowanie hurtowni danych i modelowanie wielowymiarowe Systemy OLAP Proces ekstrakcji, transformacji i ładowania danych (Proces ETL) Analiza i eksploracja danych
Plan wykładu 1 Języki zapytań do hurtowni danych 2 SQL3 3 MDX 4 Podsumowanie
Plan wykładu 1 Języki zapytań do hurtowni danych 2 SQL3 3 MDX 4 Podsumowanie
Hurtownie danych wymagaja specyficznego podejścia do zadawania zapytań. SQL3 (ROLAP) MDX (MOLAP)
Plan wykładu 1 Języki zapytań do hurtowni danych 2 SQL3 3 MDX 4 Podsumowanie
SQL3 Rozszerzenia języka SQL GROUP BY ROLLUP, GROUP BY CUBE.
GROUP BY CUBE SELECT Czas, Produkt, Lokalizacja, Dostawca, SUM(Zysk) FROM Sprzedaż GROUP BY CUBE (Czas, Produkt, Lokalizacja, Dostawca);
GROUP BY CUBE SELECT Czas, Produkt, Lokalizacja, Dostawca, SUM(Zysk) FROM Sprzedaż GROUP BY Czas, Produkt, Lokalizacja, Dostawca UNION ALL SELECT Czas, Produkt, Lokalizacja, *, SUM(Zysk) FROM Sprzedaż GROUP BY Czas, Produkt, Lokalizacja UNION ALL SELECT Czas, Produkt, *, Dostawca, SUM(Zysk) FROM Sprzedaż GROUP BY Czas, Produkt, Dostawca UNION ALL... UNION ALL SELECT *, *, *, *, SUM(Zysk) FROM Sprzedaż;
GROUP BY CUBE SELECT Academic_year, Name, AVG(Grade) FROM Students_grades GROUP BY CUBE(Academic_year, Name); Academic_year Name AVG(Grade) 2001/2 Stefanowski 4.2 2001/2 Słowiński 4.1 2002/3 Stefanowski 4.0 2002/3 Słowiński 3.8 2003/4 Stefanowski 3.9 2003/4 Słowiński 3.6 2003/4 Dembczyński 4.8 2001/2 NULL 4.15 2002/3 NULL 3.85 2003/4 NULL 3.8 NULL Stefanowski 3.9 NULL Słowiński 3.6 NULL Dembczyński 4.8 NULL NULL 3.95
GROUP BY ROLLUP SELECT Czas, Produkt, Lokalizacja, Dostawca, SUM(Zysk) FROM Sprzedaż GROUP BY ROLLUP (Czas, Produkt, Lokalizacja, Dostawca);
GROUP BY CUBE SELECT Czas, Produkt, Lokalizacja, Dostawca, SUM(Zysk) FROM Sprzedaż GROUP BY Czas, Produkt, Lokalizacja, Dostawca UNION ALL SELECT Czas, Produkt, Lokalizacja, *, SUM(Zysk) FROM Sprzedaż GROUP BY Czas, Produkt, Lokalizacja UNION ALL SELECT Czas, Produkt, *, *, SUM(Zysk) FROM Sprzedaż GROUP BY Czas, Produkt UNION ALL SELECT Czas, *, *, *, SUM(Zysk) FROM Sprzedaż GROUP BY Czas UNION ALL SELECT *, *, *, *, SUM(Zysk) FROM Sprzedaż;
GROUP BY ROLLUP SELECT Academic_year, Name, AVG(Grade) FROM Students_grades G GROUP BY ROLLUP(Academic_year, Name); Academic_year Name AVG(Grade) 2001/2 Stefanowski 4.2 2001/2 Słowiński 4.1 2002/3 Stefanowski 4.0 2002/3 Słowiński 3.8 2003/4 Stefanowski 3.9 2003/4 Słowiński 3.6 2003/4 Dembczyński 4.8 2001/2 NULL 4.15 2002/3 NULL 3.85 2003/4 NULL 3.8 NULL NULL 3.95
Plan wykładu 1 Języki zapytań do hurtowni danych 2 SQL3 3 MDX 4 Podsumowanie
(Multidimensional Expressions): Podstawowe terminy: Wymiar (Dimension), Hierarchia (Hierarchy), Poziom (Level), Członek (Member), Miara (Measure), Krotka (Tuple), Zbiór (Set). MDX SELECT {[CARS].[All CARS].[Chevy], [CARS].[All CARS].[Ford]} ON ROWS, {[DATE].[All DATE].[March], [DATE].[All DATE].[April]} ON COLUMNS FROM MDDBCARS;
(Multidimensional Expressions): MDX SELECT {[CARS].[ALL CARS].[CHEVY], [CARS].[ALL CARS].[FORD]} ON COLUMNS, {[DATE].[ALL DATE].[MARCH], [DATE].[ALL DATE].[APRIL]} ON ROWS FROM MDDBCARS WHERE ([MEASURES].[SALES_N])
(Multidimensional Expressions): MDX SELECT {[CARS].[ALL CARS].[CHEVY], [CARS].[ALL CARS].[FORD]} ON COLUMNS, {[DATE].[ALL DATE].[JANUARY]:[DATE].[ALL DATE].[APRIL]} ON ROWS FROM MDDBCARS
(Multidimensional Expressions): MDX SELECT {[CARS].[ALL CARS].[CHEVY], [CARS].[ALL CARS].[FORD]} ON COLUMNS, {[DATE].MEMBERS} ON ROWS FROM MDDBCARS
(Multidimensional Expressions): MDX SELECT {[CARS].[ALL CARS].[FORD].CHILDREN} ON COLUMNS, {[DATE].MEMBERS} ON ROWS FROM MDDBCARS
(Multidimensional Expressions): MDX SELECT {([CARS].[ALL CARS].[CHEVY], [MEASURES].[SALES_SUM]), ([CARS].[ALL CARS].[CHEVY], [MEASURES].[SALES_N]), ([CARS].[ALL CARS].[FORD], [MEASURES].[SALES_SUM]), ([CARS].[ALL CARS].[FORD], [MEASURES].[SALES_N]) } ON COLUMNS, {[DATE].MEMBERS} ON ROWS FROM MDDBCARS
(Multidimensional Expressions): MDX SELECT {CROSSJOIN({[CARS].[ALL CARS].[CHEVY], [CARS].[ALL CARS].[FORD]}, {[MEASURES].[SALES_SUM], [MEASURES].[SALES_N]}) } ON COLUMNS, {[DATE].MEMBERS} ON ROWS FROM MDDBCARS
(Multidimensional Expressions): MDX SELECT {CROSSJOIN ({[CARS].[ALL CARS].[CHEVY], [CARS].[ALL CARS].[FORD]}, {[MEASURES].[SALES_SUM], [MEASURES].[SALES_N]}) } ON COLUMNS, NON EMPTY {[DATE].MEMBERS} ON ROWS FROM MDDBCARS
(Multidimensional Expressions): MDX SELECT NON EMPTY [Store Type].[Store Type].MEMBERS ON COLUMNS, FILTER([Store].[Store City].MEMBERS, (Measures.[Unit Sales], [Time].[1997]) > 25000) ON ROWS FROM [Sales] WHERE (Measures.[Profit], [Time].[Year].[1997])
(Multidimensional Expressions): MDX SELECT Measures.MEMBERS ON COLUMNS, ORDER({[Store].[Store City].MEMBERS}, Measures.[Sales Count], BDESC) ON ROWS FROM [Sales]
(Multidimensional Expressions): MDX WITH MEMBER Measures.ProfitPercent AS (Measures.[Store Sales] - Measures.[Store Cost]) / (Measures.[Store Cost]), FORMAT_STRING = #.00%, SOLVE_ORDER = 1 WITH MEMBER [Time].[First Half 97] AS [Time].[1997].[Q1] + [Time].[1997].[Q2] MEMBER [Time].[Second Half 97] AS [Time].[1997].[Q3] + [Time].[1997].[Q4]
(Multidimensional Expressions): MDX WITH MEMBER Measures.ProfitPercent AS (Measures.[Store Sales] - Measures.[Store Cost]) / (Measures.[Store Cost]), FORMAT_STRING = #.00%, SOLVE_ORDER = 1 MEMBER [Time].[First Half 97] AS [Time].[1997].[Q1] + [Time].[1997].[Q2] MEMBER [Time].[Second Half 97] AS [Time].[1997].[Q3] + [Time].[1997].[Q4] SELECT {[Time].[First Half 97], [Time].[Second Half 97], [Time].[1997].CHILDREN} ON COLUMNS, {[Store].[Store Name].MEMBERS} ON ROWS FROM [Sales]
(Multidimensional Expressions): MDX WITH SET [Quarter1] AS GENERATE([Time].[Year].MEMBERS, {[Time].CURRENTMEMBER.FIRSTCHILD}) SELECT [Quarter1] ON COLUMNS, [Store].[Store Name].MEMBERS ON ROWS FROM [Sales] WHERE (Measures.[Profit])
Plan wykładu 1 Języki zapytań do hurtowni danych 2 SQL3 3 MDX 4 Podsumowanie
Podsumowanie SQL3 język dla systemów ROLAP, MDX język dla systemów MOLAP.
Plan wykładu Systemy baz i hurtowni danych wprowadzenie do wykładu Modele danych i ewolucja systemów baz danych Projektowanie hurtowni danych i modelowanie wielowymiarowe Systemy OLAP Proces ekstrakcji, transformacji i ładowania danych (Proces ETL) Analiza i eksploracja danych