02 Modelowanie danych


Hurtownie danych
Modelowanie danych
marcin.mazurek@wat.edu.pl 1
Treść wykładu
Modelowanie wymiarowe  podstawowe
informacje
Modelowanie hierarchii
Modelowanie zmienności w czasie
Modelowanie czasu
Agregacja w hurtowni danych
Metodyka projektowania modelu wymiarowego
marcin.mazurek@wat.edu.pl 2
MODELOWANIE WYMIAROWE
marcin.mazurek@wat.edu.pl 3
Fakty i miary
Fakty (ang. facts)  zdarzenia, o których informacja przechowywana
jest w hurtowni danych, podlegajÄ…ce analizie.
Rozmowa telefoniczna
Złożenie wniosku
Zakup polisy
Zakup polisy
Aktywacja kontraktu
Miara (ang. measures) - cecha ilościowa, opisująca zdarzenia lub
zwiÄ…zana z faktem np.:
Czas trwania połączenia
Suma ubezpieczenia
marcin.mazurek@wat.edu.pl 4
Wymiary
Wymiary - atrybuty opisujÄ…ce kontekst wystÄ…pienia faktu, np.
Czas
Lokalizacja geograficzna
Klient
Produkt
Produkt
Sprzedawca
Atrybuty  cechy opisujÄ…ce wymiar, np.:
Nazwisko klienta
Nazwa kraju
Typ produktu
Poziom szczegółowości - wymiar może być opisywany przez
atrybuty na jednym lub więcej poziomie szczegółowości
Granulacja danych w hurtowni - największy możliwy poziom
szczegółowości wymiarów analizy dla miar związanych opisujących
marcin.mazurek@wat.edu.pl 5
Projektowanie modelu danych
Wybór procesu biznesowego
Określenie istotnych faktów i ich granulacji
Określenie wymiarów analizy
Określenie wymiarów analizy
Określenie miar
Model punktowy
Model logiczny danych
Diagram encji (ERD)
Model tabel
marcin.mazurek@wat.edu.pl 6
Tabele faktów
Główne tabele hurtowni (wolumen
danych, przyrost)  stanowią około
90% wolumenu danych hurtowni
Sprzedaz
Model tabeli faktów powstaje w wyniku
odpowiedzi na pytanie:
«column
* Ilosc: numeric(10,2)
* Ilosc: numeric(10,2)
 Co mierzymy ?
 Co mierzymy ?
* Wartosc_PLN: numeric(10,2)
Kolumny tabeli faktów:
* Wartosc_EUR: numeric(10,2)
* ID_Produkt (FK): bigint
Klucze obce Å‚Ä…czÄ…ce z tabelami
* ID_Sklep (FK): bigint
wymiarów
* ID_Data (FK): bigint
Numeryczne kolumny zawierajÄ…ce miary
opisujÄ…ce fakt
Kolumny wyliczane
Klucz sztuczny (ROWID)
Niepotrzebny, gdyż kombinacja wartości
kluczy wymiarów powinna być unikalna
Może być wymagany przez system
zarzÄ…dzania bazÄ… danych
marcin.mazurek@wat.edu.pl 7
Modelowanie faktów  zasady
Każdy z wierszy w tabeli faktów musi
odpowiadać temu samemu poziomowi
szczegółowości (wszystkie klucze
szczegółowości (wszystkie klucze
wymiarów wypełnione)
marcin.mazurek@wat.edu.pl 8
Tabele faktów  wzorce
projektowe
Transakcje (ang. transactions)
Tabela, przechowujÄ…ca informacje o zdarzeniach
Migawka okresowa (ang. periodic snapshot)
Tabela, przechowujÄ…ca informacjÄ™ o stanie, np.: stan magazynu, stan
konta, wartość aktywów
konta, wartość aktywów
Stan jest zapisywany w regularnych odstępach czasu  np. codziennie,
na koniec miesiÄ…ca
Migawka akumulacyjna (ang. accumulating snaphsot)
Tabela przechowująca cykl życia produktu, zamówienia, usługi
Każdy wiersz odzwierciedla zmianę w czasie w postaci zbioru kluczy
wymiaru czasowego, odpowiadajÄ…cych chwilom zmiany statusu
Nietypowy wzorzec zakładający aktualizację rekordu.
marcin.mazurek@wat.edu.pl 9
Migawka akumulacyjna
yródło: http://blog.oaktonsoftware.com/2007/03/accumulating-snapshot-use-accumulating.html
marcin.mazurek@wat.edu.pl 10
Tabele wymiarów
DostarczajÄ… kontekst analizy
Kluczowe dla możliwości wykorzystania
Produkty
hurtowni danych w procesie analizy
«column
danych
*PK ID: bigint
* Kod_produktu: varchar(50)
Duża liczba kolumn (może sięgać
* Opis_produktu: varchar(50)
* Opis_produktu: varchar(50)
nawet 100)
nawet 100)
* Model: varchar(50)
* Marka: varchar(50)
Stosunkowo niewielka liczba wierszy
* Masa: varchar(50)
(rzadko przekracza 1 milion wierszy)
* Rodzaj_opakowania: varchar(50)
* Kategoria: varchar(50)
Kolumny tabeli wymiarów :
* Wysokość: numeric(10,2)
Klucz sztuczny
* Głębokość: timestamp
* Szerokość: numeric(10,2)
Klucz naturalny (biznesowy)
* Dlugosc_gwarancji: integer
Kolumny tekstowe zawierajÄ…ce
zrozumiałe wyjaśnienia (nie tylko
kody!)
Kolumny numeryczne (np. wielkość
powierzchni punktu sprzedaży)
marcin.mazurek@wat.edu.pl 11
Model wymiarowy
Produkty
Kalendarz
«column
«column
*PK ID: bigint
*PK ID: bigint
* Kod_produktu: varchar(50)
* Rok: bigint
* Opis_produktu: varchar(50)
* Miesiac: varchar(50)
* Model: varchar(50)
* Numer_dnia_w_miesiacu: integer
* Marka: varchar(50)
PK_Kalendarz 1 * Masa: varchar(50)
PK_Produkty
* Rodzaj_opakowania: varchar(50)
(ID_Data (FK) = ID)
* Kategoria: varchar(50)
1
(ID_Produkt (FK) = ID)
«FK
* Wysokość: numeric(10,2)
FK_Sprzedaz_Kalendarz
Sprzedaz
* Głębokość: timestamp
«FK
* Szerokość: numeric(10,2)
* Szerokość: numeric(10,2)
0..*
«column
FK_Sprzedaz_Produkty
* Dlugosc_gwarancji: integer
0..*
* Ilosc: numeric(10,2)
* Wartosc_PLN: numeric(10,2)
* Wartosc_EUR: numeric(10,2)
*FK ID_Produkt (FK): bigint
*FK ID_Sklep (FK): bigint
FK_Sprzedaz_Sklepy
*FK ID_Data (FK): bigint
0..*
(ID_Sklep (FK) = ID)
«FK
PK_Sklepy
Sklepy
1
«column
*PK ID: bigint
* Nazwa : varchar(50)
* Miejscowosc: varchar(50)
* Kod_pocztowy: char(6)
* Ulica : varchar(50)
* Poczta : varchar(50)
* Telefon : char(10)
marcin.mazurek@wat.edu.pl 12
Sklepy
Schemat gwiazdy
ID: bigint
Nazwa : varchar(50)
Kod_pocztowy: char(6)
Ulica : varchar(50)
Miejscowosc: varchar(50)
Poczta : varchar(50)
Telefon : char(10)
Wojewodztwo: varchar(50)
Każdemu wymiarowi
odpowiada jedna tabela
Sprzedaz
Wszystkie atrybuty wymiaru,
Ilosc: numeric(10,2)
Wartosc_PLN: numeric(10,2)
Wartosc_EUR: numeric(10,2)
niezależnie od poziomu
ID_Produkt (FK): bigint
ID_Sklep (FK): bigint
ID_Sklep (FK): bigint
ID_Data (FK): bigint
szczegółowości umieszczone
szczegółowości umieszczone
sÄ… w jednej tabeli
Produkty
ID: bigint
Kod_produktu: varchar(50)
Opis_produktu: varchar(50)
Model: varchar(50)
Marka: varchar(50)
Masa: varchar(50)
Kalendarz
Rodzaj_opakowania: varchar(50)
ID: bigint
Kategoria: varchar(50)
Rok: bigint
Wysokość: numeric(10,2)
Miesiac: varchar(50)
Głębokość: timestamp
Numer_dnia_w_miesiacu: integer
Szerokość: numeric(10,2)
Dlugosc_gwarancji: integer
marcin.mazurek@wat.edu.pl 13
Schemat płatka śniegu
Wojew odztwa
ID: bigint
Nazwa: varchar(50)
Dane opisujÄ…ce wymiary sÄ…
przechowywane w
Miejscow osci
ID: bigint
Nazwa: varchar(50)
znormalizowanym modelu (3NF)
ID_Wojewodztwo: bigint
Sklepy
ID: bigint
Nazwa : varchar(50)
Kod_pocztowy: char(6)
Kod_pocztowy: char(6)
Ulica : varchar(50)
Poczta : varchar(50)
Telefon : char(10)
Wojewodztwo: varchar(50)
ID_Miejscowosc: bigint
Sprzedaz
Ilosc: numeric(10,2)
Wartosc_PLN: numeric(10,2)
Wartosc_EUR: numeric(10,2)
ID_Produkt (FK): bigint
ID_Sklep (FK): bigint
Tygodnie ID_Data (FK): bigint
Kategorie
ID: bigint
ID: bigint
Numer_tygodnia_w_roku: integer
Nazwa: varchar(50)
Produkty
Etykieta: varchar(10)
Nazwa_krotka: varchar(50)
ID: bigint
Opis: varchar(50)
Kod_produktu: varchar(50)
Dni
Opis_produktu: varchar(50)
Model: varchar(50)
ID: bigint
Numer_dnia_w_miesiacu: integer Masa: varchar(50)
ID_Miesiac: bigint Rodzaj_opakowania: varchar(50)
ID_Tydzien: bigint Wysokość: numeric(10,2)
Lata Miesiace
Głębokość: timestamp Marki
Szerokość: numeric(10,2)
ID: bigint ID: bigint
ID: bigint
Dlugosc_gwarancji: integer
Rok: integer Miesiac: varchar(50)
Nazwa: varchar(50)
ID_Kategoria: bigint
ID_Rok: bigint
Wlasciciel: varchar(50)
ID_Marka: bigint
marcin.mazurek@wat.edu.pl 14
Schemat konstelacji
Wojew odztwa
ID: bigint
Nazwa: varchar(50)
Miejscowosci
ID: bigint
Nazwa: varchar(50)
ID_Wojewodztwo: bigint
Współdzielone wymiary
Sklepy
ID: bigint
Nazwa : varchar(50)
Kod_pocztowy: char(6)
Ulica : varchar(50)
Poczta : varchar(50)
Telefon : char(10)
Wojewodztwo: varchar(50)
ID_Miejscowosc: bigint
Sprzedaz
Ilosc: numeric(10,2)
Wartosc_PLN: numeric(10,2)
Wartosc_PLN: numeric(10,2)
Wartosc_EUR: numeric(10,2)
ID_Produkt (FK): bigint
ID_Sklep (FK): bigint
Tygodnie ID_Data (FK): bigint
Kategorie
ID: bigint
ID: bigint
Numer_tygodnia_w_roku: integer
Nazwa: varchar(50)
Produkty
Etykieta: varchar(10)
Nazwa_krotka: varchar(50)
ID: bigint
Opis: varchar(50)
Kod_produktu: varchar(50)
Dni
Opis_produktu: varchar(50)
ID: bigint Model: varchar(50)
Numer_dnia_w_miesiacu: integer Masa: varchar(50)
ID_Miesiac: bigint Rodzaj_opakowania: varchar(50)
ID_Tydzien: bigint Wysokość: numeric(10,2)
Lata Miesiace
Głębokość: timestamp Marki
Szerokość: numeric(10,2)
ID: bigint ID: bigint
ID: bigint
Dlugosc_gwarancji: integer
Rok: integer Miesiac: varchar(50)
Nazwa: varchar(50)
ID_Kategoria: bigint
ID_Rok: bigint
Wlasciciel: varchar(50)
ID_Marka: bigint
Zamow ienia
ID: bigint
Wartosc: numeric(10,2)
ID_Data(FK): bigint
ID_Produkt (FK): bigint
ID_Klient(FK): bigint
ID_DataRealizacji: bigint
Klienci
ID: bigint
Nazwisko: varchar(50)
Imie: varchar(50)
marcin.mazurek@wat.edu.pl 15
HIERARCHIE WYMIARÓW
marcin.mazurek@wat.edu.pl 16
Hierarchie
Atrybuty mogą opisywać
wymiar na różnych poziomach
szczegółowości, np.:
Nazwa kraju, nazwa gminy,
współrzędne geograficzne
współrzędne geograficzne
Rok kalendarzowy, miesiąc, dzień
Region, sklep, sprzedawca
Wartości atrybutów w
przypadku różnych poziomów
szczegółowości tworzą
hierarchiÄ™.
marcin.mazurek@wat.edu.pl 17
Rodzaje hierarchii
Kryterium semantyczne Kryterium struktury
Hierarchie oparte o poziomy Hierarchie zrównoważone (ang.
agregacji (ang. level  based, balanced)
Hierarchie, które mogą być przedstawione w
standard)
postaci drzewa (drzew), w którym odległość
Wyróżniona stała liczba nazwanych
od korzenia do liści jest zawsze taka sama.
poziomów hierarchii
poziomów hierarchii
Hierarchia geograficzna, hierarchia stanowisk Hierarchie nierównomierne (ang.
w organizacji
unbalanced)
Hierarchie oparte o wartości
Hierarchie , w których nie wszystkie ścieżki
od korzenia drzewa do elementu najbardziej
(ang. value-based, recursive)
szczegółowego dochodzą do tego samego
Jednorodne znaczeniowo elementy
poziomu szczegółowości.
powiązane relacją element nadrzędny-
elementy podrzędne (element podrzędny Hierarchie niewyrównane (ang.
może być elementem nadrzędnym dla
ragged, noncovering)
innych)
Hierarchie, w których nie wszystkie
Hierarchia części urządzenie technicznego,
poziomy szczegółowości są wypełnione.
hierarchia przełożony  podwładny bez
wyodrębniania stanowisk
marcin.mazurek@wat.edu.pl 18
Hierarchie oparte o poziomy
Poziomy szczegółowości
szczegółowości
hierarchii
Rok Miesiąc Dzień
2009 Grudzień 31
2010 Styczeń 1
2009 Styczeń 1
Dni
Miesiace
FK_Dni_Miesiace
FK_Miesiace_Lata
Lata
PK_Miesiace
PK_Rok
(ID_Miesiac = ID)
(ID_Rok = ID)
«column
«column
«column
*PK ID: bigint
*PK ID: bigint
«FK
«FK
1 0..*
1 0..*
*PK ID: bigint
* Numer_dnia_w_miesiacu: integer
* Miesiac: varchar(50)
* Rok: integer
*FK ID_Miesiac: bigint
*FK ID_Rok: bigint
Kalendarz
«column
*PK ID: bigint
* Rok: bigint
* Miesiac: varchar(50)
* Numer_dnia_w_miesiacu: integer
marcin.mazurek@wat.edu.pl 19
Hierarchie oparte o wartości
Pakiet Pakiet Pakiet Pakiet
javax javax.servlet javax.servlet.jsp javax.servlet.jsp.el
javax javax.servlet javax.servlet.jsp Javax.servlet.jsp.jstl.core
javax javax.servlet javax.servlet.jsp Javax.servlet.jsp.jstl.fmt
javax javax.servlet javax.servlet.http
javax javax.servlet javax.servlet.http
javax javax.ejb javax.ejb.spi
«FK
PK_Table1 1
Pakiety
«column
*PK ID: bigint
0..*
* Pakiet : varchar(50)
FK ID_PakietNadrzedny: bigint
FK_Pakiety _Pakiety
marcin.mazurek@wat.edu.pl 20
Hierarchia niewyrównana
Wydział Kierunek Specjalność Grupa
studencka
WCY Informatyka ISZ I8E1S1
WCY Informatyka SI I8B1S1
WCY Informatyka SI I8B1S1
WCY ZarzÄ…dzanie
Wcy Informatyka I0X1S1
WCY Informatyka I0X1S2
marcin.mazurek@wat.edu.pl 21
Hierarchia niezrównoważona
Województwo Powiat Gmina Miejscowość
Mazowieckie m.st.Warszawa Warszawa
Mazowieckie legionowski Serock Zegrze
Mazowieckie legionowski Legionowo
Mazowieckie Warszawa- Kampinos Granica
zachód
Aódzkie Pabianice Lutomiersk Kazimierz
marcin.mazurek@wat.edu.pl 22
Hierarchie - inne zagadnienie
projektowe
Czy fakty są związane wyłącznie z liśćmi hierarchii ?
Jak hierarchia może zmieniać się w czasie?
Nowa wersja hierarchii
Jednolity Rzeczowy Wykaz Akt (JRWA)
Jednolity Rzeczowy Wykaz Akt (JRWA)
Podział administracyjny kraju
Zmiana przynależności elementu
zmiana granicy jednostki administracyjnej
Zmiana departamentu przez pracownika
Zmiana atrybutów elementu
marcin.mazurek@wat.edu.pl 23
MODELOWANIE ZMIENNOÅšCI
WYMIARÓW W CZASIE
marcin.mazurek@wat.edu.pl 24
Modelowanie zmienności
wymiarów
Wolno zmienne wymiary - ang. Slowly Changing Dimensions (SCD)
Typ 1 - nadpisanie wartości
nadpisanie wartości
Stosowane najczęściej w przypadku zmiany nazwy, nazwiska.
Typ 2 - dodanie rekordu
Typ 2 - dodanie rekordu
dodanie rekordu zawierającego nowe wartości
Najczęściej stosowany typ obsługi zmienności wymiaru
Typ 3  dodanie kolumny
Zmiany zapisywane są w oddzielnych kolumnach (dla każdej wersji jest
oddzielna kolumna przechowująca wartość).
Stosowany w przypadku okazjonalnych zmian, w których istotna jest możliwość
łatwego odwołania do poprzedniej wartości, np. Województwo według starego i
nowego podziału administracyjnego
marcin.mazurek@wat.edu.pl 25
SCD  Typ 1
ID Nazwisko Imię Data Miejsce Województwo
urodzenia zamieszkania
10256 Kowalska Janina 1990-01-10 Skierniewice łódzkie
UPDATE
UPDATE
ID Nazwisko Imię Data Miejsce Województwo
urodzenia zamieszkania
10256 Malinowska Janina 1990-01-10 Skierniewice łódzkie
marcin.mazurek@wat.edu.pl 26
SCD  Typ 2
ID PESEL Nazwisko Imię Data Miejsce Województwo Data od Data do
urodzenia zamieszkania
01234567890
1990-01-10 1995-06-01 9999-12-01
321 Kowalska Janina Skierniewice łódzkie
Zmiana adresu zamieszkania
Skierniewice -> Warszawa
Skierniewice -> Warszawa
INSERT
INSERT
Od dnia 2011-03-15
UPDATE (data do)
ID PESEL Nazwisko Imię Data Miejsce Województwo Data od Data do
urodzenia zamieszkania
01234567890
1990-01-10 1995-06-01 2011-03-15
321 Kowalska Janina Skierniewice łódzkie
01234567890
1999-01-10 2011-03-16 9999-12-01
322 Kowalska Janina Warszawa Mazowieckie
marcin.mazurek@wat.edu.pl 27
SCD  Typ 3
ID Nazwisko Imię Data Miejsce Województwo
urodzenia zamieszkania
10256 Kowalska Janina 1990-01-10 Skierniewice skierniewickie
Zmiana województwa wynikająca
z reformy podziału
z reformy podziału
ALTER TABLE &
ALTER TABLE &
administarcyjnego kraju
UPDATE & .
ID Nazwisko Imię Data Miejsce Województwo Województwo
urodzenia zamieszkania stare
10256 Malinowska Janin 1990-01-10 Skierniewice skierniewickie łódzkie
a
marcin.mazurek@wat.edu.pl 28
SCD - podsumowanie
Typ 1 Typ 2 Typ 3
Zastąpienie wartości Dodanie nowego wiersza w Dodanie nowej kolumny
poprzedniej nową w tym tabeli wymiarów z nowymi przechowujące poprzednią
samym rekordzie wartościami atrybutów wartość atrybutu
Najłatwiejszy do implementacji " Nie ma konieczności " Nie ma konieczności
aktualizacji istniejących aktualizacji raportów czy też
aktualizacji istniejących aktualizacji raportów czy też
agregatów agregatów
" Nowy wiersz automatycznie " Umożliwia połączenie faktów
partycjonuje historię w tabeli zarówno ze starymi jak i nowymi
faktów wartościami atrybutów
Brak możliwości odczytania " Dwie (lub więcej) wartości Wymaga zmiany struktury bazy
poprzednich wartości klucza sztucznego danych
" Wzrost wolumentu tabeli
wymiarów
" Nie pozwala połączyć nowych
wartości atrybutów ze starymi
faktami
marcin.mazurek@wat.edu.pl 29
Wymiary szybkozmienne
Podział atrybutów wymiaru na wolno i
szybkozmienne oddzielne wymiary
Dwa klucze w tabeli faktów
Dwa klucze w tabeli faktów
Podstawowej tabeli wymiarów
Wydzielonej tabeli odpowiadajÄ…cej
szybkozmiennym atrybutom wymiaru.
marcin.mazurek@wat.edu.pl 30
Modelowanie zmienności
wymiarów  inne rozwiązania
Oddzielne tabele przechowujÄ…ce historiÄ™ zmian
Podstawowa tabela przechowuje stan bieżący
Dodatkowa tabela przechowuje wszystkie zmiany rekordu z tabeli podstawowej
w postaci kolejnych rekordów opatrzonych datami wyznaczającymi zakres
ważności wersji rekordu.
ważności wersji rekordu.
Podejście hybrydowe (Ralph Kimball) -  Unpredictable changes
with single-version ovelay
Kombinacja typu 2 i 3
Dodanie nowego wiersza w tabeli wymiarów
Dodanie nowej kolumny przechowującej poprzednią wartość wymiaru
marcin.mazurek@wat.edu.pl 31
MODELOWANIE WYMIARU
CZASU
marcin.mazurek@wat.edu.pl 32
Wymiar czasu - kalendarz
W podejściu wymiarowym czas jest reprezentowany
przez oddzielnÄ… tabelÄ™ wymiaru  Kalendarz
SQL nie zawiera wszystkich funkcji wymaganych w raportowaniu
(oznaczenie świąt, okresy sprawozdawczości)
yródło: R. Kimball, The Data Warehouse Toolkit , The Complete Guide To Dimensional Modelling
marcin.mazurek@wat.edu.pl 33
INNE ZAGADNIENIA
MODELOWANIA DANYCH
marcin.mazurek@wat.edu.pl 34
Tabela faktów bez faktów
ang. Factless fact table
Tabele faktów pozbawione miar, składające się
wyłącznie z kluczy obcych
Pozwalają rejestrować zdarzenia
Zapisanie siÄ™ studenta na temat pracy dyplomowej
Pozwalają analizować zdarzenia, które nie miały
miejsca, np. w której promocji nie sprzedano ani
jednego produktu.
marcin.mazurek@wat.edu.pl 35
Wymiary zdegenerowane
Wymiary zdegenerowane (ang.
degenerate dimension) - wymiary
składające się wyłącznie z jednego
składające się wyłącznie z jednego
atrybutu (klucza wymiaru)
Wartość klucza umieszczana jest
bezpośrednio w tabeli faktów
marcin.mazurek@wat.edu.pl 36
Junk dimension
Flagi, statusy, dodatkowe pola o niewielkiej
liczbie możliwych wartości, nie należące
logiczne do żadnego ze zidentyfikowanych
wymiarów
wymiarów
Przechowywane w oddzielnej tabeli wymiarów
Wiersze tabeli generowane przed ładowaniem faktów
Wiersze generowane ad-hoc w procesie ETL
marcin.mazurek@wat.edu.pl 37
Redukcja liczby wymiarów
Każdy wymiar to klucz w tabeli faktów  duża
liczba wymiarów może oznaczać dużą zajętość
przestrzenie dyskowej
Scalenie wymiarów  umieszczenie iloczynu
Scalenie wymiarów  umieszczenie iloczynu
kartezjańskiego zbioru wartości dwóch lub
więcej wymiarów w jednej tabeli
marcin.mazurek@wat.edu.pl 38
AGREGACJA
marcin.mazurek@wat.edu.pl 39
Tabele podsumowań
Agregaty  tabele zawierajÄ…ce informacjÄ™
wtórną, wyliczoną w oparciu o tabele faktów przy
użyciu funkcji agregacji
Najczęstsze funkcje agregacji:
Najczęstsze funkcje agregacji:
SUM, COUNT, DISTINCT COUNT, AVG
Agregaty mogą zawierać klucze wymiarów
(model płatka śniegu) lub wartości atrybutów
marcin.mazurek@wat.edu.pl 40
Agregacja w hurtowni danych
Miary:
Addytywne  takie, które mogą być agregowane w każdym z wymiarów.
Dla obliczenia podsumowania wymagane są wartości na dowolnym
poziomie granulacji, nie mniejszym niż podsumowanie.
Semiaddytywne - takie, które mogą być agregowane z wyłączeniem
Semiaddytywne - takie, które mogą być agregowane z wyłączeniem
niektórych wymiarów (najczęściej wymiar czasu)
Stan środków na koncie
Liczba klientów
Nieaddytywne  takie, które nie mogą być agregowane -
podsumowania muszą być obliczane w oparciu o dane najbardziej
szczegółowe
Liczba klientów, którzy skorzystali z usługi
distinct count()
marcin.mazurek@wat.edu.pl 41
METODYKA BUDOWY
MODELU WYMIAROWEGO
marcin.mazurek@wat.edu.pl 42
Zasady budowy modelu
wymiarowego
Model danych hurtowni budowany jest przyrostowo
według obszarów tematycznych
Podczas projektowania modelu wymiaru, dąży się do
Podczas projektowania modelu wymiaru, dąży się do
tego, aby był on wspólny dla całej organizacji (ang.
conformed dimension)
Podczas projektowania kolejnych obszarów
wykorzystujemy definicje wymiarów utworzonych
wcześniej
marcin.mazurek@wat.edu.pl 43
Budowa modelu wymiarowego
yródło: R. Kimball, The Data Warehouse Toolkit , The Complete Guide To Dimensional Modelling
marcin.mazurek@wat.edu.pl 44
Szyna wymiarów
yródło: R. Kimball, The Data Warehouse Toolkit , The Complete Guide To Dimensional Modelling
marcin.mazurek@wat.edu.pl 45
Literatura
Kimball Group
http://www.kimballgroup.com/
Data Modelling Techniques for Data Warehouses
Data Modelling Techniques for Data Warehouses
http://www.redbooks.ibm.com/redbooks/pdfs/sg242238.pdf
marcin.mazurek@wat.edu.pl 46


Wyszukiwarka

Podobne podstrony:
UML język modelowania danych
02 PREZENTACJA DANYCH STATYSTYCZNYCH
modelowanie danych
Modelowanie danych cz1
02 Modelowanie matematyczne układów dynamicznych
Elementy statystycznego modelowania danych EDA
Zasady modelowania danych
2009 02 Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map [Grafika]
02 Projektowanie bazy danych
2009 02 Relacyjna baza danych HSQLDB [Bazy Danych]
Algorytmy i struktury danych 02 Rekurencja i złożoność obliczeniowa
02 mo modelowanie
Margit Sandemo Cykl Saga o czarnoksiężniku (02) Blask twoich oczu
t informatyk12[01] 02 101

więcej podobnych podstron