COMPUTERWORLD
pod kapotou
DatovΘ sklady oΦima databßzisty

MULTIDIMENZION┴LN═ MODELOV┴N═

KlasickΘ modelovßnφ p°i budovßnφ IS zahrnovalo v∞tÜinou t°i stßdia: konceptußlnφ modelovßnφ, databßzovΘ modelovßnφ a fyzickΘ modelovßnφ. Pro nßvrh datovΘho skladu (DW) je vhodnΘ p°ipojit dalÜφ stßdium, kterΘ se naz²vß dimenzionßlnφ modelovßnφ. Alternativnφ nßzev je multidimenzionßlnφ modelovßnφ. Jde o specißlnφ techniku urΦenou pro logick² nßvrh DW zp∙sobem, kter² povede k v²sledku - (multi)dimenzionßlnφmu schΘmatu, s jeho₧ pomocφ se v²hodn∞ formulujφ u₧ivatelskΘ dotazy nad DW. Jde vlastn∞ o disciplφnu, kterß pou₧φvß relaΦnφ model dat (RMD) s jist²mi omezenφmi.

V DatabßzovΘ abeced∞ v CW jsme ji₧ rozebφrali multidimenzinßlnφ databßze jako specißlnφ struktury, kterΘ pracujφ s fakty a dimenzemi. Zßkladem dimenzionßlnφ modelovßnφ je hv∞zdicovΘ schΘma, co₧ v E-R modelu znamenß vyhradit jeden typ entity pro fakty. Ten je spojen s jednou nebo vφce dimenzemi. Dimenze jsou vlastn∞ typy entit, kterΘ spolu n∞jak souvisφ, nap°. V▌ROBEK, Z┴KAZN═K, PRODEJN═_JEDNOTKA, ╚AS. Ka₧d² z t∞chto typ∙ entit mß sv∙j klφΦ a atributy. Nap°. PRODEJN═_JEDNOTKA obsahuje atributy JmΘno, P°edstavitel, ┌°ad, Okres. Fakty jsou popsßny ôpr∙nikov²mö typem entity PRODEJ, kter² mß klφΦ slo₧en² z cizφch klφΦ∙ (participujφcφch dimenzφ) a svΘ vlastnφ atributy, nap°. Mno₧stvφ, Cena apod. V dimenzionßlnφm modelovßnφ vÜak modelujeme spφÜe v °eΦi tabulek, tj. jednotliv²m dimenzφm odpovφdajφ dimenzionßlnφ tabulky a fakta jsou ulo₧ena v tabulce fakt∙. Primßrnφ klφΦe dimenzionßlnφch tabulek tvo°φ komponenty primßrnφho klφΦe tabulky fakt∙. P°ipome≥me, ₧e z toho plyne, ₧e se vlastn∞ modelujφ vztahy M:N: ... :P. Toto omezenφ se m∙₧e zdßt pon∞kud zvlßÜtnφ, ale z°ejm∞ charakterizuje povahu dat v DW, kde, jak doklßdß tv∙rce Manifestu dimenzionßlnφho modelovßnφ Ralph Kimball ve sv²ch sloupcφch v Φasopise DBMS, jde o zcela b∞₧n² p°φpad. Jsme-li ve sv∞t∞ tabulek, °φkß se hv∞zdicovΘmu schΘmatu Φasto takΘ hv∞zdicovΘ spojenφ (star join). Zd∙razn∞me, ₧e vztahy typu 1:N mezi dimenzemi se v tomto p°φstupu neuva₧ujφ v∙bec.

Kimball takΘ vysv∞tluje pojem faktu v dimenzionßlnφm modelovßnφ. Jde (pon∞kud nelogicky) o neklφΦovΘ atributy v tabulce fakt∙. Tyto atributy jsou obvykle numerickΘ a aditivnφ, p°edstavujφ jakΘsi mφry. Nap°. Cena, Mno₧stvφ apod. modelujφ jistß fakta. Pon∞kud smyslupln∞jÜφ pohled na v∞c by pojφmal fakta jako funkce od hodnot klφΦe tabulky fakt∙ do mno₧in hodnot, kterΘ jsou p°edstavovßny neklφΦov²mi atributy. Nap°. ôCena v²robku prodanΘho zßkaznφkovi v danΘm obdobφ od dodavateleö je takovß funkce. SamotnΘ hodnoty atributu Cena majφ toti₧ velmi chudou sΘmantiku a bez souvisejφcφho klφΦe vlastn∞ ₧ßdnΘ fakty (tj. tvrzenφ) nep°edstavujφ. Zastavme se jeÜt∞ na chvφli u aditivity fakt∙. Je zd∙razn∞no, ₧e prßv∞ fakty se budou v dotazech agregovat (sΦφtat, nßsobit, naΦφtat apod.). P°φklad hv∞zdicovΘho schΘmatu je na obr. 1, kde ôhv∞zdiciö tvo°φ schΘmata PRODEJ, PRODEJN═ JEDNOTKA, Z┴KAZN═K, ╚AS, V▌ROBEK. Prvnφ z nich popisuje tabulku fakt∙, ostatnφ definujφ dimenzionßlnφ tabulky. Nejde ovÜem o ôΦistΘö hv∞zdicovΘ schΘma, proto₧e dimenze jsou modelovßny slo₧it∞jÜφm zp∙sobem pomocφ hierarchiφ.

Dimenze obsahujφ atributy spφÜe textovΘ. Hodnoty z °ßdk∙ t∞chto tabulek mohou tvo°it vhodnß omezenφ na dotazy na fakty. Nap°. dimenze Z┴KAZN═K popisuje zßkaznφky vΦetn∞ kategorie (nap°. prßvnickß a fyzickß osoba). Pak mß smysl se ptßt na v²robky prodanΘ pouze prßvnick²m osobßm. Je patrnΘ, ₧e jedna dimenze se m∙₧e vyskytovat ve vφce hv∞zdicov²ch schΘmatech.

╚etnΘ aplikace DW podle uvedenΘ strategie ukazujφ, ₧e dimenze se v∞tÜinou m∞nφ pouze pomalu. N∞kterΘ z nich majφ podobnΘ vlastnosti jako tzv. Φφselnφky (nap°. katalogy v²robk∙, sazebnφky, ·daje o okresech apod.), kterΘ se m∞nφ bu∩ v dlouh²ch Φasov²ch periodßch, nebo v∙bec ne (tj. nahrazujφ se Φas od Φasu novou verzφ).

D∙le₧itou charakteristikou ka₧dΘho DW je mo₧nost uchovat historii. Z toho plynou nßroky a i na modelovßnφ dimenzφ. Pouhß nßhrada dat dimenze za novß data samoz°ejm∞ historii nezahrnuje. Vhodn∞jÜφ °eÜenφ je zahrnout historii do dimenze explicitn∞ a to bu∩ horizontßln∞ nebo vertikßln∞. V prvnφm p°φpad∞ to znamenß zavΘst dalÜφ atribut (atributy), nap°. STAR┴_ADRESA, NOV┴_ADRESA, ve druhΘm p°φpad∞ mß ka₧d² historick² zßznam sv∙j vlastnΘ °ßdek v tabulce a souΦßstφ klφΦe se stane nap°. ╚═SLO_VERZE.

V databßzovΘ °eΦi je na mφst∞ se ptßt, jak vypadß dimenzionßlnφ schΘma. Jde o mno₧inu hv∞zdicov²ch schΘmat.

Diskuse konstrukt∙

Dimenze mohou tvo°it jistΘ hierarchie. Nap°. PRODEJN═ JEDNOTKA m∙₧e b²t chßpßna s umφst∞nφm do OKRES∙, kterΘ majφ svΘ vlastnφ atributy. TakΘ Φas m∙₧e b²t chßpan v hierarchii DEN, M╠S═C, ╚TVRTLET═, ROK. Tento p°φstup pak umo₧≥uje chßpat dimenzi jako cestu v grafu. Cesta zßrove≥ ukazuje mo₧nosti agregace fakt∙ v souladu s Φleny hierarchie, nap°. prodej za prodejnφ jednotku, za okres atd. P°φkladem takto rozÜφ°enΘho hv∞zdicovΘho schΘmatu je na obr. 1. Abychom se vyrovnali s v²rokem, ₧e dimenzionßlnφ schΘma se sklßdß pouze z hv∞zdicov²ch schΘmat, mohli bychom poskytnout °eÜenφ, kdy hierarchie neexistujφ a hierarchie dimenzφ je ôdegenerovßnaö na jednu tabulku. Uva₧me dimenzi ┌DOB═, kterß zahrnuje vÜechny atributy obsa₧enΘ na obr. 1 v tabulkßch t²kajφcφch se Φasu. Podobn∞ by se oÜet°ila prodejnφ jednotka. Tak obdr₧φme hv∞zdicovΘ schΘma. I budovßnφ hierarchiφ dimenzφ mß svΘ zastßnce.

Jin²m sm∞rem je vytvß°et jistΘ redundantnφ tabulky pomocφ tzv. ôsn∞hov²ch vloΦekö, kdy se jedna hierarchizacφ dimenze souΦasn∞ vytvß°ejφ novΘ tabulky fakt∙ obsahujφcφ fakty v projekcφch p∙vodnφch zßznam∙ podle danΘ hierarchickΘ ·rovn∞.

Pohyb nahoru k v hierarchii se tradiΦn∞ anglicky naz²vß roll up, pohyb dol∙ drill down (poskytni vφce podrobnostφ). P°i pou₧itφ SQL v dotazech u₧ivatele to znamenß p°idat vφce atribut∙ do klauzule GROUP BY. Zastßnci dimenzionßlnφho modelovßnφ jdou jeÜt∞ dßle. Zavßd∞jφ pohyb drill across (spojovßnφ vφce tabulek fakt stejnΘ ·rovn∞ podrobnosti) a dalÜφ.

Obr. 1: Hv∞zdicovΘ schΘma v multidimenzionßlnφm modelovßnφ

 

N∞kterΘ tabulky fakt∙ paradoxn∞ nemusφ obsahovat fakta. Mimochodem, tento paradox vypl²vß z nevhodnΘho pojetφ pojmu fakt (viz v²Üe). V E-R bychom °ekli, ₧e jde o vztahy bez atribut∙. Nenφ na nich nic nep°irozenΘho. ╚asto je pomocφ nich mo₧nΘ reprezentovat nap°. udßlosti. Ve studentskΘ laborato°i m∙₧e vztah (Novßk, PROGRESS, 30.9.1997) reprezentovat udßlost, ₧e student Novßk se p°ihlßsil p°es poΦφtaΦ k S╪BD PROGRESS 30.9.1997 a pracoval s nφm. Z°ejm∞ jde o °ßdek tabulky fakt∙ s atributy STUDENT, SOFTWARE, ╚AS.

Jin²m zdrojem tabulek, kterΘ nemajφ neklφΦovΘ atributy jsou tzv. pokr²vajφcφ tabulky, kterΘ jsou p°i°azeny k jin²m tabulkßm fakt∙. Uva₧ujme nap°. tabulku PRODEJ_ZLZB, kterß obsahuje fakty o prodeji zlevn∞nΘho zbo₧φ. Neobsahuje vÜak ₧ßdnΘ °ßdky o zbo₧φ, kterΘ si dosud nikdo nekoupil. To m∙₧e b²t nev²hodnΘ z hlediska po₧adavk∙ na u₧ivatelskΘ dotazy. K tabulce PRODEJ_ZLZB zkonstruujeme pokr²vajφcφ tabulku ZLEVN╠N╔_ZBOÄ═ (mß stejn² klφΦ jako PRODEJ_ZLZB), kterß obsahuje i ty kombinace klφΦ∙ dimenzφ, kterΘ se nevyskytujφ v PRODEJ_ZLZB). Pozor, nßmitka, ₧e by bylo mo₧nΘ uklßdat vÜe v jednΘ tabulce s pou₧itφm prßzdn²ch hodnot, neobstojφ. V mnoha p°φpadech obsahuje tabulka PRODEJ_ZLZB pouze zlomek vÜeho zlevn∞nΘho zbo₧φ a s reprezentacφ neprodanΘho pomocφ hodnot NULL by enormn∞ narostla.

Dimenzionßlnφ modelovßnφ a E-R

ZkuÜenΘho projektanta napadne, proΦ nepou₧φt rovnou E-R, kdy₧ vlastn∞ o nic jinΘho nejde. Jist∞, n∞co pravdy na to je. Existujφ ale jistΘ v²znamnΘ rozdφly. E-R modelovßnφ je urΦeno pro modelovßnφ databßzφ vhodn²ch pro online transakΦnφ zpracovßnφ. Tabulky, kterΘ jsou v²sledkem transformace E-R diagram∙ do RMD jsou u₧iteΦnΘ pro jistΘ transakce, nikoliv vÜak pro zpracovßnφ komplikovan∞jÜφch u₧ivatelsk²ch dotaz∙. Ka₧d² si uv∞domφ mno₧stvφ spojovacφch podmφnek, kterΘ musφ formulovat p°i realizaci dotaz∙ nad vφce relacemi.

Dimenzionßlnφ modelovßnφ slou₧φ pro jin² ·Φel. U₧ivatel se jeho prost°ednictvφm (resp. s pomocφ odpovφdajφcφho navigaΦnφho software) m∙₧e dostat k po₧adovan²m v²stup∙m, jednoduÜÜφm zp∙sobem, ne₧ formulacφ dotaz∙ nad tabulkami s operativnφmi daty. Jednoduchß struktura hv∞zdicov²ch schΘmat podporuje i jednoduchost kladenφ dotaz∙. Nezanedbateln²m prvkem je takΘ fakt, ₧e n∞kterΘ hv∞zdice jsou ôtypovΘö, tj. vyskytujφ nap°. v obchodnφm sv∞t∞ Φasto, pouze se m∞nφ n∞kterΘ jejich atributy.

Nic vÜak nenφ jednoznaΦnΘ. Existujφ samoz°ejm∞ p°φpady, kdy organizace implementujφcφ DW nepova₧uje hv∞zdicovß schΘmata za vhodn² nßstroj, kter² podporuje jejφ pot°eby. To jen dokumentuje fakt, ₧e sv∞t je natolik rozmanit², ₧e jej nenφ mo₧nΘ jednotn∞ ovlßdat a z°ejm∞ ani modelovat.



<seznam dφl∙ serißlu>   <COMPUTERWORLD>