Moniulotteinen tieto relaatiokannoissa

Taustaa

Relaatiokantoihin on tietoja tallennettu jo pitkän aikaa. Kuinka näistä kannoista on saatu haluttu tieto ulos järkevässä muodossa?

Useimmiten tämä on toteutettu erilaisten raportointivälineiden ja -generaattoreiden avulla. Vastaavasti samaan aikaan toimiston puolella taulukkolaskentaohjelmat ovat saaneet suuren suosion tietojen analysoinnissa. Luonnollisesti relaatiotietokannoissa olevaa dataa on haluttu siirtää taulukkolaskennan puolelle. Tämä on voitu hoitaa joko näpyttelemällä itse tieto sisään tai tekemällä siirto-ohjelmat, jotka hoitavat ko. työn. Tämän lisäksi on tarjolla erilaisia apuohjelmia, joiden avulla tietojen hyväksikäyttäjä voi itse tehdä kyselyitä SQL-kantoihin ja siirtää dataa haluamiinsa sovelluksiin.

Ongelmaksi tavallisessa relaatiokannassa tulee se, että tietoja halutaan tarkastella useata eri näkökulmasta käsin ja usein myöskin ryhmiteltyinä ja summattuina. Tällaisen kyselyn tekeminen liitoksineen ja Group by -lauseineen on usein tietojen hyväksikäyttäjälle liian monimutkainen tehtävä, jolloin jälleen joudutaan turvautumaan valmiin kyselyn tai raportin tekoon.

Tietojen analysointi

Tietojen analysointivaatimukset ovat nousseet muutaman viime vuoden aikana voimakkaasti esiin ja tätä varten on keksitty uusi lyhenne OLAP eli Online Analytical Processing (F.E.Codd 1993). Saman-aikaisesti on markkinoille tullut myös useita OLAP-tuotteita, jotka jakautuvat pääsääntöisesti kahteen luokkaan:

OLAP relaatiotietokannoissa

OLAPia voi harrastaa myös relaatiotietokannoissa, jolloin on jälleen kaksi lähestymistapaa:

Koska näissä malleissa analysointi tehdään työasemassa voi sen kapasiteetti olla rajoitus

Moniulotteinen mallinnus

Tavallinen normalisoitu relaatiokanta on tehty tapahtumankäsittelyä varten. Sen ongelmana on, ettei se tue tietojen analysointia. Tällöin tiedot voidaan uudelleen mallintaa moniulotteisella mallilla. (Englanniksi käytetään nimitystä Dimensional Modelling eli DM.) Aivan samaa menetelmää voi usein soveltaa myös Data Warehouse tietokantoihin, koska ne usein ovat OLAP-kantoja.

Moniulotteisessa mallinnuksessa lähdetään liikkeelle siitä, mitkä ovat ne dimensiot, joiden suhteen asioita halutaan tarkastella ja mitkä ovat ne numeeriset mittayksiköt, joita eo. dimensiot kuvaavat. Tällainen mallinnus johtaa yksinkertaisimmillaan ns. Tähtimalliin (Star Schema).

Tähtimalli

Tässä mallissa keskellä on ns. faktataulu eli taulu, joka on rivi määrältään suurin.

Faktataulun ympärillä ovat dimensiotaulut, jotka kuvaavat aina kutakin faktataulun dimensiota

Tähtimalli tukee kahden tyyppisiä kyselyitä hyvin:

Tähtimallia voidaan nopeuttaa esim. laskemalla aggregoituja tuloksia valmiiksi joko samaan tai erilliseen tauluun, partitioimalla faktataulu tai luomalla useita fakatatauluja.

Tähtimallia normalisoidumpi malli on "lumihiutale-malli", jossa dimensiotaulut normalisoidaan, mutta faktatauluun ei edelleenkään kosketa. Tämä malli voi nopeuttaa liitoksia koska niissä käytetään nyt pienempiä normalisoituja tauluja yhdessä fakatataulun kanssa. Tämä vähentää myöskin levytilan kulutusta, tosin marginaalisesti, koska faktataulu on kuitenkin ylivoimaisesti suurin taulu. Kuitenkin "lumihiutale" voi tulla loppukäyttäjälle liian monimutkaiseksi.

Käytettiinpä sitten tähtimallia tai jotain sen muunnosta, on sen päälle helposti rakennettavissa käyttöliittymä, jonka avulla käyttäjä voi määritellä hakuehdot, suorittaa kyselyn ja siirtää rivit jatkojalostusta varten esim. taulukkolaskentaohjelmalle. Tällöin käyttäjän ei tarvitse tuntea edes tähtimallia, riittää että hän tietää dimensiot, joilla toimitaan.

Pekka Korhonen,
Object Systems Oy,
Kaksoiskiventie 49 A 1,
02760 Espoo,
puh. 940-501 6205

Lauri Laitinen lauri.laitinen@research.nokia.com