Wielowymiarowe bazy danych

Potężne narzędzie ułatwiające sporządzanie wieloaspektowych analiz.

Potężne narzędzie ułatwiające sporządzanie wieloaspektowych analiz.

W dawnych systemach sieciowych lub hierarchicznych systemach zarządzania bazami danych operowanie na wskaźnikach do struktur danych zapewniało podstawowe możliwości dostępu, limitując jednak znacznie zakres i typy danych, nadających się do przechowywania w bazie. Nowe relacyjne serwery baz danych zapewniają dostatecznie potężne możliwości obsługi, prezentowania i manipulowania danymi, bez potrzeby zajmowania się takimi szczegółami jak sposób zapisywania danych na dysku.

Mimo że bazy relacyjne znakomicie nadają się do reprezentowania encji - powszechnych w wielu aplikacjach dla biznesu - nie nadają się tak dobrze do przedstawiania danych o gorzej zdefiniowanej strukturze: wyników pomiarów czy obserwacji naukowych oraz danych historycznych z działalności gospodarczej. Do obsługi tego typu danych bardziej nadają się tzw. wielowymiarowe serwery baz danych, stanowiące w wielu zastosowaniach poważne zagrożenie dla systemów relacyjnych.

Co to jest baza wielowymiarowa?

Właściwie każdy typ danych można uznać za wielowymiarowy, jednakże najczęściej uważa się, że dane są wielowymiarowe, jeśli trzeba je opisać za pomocą dwóch lub więcej atrybutów.

Mając zapisane w bazie informacje o zbiorze obiektów, możemy je klasyfikować, sortować, pobierać lub zapisywać na podstawie wartości tych atrybutów. Z punktu widzenia użytkownika korzystna jest możliwość opisania "wymiarów" za pomocą dogodnych w użyciu określeń: czas, miejsce, produkt albo nawet takich wymiarów, które nie istnieją w bazie danych. Z informacji o temperaturze, sile wiatru, ciśnieniu i innych zjawiskach atmosferycznych we wszystkich miastach Polski da się uzyskać informację o przebiegu frontu atmosferycznego, nie występującego eksplicite w bazie. I to będzie ten nowy wymiar opisowy o wysokim poziomie abstrakcji.

Jeżeli baza ma zapisane dane trójwymiarowe, to dla użytkownika bardziej wygodne jest przedstawianie ich w formie sześcianu niż w postaci płaskich tabel. Problem komplikuje się przy próbie prezentacji danych o większej liczbie wymiarów, ale nadal łatwiej przedstawiać sobie hipersześcian danych niż płaską "hipertabelę" danych

wielowymiarowych. Dla treningu proszę spróbować zaprezentować w tabeli Excela nawet malą liczbę danych w 4 wymiarach i manipulować nimi, tak aby uzyskiwać przekroje przez kolejne wymiary. Koszmar!

Dostęp do danych wielowymiarowych musi opierać się na innych kryteriach niż dostęp do płaskich tabel. Napisanie prostego programu SQL dla dostępu do danych relacyjnych nie przedstawia problemu. Natomiast napisanie programu dla uzyskania danych o określonych wartościach z wielu wymiarów może stanowić wyzwanie intelektualne, poważnie ograniczając możliwość ich używania. Z tego powodu na rynku pojawiło się wiele produktów do przechowywania lub tylko manipulowania danymi wielowymiarowymi (w przypadku przechowywania ich w tabelach relacyjnej bazy).

Komu potrzebne są dane wielowymiarowe?

Na łamach CW piszemy coraz częściej o problemach gnębiących także polskie firmy: nadmiar danych, brak informacji. Cóż bowiem za pociecha z gigabajtów danych operacyjnych, jeśli jedyna operacja, jaką jesteśmy na nich w stanie wykonać, to zsumowanie obrotów lub liczby sprzedanych produktów. Oczywiście możemy podejrzewać, że kryją się w nich skarby wiedzy, trudnej do odczytania i zanalizowania. Dlaczego określony produkt sprzedaje się lepiej rano niż wieczorem?

Dlaczego mimo sezonu urlopowego nie idą T-shirty? Jaki jest średni wiek naszych klientów? Jaki ma związek rodzaj kupowanego produktu z wiekiem nabywcy? Pytania można mnożyć do woli. Nie da się na nie znaleźć bezpośredniej odpowiedzi w bazach operacyjnych, mimo że mamy prawie całkowitą pewność, że odpowiedź istnieje. I to w naszych bazach.

Formy opisu

Użytkownicy baz danych są przyzwyczajeni do zapisywania poszczególnych rekordów w bazie jako pewnego rodzaju faktów: zapis sprzedaży 10 kąpielówek, 1 parasola plażowego czy 2 piłek. Duży dom towarowy ma takich zapisów setki tysięcy w ciągu każdego dnia. Jednakże na te same dane można spojrzeć w inny sposób. Ile parasoli plażowych sprzedano w ciągu kolejnych dni lipca, tygodni, miesięcy? W ten sposób wprowadzamy nowy wymiar, nie istniejący eksplicite w bazie - czas, któremu zadajemy dowolną, dogodną dla naszych potrzeb kwantyzację. Jakie kolory parasoli sprzedano? Tu znów mamy nowy wymiar opisowy, który możemy dowolnie podzielić na umowne grupy: parasole pastelowe, ciemne, gładkie, we wzory itp. Ta kwantyzacja pozwoli na korzystanie z danych zagregowanych wg wybranego wymiaru opisowego. Oczywiście nic nie stoi na przeszkodzie, by korzystać z istniejących już wymiarów typu fakt (ile sztuk parasoli sprzedano).

Jak zapisywać dane wielowymiarowe?

Typowe systemy transakcyjne nie zapisują w bazie dodatkowych wymiarów opisowych. Wynika to z dwóch powodów. Po pierwsze, projektując bazę transakcyjną na ogół zajmujemy się raczej problemami bezpiecznego przechowywania danych, od których zależy sukces działalności gospodarczej firmy, a nie koncentrujemy się na jej przyszłych potrzebach w zakresie analizy danych, o których na razie wiemy bardzo mało. Po drugie, potrzeby analityczne są równie zmienne, jak zmienny jest profil działalności, indywidualne potrzeby analityka czy szefa firmy. Wymiary opisowe trzeba móc dodawać w dowolnej chwili, w sposób nieskrępowany.

Systemy zarządzania danymi wielowymiarowymi zwykle zapisują w bazie dane w postaci zbioru danych (wymiarów) opisowych i faktów. Sam sposób fizycznego zapisu tych danych jest właściwy dla danego serwera bazy wielowymiarowej i nie jest prostym rozwinięciem struktur danych na wiele wymiarów. Wiele danych jest bowiem "dziurawych", tzn. nie istnieją fakty dla każdej wartości wymiarów opisowych. Zapis w bazie wymaga skomplikowanych metod optymalizacji znanych z teorii rzadkich macierzy.

Pewne systemy analizy danych korzystają z odwzorowania danych wielowymiarowych w bazie relacyjnej, przechowując w lokalnej bazie jedynie informacje o lokalizacji poszczególnych faktów i ich przynależności do określonych grup wymiarów opisowych. Na ogół wymaga to jednak uzupełniania bazy relacyjnej o dodatkowe tabele zagregowane wg poszczególnych rozmiarów opisowych. Jeżeli liczba tych wymiarów opisowych jest duża, a kwantyzacja gęsta (codziennie, co tydzień, co miesiąc), często okazuje się, że do relacyjnej bazy operacyjnej trzeba dodać ogromne tabele, o rozmiarze przekraczającym rozmiar bazy operacyjnej.

Manipulowanie danych w bazie

Kolejność wymiarów w bazie zmienia widok na nią, wpływając na spostrzeganie danych przez użytkownika. Zmieniając kolejność wymiarów dla tego samego zbioru danych, prezentujemy inny przekrój danych, co pozwala na analizowanie innych zależności w bazie. Ten rodzaj analizy nosi nazwę "przetnij i obróć" (slice and dice) i jest

najczęściej używany do analizowania danych dla celów handlowych. Serwer wielowymiarowej bazy danych lub narzędzie do analizy musi umożliwiać wykonywanie takich operacji w prosty sposób. Podobne możliwości oferują współczesne arkusze obliczeniowe, ale ze względu na specyficzny sposób prezentowania wszystkich danych w formie płaskiej tabeli, użyteczność jej obracania (pivot) jest mało przydatna.

Niektóre wymiary opisowe mają charakter hierarchiczny: czas można kwantować np. co 10 dni albo zgodnie z naturalnym podziałem na tygodnie, miesiące i lata. Jeżeli prowadzimy analizę danych w wielkiej skali, to szczegóły będą jedynie zaciemniały ogólny obraz. Jednakże możliwość dostępu w bazie do najdrobniejszych dostępnych szczegółów, schodzenie w głąb, stanowi istotne wymaganie wszelkich narzędzi analitycznych. Taka szczegółowa analiza (drill-down) w ramach subkategorii pozwala na zdefiniowanie wymiarów w bazie, przecinających się ze sobą wymiarów. Powinno więc być możliwe uzyskanie dowolnego przekroju danych: na wysokim poziomie abstrakcji w jednym wymiarze i na dowolnym poziomie szczegółowości w innych.

Im więcej wymiarów, tym trudniejsze poruszanie się w ramach skomplikowanej struktury bazy i tym trudniejszy powrót do już raz uzyskanego rezultatu. Dlatego narzędzia do analizy na ogół oferują możliwości śledzenia historii działań użytkownika i przebytej drogi.