Lumihiutalekaavio vs. tähtikaavio

Kun valitset tietokantakaavan tietovarastoon, lumihiutale ja tähtikaaviot yleensä suosittuja valintoja. Tässä vertailussa tarkastellaan tähti- ja lumihiutalekaavioiden soveltuvuutta eri tilanteisiin ja niiden ominaisuuksia.

Vertailutaulukko

Lumihiutalekaavio vs. tähtikaavio
LumihiutalekaavioTähtikaavio
Helppo ylläpito / vaihto Ei redundanssia, joten lumihiutalekaavioita on helpompi ylläpitää ja muuttaa. Siinä on tarpeetonta tietoa, joten sitä on vähemmän helppo ylläpitää / muuttaa
Helppokäyttöisyys Monimutkaisempia kyselyjä ja siten vähemmän helppo ymmärtää Matalampi kyselyn monimutkaisuus ja helppo ymmärtää
Kyselyn suorituskyky Lisää vieraita avaimia ja siten pidempi kyselyn suorittamisaika (hitaampi) Vähemmän vieraiden avainten lukumäärää ja siten lyhyempi kyselyn suorittamisaika (nopeampi)
Datawarehouse-tyyppi Hyvä käyttää datawarehouse-ytimessä monimutkaisten suhteiden yksinkertaistamiseksi (monia: monia) Hyvä tietokarttoille, joilla on yksinkertaiset suhteet (1: 1 tai 1: monet)
Liitosten Suurempi liittymien lukumäärä Vähemmän liittymiä
Mittataulukko Lumihiutalejärjestelmässä voi olla useampi kuin yksi mittataulukko kutakin ulottuvuutta kohti. Tähtikaavio sisältää vain yhden ulottuvuuden taulukon jokaiselle ulottuvuudelle.
Milloin käyttää Kun mittataulu on suhteellisen suuri, lumihiutale on parempi, koska se vähentää tilaa. Kun mittataulukko sisältää vähemmän rivejä, voimme valita Tähtikaavio.
Normalisointi / Normalisoinnin poistaminen Mittataulukot ovat normalisoidussa muodossa, mutta tosiasiataulukko on normalisoimattomassa muodossa Sekä mitta- että tietotaulukot ovat normalisoimattomassa muodossa
Tietomalli Lähestymistapa alhaalta ylöspäin Ylhäältä alas -lähestymistapa

Sisältö: Lumihiutalekaavio vs. tähtikaavio

  • 1 esimerkkejä
    • 1.1 Tähtikaavioesimerkki
    • 1.2 Esimerkki lumihiutalekaavasta
  • 2 Viitteet

esimerkit

Harkitse tietokantaa vähittäiskauppialle, jolla on useita myymälöitä. Jokainen myymälä myy useita tuotteita monissa tuoteryhmissä ja eri tuotemerkeillä. Tällaisen jälleenmyyjän tietovarasto tai tietokampanja tarjoaisi analyytikoille mahdollisuuden ylläpitää myyntiraportteja ryhmiteltyinä myymälän, päivämäärän (tai kuukauden, vuosineljänneksen tai vuoden) tai tuoteluokan tai tuotemerkin perusteella.

Tähtikaavioesimerkki

Jos tämä data-mart käyttäisi tähtiä, se näyttää seuraavalta:

Esimerkki tähtikaavasta

Tietotaulukko olisi tietue myyntitapahtumista, kun taas päivämäärälle, myymälölle ja tuotteelle on mittataulukoita. Mittataulukot on kukin kytketty tositaulukkoon pääavaimellaan, joka on vieras avain tosiasiapöydälle. Esimerkiksi sen sijaan, että tallennetaan todellinen tapahtumapäivä päivämäärätaulukon riville, päivämäärä_id tallennetaan. Tämä date_id vastaa ainutlaatuista riviä Dim_Date-taulukossa, ja tämä rivi tallentaa myös muut päivämäärän määritteet, joita tarvitaan ryhmittelyyn raporteissa. esim. viikonpäivä, kuukausi, vuoden neljännes ja niin edelleen. Tiedot on denormalisoitu raportoinnin helpottamiseksi.

Näin saadaan raportti televisioiden määrästä, joita myydään tuotemerkeittäin ja maittain sisäisten liitosten avulla.

Lumihiutalekaavioesimerkki

Samassa skenaariossa voidaan käyttää myös lumihiutalekaavaa, jolloin se rakenteeltaan seuraava:

Lumihiutalema-esimerkki (napsauta suurentaaksesi)

Tärkein ero verrattuna tähtijärjestelmään on, että mittataulukoiden tiedot on normalisoitu paremmin. Esimerkiksi sen sijaan, että kuukausia, vuosineljännestä ja viikonpäivää tallennetaan Dim_Date-taulukon jokaiselle riville, ne jaotellaan edelleen omiin mittataulukoihin. Samoin Dim_Store-taulukossa tila ja maa ovat maantieteellisiä ominaisuuksia, jotka on poistettu yhdellä askeleella - Dim_Store-taulukkoon tallentamisen sijaan ne tallennetaan nyt erilliseen Dim_Geography-taulukkoon..

Sama raportti - televisioiden määrä maittain ja tuotemerkeittäin - on nyt hieman monimutkaisempi kuin tähtijärjestelmässä:

SQL-kysely saadaksesi myytyjen tuotteiden lukumäärän maittain ja tuotemerkeittäin, kun tietokanta käyttää lumihiutalekaavaa.

Viitteet

  • wikipedia: Snowflake_schema
  • wikipedia: Star_schema