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.
Schéma sněhové vločky | Sché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ů |
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.
Pokud by tento datový server používal hvězdné schéma, vypadalo by to následovně:
Příklad schématu hvězdičkyFaktická 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í.
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.