COMPUTERWORLD
pod kapotou
Multidimenzionßlnφ databßze

V souvislosti s datov²mi sklady (data warehouses) a po₧adavky OLAP (On-line Analytical Processing) se dnes Φasto hovo°φ o multidimenzionßlnφch (Φesky spφÜe vφcerozm∞rn²ch) databßzich. Nejde o specißlnφ formu dodßvßnφ dat, co₧ d∞lß prßv∞ OLAP, ale spφÜe o typ databßzovΘ technologie. Ukß₧eme, ₧e data lze organizovat v multidimenzionßlnφm datovΘm modelu, kter² je zcela odliÜn² od relaΦnφho modelu. Model trochu p°ipomφnß techniku spreadsheet, ovÜem ve vφce ne₧ dvou rozm∞rech. ZjednoduÜuje pohled na data pro anal²zy typu OLAP a p°i p°φmΘ implementaci vede obecn∞ k rychlejÜφmu zpracovßnφ ne₧ provozovßnφ OLAP nad relaΦnφ databßzφ.

Co je to vlastn∞ multidimenzionßlnφ databßze (MDD)? Firma Kenan Systems Corporation znßmß v tΘto oblasti specifikuje MDD jako softwarov² systΘm, kter² je navr₧en pro v²hodnΘ a pru₧nΘ ulo₧enφ a vybφrßnφ velk²ch objem∙ dat, kterß jsou navzßjem vzta₧ena, nahlφ₧ena a analyzovßna z r∙zn²ch perspektiv. Tyto perspektivy se naz²vajφ dimenze.

PochybovaΦi namφtnou, ₧e podobnou definici bychom mohli pou₧φt i na relaΦnφ databßze. Jak dßle uvidφme, nenφ to vÜak tak ·pln∞ pravda. Uva₧ujme typick² p°φklad prodeje zbo₧φ, nap°. osobnφch automobil∙, p°iΦem₧ se sleduje poΦet prodan²ch kus∙ podle modelu, barvy a prodejce. V relaΦnφm modelu jde samoz°ejm∞ o atributy. Zde vÜak atributy MODEL, BARVA, PRODEJCE majφ trochu jinou ·lohu ne₧ OBJEM (poΦet prodan²ch kus∙). Prvnφ t°i p°edstavujφ dimenze, podle kter²ch se °φdφcφ pracovnφk ptß na hodnoty atributu OBJEM. Analyzuje se tedy mno₧ina dat typu OBJEM z hlediska t°φ dimenzφ.. P°idßme-li ╚AS a OBLAST, zφskßme dalÜφ dimenze, kterΘ umo₧≥ujφ °eÜit dotazy jako ôJakΘ jsou trendy v prodeji modelu èkoda v barv∞ zelenΘ u prodejc∙ ze St°edoΦeskΘho krajeö. Cφlem tedy je zφskat informace o mno₧in∞ dat z r∙zn²ch perspektiv. O mno₧in∞ dat zßvisejφcφ na n dimenzφch budeme °φkat, ₧e je n-rozm∞rnß.

RelaΦnφ databßzista by vid∞l problΘm celkem jednoduÜe. Vytvo°il by tabulku

PRODEJ(MODEL, BARVA, PRODEJCE, OBJEM)

p°φpadn∞ tabulky pro prodejce Φi modely, mo₧nß i pro barvy (v p°φpad∞ jejich dalÜφch atribut∙) a nad nimi by se pokouÜel formulovat dotazy v SQL. Uka₧me si tabulku PRODEJ pro 3 modely, 3 barvy a 2 prodejce. Uva₧ujme dßle, ₧e ka₧d² model se vyskytuje ve vÜech barvßch a ka₧d² prodejce prodßvß vÜechny modely ve vÜech barvßch. Tyto p°edpoklady lze samoz°ejm∞ zjemnit, nicmΘn∞ podstatnΘ je, ₧e vÜechny dimenze tvo°φ klφΦ tabulky. Atribut zßvisl² na klφΦi je jeden (OBJEM), je mo₧nΘ jich vÜak uva₧ovat obecn∞ libovolnΘ mno₧stvφ.

MODEL

BARVA

PRODEJCE

OBJEM

èkoda

zelenß

Autosalon W

3

èkoda

zelenß

èebek

10

èkoda

Φervenß

Autosalon W

1

èkoda

Φervenß

èebek

3

èkoda

bφlß

Autosalon W

2

èkoda

bφlß

èebek

8

Mustang

zelenß

Autosalon W

11

Mustang

zelenß

èebek

3

Mustang

Φervenß

Autosalon W

2

Mustang

Φervenß

èebek

4

Mustang

bφlß

Autosalon W

8

Mustang

bφlß

èebek

1

Mirafiori

zelenß

Autosalon W

2

Mirafiori

zelenß

èebek

3

Mirafiori

Φervenß

Autosalon W

7

Mirafiori

Φervenß

èebek

1

Mirafiori

bφlß

Autosalon W

1

Mirafiori

bφlß

èebek

5

Podstatou p°φstupu k reprezentaci dat v MDD je multidimenzionßlnφ model dat (MDMD). Data se v n∞m mφsto v tabulce zobrazujφ pomocφ vφcerozm∞rn²ch polφ (tak jak je ji₧ po °adu desetiletφ znßme z programovacφch jazyk∙). V terminologii OLAP se takΘ hovo°φ o datov²ch kostkßch nebo multidimenzionßlnφch kostkßch.

Ka₧dß dimenze v poli odpovφdß jednΘ dimenzi n-rozm∞rnΘ mno₧iny dat, ka₧d² prvek v dimenzi (hodnota atributu v RMD) se naz²vß pozice. Vφcerozm∞rnß data odpovφdajφcφ n∞jakΘ kombinaci pozic jednotliv²ch dimenzφ jsou umφst∞na v bu≥kßch pole. V naÜem p°φpad∞ (obr. 1) jde o hodnoty atributu OBJEM.

 

Obr. 1 Dimenze a bu≥ky

Na zßklad∞ t∞chto ·vah bychom mohli (alespo≥ zjednoduÜen∞) definovat, co je strukturßln∞ MDD pomocφ pojm∙ pou₧φvan²ch v klasick²ch databßzφch. SchΘma multidimenzionßlnφ databßze je mno₧ina vφcerozm∞rn²ch polφ. Multidimenzionßlnφ databßze je dßna vφcerozm∞rn²mi mno₧inami dat ulo₧en²mi v t∞chto polφch. Odpovφdajφcφ softwarov² systΘm, kter² slou₧φ pro zalo₧enφ, sprßvu a dotazovßnφ nad MDD nazveme systΘm °φzenφ multidimenzionßlnφch databßzφ (S╪MDD).

Slo₧itost reprezentace v MMD a RMD

Existuje °ada v²hod, proΦ je pole pru₧n∞jÜφ a efektivn∞jÜφ pro prezentaci dat v MDD.

  • Pole nabφzφ p°φmo informaci, kterß nenφ patrnß z tabulky, nap°. poΦet pozic v ka₧dΘ dimenzi.
  • V poli se p°irozen∞ seskupujφ data, nap°. pro model Mirafiori je mo₧nΘ rychle obdr₧et hodnoty prodeje pro danΘho prodejce, a to pro vÜechny barvy apod. Geometricky jde vlastn∞ o °ezy odpovφdajφcφ multidimenzinßlnφ kostky.
  • Seskupovßnφ data (obr. 2) umo₧≥uje jednoduchΘ mo₧nosti k provßd∞nφ agregacφ (nap°. souΦty objem∙).

MDMD reprezentuje vyÜÜφ ·rove≥ organizace ne₧ RMD. RelaΦnφ struktura ne°φkß nic o struktu°e jednotliv²ch atribut∙. Zφskßvat r∙znΘ agregace z tabulek p°φmo je tΘ₧ mnohem slo₧it∞jÜφ ne₧ v MDMD. Je nutnΘ formulovat komplikovanΘ dotazy v SQL, p°φpadn∞ ruΦn∞ kombinovat jejich v²sledky.

 

 

 

 

 

 

Obr. 2 Agregace v podprostorech vφcerozm∞rnΘho pole

 

Uva₧ujme na chvφli 2-rozm∞rnou mno₧inu dat s 10 modely a 10 barvami. V RMD pot°ebujeme tabulku s 100 °ßdky. P°idßme-li 10 prodejc∙, obdr₧φme tabulku s 1000 °ßdky. Tomu v MDMD odpovφdß pole s 1000 bu≥kami. Hledßnφ v tabulce v obecnΘm relaΦnφm prost°edφ m∙₧e znamenat prohledßvßnφ 1000 zßznam∙, kde₧to v MDD 3 prohledßnφ - ka₧dΘ v 10 hodnotßch.

Jist∞, otßzkou je, jak je vlastn∞ vφcerozm∞rnΘ pole n∞jakΘ MDD implementovanΘ. PodstatnΘ je, ₧e implementace je ôÜitß na mφruö pro data uva₧ovanΘho typu a dotazy podporujφcφ anal²zu dat. Navφc, naÜe p°φklady vypadaly tak, ₧e ka₧dß bu≥ka pole byla obsazenß, co₧ nemusφ b²t obecn∞ pravda. Ka₧d² prodejce nemusφ prodßvat vÜechny modely ve vÜech barvßch. ProblΘm implementace vφcerozm∞rn²ch polφ musφ uva₧ovat i prßzdnΘ hodnoty.

Kde MMD nenφ vhodn²

Uva₧ujme obecnou tabulku v RMD nap°. s jednoatributov²m klφΦem. Takovou tabulkou m∙₧e b²t PRODEJCE(ROD_╚, JM╔NO, ADRESA, V╠K). Za dimenze vezm∞me atributy ROD_╚, JM╔NO, ADRESA, do bun∞k se bude uklßdat hodnota v∞ku. Nech¥ je 100 prodejc∙, 80 jmen, 100 adres. PoΦet bun∞k bude 800 000. Proto₧e je ale k ulo₧enφ pouze 100 hodnot v∞ku (pro 100 prodejc∙!), bude 799 900 bun∞k neobsazeno. MMD je z°ejm∞ v danΘm p°φpad∞ zcela nevhodnß.

Kdy tedy vyu₧ijeme MMD? P∙jde z°ejm∞ o p°φpady, kterΘ v konceptußlnφm pohledu odpovφdajφ n-ßrnφmu typu vztahu s kardinalitami M, N, P, ..., tj. p°φpady, kdy mezi klφΦi entit neexistuje ₧ßdnß funkΦnφ zßvislost. KlφΦem K odpovφdajφcφ tabulky R by bylo z°et∞zenφ klφΦ∙ participujφcφch typ∙ entit. Pak jedinΘ funkΦnφ zßvislosti v R jsou zßvislosti na klφΦi K a neexistujφ tedy ₧ßdnΘ funkΦnφ zßvislosti mezi dimenzemi ve vφcerozm∞rnΘm poli. VÜimn∞me si, ₧e zrovna toto nenφ u p°φkladu s tabulkou PRODEJCE pravda. KlφΦem je ROD_╚ a tedy dimenze JM╔NO a ADRESA na n∞m budou i pro pole PRODEJCE funkΦn∞ zßvislΘ. Chyba v nßvrhu MDD PRODEJCE vÜak u₧ nastala na konceptußlnφ ·rovni. PRODEJCE toti₧ nemodeluje vztahy, ale entity. Ani n-ßrnφ typ vztahu nemusφ b²t jeÜt∞ postaΦujφcφ pro existenci MDD. Äßdoucφ je, aby co nejvφce bun∞k bylo obsazeno, tj. aby vφcerozm∞rnß data existovala pro ka₧dou kombinaci pozic z jednotliv²ch dimenzφ. Z pohledu relaΦnφ databßze toto nastßvß v p°φpad∞, kdy mezi dimenzemi existujφ (zahnφzd∞nΘ) multizßvislosti. Nap°. v naÜem p°φklad∞ PRODEJ platφ zahnφzd∞nΘ multizßvislosti MODEL ->> BARVA, MODEL ->> PRODEJCE a °ada dalÜφch.

MDD vs.  relaΦnφ implementace OLAP

P°esto₧e existujφ samostatnΘ produkty pro MDD, tj. S╪MDB, v∞tÜina v²robc∙ nejznßm∞jÜφch relaΦnφch databßzφ zaΦφnß nabφzet prost°edky pro OLAP implementovanΘ na zßklad∞ relaΦnφ databßze, p°φpadn∞ na zßklad∞ jejφho rozÜφ°enφ o vφcerozm∞rnß pole. V souvislosti s relaΦnφm p°φstupem pomocφ jazyka SQL se objevila specißlnφ syntaxe pro vytvß°enφ agregacφ data vy₧adovan²ch v OLAP. Hovo°φ se o operßtoru CUBE, pomocφ n∞ho₧ lze provßd∞t obecn∞jÜφ agregace dat ne₧ jak je tomu dosud, tj. kombinacφ GROUP BY a agregaΦnφch funkcφ. Tφmto zp∙sobem lze integrovan²m p°φstupem p°istupovat data v b∞₧nΘ operativnφ databßzi a ve specißlnφ MDD.

V²znamn²m prvkem MDD je prezentace dat u₧ivateli. V tΘto souvislosti se objevujφ specißlnφ operace umo₧≥ujφcφ rotaci vφcerozm∞rn²ch kostek, pohyb po jednotliv²ch ·rovnφch agregace apod. MDD vyu₧φvajφ specißlnφ metody konceptußlnφho modelovßnφ. Nap°. entitnφ typy PRODEJCE, BARVA, MODEL spolu s typem vztahu PRODEJ tvo°φ tzv. schΘma hv∞zdy. Obecn∞ °eΦeno, jde o novou oblast databßzφ p°inßÜejφcφ novΘ zajφmavΘ problΘmy k °eÜenφ, a¥ u₧ v dotazovßnφ, prezentaci Φi implementaci dat.

 

 

 

 



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