Lumihiutalekaavio tietovarastomallissa

⚡ Älykäs yhteenveto

Tietovarastomallinnuksen lumihiutalekaavio järjestää normalisoidut ulottuvuustaulukot, jotka haarautuvat keskeisestä tietotaulukosta lumihiutaleen tavoin. Se laajentaa tähtikaaviota, vähentää tietojen redundanssia ja järjestää hierarkioita useiden toisiinsa liittyvien hakutaulukoiden kesken.

  • 🧩 Ydinrakenne: Keskustietotaulukko on yhteydessä ulottuvuustaulukoihin, jotka on normalisoitu edelleen alidimensioiksi ja hakutaulukoiksi.
  • ❄️ normalisointi: Kunkin ulottuvuuden jakaminen toisiinsa liittyviin taulukoihin poistaa toistuvat attribuutit ja siirtää hierarkioita kohti kolmatta normaalimuotoa.
  • 🌟 Suhde tähtikaavioon: Lumihiutalekaavio laajentaa tähtikaaviota normalisoimalla sen tasaiset, denormalisoidut ulottuvuustaulukot.
  • 💾 Säilytystilan etu: Pienemmät normalisoidut hakutaulukot vähentävät levynkäyttöä ja poistavat tarpeetonta dataa, mikä helpottaa ylläpitoa.
  • 🔗 Kyselyn kompromissi: Useampi taulukko tarkoittaa useampia liitoksia, mikä voi hidastaa kyselyiden suorituskykyä ja vaikeuttaa raportointia.
  • 🧭 Milloin käyttää: Valitse se suurille ulottuvuuksille, joissa on syvät hierarkiat ja joissa tallennustilan säästöt ja tietojen eheys ovat tärkeimpiä.
  • 🪐 Aiheeseen liittyvät kaaviot: Galaksi- ja tähtijoukkojen mallit perustuvat tähti- ja lumihiutalekonsepteihin monimutkaisempien mallien luomiseksi.

Lumihiutalekaavio tietovarastossa, jossa normalisoidut ulottuvuustaulukot haarautuvat keskeisestä tietotaulukosta

Mikä on lumihiutalekaavio?

A Lumihiutaleohjelma tietovarastossa on looginen taulukoiden järjestely moniulotteisessa tietokannassa, jonka entiteettisuhdekaavio (ER) muistuttaa lumihiutaleen muotoa. Se on ulottuvuusmalli jossa keskeinen faktataulukko linkittyy ulottuvuustaulukoihin, ja nämä ulottuvuustaulukot jaetaan edelleen toisiinsa liittyviin alidimensiotaulukoihin.

Lumihiutalekaavio on tähtikaavion laajennus. Tähtikaavio pitää jokaisen ulottuvuuden yhdessä erillisessä taulukossa, kun taas lumihiutalekaavio normalisoi nämä ulottuvuudet jakamalla toistuvat tietoryhmät lisähakutaulukoiksi. Tämä normalisointi poistaa redundanssin ja luo haarautuvan, hierarkkisen rakenteen, joka antaa kaaviolle sen nimen.

Esimerkki lumihiutalekaaviosta

Seuraavassa lumihiutalekaavioesimerkissä myyntitietotaulukko on keskellä, ja sitä ympäröivät ulottuvuudet, kuten Tuote, Päivämäärä ja Myymälä. Sen sijaan, että kaikki määritteet tallennettaisiin yhteen ulottuvuustaulukkoon, maantieteelliset tiedot normalisoidaan siten, että Maa siirretään omaan erilliseen taulukkoonsa.

Esimerkki lumihiutalekaaviosta, jossa on keskeinen tietotaulukko ja normalisoitu maa-dimensiotaulukko
Esimerkki lumihiutalekaaviosta

Tässä Store-ulottuvuus viittaa City-taulukkoon, City-taulukko viittaa State-taulukkoon ja State-taulukko viittaa Country-taulukkoon. Jokainen arvo tallennetaan vain kerran ja linkitetään viiteavaimella, joten maan nimeä ei koskaan toisteta miljoonien rivien yli. Tämä kerroksellinen normalisointi erottaa lumihiutale-skeeman flat star -skeemasta.

Lumihiutalekaavion ominaisuudet

Lumihiutalekaaviolla on useita määrittäviä ominaisuuksia:

  • Se käyttää vähemmän levytilaa, koska normalisoidut dimensiotaulukot välttävät toistuvien arvojen tallentamisen.
  • Uusia ulottuvuuksia voidaan lisätä kaavioon suhteellisen vähällä vaivalla.
  • Kyselyn suorituskyky voi laskea, koska tietojen hakeminen vaatii useiden taulukoiden yhdistämistä.
  • Se vaatii enemmän ylläpitotyötä, koska on hallittava suurempaa määrää hakutaulukoita.

Kuinka suunnitella lumihiutalekaavio

Lumihiutalemallin suunnittelu alkaa samalla tavalla kuin minkä tahansa dimensiomallin suunnittelu, ja siihen lisätään normalisointivaihe. Tavoitteena on tunnistaa analysoitava liiketoimintaprosessi, mallintaa se ensin tähtimallina ja sitten normalisoida syviä hierarkioita sisältävät dimensiot. Toimi seuraavasti:

  1. Tunnista liiketoimintaprosessi ja sen sisältö. Päätä, mitä yksittäinen tietotaulukon rivi edustaa, kuten yhtä myyntitapahtumaa, ja määritä numeeriset mittarit eli tiedot, joista sinun on raportoitava.
  2. Rakenna keskeinen tietotaulukko. Lisää numeeriset mitat ja kuhunkin ulottuvuuteen osoittavat viiteavaimet; yhdessä nämä viiteavaimet muodostavat yleensä yhdistetyn ensisijaisen avaimen.
  3. Määrittele dimensiotaulukot. Luo yksi taulukko jokaiselle kuvailevalle ulottuvuudelle, kuten Tuote, Asiakas, Päivämäärä ja Myymälä, ja määritä kullekin korvaava ensisijainen avain.
  4. Normalisoi hierarkiat. Jaa jokainen toistuvia attribuutteja sisältävä ulottuvuus alidimensiotaulukoihin, esimerkiksi siirtämällä kategoria pois Tuote-ulottuvuudesta tai Kaupunki, Osavaltio ja Maa -ulottuvuus pois Myymälä-ulottuvuudesta.
  5. Yhdistä taulukot viiteavaimilla. Linkitä jokainen alidimensio takaisin päätaulukkoonsa siten, että haarat muodostavat selkeät yksi-moneen-hierarkiat, jotka muistuttavat lumihiutaletta.
  6. Vahvista ja testaa kyselyillä. Suorita edustavia raportointikyselyitä varmistaaksesi, että liitokset palauttavat oikeat tulokset ja että yleinen suorituskyky pysyy hyväksyttävänä.

Koska suunnittelu normalisoi datan kohti kolmatta normaalimuotoa, dokumentoi liitospolut selkeästi, jotta analyytikot ymmärtävät, miten kussakin haarassa navigoidaan. Kun rakenne on määritelty, kannattaa punnita kaavan hyötyjä sen kustannuksiin nähden.

Lumihiutale-skeeman edut

Lumihiutalekaavio tarjoaa useita etuja:

  • Sen ensisijainen etu on pienempi levytila, koska pienempien normalisoitujen hakutaulukoiden yhdistäminen välttää ulottuvuustietojen päällekkäisyyden.
  • Se tarjoaa paremman skaalautuvuuden komponenttien ja ulottuvuustasojen välisissä suhteissa.
  • Se poistaa redundanssin, mikä parantaa tietojen eheyttä ja helpottaa mallin ylläpitoa.
  • Kuvaileva ominaisuus päivittyy vain yhdessä paikassa, mikä pienentää epäjohdonmukaisen datan riskiä.

Lumihiutale-skeeman haitat

Suunnittelussa on myös otettava huomioon kompromisseja:

  • Normalisoitu rakenne lisää monien toisiinsa liittyvien taulukoiden hallintaan tarvittavaa ylläpitoa.
  • Monimutkaisten kyselyiden, jotka ulottuvat useisiin liitoksiin, kirjoittaminen ja ymmärtäminen voi olla vaikeaa.
  • Suurempi määrä taulukoita tarkoittaa enemmän liitoksia, mikä pidentää kyselyn suoritusaikaa.
  • Yrityskäyttäjien on usein vaikeampi navigoida haarautumismallissa kuin yksinkertaisessa tähtikaaviossa.

Lumihiutalekaavio vs. tähtikaavio

Lumihiutalekaavio ja tähtiskeema ovat kaksi yleisintä moniulotteista suunnittelutapaa tietovarastoissa, ja niiden keskeinen ero on normalisointi. Tähtiskeema pitää jokaisen ulottuvuuden yhdessä tasaisessa, denormalisoidussa taulukossa kyselynopeuden maksimoimiseksi, kun taas lumihiutaleskeema normalisoi nämä ulottuvuudet useiksi toisiinsa liittyviksi taulukoiksi tallennustilan säästämiseksi ja tietojen eheyden suojaamiseksi. Tästä syystä nämä kaksi skeemaa sopivat eri prioriteetteihin.

Aspect TähtiohjelmaLumihiutaleohjelma
MittataulukotDenormalisoitu, yksi taulukko ulottuvuutta kohdenNormalisoitu alidimensiotaulukoiksi
varastointiKäyttää enemmän tilaa redundanssin vuoksiKäyttää vähemmän tilaa, ei redundanssia
Kyselyn suorituskykyNopeampi, vähemmän liitoksiaHitaampi, enemmän liitoksia
Kyselyn monimutkaisuusHelppo kirjoittaaMonimutkaisempi
Sopii parhaitenNopea raportointi ja liiketoimintaSuuret, hierarkkiset ulottuvuudet

Lyhyesti sanottuna, valitse tähtimalli, kun kyselynopeus ja raportoinnin yksinkertaisuus ovat tärkeimpiä, ja lumihiutalemalli, kun tallennustehokkuus, selkeät hierarkiat ja alhainen dataredundanssi ovat etusijalla. Monet todelliset tietovarastot yhdistävät molemmat mallit kunkin ulottuvuuden koosta ja syvyydestä riippuen.

Milloin lumihiutalekaaviota käytetään

Lumihiutalekaavio ei ole aina oikea valinta, joten se auttaa sovittamaan suunnittelun työmäärään ja raportointitarpeisiin. Se toimii yleensä parhaiten seuraavissa tilanteissa:

  • Dimensiot ovat erittäin suuria ja sisältävät paljon toistuvia attribuutteja, jotka tuhlaavat tallennustilaa, kun ne denormalisoidaan.
  • Dimensioilla on syvät, hyvin määritellyt hierarkiat, kuten alue, maa, osavaltio ja kaupunki, jotka liittyvät luonnollisesti erillisiin taulukoihin.
  • Datan eheys ja johdonmukaisuus ovat projektille tärkeämpiä kuin raakakyselyiden nopeus.
  • Tallennuskustannukset ovat todellinen huolenaihe, ja levytilan säästöt valtavien dimensiotaulukoiden välillä ovat merkittäviä.
  • Malli syöttää OLAP työkaluja, jotka pystyvät navigoimaan normalisoiduissa hierarkioissa tehokkaasti.

Toisaalta, kun liiketoiminta-analyytikoille tarkoitettu nopea ja yksinkertainen raportointi on etusijalla, tähtikaavio tai hybridi tähtiklusterimalli on yleensä parempi ratkaisu. tietovarastoarkkitehtuurit yhdistä tarkoituksella molemmat lähestymistavat nopeuden ja tallennustilan tasapainottamiseksi.

Mikä on Galaxy Schema?

A Galaxy -malli sisältää kaksi tai useampia faktataulukoita, jotka jakavat ulottuvuustaulukoita keskenään. Sitä kutsutaan myös faktatähdistökaavioksi, ja koska sitä voidaan pitää tähtien kokoelmana, se ansaitsee nimen galaksikaavio.

Esimerkki galaksikaaviosta, jossa on kaksi tosiasiataulukkoa, jotka jakavat yhdenmukaiset ulottuvuustaulukot
Esimerkki Galaxy Schemasta

Kuten yllä olevasta esimerkistä näet, taulukoita on kaksi:

  1. RevEnue
  2. Tuotteet

Galaksikaaviossa faktataulukoiden kesken jaettuja ulottuvuuksia kutsutaan konformoiduiksi ulottuvuuksiksi.

Galaxy Scheman ominaisuudet

Galaksikaaviolla on seuraavat ominaisuudet:

  • Ulottuvuudet on jaettu erillisiin ulottuvuuksiin hierarkian eri tasojen perusteella.
  • Esimerkiksi jos maantieteessä on neljä hierarkiatasoa – alue, maa, osavaltio ja kaupunki – niin galaksikaaviossa tulisi olla neljä ulottuvuutta.
  • Tämän tyyppinen skeema on mahdollista rakentaa jakamalla yksi tähtiskeema useammiksi tähtiskeemoiksi.
  • Tämän skeeman ulottuvuudet ovat suuria ja ne on rakennettava hierarkian tasojen mukaan.
  • Kaavio on hyödyllinen faktataulukoiden kokoamisessa paremman analyysin ja ymmärryksen tukemiseksi.

Mikä on Star Cluster Kaavio?

Lumihiutalekaavio sisältää täysin laajennettuja hierarkioita, mikä voi lisätä monimutkaisuutta ja vaatia ylimääräisiä liitoksia. Tähtikaavio puolestaan ​​sisältää täysin supistettuja hierarkioita, mikä voi johtaa redundanssiin. Paras ratkaisu on usein tasapaino näiden kahden rakenteen välillä, joka tunnetaan nimellä tähtikaavio. Cluster Kaavio.

Esimerkki tähtijoukkokaaviosta, joka tasapainottaa tähti- ja lumihiutalekuvioita
Esimerkki tähdestä Cluster Malli

päällekkäisyysping Dimensiot näkyvät hierarkioissa haarukoina. Haarukka tapahtuu, kun entiteetti toimii vanhempana kahdessa eri dimensiohierarkiassa. Nämä haarukkaentiteetit tunnistetaan sitten luokituksiksi, joilla on yksi-moneen-suhteet, mikä rajoittaa suunnittelun luomien lisätaulukoiden määrää.

UKK

Skeema on saanut nimensä siitä, että sen entiteettisuhdekaavio haarautuu ulospäin kuin lumihiutale. Kunkin ulottuvuuden normalisointi aliulottuvuuksiksi ja hakutaulukoiksi luo useita toisiinsa yhteydessä olevia tasoja, jotka lähtevät säteilevästi keskeisestä tietotaulukosta ja muodostavat lumihiutalekiteen kaltaisen muodon.

Normalisointi jakaa dimensiotaulukon pienempiin toisiinsa liittyviin taulukoihin toistuvan tiedon poistamiseksi. Lumihiutalekaaviossa attribuutit, kuten kategoria tai maa, siirtyvät omiin taulukoihinsa, tyypillisesti saavuttaen kolmannen normaalimuodon, mikä vähentää redundanssia ja pitää jokaisen arvon tallennettuna vain kerran.

Tietotaulukko tallentaa mitattavia, numeerisia liiketoimintatapahtumia, kuten myyntimääriä, sekä ulottuvuuksien viiteavaimia. Dimensiotaulukko tallentaa kuvailevia ominaisuuksia, kuten tuotteen nimen tai alueen, jotka antavat näille tiedoille kontekstin. Tietotaulukot ovat yleensä paljon suurempia kuin dimensiotaulukot.

Aliulottuvuus, jota joskus kutsutaan sivutaulukoksi, on normalisoitu taulukko, joka haarautuu pääulottuvuudesta. Esimerkiksi Tuote-ulottuvuus voi linkittää erilliseen Luokka-taulukkoon. Nämä lisätaulukot luovat lumihiutaleelle ominaisen monitasoisen hierarkian.

Kyllä. Monet varastot sekoittavat molempia kaavoja normalisoiden vain ne suuret mitat, jotka hyötyvät siitä, samalla säilyttäenping pienemmät ulottuvuudet tasainen. Tämä hybridi, jota joskus kutsutaan tähtirypäskaavioksi, tasapainottaa tähtikaavion kyselynopeuden ja lumihiutalekaavion tallennustilan säästöt.

Kyllä. Lumihiutalekaavio syöttää OLAP järjestelmissä hyvin, koska sen normalisoidut hierarkiat vastaavat selkeästi porautumistasoja, kuten maa, osavaltio ja kaupunki. Ylimääräiset liitokset voivat kuitenkin hidastaa kuutioiden käsittelyä, joten erittäin kyselypainotteiset OLAP-työmäärät suosivat joskus tähtikaavaa.

Tekoälyavustajat voivat ehdottaa normalisoitavia ulottuvuuksia, luoda taulukkorakenteita liiketoimintakuvauksesta ja suositella indeksejä tai liitospolkuja suorituskykyä parantamaan. He voivat myös havaita redundanssia ja epäjohdonmukaisia ​​avaimia, vaikka datainsinöörin tulisi tarkistaa jokainen suositus ennen sen soveltamista.

Kyllä. ChatGPT ja GitHub Copilot voi laatia CREATE TABLE -lausekkeita ja liitoskyselyitä lumihiutalekaavaa varten lyhyestä kehotteesta. Tarkista aina luodut avaimet, tietotyypit ja suhteet ennen niiden suorittamista tuotannossa.

Tiivistä tämä viesti seuraavasti: