Schéma sněhové vločky

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

Schéma sněhové vločky je normalizované hvězdicové schéma, jsou zde normalizovány tabulky dimenzí. Ve schématu jsou dimenze uspořádány v hierarchiích.[1]

Pokud jsou tabulky nakresleny s tabulkou faktů ve středu a související tabulky dimenzí vedle sebe, následný obrázek vypadá jako sněhová vločka. Z toho plyne název Schéma sněhové vločky.[2]

Model[editovat | editovat zdroj]

Každé schéma sněhové vločky 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]

Schémata sněhových vloček popisují stejné typy datových modelů jako hvězdicová schémata, s tím rozdílem, že jsou normalizovaná. Normalizace může být částečná nebo úplná podle pravidel třetí normalizační podoby.[4]

Schémata 3. normální formy[editovat | editovat zdroj]

Schéma 3. normální formy je v podstatě transakční nebo OLTP struktura, která zajišťuje malé množství vysoce souběžně přístupných (sdílených) datových struktur. Na rozdíl od schémat hvězdic a vločky jsou schémata 3. normální formy pro datové sklady obecně neúčinná a pokud je to možné, je nejlepší se jim vyhnout.[3]

Tabulky faktů[editovat | editovat zdroj]

Schéma sněhové vločky má centrální tabulku faktů a tabulky dimenzí. Pro každou dimenzi a její další úroveň obsahuje další tabulky dimenzí. To znamená, že nedojde k redundanci dat, což může být v některých situacích výhodné. Hierarchie jsou tedy v dimenzích explicitně vyjádřeny.[2]

Tabulky dimenzí[editovat | editovat zdroj]

Tabulky dimenzí obsahují primární klíč a sloupec obsahující textové popisy hodnot úrovní, případně další sloupce pro charakteristiku vlastností dané úrovně. Tabulky pro nižší úrovně dále obsahují cizí klíč k úrovni vyšší.[2]

U dimenzí ve schématu sněhové vločky je hierarchie tvořena řetězcem provázaných tabulek kardinalitou 1:N. Redundance dat je tímto snížena a můžeme hovořit o normalizované struktuře.[5]

Charakteristické vlastnosti[editovat | editovat zdroj]

  • Netechnickým uživatelům může porozumění normalizovaným strukturám způsobovat problémy, a tím se celá struktura stává neužitečnou.[1]
  • Schéma sněhové vločky je v rozporu s výkonem datového skladu. Efektivita se nejlépe využije při použití malého počtu tabulek ve hvězdicových schématech.[3]
  • Schéma sněhové vločky odstraní duplikaci dat z dimenzí hvězdicového schématu normalizací buď částečně, nebo úplně.[3]
  • Pomáhají uspořádat dimenze o něco lépe z matematické perspektivy tak, že ušetří místo na disku. Místo na disku je dnes ale poměrně levná záležitost.[1]
  • Schéma sněhové vločky vede k vyššímu počtu tabulek a tím i v počtu spojení v kódu SQL. Pokud se v kódu SQL vyskytuje více spojení v dotazech, než je nutné, následné dotazy jsou složité a neefektivní. Čím více spojení bude mít datový sklad, tím horší bude jeho výkon.[3]
  • Schéma sněhové vločky se na druhou stranu pokouší normalizovat rozměry hvězdného schématu a vytvořit několik hierarchií dimenzí. Někdy je použití schémat vloček nevyhnutelné.[3]

Příklad[editovat | editovat zdroj]

Databázový model schématu sněhové vločky demonstrovaného příkladu

Ve schématu databáze 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. DIM_Cas je časová dimenze; jedná se o speciální dimenzi generovanou nejčastěji automaticky. Pro tuto dimenzi není v praxi obvyklé, aby se například jednotlivé dny, nebo měsíce umísťovaly do dimenzí vyšších úrovní. Pro DIM_Pole, DIM_Plodina jsou přes cizí klíč propojeny s dimenzemi vyšší úrovně.

Bylo náhodně vygenerováno 500 záznamů pro dimenzi DIM_Pole a DIM_Plodina. Z těchto záznamů byly vyselektovány jedinečné záznamy a byly umístěny do dimenzí vyšší úrovně: Pro dimenzi DIM_Odruda 93 a pro dimenzi DIM_Katastr 131. 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 DIM_Odruda DIM_Katastr
Počet záznamů 500 000 1 000 500 500 131 93

Naplněné schéma bylo vloženo do modelu aplikace Power BI Desktop. Následně byl vytvořen jednoduchý vizuál, do kterého byla zadána data pro: součet hodnot sklizní, názvů odrůd a katastrů. Vizuál byl vyfiltrován rokem z časové dimenze. Poté byl spuštěn Analyzátor výkonu a byla provedena aktualizace vizuálu 10x za sebou.

Č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.“[6]

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 hvězdicové schéma bylo použito stejné množství dat, s tím rozdílem, že u hvězdy nebyla data transponována do vyšších ú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 c 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 JENSEN, Christian S. Multidimensional databases and data warehousing. [San Rafael, Calif.]: Morgan & Claypool Publishers, 2010. ISBN 9781608455379. 
  3. a b c d e f POWELL, Gavin. Oracle data warehouse tuning for 10g. Burlingham, Mass.: Elsevier Digital Press, 2005. ISBN 978-1555583354. 
  4. LABERGE, Robert. Datové sklady : agilní metody a business intelligence. Brno: Computer Press, 2012. ISBN 978-80-251-3729-1. 
  5. POUR, Jan. Self service business intelligence : jak si vytvořit vlastní analytické, plánovací a reportingové aplikace. Praha: Grada Publishing, 2018. ISBN 978-80-271-0616-5. 
  6. SEMINGER, David. Power BI: Použití Analyzátoru výkonu pro zjištění výkonu prvku [online]. Microsoft, 23.1.2020. Dostupné online.