Hvězdicové schéma

Z Wikipedie, otevřené encyklopedie
Skočit na navigaci Skočit na vyhledávání
Diagram obecného hvězdicového schématu

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]

Databázový model hvězdicového schématu demonstrovaného příkladu

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ů.

Tabulka popisující množství dat v jednotlivých tabulkách konkrétního příkladu
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]

Tabulka shrnující 10x měření výkonu dotazu DAX pomocí Analyzátoru výkonu v aplikaci Power BI Desktop
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]

  1. a b BELLATRECHE, Ladjel. Data warehousing design and advanced engineering applications : methods for complex construction. Hershey, PA: Information Science Reference, 2009. ISBN 9781605667560. 
  2. a b c d e JENSEN, Christian S. Multidimensional databases and data warehousing. [San Rafael, Calif.]: Morgan & Claypool Publishers, 2010. ISBN 9781608455379. 
  3. a b c d e f g h POWELL, Gavin. Oracle data warehouse tuning for 10g. Burlingham, Mass.: Elsevier Digital Press, 2005. ISBN 978-1555583354. 
  4. SEMINGER, David. Power BI: Použití Analyzátoru výkonu pro zjištění výkonu prvku [online]. Microsoft, 23.1.2020. Dostupné online.