Hvězdicové schéma
Hvězdicové schéma je nejjednodušší schéma datového skladu. Ve tvaru hvězdy se skládá z jediné centrální tabulky faktů propojené s periferními dimenzemi. Tabulka faktů představuje jeden typ obchodního měření, který je složen z odkazů na jeho popisné dimenze, ze souboru obvykle číselných a doplňkových opatření.[1]
Název odkazuje na pozorování, že pokud jsou tabulky nakresleny tak, že tabulka faktů je ve středu a tabulky dimenzí kolem ní, výsledný obrázek vypadá jako hvězda.[2]
Model
[editovat | editovat zdroj]Každé schéma hvězdy má vždy entitu faktu. Jeden datový sklad se může skládat z několika entit faktů, a tedy i z více hvězdicových schémat a/nebo sněhových vloček. Jeden datový model může obsahovat více tabulek faktů, a tedy i více hvězdicových schémat. Jednotlivé tabulky dimenze mohou také ukazovat na více tabulek faktů.[3]
Tabulka faktů
[editovat | editovat zdroj]Hvězdicové schéma obsahuje jednu nebo velmi málo velkých tabulek faktů. Tabulky faktů obsahují transakční historie, a tak mohou mít v datovém skladu miliardy řádků.[3] Pro každou transakční míru má tabulka určený jeden sloupec. Každý řádek v tabulce faktů se označuje jako tzv. multidimenzionální fakt.[2] Je rozumné co nejvíce statických dat uložených v tabulkách faktů přesunout do dimenzí.[3] Poté bude pro každou dimenzi umístěn v tabulce faktů jeden sloupec obsahující cizí klíč odkazující na primární klíč dimenze.[2]
Tabulka dimenzí
[editovat | editovat zdroj]Tabulky dimenzí obsahují statická data popisující záznamy v tabulkách faktů.[3] Každá tabulka má klíčový sloupec a jeden sloupec pro všechny úrovně dimenze. Sloupec pro úroveň obsahuje textové popisy hodnot. Tabulka dimenzí tedy obsahuje jeden sloupec pro každou vlastnost úrovně v dimenzi.[2] Dimenzionální tabulky budou zabírat malý zlomek úložného prostoru oproti tabulkám faktů. Jejich velikost je v rozmezí desítek, stovek tisíc.[3]
Charakteristické vlastnosti:
[editovat | editovat zdroj]- Hvězdicová schémata představují velmi jednoduchý model, kde pro každou dimenzi existuje pouze jedna úroveň, která je spojena s tabulkou faktů.[3]
- Hvězdicová schémata obsahují méně dimenzí než schémata sněhové vločky.[3]
- Hvězdicové schéma je velmi snadné pro pochopení. Uživatele není nutné zatěžovat všemi složitými vztahy mezi tabulkami relačního datového modelu a vícerozměrných hierarchií. Pro netechnické uživatele se proto Hvězdné schéma stává snadněji pochopitelné.[1]
- Hvězdicová schémata denormalizují více dimenzí do jednotlivých entit. Proto v datech vzniká větší redundance dat. Jelikož však rozměry obvykle zabírají pouze 1–5 % z celkového úložiště požadovaného pro hvězdné schéma, redundance není prostorově problém, nezpůsobuje problémy s výkonem.[2]
- Hvězdicová schémata vyžadují méně spojení jednoduše proto, že existuje méně tabulek. Čím menší je počet tabulek, tím menší a méně komplexní spojení budou, a nakonec budou rychlejší dotazy.[3]
Příklad
[editovat | editovat zdroj]Ve schématu databáze níže je znázorněn model pro záznam dat ze sklizní pro zemědělský podnik. V tabulce FA_Sklizeno se uchovávají záznamy o sklizních. Konkrétně záznamy o počtu sklizených tun a výměře sekání. Dále jsou zde hodnoty cizích klíčů pro dimenze DIM_Cas, DIM_Pole, DIM_Plodina. Ve všech dimenzích je na první pohled vidět, že budou obsahovat denormalizovaná data, konkrétně například dimenze DIM_Pole obsahuje názvy katastrů v textové podobě.
Bylo náhodně vygenerováno 500 záznamů pro dimenzi DIM_Pole a DIM_Plodina. Pro časovou dimenzi DIM_Cas bylo vygenerováno 1 000 záznamů. V tabulce faktů FA_Sklizeno bylo vygenerováno 500 000 záznamů.
FA_Sklizeno | DIM_Cas | DIM_Pole | DIM_Plodina | |
---|---|---|---|---|
Počet záznamů | 500 000 | 1 000 | 500 | 500 |
Časové jednotky v řádku pro Dotaz DAX v Analyzátor výkonu znamenají: „Pokud byl požadován dotaz DAX, jedná se o čas mezi tím, kdy vizuál odešle dotaz, a okamžikem, kdy služba Analysis Services vrátí výsledky.“[4]
Hvězdicové schéma | Schéma sněhové vločky | |||||
---|---|---|---|---|---|---|
Minimální hodnota |
Maximální hodnota |
Průměrná hodnota |
Minimální hodnota |
Maximální hodnota |
Průměrná hodnota |
Rozdíl průměrů |
8ms | 10ms | 9ms | 13ms | 14ms | 13ms | 4ms |
I pro schéma sněhové vločky bylo použito stejné množství dat, s tím rozdílem, že u vločky byla data transponována do dimenzí vyšší úrovně. Při porovnání dat z tabulek pro obě schémata a jejich rozdílu, je patrné, že hvězdicové schéma dosahuje lepšího výkonu než schéma sněhové vločky. Je nutné brát v potaz, že množství dat v tomto příkladu je zanedbatelné oproti reálným datům. Proto je nutné obzvlášť dbát na architekturu datového modelu, aby byly dotazy vykonávány v co nejkratším čase.
Odkazy
[editovat | editovat zdroj]Reference
[editovat | editovat zdroj]- ↑ a b BELLATRECHE, Ladjel. Data warehousing design and advanced engineering applications : methods for complex construction. Hershey, PA: Information Science Reference, 2009. ISBN 9781605667560.
- ↑ a b c d e JENSEN, Christian S. Multidimensional databases and data warehousing. [San Rafael, Calif.]: Morgan & Claypool Publishers, 2010. Dostupné online. ISBN 9781608455379.
- ↑ a b c d e f g h POWELL, Gavin. Oracle data warehouse tuning for 10g. Burlingham, Mass.: Elsevier Digital Press, 2005. Dostupné online. ISBN 978-1555583354.
- ↑ SEMINGER, David. Power BI: Použití Analyzátoru výkonu pro zjištění výkonu prvku [online]. Microsoft, 23.1.2020. Dostupné online.