Bazy analityczne (hurtownie danych, bazy OLAP) Materiały pomocnicze. Bazy produkcyjne (transakcyjne) i analityczne Większość systemów baz danych to systemy produkcyjne, inaczej nazywane transakcyjnymi, albo systemami typu OLTP (Online Transactional Processing). Cechą charakterystyczną takich systemów jest to, że zawierają one zawsze aktualne informacje związane z pracą przedsiębiorstwa czy organizacji. Na przykład jeśli baza danych obsługuje działanie sklepu, to w momencie sprzedaży dowolnego towaru informacja o tej sprzedaży jest już zapisana w bazie. W systemach tego typu przetwarzanie danych jest realizowane z wykorzystaniem transakcji. Istnieją również systemy baz danych, które służą głównie do wykonywania analiz. Systemy te zawierają dane historyczne, niekoniecznie aktualne (np. dane mogą być przesyłane do systemu raz w tygodniu lub raz w miesiącu). Specjalny sposób organizowania danych ma zapewnić jak najszybsze wykonywanie analiz, na przykład wyznaczanie trendów sprzedaży, analizę wydajności różnych oddziałów firmy itp. Przetwarzanie danych w takich systemach nie musi być transakcyjne. Część systemów analitycznych jest często określana jako systemy typu OLAP (Online Analytical Processing) lub bazy OLAP. Bazy OLAP umożliwiają wykonywanie analiz drążących (drill-down, drill-up) w specjalnych strukturach, zwanych wielowymiarowymi kostkami (prezentacja na tablicy). Bazy OLAP są inaczej projektowane jak bazy OLTP. Do zbudowania bazy OLAP na ogół potrzebne jest zbudowanie tzw. hurtowni danych. Hurtownie danych to specyficzne bazy danych, które mają specjalną strukturę tabel, gromadzą zagregowane dane pochodzące z wielu źródeł (np. różnych systemów baz danych), dane w hurtowniach są ujednolicone (doprowadzone do pewnej standardowej postaci, z jednakowymi skrótami, nazwami itp.). Hurtownie danych mogą same służyć do wykonywania analiz, mogą być też źródłem danych do baz danych OLAP. Hurtownie danych i bazy OLAP Hurtownia danych i baza OLAP udostępnia dane historyczne, analityczne (w odróżnieniu od danych operacyjnych, stanowiących element dynamiczny, podlegający ciągłym zmianom aktualizacjom). Wykonywanie szybkich analiz danych jest elementem systemów wspomagania decyzji, użytecznym zwłaszcza dla kierowniczych kadr firm, analityków, menedżerów. Analizowane są informacje gospodarcze. Jedną z najważniejszych zalet systemów OLAP jest wyeliminowanie języka SQL do stosowania skomplikowanych analiz. Zatem analizy mogą być wykonywane przez osoby nie znające języka, a na ogół znajomości SQL nie można wymagać od kadry zarządzającej przedsiębiorstwami. Narzędzia (bazy) OLAP umożliwiają szybkie wykonywanie skomplikowanych analiz danych przy pomocy specjalnych tzw. wielowymiarowych struktur danych i przy wykorzystaniu tzw. analiz drążących (drill-down, drill-up) opisanych poniżej. Dane przechowywane są w specjalnych strukturach (na różne sposoby). 1
W systemach OLAP analizowane są wielkości, które nazywane są miarami, przy czym analiza miar wykonywana jest dla różnych tzw. wymiarów. Miarą może być ilość sprzedanych towarów, kwota uzyskana ze sprzedaży, a wymiarami czas (w różnych okresach, tworzących hierarchię, np. rok kwartał miesiąc dzień), regiony geograficzne związane z klientem (też mogą tworzyć hierarchię np. państwo region województwo miasto sklep sprzedawca). Wymiary mogą również dotyczyć produktu i tworzyć hierarchię np. nazwa produktu, marka produktu, kategoria produktu, dział produktu. Tabele stanowiące podstawowe dane do analiz mogą tworzyć tzw. schemat gwiaździsty. Tabele powinny zawierać miary są to tzw. tabele faktów oraz wymiary są to tzw. tabele informacyjne. W środku schematu gwiaździstego jest tabela faktów, zawierająca klucze obce z tabel informacyjnych. Będzie to jeszcze objaśnione poniżej. Korzystając z danych w tabelach faktów i tabelach informacyjnych można zbudować struktury danych zwane kostkami. Krawędzie kostki definiowane są przez osie wymiarów, wnętrze kostki wypełniają miary, odpowiednio agregowane. Kostki mogą przechowywać agregacje miar dla różnych poziomów hierarchii każdego wymiaru wiąże się to z dodatkową czasem dużą objętością danych na dysku. Niemniej przechowywanie takich agregacji przyspiesza wykonywanie analiz. Sposoby przechowywania danych w bazach OLAP Nie wszystkie dane w bazach OLAP muszą być przechowywane w wielowymiarowych kostkach. Pierwszym krokiem w celu skonstruowania bazy OLAP jest konstrukcja hurtowni danych, która jest relacyjną bazą o specyficznej strukturze zawiera tzw. tabele faktów i wymiarów. Dopiero po zbudowaniu takiej bazy, budowana jest baza OLAP. Sposoby zapisu danych w bazach OLAP: ROLAP (Relational OLAP) agregacje umieszczane są w tabelach relacyjnych, bez stosowania struktur wielowymiarowych. W tabelach relacyjnych przechowywane są szczegółowe dane (np. szczegóły sprzedaży). Spora część potrzebnych do analiz agregacji nie jest przechowywana w ogóle, tylko jest wyliczana na bieżąco. W przypadku ROLAP istotne przyśpieszenie analiz można uzyskać stosując odpowiednie indeksowanie. MOLAP wszystkie dane umieszczane są w specjalnej strukturze, kostce wielowymiarowej. Można przechowywać wszystkie potrzebne agregacje dla wszystkich poziomów hierarchii wszystkich wymiarów. Realizacja jakichkolwiek zapytań jest wówczas bardzo szybka, jednak wadą tego rozwiązania jest bardzo duża zajętość przestrzeni dyskowej, zatem na ogół przechowywane są tylko wybrane agregacje. HOLAP dane szczegółowe nie są umieszczane w strukturach wielowymiarowych, są tam zapisywane tylko agregacje. W kostkach przechowywane są wybrane agregacje (na ogół nie wszystkie możliwe), natomiast dane szczegółowe przechowywane są w tabelach. Poniższy rysunek prezentuje okno programu Analysis Manager, który służy do zarządzania bazami OLAP w systemie MS SQL Serwer 2000. W systemie SQL Server 2008 do tworzenia baz OLAP i do oglądania kostek służy Business Intelligence Development Studio (instaluje się razem z Analysis Services z płyty instalacyjnej SQL Serwera). 2
Przykłady wielowymiarowej prezentacji danych 3
Po wybraniu Education Level Graduate oraz Gender = F Tabela faktów Tabela, która gromadzi miary oraz zawiera klucze z tzw. tabel wymiarów nazywa się tabelą faktów. Tabela faktów musi zawierać agregacje interesujących nas miar (np. sumy kwot 4
sprzedaży, sumy liczby sprzedanych sztuk itp.) na największym interesującym nas poziomie szczegółowości. Np. jeśli interesują nas kwoty, za ile sprzedano każdego towaru w poszczególnych dniach, przy czym osobno jest to liczone dla każdego sprzedawcy, to przykładowa tabela faktów może wyglądać tak: Id_dnia Id_sprzedawcy Id_klienta Id_towaru Suma kwot 1 1 23 455 1200 1 1 32 455 300 1 1 32 233 100 1 1 25 233 1500 1 2 52 455 100 1 2 67 455 300 2 1 67 233 100 2 1 32 233 300 Zwykle tabela faktów jest bardzo duża, może zawierać miliony i więcej wierszy. Oczywiście jest ona tym większa im większy jest największy interesujący nas poziom szczegółowości. Z tabelą faktów połączone są (poprzez klucze) tabele wymiarów. Tabele wymiarów schemat gwiazdy Są dwa standardowe schematy konstrukcji tabel wymiarów. Pierwszy z nich to schemat gwiazdy, w którym w każdym wymiarze cała hierarchia jest zdefiniowana w jednej tabeli. Np. hierarchia w wymiarze Sprzedawców może być taka: Id sprzed Nazwisko i imię 1 Kowalski Jan 2 Nowak Piotr Nazwa sklepu Id miasta Miasto Region Państwo Kontynent ABC KrPl Kraków Małopolska Polska Europa ABC KrPl Kraków Małopolska Polska Europa 3 Ziaja Marek SSS WwPl Warszawa Mazowsze Polska Europa 4 Brown Peter XYZ WwPl Warsaw Arizona USA Am. Płn. 5 Smith Paul XYZ WwU Warsaw Arizona USA Am. Płn. 6 Wrona Adam BMX KrPl Kraków Małopolska Polska Europa 7 Żaba Pawel XFR PaFr Paris Ille de France Francja Europa 8 Kowal XXX PaFr Paris Ille de Francja Europa 5
Adam France Z danych tej tabeli można budować hierarchę w wymiarze Sprzedawców: Kontynent, Państwo, Region, Sklep, Sprzedawca. Proszę zwrócić uwagę, że tabela ta nie jest znormalizowana. Występuje w niej redundancja! Wielokrotnie piszemy, że Polska jest w Europie, Kraków jest w Polsce itd. Nazwa schematu gwiazdy pochodzi stąd, że gdybyśmy narysowali tabelę faktów w środku rysunku a dookoła tabele wymiarów, to przypominałoby to gwiazdę z tyloma ramionami, ile jest tabel wymiarów. Tabele wymiarów schemat płatka śniegu Drugi Schemat konstrukcji tabel wymiarów to schemat płatka śniegu. Tabele wymiarów są tu lepiej znormalizowane jak w przypadku schematu gwiazdy. Można to prześledzić na powyższym przykładzie. Zamiast jednej tabeli wymiary Sprzedawców byłoby kilka tabel. Oto one: Sprzedawcy: Id sprzed Nazwisko i imię Nazwa sklepu 1 Kowalski Jan ABC KrPl 2 Nowak Piotr ABC KrPl Id miasta 3 Ziaja Marek SSS WwPl 4 Brown Peter XYZ WwPl 5 Smith Paul XYZ WwU 6 Wrona Adam BMX KrPl 7 Żaba Pawel XFR PaFr 8 Kowal Adam XXX PaFr Kluczem jest tu Id_sprzedawcy. Tabela ta łączy się z tabelą faktów przez pole Id_sprzedawcy. Miasta: Id miasta Miasto Region KrPl Kraków Małopolska WwPl Warszawa Mazowsze WwPl Warsaw Arizona PaFr Paris Ille de France Kluczem jest tu Id_miasta. Tabela ta łączy się z tabelą Sprzedawcy przez pole Id_miasta. 6
Regiony: Region Państwo Małopolska Polska Mazowsze Polska Arizona USA Ille de Francja France Kluczem jest tu pole Region. Tabela ta łączy się z tabelą Miasta przez pole Region. Państwa: Państwo Polska USA Francja Kontynent Europa Am. Płn. Europa Kluczem jest tu pole Państwo. Tabela łączy się z tabelą Regiony przez pole Państwo. Hurtownię danych można zasilić danymi korzystając ze specjalnych narzędzi ETL Extract, Transform and Load. Kolejny krok, to zbudowanie bazy OLAP, która pobiera dane (np. z wykorzystaniem ETL) z hurtowni danych. Podsumowanie: Charakterystyka systemów OLTP Przetwarzają transakcje w czasie rzeczywistym. Zawierają struktury danych zoptymalizowane pod kątem dopisywania aktualizacji danych (znormalizowane tabele). Często nie mają specjalnych wydajnych mechanizmów służących do wykonywania skomplikowanych analiz. Charakterystyka hurtowni danych Dostarczają danych do analiz. Integrują dane z heterogenicznych źródeł. Dane są poprawne dzięki zasilaniu ze źródeł operacyjnych (OLTP). Organizują dane w statyczne (rzadko zmieniające się) grupy tematyczne. Przechowują dane w strukturach zoptymalizowanych do wyszukiwania i pobierania. Często tabele nie są znormalizowane. 7
Charakterystyka systemów OLAP Dostarczają narzędzi do analiz drążących (drill-down, drill-up) w kostkach wielowymiarowych. Umożliwiają wykonywanie skomplikowanych zmieniających się zapytań agregujących bez konieczności poznania języka SQL. Przechowują w sposób efektywny agregacje dla zdefiniowanych wymiarów (wielopoziomowych, zhierarchizowanych). 8