Oracle i DB2 zadanie współfinansowane przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej - zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83 w ramach Europejskiego www.kapitalludzki.p.lodz.pl Funduszu Społecznego Praktyczne tworzenie hurtowni 2 Nauczycielem wszystkiego jest praktyka Juliusz Cezar Nauka to wiara w ignorancję ekspertów Richard Feynman Gdy niematematyk słyszy o czwartym wymiarze, to dostaje gęsiej skórki Albert Einstein 1
Analytical Workspace Manager AWM 4 AWM uruchomienie AWM jest narzędziem analityczny instalowanym z końcówką klienta 2
5 AWM uruchomienie AWM uruchomienie 6 3
7 AWM tworzenie wymiarów 8 AWM tworzenie wymiarów 4
9 AWM tworzenie wymiarów 10 AWM tworzenie wymiarów 5
11 AWM tworzenie wymiarów 12 AWM tworzenie wymiarów 6
13 AWM tworzenie wymiarów AWM podstawowa kostka 14 7
AWM podstawowa kostka 15 16 AWM podstawowa kostka 8
17 AWM podstawowa kostka AWM podstawowa kostka 18 9
AWM podstawowa kostka 19 AWM podstawowa kostka 20 10
AWM podstawowa kostka 21 AWM podstawowa kostka 22 11
AWM podstawowa kostka 23 AWM podstawowa kostka 24 12
25 AWM podstawowa kostka AWM podstawowa kostka 26 13
AWM podstawowa kostka 27 AWM podstawowa kostka 28 14
29 AWM podstawowa kostka AWM podstawowa kostka 30 15
AWM rozbudowa wymiaru dla kostki 31 AWM rozbudowa wymiaru dla kostki 32 16
33 AWM rozbudowa wymiaru dla kostki AWM rozbudowa wymiaru dla kostki 34 17
AWM rozbudowa wymiaru dla kostki 35 AWM rozbudowa wymiaru dla kostki 36 18
37 Generowanie "losowej" wartości ceny zakupu DECLARE CURSOR cur IS SELECT IdTowaru FROM Towar; BEGIN FOR rec IN cur LOOP UPDATE Towar SET CenaZakupu = Cena*DBMS_RANDOM.VALUE (0.7, 0.9) WHERE IdTowaru=rec.IdTowaru; END LOOP; COMMIT; END; 38 Stworzenie perspektyw wykorzystywanych do budowy wymiarów czasu CREATE OR REPLACE FORCE VIEW CZAS_RKM (RKM, RK, ROK, KWARTAL, MIESIAC) AS SELECT DISTINCT To_number( To_char(data,'yyyyqmm')) AS RKM, To_number( To_char(data,'yyyyq')) AS RK, To_char(data,'yyyy') AS rok, To_char(data,'q') AS kwartal, To_char(data,'mm') AS miesiac FROM Faktury ORDER BY RKM; CREATE OR REPLACE FORCE VIEW CZAS_ROK_KWARTAL (ROKKWARTAL, ROK, KWARTAL) AS SELECT DISTINCT To_number( To_char(data,'yyyyq')) AS rokkwartal, To_char(data,'yyyy') AS rok, To_char(data,'q') AS kwartal FROM Faktury ORDER BY rokkwartal; 19
39 Stworzenie perspektyw wykorzystywanych do budowy wymiarów czasu CREATE OR REPLACE FORCE VIEW CZAS_ROK_KWARTAL_MIESIAC (ROKKWARTALMIESIAC, ROKKWARTAL, ROK, KWARTAL, MIESIAC) AS SELECT DISTINCT To_number( To_char(data,'yyyyqmm')) AS rokkwartalmiesiac, TO_NUMBER(TO_CHAR(DATA,'yyyyq')) AS rokkwartal, To_char(data,'yyyy') AS rok, To_char(data,'q') AS kwartal, To_char(data,'mm') AS miesiac FROM Faktury ORDER BY rokkwartalmiesiac; CREATE OR REPLACE FORCE VIEW CZAS_T_DANE (DATA, ROKKWARTALMIESIAC, ROKKWARTAL, ROK, KWARTAL, MIESIAC) AS SELECT DISTINCT data, To_char(data,'yyyyqmm') AS rokkwartalmiesiac, TO_CHAR(DATA,'yyyyq') AS rokkwartal, To_char(data,'yyyy') AS rok, To_char(data,'q') AS kwartal, To_char(data,'mm') AS miesiac FROM Faktury ORDER BY rokkwartalmiesiac; 40 Stworzenie perspektyw wykorzystywanych jako tabela faktów CREATE OR REPLACE FORCE VIEW WSZYSTKO (IDKLIENTA, IDOSOBY, IDTOWARU, DATA, ROKKWARTALMIESIAC, ROKKWARTAL, SZT, WARTOSC, WARTOSCZAKUPU) AS SELECT IdKlienta, IdOsoby, IdTowaru, data, To_number( To_char(data,'yyyyqmm')) AS rokkwartalmiesiac, TO_NUMBER(TO_CHAR(DATA,'yyyyq')) AS rokkwartal, szt, cena * szt AS Wartosc, CenaZakupu*szt AS WartoscZakupu FROM FAKTURY JOIN TRANSAKCJE USING (IdFaktury) JOIN TOWAR USING (IdTowaru); 20
Wymiar czasu definiowany jako wymiar użytkownika 41 Wymiar czasu definiowany jako wymiar użytkownika 42 Hierarchia domyślna 21
Wymiar czasu definiowany jako wymiar użytkownika 43 Druga hierarchia Wymiar czasu definiowany jako wymiar użytkownika 44 Przetwarzana hierarchia domyślna (dla całego wymiaru) 22
Uproszczony wymiar czasu użytkownika 45 Wymiar czasu jako WYMIAR CZASU 46 23
Wymiar czasu jako WYMIAR CZASU dane z wymiaru 47 Wymiar klienci 48 24
Wymiar Pracownik Dział 49 Pracownik Value based hierarchy 50 Ustawienie value base hierarhy dostępne tylko podczas tworzenia wymiaru póżniej nieedytowalne 25
Mapowanie dla Value Based Hierarchy 51 Dane z wymiaru Value Based Hierarchy 52 26
Prosta kostka z pojedynczym wymiarem i miarą 53 Kostka o trzech miarach, dwóch wymiarach i dwóch miarach obliczanych 54 27
Wyświetlenie wszystkich miar w kostce 55 Filtrowanie dla działu Wyświetlenie jednej miary w kostce 56 Filtrowanie dla działu 28
Miara kalkulowana zysk 57 HURTOWNIA.ZYSKI.WARTOSC - HURTOWNIA.ZYSKI.WARTOSC_ZAKUPU Dane dla miary kalkulowanej zysk 58 HURTOWNIA.ZYSKI.WARTOSC - HURTOWNIA.ZYSKI.WARTOSC_ZAKUPU 29
Podstawowe operacje dla miar obliczanych 59 Miara kalkulowana - zastosowanie dzielenia 60 HURTOWNIA.ZYSKI.WARTOSC / HURTOWNIA.ZYSKI.WARTOSC_ZAKUPU 30
Dane - miara kalkulowana - zastosowanie dzielenia 61 HURTOWNIA.ZYSKI.WARTOSC / HURTOWNIA.ZYSKI.WARTOSC_ZAKUPU Kostka z wymiarem czasu jako wymiarem użytkownika 62 ograniczona liczba funkcji dla miar kalkulowanych 31
Zysk w czasie (user) 63 HURTOWNIA.ZYSKI.WARTOSC HURTOWNIA.ZYSKI.WARTOSC_ZAKUPU Dane dla zysk czas (user) 64 HURTOWNIA.ZYSKI.WARTOSC HURTOWNIA.ZYSKI.WARTOSC_ZAKUPU 32
Miara ranking dla czas (user) 65 RANK() OVER HIERARCHY (HURTOWNIA.CZAS_U_RKM.CZAS_RKM_H ORDER BY HURTOWNIA.ZYSK_RKM.ZYSK_CZAS DESC NULLS LAST WITHIN LEVEL) Dane dla miary ranking dla czas (user) 66 RANK() OVER HIERARCHY (HURTOWNIA.CZAS_U_RKM.CZAS_RKM_H ORDER BY HURTOWNIA.ZYSK_RKM.ZYSK_CZAS DESC NULLS LAST WITHIN LEVEL) 33
Inne możliwości funkcji definiujących miary 67 Miara procent zysku dla czas (user) 68 ((HURTOWNIA.ZYSK_RKM.WARTOSC - HURTOWNIA.ZYSK_RKM.WARTOSC_ZAKUPU) / ABS(HURTOWNIA.ZYSK_RKM.WARTOSC_ZAKUPU)) * 100 34
Dane dla miary procent zysku dla czas (user) 69 70 Miara definiowana przez wyrażenie dla czas (user) (ZYSK_RKM.ZYSK_CZAS / ZYSK_RKM.WARTOSC_ZAKUPU) * 100 35
Dane dla miary definiowana przez wyrażenie dla czas (user) 71 (ZYSK_RKM.ZYSK_CZAS / ZYSK_RKM.WARTOSC_ZAKUPU) * 100 Miara procent z całości dla czas (user) 72 SHARE(HURTOWNIA.ZYSK_RKM.ZYSK_CZAS OF HURTOWNIA.CZAS_U_RKM.CZAS_RKM_H TOP) * 100 36
Dane dla miary procent z całości dla czas (user) 73 SHARE(HURTOWNIA.ZYSK_RKM.ZYSK_CZAS OF HURTOWNIA.CZAS_U_RKM.CZAS_RKM_H TOP) * 100 Miara procent z rodzica dla czas (user) 74 SHARE(HURTOWNIA.ZYSK_RKM.ZYSK_CZAS OF HURTOWNIA.CZAS_U_RKM.CZAS_RKM_H PARENT) * 100 37
Dane dla miary procent z rodzica dla czas (user) 75 SHARE(HURTOWNIA.ZYSK_RKM.ZYSK_CZAS OF HURTOWNIA.CZAS_U_RKM.CZAS_RKM_H PARENT) * 100 Kostka z miarą czasu (user) i inną miarą 76 38
77 Dane dla kostki z miarą czasu (user) i inną miarą 78 Kostka z wymiarem hierarchicznym 39
79 Kostka z wymiarem hierarchicznym Dane z tej miary w tym widoku nie da się rozwinąć struktury!!!! Kostka z wymiarem czasu TIME 80 40
Miara do kostki z wymiarem czasu TIME do poprzedniego 81 LAG(HURTOWNIA.ZYSK_T.WARTOSC, 1) OVER HIERARCHY (HURTOWNIA.CZAS_T.ROK_KWARTAL_H) Dane dla kostki z wymiarem czasu TIME 82 LAG(HURTOWNIA.ZYSK_T.WARTOSC, 1) OVER HIERARCHY (HURTOWNIA.CZAS_T.ROK_KWARTAL_H) 41
83 Inne miary do kostki z wymiarem czasu TIME Miara do kostki z wymiarem czasu TIME procent z poprzedniego 84 LAG_VARIANCE_PERCENT(HURTOWNIA.ZYSK_T.WARTOSC, 1) OVER HIERARCHY (HURTOWNIA.CZAS_T.RIOK_KWARTAL_H) 42
Dane dla kostki z wymiarem czasu TIME procent z poprzedniego 85 LAG_VARIANCE_PERCENT(HURTOWNIA.ZYSK_T.WARTOSC, 1) OVER HIERARCHY (HURTOWNIA.CZAS_T.RIOK_KWARTAL_H) 86 Miara do kostki z wymiarem czasu TIME suma bieżąca YtoD SUM(HURTOWNIA.ZYSK_T.WARTOSC) OVER HIERARCHY (HURTOWNIA.CZAS_T.RIOK_KWARTAL_H BETWEEN UNBOUNDED PRECEDING AND CURRENT MEMBER WITHIN ANCESTOR AT LEVEL HURTOWNIA.CZAS_T.RIOK_KWARTAL_H.ROK) 43
87 Dane dla kostki z wymiarem czasu TIME suma bieżąca YtoD SUM(HURTOWNIA.ZYSK_T.WARTOSC) OVER HIERARCHY (HURTOWNIA.CZAS_T.RIOK_KWARTAL_H BETWEEN UNBOUNDED PRECEDING AND CURRENT MEMBER WITHIN ANCESTOR AT LEVEL HURTOWNIA.CZAS_T.RIOK_KWARTAL_H.ROK) Inne miary do kostki z wymiarem czasu 88 44
Miara do kostki z wymiarem czasu TIME równoległy okres 89 LAG_VARIANCE_PERCENT(ZYSK_T.WARTOSC, 1) OVER HIERARCHY (CZAS_T.RIOK_KWARTAL_H BY ANCESTOR AT LEVEL CZAS_T.KWARTAL POSITION FROM BEGINNING) Dane dla kostki z wymiarem czasu TIME równoległy okres 90 LAG_VARIANCE_PERCENT(ZYSK_T.WARTOSC, 1) OVER HIERARCHY (CZAS_T.RIOK_KWARTAL_H BY ANCESTOR AT LEVEL CZAS_T.KWARTAL POSITION FROM BEGINNING) 45
Inne miary dla kostki z wymiarem czasu TIME równoległy okres 91 Miara do kostki z wymiarem czasu TIME suma bieżąca 92 SUM(ZYSK_T.WARTOSC) OVER HIERARCHY (CZAS_T.RIOK_KWARTAL_H BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING WITHIN LEVEL) 46
Dane dla kostki z wymiarem czasu TIME suma bieżąca 93 SUM(ZYSK_T.WARTOSC) OVER HIERARCHY (CZAS_T.RIOK_KWARTAL_H BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING WITHIN LEVEL) Inne miary kostki z wymiarem czasu TIME 94 47
Miara do kostki z wymiarem czasu TIME średnia bieżąca 95 AVG(ZYSK_T.WARTOSC) OVER HIERARCHY (CZAS_T.RIOK_KWARTAL_H BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING WITHIN LEVEL) Dane dla kostki z wymiarem czasu TIME średnia bieżąca 96 AVG(ZYSK_T.WARTOSC) OVER HIERARCHY (CZAS_T.RIOK_KWARTAL_H BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING WITHIN LEVEL) 48
97 Miara do kostki z wymiarem czasu TIME suma z zakresu SUM(ZYSK_T.WARTOSC) OVER HIERARCHY (CZAS_T.RIOK_KWARTAL_H BETWEEN 1 PRECEDING AND 2 FOLLOWING WITHIN LEVEL) Dane dla kostki z wymiarem czasu TIME suma z zakresu 98 SUM(ZYSK_T.WARTOSC) OVER HIERARCHY (CZAS_T.RIOK_KWARTAL_H BETWEEN 1 PRECEDING AND 2 FOLLOWING WITHIN LEVEL) 49
99 Inne miary kostki z wymiarem czasu TIME 100 Wymiar klienci 50
101 Wymiar Pracownicy_dzialy 102 Mapowanie kostki 51
103 Wygląd danych dla strony Dzial=Dyrekcja 104 Filtrowanie wg stron 52
105 Wygląd danych dla strony Dzial=Handlowy 106 Filtrowanie danych w kostce 53
107 Filtrowanie danych w kostce 108 Filtrowanie danych w kostce 54
109 Filtrowanie danych w kostce 110 Filtrowanie danych w kostce 55
111 Filtrowanie danych w kostce 112 Filtrowanie danych w kostce 56
Na zakończenie 113 Mówią, że niepełna wiedza jest rzeczą niebezpieczną, ale jednak nie tak złą, jak całkowita ignorancja Terry Pratchett (Równoumagicznienie) Jeżeli zabałaganione biurko jest oznaką zabałaganionego umysłu, oznaką czego jest puste biurko? Albert Einstein Oracle i DB2 zadanie współfinansowane przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej - zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83 w ramach Europejskiego www.kapitalludzki.p.lodz.pl Funduszu Społecznego 57