Snowflake Schema vs. Star Schema

Při výběru schématu databáze pro datový sklad, sněhová vločka a hvězdná schémata inklinují být populární volby. Toto srovnání pojednává o vhodnosti schémat hvězda vs. sněhová vločka v různých scénářích a jejich charakteristikách.

Srovnávací tabulka

Schéma sněhové vločky versus srovnávací schéma Star Schema
Schéma sněhové vločkySchéma hvězd
Snadná údržba / změna Žádná redundance, takže schémata sněhových vloček se snáze udržují a mění. Má nadbytečná data, a proto je méně snadné udržovat / měnit
Snadnost použití Složitější dotazy, a tím méně snadno pochopitelné Nižší složitost dotazů a snadno pochopitelné
Výkon dotazu Více cizích klíčů a tím delší doba provádění dotazu (pomalejší) Menší počet cizích klíčů a tím kratší doba provádění dotazu (rychlejší)
Typ Datawarehouse Užitečné pro jádro datového skladu pro zjednodušení složitých vztahů (mnoho: mnoho) Dobré pro datové mapy s jednoduchými vztahy (1: 1 nebo 1: mnoho)
Připojí se Vyšší počet spojení Méně připojení
Tabulka rozměrů Schéma sněhové vločky může mít pro každou dimenzi více než jednu tabulku rozměrů. Hvězdné schéma obsahuje pouze jednu tabulku dimenzí pro každou dimenzi.
Kdy použít Pokud je rozměrová tabulka relativně velká, je lepší sněhové vločky, protože zmenšuje prostor. Pokud tabulka rozměrů obsahuje méně řádků, můžeme zvolit schéma Star.
Normalizace / De-Normalizace Tabulky dimenzí jsou v normalizované podobě, ale tabulka faktů je v normalizované podobě Tabulky dimenzí i faktů jsou v normalizované podobě
Datový model Přístup zdola nahoru Přístup shora dolů

Obsah: Snowflake Schema vs Star Schema

  • 1 Příklady
    • 1.1 Příklad schématu hvězd
    • 1.2 Příklad schématu sněhové vločky
  • 2 Reference

Příklady

Zvažte databázi pro maloobchodníka, který má mnoho obchodů, přičemž každý obchod prodává mnoho produktů v mnoha kategoriích produktů a různých značek. Datový sklad nebo datový server pro takového maloobchodníka by musel poskytnout analytikům schopnost spouštět prodejní zprávy seskupené podle obchodu, data (nebo měsíce, čtvrtletí nebo roku) nebo kategorie produktu nebo značky.

Příklad schématu hvězd

Pokud by tento datový server používal hvězdné schéma, vypadalo by to následovně:

Příklad schématu hvězdičky

Faktická tabulka by byla záznamem o prodejních transakcích, zatímco existují tabulky rozměrů pro datum, obchod a produkt. Tabulky dimenzí jsou každá propojena s tabulkou faktů prostřednictvím jejich primárního klíče, který je cizím klíčem pro tabulku faktů. Například místo uložení skutečného data transakce do řádku faktické tabulky je uložen date_id. Tento date_id odpovídá jedinečnému řádku v tabulce Dim_Date a tento řádek také ukládá další atributy data, které jsou vyžadovány pro seskupování v přehledech. např. den v týdnu, měsíc, čtvrtletí roku atd. Pro snazší přehledy jsou data denormalizována.

Zde je návod, jak získat zprávu o počtu televizorů prodávaných podle značky a podle země pomocí vnitřních připojení.

Příklad schématu sněhové vločky

Stejný scénář může také použít schéma sněhové vločky, v takovém případě by bylo strukturováno takto:

Příklad schématu sněhové vločky (klikněte pro zvětšení)

Hlavní rozdíl ve srovnání se schématem hvězd je, že data v tabulkách rozměrů jsou normalizována. Například namísto ukládání měsíce, čtvrtletí a dne v týdnu v každém řádku tabulky Dim_Date jsou tyto tabulky dále rozděleny do vlastních tabulek dimenzí. Podobně pro tabulku Dim_Store jsou stát a země geografické atributy, které jsou odstraněny o jeden krok - místo toho, aby byly uloženy v tabulce Dim_Store, jsou nyní uloženy v samostatné tabulce Dim_Geography..

Stejná zpráva - počet televizí prodaných podle země a značky - je nyní o něco složitější než ve schématu hvězd:

Dotaz SQL k získání počtu produktů prodaných podle země a značky, když databáze používá schéma sněhové vločky.

Reference

  • wikipedia: Snowflake_schema
  • wikipedia: Star_schema