SAS Slovakia Newsletter / Biznis analytika

Ako dimenzia degenerovala, až... 

Jedna kocka nestačí

Ale stačí nám jedna kocka? Čo ak sú v rôznych situáciách na danú skutočnosť predsa len trochu odlišné pohľady? Alebo keď potrebujeme merať ukazovatele, ktoré spolu priamo zase tak úplne nesúvisia. Predstavme si napríklad, že potrebujeme v jednom prípade sledovať vývoj odbytu rôznych druhov výrobkov v rôznych regiónoch a v druhom prípade efektivitu využívania pracovnej doby v rôznych výrobných jednotkách podľa profesií a platových tried… Ako by sme toto všetko dostali do jednej kocky? Nuž, ono by to šlo, museli by sme však byť schopní merať využívanie pracovnej doby s rozpadom až na jednotlivé predané výrobky. A to by nebolo ani jednoduché, ani lacné a nakoniec zďaleka ani účelné. Takže je zjavné, že dáva zmysel, aby sme si vytvorili kocky dve. A bude to mať ešte jednu výhodu. Keby sme totiž vytvorili kocku, ktorá obsahuje metriky odbytu výrobkov i metriky efektivity využívania pracovnej doby a skombinovali v nej všetky príslušné dimenzie, bude veľká,  o mnoho väčšia, než tie dve samostatné.

Keď zúri snehová búrka

Takže máme dve (alebo viac) kociek a im zodpovedajúcich hviezdic alebo vločiek. Keď sa na ne pozrieme, určite nás hneď napadne, že dátový model obsahuje viac vydaní úplne alebo skoro rovnakých dimenzionálnych tabuliek. V našom príklade to bude pravdepodobne časová a možno i geografická dimenzia. Prečo teda miesto dvoch rovnakých nevytvoriť jednu a nepoužiť ju vo viacerých hviezdach alebo vločkách? Ale čo na to teória? Bude pokračovať  v básnickom slovníku :-).  Spojenie viacerých hviezd cez zdieľanú dimenziu (alebo viac dimenzií) označuje ako súhvezdie (constellation) a obdobne - spojenie viacerých vločiek nazýva snehovou búrkou (snowstorm). Dimenziám, ktoré sú v rámci súhvezdia či búrky zdieľané, hovorí konformované (teda spoločne v súlade vytvárané – nie konformné alebo dokonca komfortné, ako sa však občas v odborných textoch označujú).  A tu je už s poéziou koniec. Ďalšie pojmy už sú odborne fádne.

Začína degenerácia

Napríklad subdimenzia:  tú je možné využiť v prípade, že v rámci dimenzie (v hviezdicovej schéme) existuje skupina atribútov s výrazne odlišnou (teda menšou) kardinalitou než ostatné. Čo to znamená – s menšou kardinalitou? Jednoducho má menej rôznych hodnôt. Napríklad v rámci dimenzie zákazníci,  to môžu byť údaje ako veková skupina, príjmová skupina, pohlavie, farba očí, príznak, či je dotyčný fajčiarom alebo nie. Ak skombinujeme všetky hodnoty všetkých spomínaných atribútov, dostaneme stále ešte relatívne celkom málo možností, a ak umiestnime tieto kombinácie do tabuľky, ktorá je napojená na pôvodnú dimenzionálnu tabuľku, nazýva sa subdimenzia. V našom prípade ide o demografickú subdimenziu. Tak sa hviezda môže približovať vločke… Je to akýsi kompromis medzi klasickou vločkou a hviezdicou; optimalizuje nároky na priestor pre uloženie dát (v porovnaní s „čistou“ hviezdou) a súčasne zmenšuje počet operácií „join“ pri čítaní dát (v porovnaní s ortodoxnou vločkou).

Ale môžeme urobiť ďalší fígeľ: takto vzniknutú tabuľku, oddelenú zo zákazníckej dimenzie, pripojíme priamo k faktovej tabuľke – a vznikne nová dimenzia „špeciálneho určenia“ – a tá sa nazýva minidimenzia. Má tiež svoje výhody, ale i nevýhody – a zamyslenie sa nad nimi necháme v tomto prípade na čitateľovi za domácu úlohu.

Pôjdeme však ešte ďalej: vytvoríme minidimenziu zloženú z atribútov s nízkou kardinalitou, pozbieraných z rôznych dimenzií, alebo z atribútov, ktoré samy o sebe nikam logicky nepatria – napríklad rôzne stavové údaje a texty, pre ktoré sa neoplatí vytvárať vlastné dimenzie. A tento nový útvar sa nazýva zberná (junk) dimenzia.
A teraz sa pozrime, kam sme sa to dostali! Z pôvodného zámeru, aby sme mali pohľad na informácie pekne logicky usporiadaný a subjektovo orientovaný, sme dospeli k štruktúre, ktorá skôr než čokoľvek iné, pripomína náhodnú zmes. A  tou tiež v skutočnosti je. Skeptik by povedal, že nám ten koncepčne poňatý model nakoniec nejako zdegeneroval. A to, chudák, ešte nevie, že nakoniec budeme hovoriť o dimenzii priamo degenerovanej.

Čo si to tá teória na nás zase prichystala? Degenerovaná dimenzia! Ak totiž dimenzia obsahuje len jeden atribút, a k tomu všetkému veľmi jednoduchý – obvykle číslo (napríklad číslo faktúry), dáva len malý zmysel vytvoriť pre ňu samostatnú tabuľku. Takže miesto cudzieho kľúča obsahuje faktová tabuľka priamo hodnotu príslušného atribútu. Nie je to metrika, nie je to odkaz do dimenzionálnej tabuľky, ale je to – degenerovaná dimenzia.

Bude sa optimalizovať

Všetky uvedené modifikácie klasickej hviezdicovej a vločkovej schémy majú niečo spoločné: je to snaha o kompromis medzi čisto logicky subjektovo zameraným modelom a jeho prispôsobení  sa praktickým technickým požiadavkám na optimalizáciu databázy. A touto diskusiou sme sa výrazne posunuli k ďalšej disciplíne – optimalizácii modelu dátového skladu, o ktorého metódach nabudúce.

Vladimír Kyjonka
BI Business Advisor, SAS
Článok je prevzatý z Computerworldu