Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83. Projekt współfinansowany przez Unię Europejską



Podobne dokumenty
Nauczycielem wszystkiego jest praktyka Juliusz Cezar. Nauka to wiara w ignorancję ekspertów Richard Feynman

Hurtownie danych. 31 stycznia 2017

OLAP i hurtownie danych c.d.

ORACLE. System Zarządzania Bazą Danych Oracle. Oracle Advanced SQL

Wprowadzenie do technologii Business Intelligence i hurtowni danych

Hurtownie danych. Projektowanie hurtowni: modele wielowymiarowe. Modelowanie punktowe. Operacje OLAP na kostkach.

Hurtownie danych - przegląd technologii Robert Wrembel Politechnika Poznańska Instytut Informatyki Robert.Wrembel@cs.put.poznan.pl

Wstęp do Business Intelligence

Hurtownie danych a transakcyjne bazy danych

Hurtownie danych - przegląd technologii

HURTOWNIE DANYCH Dzięki uprzejmości Dr. Jakuba Wróblewskiego

Hurtownie danych. Hurtownie danych. dr hab. Maciej Zakrzewicz Politechnika Poznańska Instytut Informatyki. Maciej Zakrzewicz (1)

Hurtownie danych i business intelligence - wykład II. Zagadnienia do omówienia. Miejsce i rola HD w firmie

Hurtownie danych. Wstęp. Architektura hurtowni danych. CO TO JEST HURTOWNIA DANYCH

Hurtownie danych. Rola hurtowni danych w systemach typu Business Intelligence

Spis tre±ci. Przedmowa... Cz ± I

Systemy OLAP I. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska

Systemy OLAP I. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska

HURTOWNIE DANYCH I BUSINESS INTELLIGENCE

BD2 BazyDanych2. dr inż. Tomasz Traczyk 14. Systemy przetwarzania analitycznego

Hurtownie danych. Przetwarzanie zapytań. ZAPYTANIA NA ZAPLECZU

Hurtownie danych. Wprowadzenie do systemów typu Business Intelligence

Modele danych - wykład V

Hurtownie danych. Ładowanie, integracja i aktualizacja danych. INTEGRACJA DANYCH ETL

Przestrzenne bazy danych Podstawy języka SQL

Hurtownie danych i business intelligence - wykład II. Zagadnienia do omówienia. Miejsce i rola HD w firmie

Business Intelligence

Paweł Gołębiewski. Softmaks.pl Sp. z o.o. ul. Kraszewskiego Bydgoszcz kontakt@softmaks.pl

Informatyzacja przedsiębiorstw

Bazy danych. Plan wykładu. Rodzaje baz. Rodzaje baz. Hurtownie danych. Cechy hurtowni danych. Wykład 14: Hurtownie danych

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

Pierwsze wdrożenie SAP BW w firmie

Modele danych - wykład V. Zagadnienia. 1. Wprowadzenie 2. MOLAP modele danych 3. ROLAP modele danych 4. Podsumowanie 5. Zadanie fajne WPROWADZENIE

dr inż. Paweł Morawski Informatyczne wsparcie decyzji logistycznych semestr letni 2016/2017

Co to jest Business Intelligence?

Bazy analityczne (hurtownie danych, bazy OLAP)

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Autor: Joanna Karwowska

Wprowadzenie do Hurtowni Danych. Mariusz Rafało

ORACLE. System Zarządzania Bazą Danych Oracle. Oracle Advanced SQL

LITERATURA. Wprowadzenie do systemów baz danych C.J.Date; WNT Warszawa 2000

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM,

HURTOWNIE DANYCH. Krzysztof Goczyła. Wydział Elektroniki, Telekomunikacji i Informatyki Politechnika Gdańska. kris@eti.pg.gda.pl. K.

Szkolenie Oracle SQL podstawy. Terminy lutego 2010 First Minute! 1100zł!

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

Autor: Joanna Karwowska

SQL do zaawansowanych analiz danych część 1.

SQL do zaawansowanych analiz danych część 2.

Wprowadzenie do Hurtowni Danych. Mariusz Rafało

188 Funkcje analityczne

OnLine Analytical Processing (OLAP) Zapytania SQL

Bazy danych i usługi sieciowe

Relacyjne bazy danych. Podstawy SQL

Konstruowanie Baz Danych DQL agregacja danych

Język SQL. Rozdział 2. Proste zapytania

4. Znaczenie czasu w modelowaniu i strukturalizacji danych

Systemy OLAP II. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska

Informatyka I BAZY DANYCH. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2017

Hurtownie danych - przegląd technologii

Budowa systemu wspomagającego podejmowanie decyzji. Metodyka projektowo wdrożeniowa

P o d s t a w y j ę z y k a S Q L

Ćwiczenia z Zaawansowanych Systemów Baz Danych

Plan. Wyświetlanie n początkowych wartości (TOP n) Użycie funkcji agregujących. Grupowanie danych - klauzula GROUP BY

Systemy GIS Tworzenie zapytań w bazach danych

Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING.

Wprowadzenie do Hurtowni Danych. Mariusz Rafało

Część 1: OLAP. Raport z zajęć laboratoryjnych w ramach przedmiotu Hurtownie i eksploracja danych

Agregacja i Grupowanie Danych. Funkcje Agregacji. Opcje GROUP BY oraz HAVING

Rola analityki danych w transformacji cyfrowej firmy

Relacyjne bazy danych. Podstawy SQL

Grupowanie i funkcje agregacji

dr inż. Paweł Morawski Informatyczne wsparcie decyzji logistycznych semestr letni 2018/2019

Funkcje analityczne SQL CUBE (1)

Oracle11g: Wprowadzenie do SQL

Klasyczna Analiza Danych

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Spis treści. Część I Wprowadzenie do pakietu oprogramowania Analysis Services

Hurtownie danych - przegląd technologii

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Technologia informacyjna

Rozdział 14 Funkcje analityczne

przygotował: Podstawy języka MDX Tworzenie zbiorów

Wielowymiarowy model danych

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Schematy logiczne dla hurtowni danych

SQL (ang. Structured Query Language)

Plan wykładu. Hurtownie danych. Problematyka integracji danych. Cechy systemów informatycznych

Microsoft Excel 2013: Budowanie modeli danych przy użyciu PowerPivot

Wykład XII. optymalizacja w relacyjnych bazach danych

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Problematyka hurtowni danych

Hurtownia danych praktyczne zastosowania

Hurtownie danych i business intelligence. Plan na dziś : Wprowadzenie do przedmiotu

Wprowadzenie do baz danych

Bazy danych 8. Podzapytania i grupowanie. P. F. Góra

Adam Cankudis IFP UAM

SQL - Structured Query Language. strukturalny język zapytań

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Transkrypt:

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 Wstęp 2 -Dlaczego Chaos zawsze wygrywa z Porządkiem? - Ponieważ jest lepiej zorganizowany. Terry Pratchett Nagromadzenie danych to nie jest jeszcze nauka Galileusz 1

Schemat bazy danych 3 Dlaczego? 4 Człowiek, który potrafi czytać ale nie ma książek, nie ma przewagi nad tymi, którzy w ogóle nie umieją czytać Mark Twain - 1900 Człowiek który posiada dane ale nie potrafi ich zobaczyć, nie ma przewagi nad tymi, którzy w ogóle nie mają danych Bob Lokken (CEO Knosys Inc.) - 2000 2

Dlaczego? 5 Szybsze podejmowanie lepszych decyzji Zwiększenie przewagi konkurencyjnej Usprawnienie procesów biznesowych Poprawa obsługi klientów Rozwiązania e-business Wnioski z danych 6 Celem działania nie jest raport lecz decyzja, a złe decyzje są kosztowne. Dane nie są informacją! Aby dostrzec znaczenie danych, należy najpierw zobaczyć te dane. Jeden obraz z właściwą informacją jest więcej wart niż dowolna ilość wierszy i kolumn danych. 3

Terminologia 7 ETL (extraction, transformation, loading) Ekstrakcja danych Transformacja danych Ładowanie danych Hurtownia danych Wydzielona baza danych Zawiera dane historyczne i bieżące Data Mart - Składnica danych Ściśle związana z mniejszą grupą użytkowników Tematycznie dostosowana, zoptymalizowana dla ich potrzeb OLAP (On-Line Analytical Processing) Przetwarzanie danych wielowymiarowych Krótki czas odpowiedzi na dowolne zapytanie Waga podejmowanych decyzji 8 Zarząd Koszt podjęcia złej decyzji Zysk z podjęcia dobrej dezyzji Kierownicy Pracownicy operacyjni Ilość podejmowanych decyzji 4

9 Wprowadzenie Modelem przetwarzania nazywamy sposób w jaki użytkownik korzysta z bazy danych. Modele przetwarzania: - przetwarzanie operacyjne (transakcyjne) - przetwarzanie analityczne Przetwarzanie operacyjne 10 OLTP - OnLine Transaction Processing - przetwarzanie transakcji w trybie on-line Celem jest wspomaganie bieżącej obsługi działalności danej firmy, dla dobrze zdefiniowanych procesów (np.: obsługa sprzedaży) Oparty na transakcjach, które operują na niewielkiej części danych przechowywanych w bazie danych 5

Przetwarzanie operacyjne 11 Dostarcza rozwiązań dla problemów: efektywnego i bezpiecznego przechowywania danych, optymalizacji dostępu do danych, dostępności danych, zarządzania współbieżnością Podstawowym kryterium oceny efektywności działania systemu OLTP jest liczba transakcji na sekundę Przetwarzanie analityczne 12 OLAP - OnLine Analytical Processing - przetwarzanie analityczne w trybie on-line Celem jest przeprowadzanie analizy danych i wspomaganie decyzji. Posiadanie danych opisujących działanie przedsiębiorstwa w dłuższym przedziale czasu pozwala na analizę trendów, anomalii, poszukiwanie wzorców zachowań klientów, itp. 6

Zalety przeprowadzania analizy danych 13 Zrozumienie zachowania się klientów i zapotrzebowania na produkt, pozwala efektywnie kierować kampaniami reklamowymi Zarządzanie zapasami umożliwia producentom posiadanie właściwych produktów we właściwym miejscu i czasie Analiza rentowności pokazuje firmom, którzy klienci są dochodowi, a którzy nie Przetwarzanie operacyjne a analityczne 14 Dlaczego potrzebnych informacji nie da się uzyskiwać bezpośrednio z transakcyjnych systemów przetwarzania danych? Dane w aplikacjach operacyjnych są: - ukierunkowane na aplikacje operacyjne, a nie analityczne - rozproszone po wielu aplikacjach operacyjnych - przechowywane w mało czytelnej postaci 7

15 Definicja hurtowni danych są bardzo dużymi bazami danych, w których gromadzi się dane pochodzące z wielu heterogenicznych źródeł: scentralizowanych lub rozproszonych baz relacyjnych, relacyjno-obiektowych, obiektowych oraz ze źródeł innych niż bazy danych (np.: pliki tekstowe). Jest to zbiór technologii, których celem jest wspieranie menadżerów i umożliwienie podejmowania im szybszych i lepszych decyzji. Cechy hurtowni danych Hurtownia danych powinna być: - zorientowana tematycznie - nieulotna (trwała) - wielowersyjna czasowo - zintegrowana 16 8

Zapytania wybierające Grupowanie SELECT IdOsoby, SUM(Brutto) AS Razem FROM Zarobki GROUP BY IdOsoby; SELECT SUM(Brutto) AS Razem FROM Zarobki; 17 Wyznaczenie funkcji agregującej dla grupy (dla każdej osoby) Wyznaczenie funkcji agregującej dla całej tabeli (wszystkie osoby) Zapytania wybierające Funkcje agregujące AVG SUM MAX MIN wartość średnia suma maksimum minimum STDDEV odchylenie standardowe VARIANCE wariacja COUNT zlicz 18 n n ( x) 2 x n( n 1) ( x) 2 x n( n 1) 2 2 9

Grupowanie i numerowanie rekordów w grupie 19 SELECT DECODE(ROWNUM-min_sno,0,a.iddzialu,NULL) iddzialu, DECODE(ROWNUM-min_sno,0,1,rownum+1-min_sno) sno, a.idosoby, nazwisko FROM (SELECT * FROM osoby ORDER BY iddzialu, idosoby ) a, ( SELECT iddzialu, MIN(ROWNUM) min_sno FROM ( SELECT * FROM osoby ORDER BY iddzialu, idosoby ) GROUP BY iddzialu ) b WHERE a.iddzialu = b.iddzialu; IDDZIALU SNO IDOSOBY NAZWISKO ---------- ---------- ---------- --------------- 1 1 1 KOWALSKI 2 2 NOWAK 3 10 NOWIK 2 1 4 NOWACKI 2 6 KOW 3 7 JAKOW 3 1 3 KOWALIK 2 8 ADAMIAK 3 9 KOWALSKI 4 11 XXX 4 1 5 WILK 2 12 YY GROUP BY ROLLUP/CUBE 20 Dodatkowe podsumowania dla działów SELECT IdDzialu, Osoby.IdOsoby, SUM(Brutto) AS Razem FROM Osoby JOIN Zarobki ON Osoby.IdOsoby=Zarobki.IdOsoby GROUP BY ROLLUP (IdDzialu, Osoby.IdOsoby); Dodatkowe podsumowania dla działów po sumach pracowników SELECT IdDzialu, Osoby.IdOsoby, SUM(Brutto) AS Razem FROM Osoby JOIN Zarobki ON Osoby.IdOsoby=Zarobki.IdOsoby GROUP BY CUBE (IdDzialu, Osoby.IdOsoby); 10

SUM(BRUTTO)... GROUP BY ROLLUP 21 NAZWA Dyrekcja Dyrekcja Handlowy Handlowy Techniczny Techniczny Techniczny Administracja Administracja Administracja NAZWISKO Kowalski Nowicki Kow Kowalczyk Janik Nowak RAZEM 2109 2109 2109 2109 222 777 999 555 1332 1887 7104 NAZWA Dyrekcja Dyrekcja Handlowy Handlowy Techniczny Techniczny Techniczny Administracja Administracja Administracja NAZWISKO RAZEM Janik 555 22 7104 Kow 222 Janik 555 Nowak Nowicki 1332 2109 SUM(BRUTTO)... GROUP BY CUBE Kowalski 2109 Kowalczyk 777 2109 Kowalski 2109 2109 Nowicki 2109 999 Kow 222 Kowalczyk 777 1887 Nowak 1332 11

23 GROUP BY GROUPING SETS Dodatkowe podsumowania dla działów po sumach pracowników (nie są powtarzane podsumowania dla wewnętrznej grupy) SELECT IdDzialu, Osoby.IdOsoby, SUM(Brutto) AS Razem FROM Osoby JOIN Zarobki ON Osoby.IdOsoby=Zarobki.IdOsoby GROUP BY GROUPING SETS (IdDzialu, Osoby.IdOsoby); SUM(BRUTTO)... GROUP BY GROUPING SETS 24 NAZWA Administracja Dyrekcja Handlowy Techniczny NAZWISKO Janik Kow Kowalczyk Kowalski Nowak Nowicki RAZEM 1887 2109 2109 999 555 222 777 2109 1332 2109 12

25 GROUP BY GROUPING SETS Dodatkowe podsumowania dla działów po sumach pracowników (nie są powtarzane podsumowania dla wewnętrznej grupy) SELECT Nazwa, Nazwisko, SUM(Brutto) FROM Dzialy JOIN Osoby USING(IdDzialu) JOIN Zarobki USING(IdOsoby) GROUP BY GROUPING SETS (Nazwa, Nazwisko, IdOsoby); RANK () 26 oblicza ranking każdego wiersza zwracanego przez zapytanie zgodnie z klauzulą ORDER BY(jeśli dwie pozycje mają taką samą wartość następny rank jest o zwiększany o liczbę powtórzeń pozycje równe traktowane są tak samo) SELECT IdDzialu, Nazwisko, Brutto, RANK() OVER (PARTITION BY IdDzialu ORDER BY Brutto DESC ) "Rank" FROM Osoby JOIN Zarobki ON Osoby.IdOsoby=Zarobki.IdOsoby; SELECT RANK(250) WITHIN GROUP (ORDER BY Brutto DESC) "Powyżej 250" FROM Zarobki; NULLS LAST NULLS FIRST Sposób umieszczenia wartości NULL na liście SELECT RANK(250) WITHIN GROUP (ORDER BY Brutto ASC) "Poniżej 250" FROM Zarobki; Liczba wypłat powyżej/poniżej progu 13

DENSE_RANK () 27 oblicza ranking każdego wiersza zwracanego przez zapytanie zgodnie z klauzulą ORDER BY (jeśli dwie pozycje mają taką samą wartość następny rank jest o 1 większy pozycje równe traktowane są tak samo) SELECT IdDzialu, Nazwisko, Brutto, DENSE_RANK() OVER (PARTITION BY IdDzialu ORDER BY Brutto DESC ) "Rank" FROM Osoby JOIN Zarobki ON Osoby.IdOsoby=Zarobki.IdOsoby; SELECT DENSE_RANK(250) WITHIN GROUP (ORDER BY Brutto DESC) "Powyżej 250" FROM Zarobki; NULLS LAST NULLS FIRST Sposób umieszczenia wartości NULL na liście Okienkowanie funkcji agregujących SELECT IdOsoby, Brutto FROM Zarobki ORDER BY IdOsoby; IDOSOBY 1 1 1 1 2 2 3 4 5 AGREGATE 111 444 1110 2109 2553 3441 3663 4218 4995 IDOSOBY 1 1 1 1 2 2 3 4 5 28 BRUTTO 111 333 666 999 444 888 222 555 777 SELECT IdOsoby, SUM(Brutto) OVER (ORDER BY IdOsoby ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) Agregate FROM Zarobki; 14

Okienkowanie funkcji agregujących 29 SELECT IdOsoby, Brutto FROM Zarobki ORDER BY IdOsoby; IDOSOBY 1 1 1 1 2 2 3 4 5 AGREGATE 111 444 1110 2109 444 1332 222 555 777 IDOSOBY 1 1 1 1 2 2 3 4 5 BRUTTO 111 333 666 999 444 888 222 555 777 SELECT IdOsoby, SUM(Brutto) OVER (PARTITION BY IdOsoby ORDER BY IdOsoby ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) Agregate FROM Zarobki; Okienkowanie funkcji agregujących 30 SELECT IdDzialu, Nazwisko, SUM(Brutto), AVG(SUM(Brutto)) OVER () "Srednia wszystkich", AVG(SUM(Brutto)) OVER (PARTITION BY IdDzialu) "Srednia sumy dla Dzialu", RATIO_TO_REPORT(SUM(Brutto)) OVER () "Procent z całosci", RATIO_TO_REPORT(SUM(Brutto)) OVER (PARTITION BY IdDzialu) "Procent w Dziale" FROM Osoby JOIN Zarobki USING (IdOsoby) GROUP BY iddzialu, Nazwisko, IdOsoby; IdDzialu Nazwisko SUM (Brutto) Srednia wszystkich Srednia sumy dla Dzialu Procent z całosci Procent w dziale 1 Kowalski 2664 1603,33 2664 0,184 1 2 Janik 1776 1603,33 1591 0,123 0,372 2 Nowak 1998 1603,33 1591 0,138 0,418 2 Zieliński 999 1603,33 1591 0,069 0,209 3 Kow 1443 1603,33 1258 0,1 0,382 3 Kowalczyk 2220 1603,33 1258 0,153 0,588 3 Pawlak 111 1603,33 1258 0,007 0,029 4 Nowicki 1998 1603,33 1998 0,138 1 5 Kowal 1221 1603,33 1221 0,084 1 15

ROW_NUMBER(), NTILE() 31 SELECT IdDzialu, Nazwisko, Brutto, ROW_NUMBER() OVER (PARTITION BY IdDzialu ORDER BY Brutto DESC) "NUMER", NTILE(4) OVER (PARTITION BY IdDzialu ORDER BY Brutto DESC) "Zakresowy rozkład " FROM Osoby JOIN Zarobki ON Osoby.IdOsoby=Zarobki.IdOsoby; IDDZIALU NAZWISKO BRUTTO NUMER Zakresowy rozkład 1 Kowalski 999 1 1 1 Kowalski 666 2 1 1 Kowalski 555 3 2 1 Kowalski 333 4 3 1 Kowalski 111 5 4 2 Zieliński 999 1 1 2 Janik 999 2 1 2 Nowak 888 3 2 2 Nowak 666 4 2 2 Janik 555 5 3 2 Nowak 444 6 3 2 Janik 222 7 4 3 Kow 888 1 1 w ramach Europejskiego 3 Funduszu Społecznego Kowalczyk 777 2 1 3 Kowalczyk 777 3 2 Raportowanie 32 SET PAGES 33 TTITLE 'Tytuł Druga Linia' BTITLE 'STOPKA DRUGA LINIA' BREAK ON Osoba SKIP 1 ON REPORT PAGE COMPUTE SUM AVG OF Brutto ON Osoba COMPUTE SUM OF Brutto ON REPORT COLUMN Osoba format A25 heading 'Nazwisko Imię' justify left COLUMN Wzrost format 90.99 heading 'Wysokość' justify right COLUMN BRUTTO format 999999.00 heading 'Zarobki' justify center SELECT Nazwisko ' ' Imie AS Osoba, Wzrost, Brutto FROM Osoby JOIN Zarobki ON Osoby.Idosoby=Zarobki.IdOsoby; CLEAR BREAKS CLEAR COMPUTES CLEAR COLUMNS 16

Hierarchia (nie obsługuje grafów cyklicznych) 33 BREAK ON LEVEL SKIP 1 SELECT LEVEL, Idosoby, Stanowisko, IdSzefa FROM Osoby CONNECT BY PRIOR IdOsoby=IdSzefa START WITH IdSzefa IS NULL ORDER BY LEVEL; Przy odwrotnym połączeniu zwrócony zostanie tylko jeden rekord IdSzefa= PRIOR IdOsoby SELECT LEVEL, Idosoby, Stanowisko, IdSzefa FROM Osoby CONNECT BY PRIOR IdSzefa=IdOsoby START WITH IdSzefa IS NULL ORDER BY LEVEL; równoważne!! Hierarchia z formatowaniem 34 SELECT LEVEL, ' ' SUBSTR('----------------',1,2* LEVEL) Nazwisko AS Kto FROM Osoby START WITH IdSzefa IS NULL CONNECT BY PRIOR IdOsoby = IdSzefa; 17

Hierarchia z formatowaniem 35 Uzupełnij do długości znakami SELECT LEVEL, RPAD(' ', 2*LEVEL, '-') Nazwisko AS Kto,IdSzefa FROM Osoby START WITH IdSzefa IS NULL CONNECT BY PRIOR IdOsoby = IdSzefa; Hierarchia z sumowaniem 36 SELECT LEVEL, SUM (Brutto) FROM Osoby JOIN Zarobki ON Zarobki.IdOsoby=Osoby.IdOsoby START WITH IdSzefa IS NULL CONNECT BY PRIOR Osoby.IdOsoby = IdSzefa GROUP BY LEVEL; LEVEL SUM(BRUTTO) 1 2664 2 17205 4 129870 3 91575 18

Hierarchia z poziomem wyższym 37 SELECT LEVEL, Nazwisko, IdSzefa, PRIOR Nazwisko AS Szef FROM Osoby START WITH IdSzefa IS NULL CONNECT BY PRIOR IdOsoby = IdSzefa; LEVEL NAZWISKO IDSZEFA SZEF 1 Kowalski 2 Nowak 1 Kowalski 3 Janik 2 Nowak 4 Kowalski 4 Janik 4 Kowal 4 Janik 4 Jasiński 4 Janik 4 Bury 4 Janik 4 Wilk 4 Janik 4 Raczyński 4 Janik 4 Lew 4 Janik 3 Pawlak 2 Nowak 3 Gawlik 2 Nowak 2 Kow 1 Kowalski Hierarchia z poziomem wyższym 38 SELECT Poziom, Prac, Osoby.IdSzefa, Osoby.Nazwisko AS Szef FROM Osoby RIGHT JOIN (SELECT LEVEL AS Poziom, Nazwisko AS Prac, IdSzefa FROM Osoby START WITH IdSzefa IS NULL CONNECT BY PRIOR IdOsoby = IdSzefa) xxx ON Osoby.IdOsoby=xxx.IdSzefa; LEVEL NAZWISKO IDSZEFA SZEF 1 Kowalski 2 Nowak 1 Kowalski 3 Janik 2 Nowak 4 Kowalski 4 Janik 4 Kowal 4 Janik 4 Jasiński 4 Janik 4 Bury 4 Janik 4 Wilk 4 Janik 4 Raczyński 4 Janik 4 Lew 4 Janik 19

Hierarchia liczba podwładnych 39 SELECT RPAD(' ',2*LEVEL,'*') Nazwisko ' ' Imie as Szef, ( SELECT COUNT(o2.idosoby) FROM Osoby o2 START WITH o2.idszefa = o1.idosoby CONNECT BY PRIOR o2.idosoby = o2.idszefa ) ilu Szef FROM Osoby o1 START WITH o1.idszefa IS NULL CONNECT BY PRIOR o1.idosoby = o1.idszefa; To musi być zapytanie jednowierszowe ILU *Kowalski Jan 35 ***Nowak Karol 19 *****Janik Paweł 13 *******Kowalski Piotr 0... 0 *****Gawlik Paweł 0 ***Kow Piotr 12 *****Kowalczyk Jarosław 4 *******Adamczyk Konrad 0... 0 Hierarchia liczba podwładnych razem z szefem 40 SELECT RPAD(' ',2*LEVEL,'*') Nazwisko ' ' Imie as Szef, ( SELECT COUNT(o2.idosoby) FROM Osoby o2 START WITH o2. IdOsoby = o1.idosoby CONNECT BY PRIOR o2.idosoby = o2.idszefa SZEF ) ilu FROM Osoby o1 START WITH o1.idszefa IS NULL CONNECT BY PRIOR o1.idosoby = o1.idszefa; ILU *Kowalski Jan 36 ***Nowak Karol 20 *****Janik Paweł 14 *******Kowalski Piotr 1... 1 *****Gawlik Paweł 1 ***Kow Piotr 13 *****Kowalczyk Jarosław 5 *******Adamczyk Konrad 1... 1 20

41 Hierarchia suma zarobków podwładnych razem z szefem SELECT RPAD(' ',2*LEVEL,'*') Nazwisko ' ' Imie as Szef, ( SELECT SUM(Brutto) FROM Osoby o2 JOIN Zarobki ON o2.idosoby = zarobki.idosoby START WITH o2.idszefa = o1.idosoby CONNECT BY PRIOR o2.idosoby = o2.idszefa ) Razem SZEF FROM Osoby o1 START WITH o1.idszefa IS NULL CONNECT BY PRIOR o1.idosoby = o1.idszefa; ILU *Kowalski Jan 281163 ***Nowak Karol 23310 *****Janik Paweł 23310 *******Kowalski Piotr 4773... *****Gawlik Paweł (null) ***Kow Piotr 22089 *****Kowalczyk Jarosław 3108 *******Adamczyk Konrad 777... Dlaczego? 42 Człowiek, który potrafi czytać ale nie ma książek, nie ma przewagi nad tymi, którzy w ogóle nie umieją czytać Mark Twain - 1900 Człowiek który posiada dane ale nie potrafi ich zobaczyć, nie ma przewagi nad tymi, którzy w ogóle nie mają danych Bob Lokken (CEO Knosys Inc.) - 2000 21

43 Dlaczego? Szybsze podejmowanie lepszych decyzji Zwiększenie przewagi konkurencyjnej Usprawnienie procesów biznesowych Poprawa obsługi klientów Rozwiązania e-business Wnioski z danych 44 Celem działania nie jest raport lecz decyzja, a złe decyzje są kosztowne. Dane nie są informacją! Aby dostrzec znaczenie danych, należy najpierw zobaczyć te dane. Jeden obraz z właściwą informacją jest więcej wart niż dowolna ilość wierszy i kolumn danych. 22

45 Business Intelligence (BI) BI klucz do uwolnienia wiedzy h Dostęp i Łatwy dostęp do różnych źródeł danych h Analiza i Narzędzia do eksploracji danych h Dystrybucja i Aktywny i bierny dostęp do informacji h W ramach organizacji i poza nią i Pracownicy, dostawcy, klienci, partnerzy,... Terminologia 46 ETL (extraction, transformation, loading) Ekstrakcja danych Transformacja danych Ładowanie danych Hurtownia danych Wydzielona baza danych Zawiera dane historyczne i bieżące Data Mart - Składnica danych Ściśle związana z mniejszą grupą użytkowników Tematycznie dostosowana, zoptymalizowana dla ich potrzeb OLAP (On-Line Analytical Processing) Przetwarzanie danych wielowymiarowych Krótki czas odpowiedzi na dowolne zapytanie 23

47 Czym jest Business Intelligence? Narzędzia i techniki wspomagające proces podejmowania decyzji Business Intelligence pozwala zrozumieć dane Co się wydarzyło? Co się aktualnie dzieje? Dlaczego? Co się stanie? Co chciałbym, aby się stało? ERP CRM SCM TPP inne 48 Potencjał BI Zarząd Poziom strategiczny Kierownicy Pracownicy operacyjni Ilość podejmowanych decyzji 24

49 Wprowadzenie Modelem przetwarzania nazywamy sposób w jaki użytkownik korzysta z bazy danych. Modele przetwarzania: - przetwarzanie operacyjne - przetwarzanie analityczne 50 Przetwarzanie operacyjne (1) OLTP - OnLine Transaction Processing - przetwarzanie transakcji w trybie on-line Celem jest wspomaganie bieżącej obsługi działalności danej firmy, dla dobrze zdefiniowanych procesów (np.: obsługa sprzedaży) Oparty na transakcjach, które operują na niewielkiej części danych przechowywanych w bazie danych 25

51 Przetwarzanie operacyjne (2) Dostarcza rozwiązań dla problemów: efektywnego i bezpiecznego przechowywania danych, optymalizacji dostępu do danych, dostępności danych, zarządzania współbieżnością Podstawowym kryterium oceny efektywności działania systemu OLTP jest liczba transakcji na sekundę 52 Przetwarzanie analityczne OLAP - OnLine Analytical Processing - przetwarzanie analityczne w trybie on-line Celem jest przeprowadzanie analizy danych i wspomaganie decyzji. Posiadanie danych opisujących działanie przedsiębiorstwa w dłuższym przedziale czasu pozwala na analizę trendów, anomalii, poszukiwanie wzorców zachowań klientów, itp. 26

53 Zalety przeprowadzania analizy danych Zrozumienie zachowania się klientów i zapotrzebowania na produkt, pozwala efektywnie kierować kampaniami reklamowymi Zarządzanie zapasami umożliwia producentom posiadanie właściwych produktów we właściwym miejscu i czasie Analiza rentowności pokazuje firmom, którzy klienci są dochodowi, a którzy nie 54 Przetwarzanie operacyjne a analityczne Dlaczego potrzebnych informacji nie da się uzyskiwać bezpośrednio z operacyjnych systemów przetwarzania danych? Dane w aplikacjach operacyjnych są: - ukierunkowane na aplikacje operacyjne a nie analityczne - rozproszone po wielu aplikacjach operacyjnych - przechowywane w mało czytelnej postaci 27

55 Definicja hurtowni danych są bardzo dużymi bazami danych, w których gromadzi się dane pochodzące z wielu heterogenicznych źródeł: scentralizowanych lub rozproszonych baz relacyjnych, relacyjno-obiektowych, obiektowych oraz ze źródeł innych niż bazy danych (np.: pliki tekstowe). Jest to zbiór technologii, których celem jest wspieranie menadżerów i umożliwienie podejmowania im szybszych i lepszych decyzji. 56 Cechy hurtowni danych Hurtownia danych powinna być: - zorientowana tematycznie - nieulotna (trwała) - wielowersyjna czasowo - zintegrowana 28

57 Architektura logiczna hurtowni danych 58 Konwerter Zadaniem konwertera jest transformowanie danych z formatu wykorzystywanego w źródle, do formatu wykorzystywanego w hurtowni danych. Etapy konwersji danych: - ekstrakcja danych - czyszczenie danych - ładowanie danych -odświeżanie danych 29

59 Etapy konwersji danych (1) Ekstrakcja danych odbywa się przez bramki (gateways) lub standardowe interfejsy (ODBC, JDBC, Oracle Open Connect, Informix Enterprise Gateway, itd.) Czyszczenie danych ma na celu zapewnienie jakości i poprawności danych. Metody czyszczenia: konwersja i normalizacja, czyszczenie specjalne, czyszczenie oparte na regułach. 60 Etapy konwersji danych (2) Ładowanie danych tym procesem zarządza moduł integratora. Najczęściej odbywa się to w trybie wsadowym. Dodatkowe przetwarzanie, np.: sortowanie danych, budowanie indeksów Odświeżanie danych proces propagowania zmian zachodzących w źródłach danych do hurtowni. 30

61 Repozytorium metadanych Jest to składnik hurtowni danych, w którym przechowywane są informacje wspomagające zarządzanie hurtownią. (Przykład narzędzia do zarządzania metadanymi: IBM DataGuide) Zawiera ono zazwyczaj metadane: fizyczne; logiczne; operacyjne; historyczne; administracyjne; personalizacyjne 62 Wielowymiarowy model danych Podstawowym modelem logicznym dla OLAP jest wielowymiarowy model danych (MDD model - multidimensional data model). Dane są postrzegane przez użytkowników w postaci wielowymiarowej perspektywy. Obiektem analizy w modelu MDD jest zbiór miar numerycznych (faktów). Wartość każdej miary zależy od zbioru wymiarów. 31

63 Schemat przetwarzania w technologii OLAP (ONLINE ANALYTICAL PROCESSING) Oczyszczanie Synchronizacja Baza A Ekstrakcja Przesyłanie Baza B Integracja Hurtownia Danych Baza X 64 OLAP Analizy wspierające proces podejmowania decyzji biznesowych Oddział Poznań Kraków Gdańsk ROR Kredyt Produkt 69,059,440 PLN 8,755 szt. 7,888 PLN Depozyt Rach. Inwest. Inne Q1 Q2 Q3 Czas Q4 32

Analiza przekrojów 65 Analiza przekrojów 66 33

67 Analysis Services - Wymiary Wspólne/prywatne Regularne/nieregularne Hierarchia drzewiasta (relacja rodzic potomek) Dane w węzłach O dużej liczbie elementów (grupowanie) Wymiary o liczbie potomków większej niż 64k Atrybuty Wiele hierarchii Własne formuły podsumowujące Struktura hurtowni danych Problem wielowymiarowości Dwie podstawowe struktury 68 Model gwiazdy Model płatka śniegu - tablica faktów - hierarchia wymiaru 34

69 Schemat pojęciowy hurtowni - schemat gwiazdy 70 Schemat pojęciowy hurtowni - schemat płatka śniegu 35

71 Modele przechowywania dla hurtowni danych ROLAP - Relational OLAP - hurtownie wykorzystujące model relacyjny MOLAP - Multidimensional OLAP - hurtownie wykorzystujące wielowymiarowy model danych HOLAP - Hybrid OLAP - hurtownie łączące w sobie cechy MOLAP i ROLAP 72 Efektywność hurtowni danych W celu poprawy efektywności działania hurtowni danych stosuje się wiele technik: - materializowanie agregatów - przetwarzanie równoległe - partycjonowanie danych - indeksowanie danych 36

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 37