Shema snežinke proti shemi zvezd

Pri izbiri sheme baze podatkov za podatkovno skladišče, snežinka in zvezdne sheme ponavadi so priljubljene izbire. Ta primerjava govori o primernosti shem zvezda proti snežinki v različnih scenarijih in njihovih značilnostih.

Primerjalna tabela

Primerjalna tabela snežinke v primerjavi s shemo zvezda
Shema snežinkeShema zvezd
Enostavnost vzdrževanja / sprememb Brez odvečnosti, zato je sheme snežinke lažje vzdrževati in spreminjati. Ima odvečne podatke in zato manj enostavno za vzdrževanje / spreminjanje
Enostavnost uporabe Bolj zapletene poizvedbe in s tem manj enostavno razumevanje Nižja zahtevnost poizvedbe in enostavna za razumevanje
Uspešnost poizvedbe Več tujih ključev in s tem daljši čas izvedbe poizvedb (počasneje) Manjše število tujih ključev in s tem krajši čas izvedbe poizvedb (hitrejši)
Vrsta podatkovne hiše Dobro za uporabo v jedru podatkovne hiše za poenostavitev zapletenih odnosov (veliko: veliko) Primerno za podatkovne zaznamke s preprostimi razmerji (1: 1 ali 1: veliko)
Pridruži se Večje število pridružitev Manj pridruži
Tabela dimenzij Shema snežinke lahko vsebuje več preglednic dimenzij za vsako dimenzijo. Zvezdna shema vsebuje samo eno dimenzijsko tabelo za vsako dimenzijo.
Kdaj uporabiti Kadar je tabela dimenzij sorazmerno velika, je sneženje boljše, saj zmanjšuje prostor. Ko tabela dimenzij vsebuje manjše število vrstic, lahko izberemo shemo Star.
Normalizacija / denormalizacija Tabele dimenzij so v normalizirani obliki, vendar je tabela dejstev v obliki brez normiranja Tabele dimenzij in dejstev so v de-normirani obliki
Podatkovni model Pristop od spodaj navzgor Pristop od zgoraj navzdol

Vsebina: Shema snežinke proti shemi zvezd

  • 1 Primeri
    • 1.1 Primer sheme zvezd
    • 1.2 Primer sheme snežinke
  • 2 Reference

Primeri

Razmislite o zbirki podatkov za prodajalca, ki ima veliko trgovin, pri čemer vsaka trgovina prodaja veliko izdelkov v številnih kategorijah izdelkov in različnih blagovnih znamk. Podatkovno skladišče ali podatkovna zbirka za takega prodajalca bi morala zagotoviti analitikom možnost vodenja prodajnih poročil, razvrščenih po trgovini, datumu (ali mesecu, četrtletju ali letu) ali kategoriji izdelkov ali blagovni znamki.

Primer sheme zvezd

Če bi ta podatkovni podatkov uporabljal zvezdno shemo, bi bil videti tako:

Primer sheme Star

Tabela dejstev bi bila zapis prodajnih transakcij, medtem ko obstajajo tabele dimenzij za datum, trgovino in izdelek. Tabele dimenzij so povezane s tabelo dejstev s svojim primarnim ključem, ki je tuji ključ za tabelo dejstev. Na primer, namesto da bi dejanski datum transakcije shranil v vrstico tabele dejstev, se shrani datum_id. Ta datum_id ustreza edinstveni vrstici v tabeli Dim_Date in ta vrstica shranjuje tudi druge atribute datuma, ki so potrebni za razvrščanje v poročila. npr. dan v tednu, mesec, četrtletje leta in tako naprej. Podatki so denormalizirani za lažje poročanje.

Tukaj je opisano število televizijskih programov, ki jih prodaja blagovna znamka in država, s pomočjo notranjih povezav.

Primer sheme snežinke

Isti scenarij lahko uporablja tudi shemo snežinke, v tem primeru pa bi bil strukturiran na naslednji način:

Primer sheme snežinke (kliknite za povečavo)

Glavna razlika v primerjavi s shemo zvezd je ta, da so podatki v dimenzijskih tabelah bolj normalizirani. Na primer, namesto da v vsako vrstico tabele Dim_Date shranite mesec, četrtino in dan v tednu, so te razčlenjene v lastne tabele dimenzij. Podobno kot za tabelo Dim_Store sta država in država geografski atributi, ki so odstranjeni v enem koraku - namesto da bi bili shranjeni v tabeli Dim_Store, so zdaj shranjeni v ločeni tabeli Dim_Geography.

Isto poročilo - število televizijskih programov, ki so jih prodali po državah in znamkah - je zdaj nekoliko bolj zapleteno kot v shemi zvezd:

Poizvedba SQL za pridobitev števila izdelkov, ki se prodajajo po državah in blagovnih znamkah, ko baza podatkov uporablja shemo snežinke.

Reference

  • wikipedia: Snowflake_schema
  • wikipedia: Star_schema