🎯 Definicja

Tabela Faktów (Fact Table) to centralna tabela w modelu gwiazdy, która przechowuje dane numeryczne (miary) dotyczące procesu biznesowego (np. kwota sprzedaży, czas trwania rozmowy) oraz klucze obce do wymiarów (kto, gdzie, kiedy).

🔑 Kluczowe punkty

  • Charakter: Długa i wąska. Zawiera miliony/miliardy wierszy, ale mało kolumn (głównie ID i liczby).
  • Ziarnistość (Grain): Określa, co reprezentuje jeden wiersz (np. “jedna pozycja na paragonie” albo “jedna transakcja dzienna”).
  • Typy: Addytywne (można sumować), Pół-addytywne (np. stan magazynu - nie sumujesz po czasie), Bezfaktowe (Factless - np. rejestracja obecności, sama relacja).

📚 Szczegółowe wyjaśnienie

Fakt to zdarzenie. “Klient X kupił Produkt Y w Sklepie Z dnia D za Kwotę K”. W tabeli faktów wygląda to tak: {id_klient, id_produkt, id_sklep, id_data, kwota}. Wszystkie opisy (Nazwa klienta, adres sklepu) są w tabelach Wymiarów, żeby nie powtarzać ich miliony razy w tabeli faktów (oszczędność miejsca i szybkość).

💡 Przykład zastosowania

Analiza ruchu na stronie WWW. Fakt: PageView. Ziarno: Jedno wyświetlenie strony. Miary: Czas spędzony (sekundy). Wymiary: URL, Browser, User_ID, Geo, Date. SQL: SELECT Geo.Country, COUNT(*) FROM Fact_PageView JOIN Dim_Geo ... GROUP BY Geo.Country Liczba odwiedzin per kraj.

📌 Źródła

  • “The Data Warehouse Toolkit” - Ralph Kimball.

👽 Brudnopis

  • Najważniejsza decyzja przy projektowaniu: wybór Ziarnistości (Grain). Zbyt ogólna (np. agregat miesięczny) uniemożliwia dokładną analizę (drill-down). Zawsze staraj się trzymać najniższe atomowe ziarno w hurtowni.