Hópehely séma adattárház-modellben

⚡ Okos összefoglaló

A Data Warehouse modellezésben a Snowflake Schema normalizált dimenziótáblákat rendez el, amelyek egy központi ténytáblából ágaznak el, egy hópehelyre hasonlítva. Kiterjeszti a csillagsémát, csökkenti az adatredundanciát, és hierarchiákat szervez több kapcsolódó keresőtáblán keresztül.

  • 🧩 Alapszerkezet: Egy központi ténytábla dimenziótáblákhoz kapcsolódik, amelyek további aldimenziókba és keresőtáblákba vannak normalizálva.
  • ❄️ Normalizálás: Az egyes dimenziók kapcsolódó táblázatokra való felosztása eltávolítja az ismétlődő attribútumokat, és a hierarchiákat a harmadik normálforma felé tolja el.
  • 🌟 Kapcsolat a csillagsémával: A hópehely séma kiterjeszti a csillag sémát a lapos, denormalizált dimenziótáblák normalizálásával.
  • 💾 Tárolási előny: A kisebb, normalizált keresőtáblák csökkentik a lemezhasználatot és kiküszöbölik a redundáns adatokat, ami megkönnyíti a karbantartást.
  • 🔗 Lekérdezés kompromisszuma: Több tábla több illesztést jelent, ami lelassíthatja a lekérdezések teljesítményét és bonyolíthatja a jelentéskészítést.
  • 🧭 Mikor kell használni: Válassza nagy dimenziókhoz mély hierarchiákkal, ahol a tárhelymegtakarítás és az adatok integritása a legfontosabb.
  • 🪐 Kapcsolódó sémák: A galaxis- és csillaghalmaz-tervek a csillag- és hópehely-koncepciókra épülnek a bonyolultabb modellekhez.

Hópehely séma az Adattárházban normalizált dimenziótáblákkal, amelyek egy központi ténytáblából ágaznak el

Mi az a hópehelyséma?

A Hópehely séma Az adattárházban a táblázatok logikus elrendezése egy többdimenziós adatbázisban, amelynek entitáskapcsolati (ER) diagram hópehely alakjára hasonlít. Ez egy dimenziós modell amelyben egy központi ténytábla dimenziótáblákhoz kapcsolódik, és ezek a dimenziótáblák tovább oszlanak kapcsolódó aldimenziótáblákra.

A hópehely séma a csillagséma kiterjesztése. Míg a csillagséma minden dimenziót egyetlen sima táblázatban tárol, a hópehely séma normalizálja ezeket a dimenziókat, az ismétlődő adatcsoportokat további keresőtáblákba osztva. Ez a normalizálás megszünteti a redundanciát, és létrehozza az elágazó, hierarchikus struktúrát, amely a sémának a nevét adja.

Példa a hópehely séma

A következő hópehely sémapéldában egy Értékesítési ténytábla található középen, amelyet olyan dimenziók vesznek körül, mint a Termék, Dátum és Üzlet. Ahelyett, hogy minden attribútumot egyetlen dimenziótáblában tárolnánk, a földrajzi információkat normalizáljuk, így az Ország a saját külön táblázatába kerül.

Példa egy hópehely sémára központi ténytáblával és normalizált Ország dimenziótáblával
Példa a hópehely sémára

Itt a Store dimenzió egy City táblára, a City tábla egy State táblára, az State tábla pedig egy Country táblára hivatkozik. Minden érték csak egyszer tárolódik, és egy idegen kulcs kapcsolja össze, így egy országnév soha nem ismétlődik több millió soron keresztül. Ez a réteges normalizálás különbözteti meg a hópehely sémát a flat star sémától.

A hópehelyséma jellemzői

A hópehely sémának számos meghatározó jellemzője van:

  • Kisebb lemezterületet használ, mivel a normalizált dimenziótáblák elkerülik az ismétlődő értékek tárolását.
  • Új dimenziók viszonylag kevés erőfeszítéssel adhatók hozzá a sémához.
  • A lekérdezési teljesítmény csökkenhet, mivel az adatok lekéréséhez sok tábla összekapcsolása szükséges.
  • Több karbantartási erőfeszítést igényel, mivel nagyobb számú keresőtáblát kell kezelni.

Hogyan tervezzünk hópehely sémát

A hópehely séma tervezése ugyanúgy kezdődik, mint bármely más dimenziós modellé, majd hozzáad egy normalizálási lépést. A cél az elemezni kívánt üzleti folyamat azonosítása, először csillagsémaként való modellezése, majd a mély hierarchiákat tartalmazó dimenziók normalizálása. A következő lépéseken haladjon végig:

  1. Azonosítsa az üzleti folyamatot és a szemcséket. Döntse el, hogy mit jelent a ténytábla egyetlen sora, például egy értékesítési tranzakciót, és határozza meg a numerikus mértékeket, vagy tényeket, amelyekről jelentést kell készítenie.
  2. Készítsd el a központi ténytáblázatot. Adjuk hozzá a numerikus mértékeket az egyes dimenziókra mutató idegen kulcsokkal együtt; ezek az idegen kulcsok általában együtt alkotják az összetett elsődleges kulcsot.
  3. Definiálja a dimenziótáblákat. Hozz létre egy táblázatot minden leíró dimenzióhoz, például a Termék, Ügyfél, Dátum és Üzlet dimenzióhoz, és rendelj hozzájuk egy helyettesítő elsődleges kulcsot.
  4. Normalizáld a hierarchiákat. Ossza fel az ismétlődő attribútumokat tartalmazó dimenziókat aldimenzió-táblázatokra, például helyezze át a Kategória dimenziót a Termék dimenzióból, vagy a Város, Állam és Ország dimenziót egy Üzlet dimenzióból.
  5. Kösd össze a táblákat idegen kulcsokkal. Kapcsolja vissza az egyes aldimenziókat a szülő táblájához, hogy az ágak egyértelmű, egy-a-többhöz hierarchiákat alkossanak, amelyek hópehelyre hasonlítanak.
  6. Érvényesítés és tesztelés lekérdezésekkel. Reprezentatív jelentéskészítő lekérdezések futtatásával győződjön meg arról, hogy az illesztések helyes eredményeket adnak vissza, és hogy az általános teljesítmény elfogadható marad.

Mivel a terv a harmadik normálforma felé normalizálja az adatokat, az illesztési útvonalakat világosan dokumentálni kell, hogy az elemzők megértsék, hogyan navigáljanak az egyes ágakban. A definiált struktúra után érdemes mérlegelni a séma előnyeit a költségeivel szemben.

A hópehely séma előnyei

A hópehely séma számos előnnyel jár:

  • Elsődleges előnye a csökkentett lemezterület, mivel a kisebb normalizált keresőtáblák összekapcsolása elkerüli a dimenzióadatok duplikálását.
  • Nagyobb skálázhatóságot biztosít a komponensek és a dimenziószintek közötti kapcsolatokban.
  • Eltávolítja a redundanciát, ami javítja az adatok integritását és megkönnyíti a modell karbantartását.
  • Egy leíró attribútum csak egy helyen frissül, ami csökkenti az inkonzisztens adatok kockázatát.

A hópehely séma hátrányai

A tervezés során figyelembe veendő kompromisszumokat is kell figyelembe venni:

  • A normalizált struktúra növeli a számos kapcsolódó tábla kezeléséhez szükséges karbantartást.
  • A több illesztésen átívelő összetett lekérdezéseket nehéz lehet megírni és megérteni.
  • A nagyobb számú tábla több illesztést jelent, ami meghosszabbítja a lekérdezések végrehajtási idejét.
  • Az üzleti felhasználók gyakran nehezebben navigálnak az elágazó modellben, mint egy egyszerű csillagsémában.

Hópehely séma vs. Csillag séma

A hópehely sémája és a csillag séma az adattárházak két leggyakoribb többdimenziós kialakítása, és a köztük lévő legfontosabb különbség a normalizálás. A csillagséma minden dimenziót egyetlen lapos, denormalizált táblázatban tárol a maximális lekérdezési sebesség érdekében, míg a hópehely séma ezeket a dimenziókat több kapcsolódó táblázatba normalizálja a tárhely megtakarítása és az adatok integritásának védelme érdekében. Emiatt a két séma eltérő prioritásokat elégít ki.

AspectCsillag sémaHópehely séma
MérettáblázatokDenormalizált, dimenziónként egy táblaAldimenziós táblázatokba normalizálva
TárolásTöbb helyet használ a redundancia miattKevesebb helyet használ, nincs redundancia
Lekérdezés teljesítményeGyorsabb, kevesebb csatlakozásLassabb, több csatlakozás
Lekérdezés összetettségeEgyszerű írniBonyolultabb
LegmegfelelőbbGyors jelentéskészítés és üzleti intelligenciákNagy, hierarchikus dimenziók

Röviden, válasszon csillag sémát, ha a lekérdezési sebesség és a jelentéskészítés egyszerűsége a legfontosabb, és hópehely sémát, ha a tárolási hatékonyság, a tiszta hierarchiák és az alacsony adatredundancia a prioritás. Sok valódi adattárház mindkét mintát kombinálja az egyes dimenziók méretétől és mélységétől függően.

Mikor használjunk hópehely sémát?

A hópehely séma nem mindig a megfelelő választás, ezért segít a tervet a munkaterheléshez és a jelentéskészítési igényekhez igazítani. Általában a következő helyzetekben működik a legjobban:

  • A dimenziók nagyon nagyok és sok ismétlődő attribútumot tartalmaznak, amelyek denormalizáláskor tárhelyet pazarolnak.
  • A dimenziók mély, jól definiált hierarchiákkal rendelkeznek, például régió, ország, állam, város szerint, amelyek természetes módon képezhetők le külön táblázatokra.
  • Az adatok integritása és konzisztenciája fontosabb a projekt szempontjából, mint a nyers lekérdezések sebessége.
  • A tárolási költségek komoly aggodalomra adnak okot, és a hatalmas dimenziótáblák esetén elérhető lemezmegtakarítás jelentős.
  • A modell táplálja OLAP olyan eszközök, amelyek hatékonyan képesek navigálni a normalizált hierarchiákban.

Ezzel szemben, amikor az üzleti elemzők számára a gyors és egyszerű jelentéskészítés az elsődleges, akkor általában egy csillagséma vagy egy hibrid csillagklaszter-kialakítás a jobb megoldás. adattárház architektúrák szándékosan ötvözi a két megközelítést a sebesség és a tárhely egyensúlyának megteremtése érdekében.

Mi az a Galaxy Schema?

A Galaxy Schema két vagy több ténytáblát tartalmaz, amelyek megosztják egymás között a dimenziótáblákat. Ténykonstellációs sémának is nevezik, és mivel csillagok gyűjteményének tekinthető, galaxisséma néven is emlegetik.

Példa egy galaxis sémára, amelyben két ténytábla közös dimenziótáblákat tartalmaz
Példa a Galaxy Schema-ra

Amint a fenti példában látható, két ténytábla létezik:

  1. Revenue
  2. Termékek

Egy galaxis sémában a ténytáblák között megosztott dimenziókat konform dimenzióknak nevezzük.

A Galaxy Schema jellemzői

A galaxis sémájának a következő jellemzői vannak:

  • A dimenziók a hierarchia különböző szintjei alapján különálló dimenziókra vannak osztva.
  • Például, ha a földrajznak négy hierarchiai szintje van – régió, ország, állam és város –, akkor a galaxis sémának négy dimenzióval kell rendelkeznie.
  • Az ilyen típusú sémát egyetlen csillagséma több csillagsémára való felosztásával lehet felépíteni.
  • A sémában szereplő dimenziók nagyok, és a hierarchia szintjeinek megfelelően kell felépíteni őket.
  • A séma hasznos a ténytáblázatok összesítéséhez a jobb elemzés és megértés támogatása érdekében.

Mi az a Star Cluster Séma?

A hópehely séma teljesen kibontott hierarchiákat tartalmaz, ami bonyolultabbá teheti a rendszert és extra illesztéseket igényelhet. Egy csillag séma ezzel szemben teljesen összecsukott hierarchiákat tartalmaz, ami redundanciához vezethet. A legjobb megoldás gyakran a két terv közötti egyensúly, amelyet csillag sémaként ismerünk. Cluster Séma.

Példa egy csillaghalmaz-sémára, amely kiegyensúlyozza a csillag és a hópehely mintákat
Példa a csillagra Cluster Séma

Átfedésping A dimenziók elágazásokként jelennek meg a hierarchiákban. Elágazás akkor történik, amikor egy entitás szülőként működik két különböző dimenziós hierarchiában. Ezeket az elágazó entitásokat ezután egy-a-többhöz kapcsolatokkal rendelkező osztályozásokként azonosítják, ami korlátozza a terv által létrehozott további táblázatok számát.

GYIK

A séma a nevét onnan kapta, hogy az entitáskapcsolat-diagramja hópehelyszerűen ágazik el. Az egyes dimenziók aldimenziókra és keresőtáblákra való normalizálása több összekapcsolt szintet hoz létre, amelyek a központi ténytáblából indulnak ki, és egy hópehely kristályra emlékeztető alakzatot alkotnak.

A normalizálás egy dimenziótáblát kisebb, kapcsolódó táblázatokra oszt fel az ismétlődő adatok eltávolítása érdekében. Egy hópehely sémában az olyan attribútumok, mint a kategória vagy az ország, a saját táblázataikba kerülnek, jellemzően elérve a harmadik normálformát, ami csökkenti a redundanciát, és minden értéket csak egyszer tárol.

A ténytábla mérhető, numerikus üzleti eseményeket tárol, például értékesítési összegeket, valamint dimenziókhoz tartozó idegen kulcsokat. A dimenziótábla leíró attribútumokat tárol, például terméknevet vagy régiót, amelyek kontextust adnak ezeknek a tényeknek. A ténytáblák általában sokkal nagyobbak, mint a dimenziótáblák.

Az aldimenzió, amelyet néha külső táblázatnak is neveznek, egy normalizált táblázat, amely egy fődimenzióból ágazik ki. Például egy Termék dimenzió kapcsolódhat egy különálló Kategória táblázathoz. Ezek a kiegészítő táblázatok hozzák létre a hópehely jellegzetes többszintű hierarchiáját.

Igen. Sok raktár keveri mindkét mintát, és csak a nagy méreteket normalizálja, amelyek profitálnak belőle, miközben megtartja aping kisebb dimenziók laposak. Ez a hibrid, amelyet néha csillagfürt-sémának is neveznek, egyensúlyt teremt a csillagséma lekérdezési sebessége és a hópehely-séma tárhelymegtakarítása között.

Igen. Egy hópehely séma táplálja OLAP rendszerek jól működnek, mivel normalizált hierarchiái tisztán megfeleltethetők a részletezési szinteknek, például az országnak, az államnak és a városnak. Az extra illesztések azonban lelassíthatják a kockafeldolgozást, így a nagyon lekérdezés-igényes OLAP-munkaterhelések néha a csillagsémát részesítik előnyben.

Az AI-asszisztensek javaslatokat tehetnek a normalizálandó dimenziókra, táblázatos struktúrákat generálhatnak egy üzleti leírásból, és indexeket vagy illesztési útvonalakat ajánlhatnak a teljesítmény javítása érdekében. Emellett képesek a redundanciát és az inkonzisztens kulcsokat is észlelni, bár egy adatmérnöknek minden javaslatot felül kell vizsgálnia, mielőtt alkalmazná.

Igen. ChatGPT és a GitHub másodpilóta Egy rövid promptból CREATE TABLE utasításokat és join lekérdezéseket készíthet hópehely sémához. Mindig tekintse át a létrehozott kulcsokat, adattípusokat és kapcsolatokat, mielőtt éles környezetben futtatná őket.

Foglald össze ezt a bejegyzést a következőképpen: