Kun luot OLAP-sovelluksen ja moniulotteisen tietokannan, DB2 OLAP Server -palvelinohjelma luetteloi uuden sovelluksen ja tietokannan ja luo relaatiotaulukkojoukon, jota kutsutaan tähtiskeemaksi. Lisäksi DB2 OLAP Server -palvelinohjelma luo joukon näkymiä, jotka tekevät moniulotteisten tietojen käytön helpommaksi SQL-sovelluksille. Näiden näkymien ansiosta voit käyttää moniulotteisia tietoja mukautettujen sovellusten ja normaalien kyselytyökalujen avulla. Jotkin sovellukset on suunniteltu hyödyntämään kaikkia DB2 OLAP Server -palvelinohjelman tähtiskeemaan tallentamien tietojen ominaisuuksia.
Seuraava luettelo sisältää kaikki DB2 OLAP Server -palvelinohjelman hallitsemat näkymät:
DB2 OLAP Server -palvelinohjelma tallentaa kaikki perustaulukot ja näkymät käyttäjätunnus-malliin, jossa käyttäjätunnus on DB2 OLAP Server -palvelinohjelmalle määritetty käyttäjätunnus. Tämän luvun SQL-esimerkeissä käytetään mallin nimeä OLAPSERV.
Kaikki näkymien nimet on kirjoitettu isoilla kirjaimilla. Näkymien nimiä ei tule sijoittaa lainausmerkkien sisään. DB2 OLAP Server -palvelinohjelma muodostaa näkymien nimet ja tallentaa ne luettelonäkymiin. SQL-sovellukset voivat tehdä näkymien nimiä koskevia kyselyitä luettelonäkymiin. Kuva 9 sisältää kaavion DB2 OLAP Server -palvelinohjelman ensisijaisista näkymistä.
Kuva 9. DB2 OLAP Server -palvelinohjelman malli.
![]() |
DB2 OLAP Server -palvelinohjelma käyttää yhtä kuutioluettelonäkymää käyttäjätunnus-mallissa. Tämä näkymä sisältää yhden rivin jokaista kuutiota kohden. Tämän näkymän avulla voit saada yksityiskohtaisia tietoja kaikista malliin tallennetuista OLAP-sovelluksista ja kuutioista. Kuutioluettelonäkymä sisältää luettelon kaikista DB2 OLAP Server -palvelinohjelman hallitsemista OLAP-sovelluksista ja tietokannoista.
Kuutioluettelonäkymän nimi on CUBECATALOGVIEW. Kaikkien muiden näkymien tavoin se on DB2 OLAP Server -palvelinohjelmalle määritetyn mallin omistuksessa.
Taulukko 14 sisältää kuutioluettelon sarakkeet.
Taulukko 14. Kuutioluettelonäkymän sisältö.
Tämän SQL-käskyn avulla saat luettelon OLAP-sovelluksista:
SELECT DISTINCT APPNAME FROM OLAPSERV.CUBECATALOGVIEW
Tämän SQL-käskyn avulla saat luettelon Sample-nimisen sovelluksen moniulotteisista tietokannoista:
SELECT CUBENAME FROM OLAPSERV.CUBECATALOGVIEW WHERE APPNAME='Sample'
Tämän SQL-käskyn avulla saat luettelon Sample-sovelluksen Basic-nimisen moniulotteisen tietokannan näkymien nimistä:
SELECT CUBEVIEWNAME,FACTVIEWNAME,STARVIEWNAME,ALIASIDVIEWNAME,LROVIEWNAME FROM OLAPSERV.CUBECATALOGVIEW WHERE APPNAME='Sample' AND CUBENAME='Basic'
Kuutionäkymä ja dimensionäkymät sisältävät tietoja relaatiokuution dimensioista ja jäsenistä. Jokaista relaatiokuutiota kohden on yksi kuutionäkymä ja jokaista kuution dimensiota kohden on yksi dimensionäkymä. Näiden näkymien avulla voidaan kysellä useita dimensioille ja jäsenille OLAP-jäsennyksessä annettuja määritteitä.
Jokaisella DB2 OLAP Server -palvelinohjelman hallitsemalla relaatiokuutiolla on yksi kuutionäkymä. Kuutionäkymä sisältää yhden rivin jokaista relaatiokuution dimensiota kohden. Tämän näkymän avulla saat tietoja kuution dimensioista.
Kuutionäkymän nimi on määritetty kuutioluettelotaulukon CubeViewName-sarakkeessa.
Taulukko 15 sisältää kuutionäkymän sarakkeet.
Taulukko 15. LRO-näkymän sisältö.
Jotta voit käyttää kuutionäkymän tietoja, sovelluksen on ensin selvitettävä kuutionäkymän nimi kuutioluettelonäkymän avulla.
Jos haluat löytää esimerkiksi Sample-sovelluksen Basic-tietokannan kuutionäkymän nimen, voit tehdä tietokantaan seuraavan SQL-kyselyn:
SELECT CUBEVIEWNAME FROM OLAPSERV.CUBECATALOGVIEW WHERE APPNAME='Sample' AND CUBENAME='Basic'
Tämän kyselyn tulos voi olla esimerkiksi seuraavan kaltainen:
OLAPSERV.SAMPBASI_CUBEVIEW
Seuraavan SQL-lauseen avulla saat luettelon Basic-tietokannan dimensioista ja niiden dimensionäkymien nimistä:
SELECT DIMENSIONNAME.DIMENSIONVIEWNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW
Seuraavan SQL-lauseen avulla saat luettelon Basic-tietokannan tiuhadataisten dimensioiden dimensionimistä:
SELECT DIMENSIONNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW WHERE DIMENSIONTYPE = 0
Seuraavan SQL-lauseen avulla voit selvittää sellaisten tähtinäkymän sarakkeiden nimeämiseen käytettyjen dimensioiden nimet, jotka eivät ole kiintopistedimensioita:
SELECT RELDIMENSIONNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW WHERE DIMENSIONTYPE <> 2
Seuraavan SQL-lauseen avulla voit palauttaa Product-dimension relaatiomääritenäkymän nimen:
SELECT RATVIEWNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW WHERE DIMENSIONNAME='Product'
Dimensionäkymän nimi on määritetty kuutionäkymän DimensionViewName-sarakkeessa.
Taulukko 16 sisältää dimensionäkymän sarakkeet.
Taulukko 16. Dimensionäkymän sisältö.
Nimi | Laji | Koko | Sisältö |
---|---|---|---|
MemberName | VarChar | 80 | Jäsenen nimi. |
RelMemberName | VarChar | 18 | Vain kiintopistedimensiossa. Jäsenen DB2 OLAP Server -nimi.
Tällä nimellä nimetään keskus- ja tähtinäkymän sarakkeet, jotka vastaavat
kiintopistedimension jäseniä. Nimi on ainutkertainen kaikkien
kiintopistedimension jäsenten nimien ja muiden dimensioiden nimien
joukossa. Se on nimen MemberName muutettu versio. Nimeen
MemberName on ehkä tehtävä seuraavat muutokset:
|
RelMemberID | Integer | Ei rajoitusta | Kyseisen jäsenen DB2 OLAP Server -tunnus. Dimensiotaulukko liitetään keskustaulukkoon tämän tunnuksen avulla. |
ParentRelId | Integer | Ei rajoitusta | Jäsenen emojäsenen relaatiotunnus OLAP-jäsennyksessä. Ylimmän tason jäsenillä arvo on NULL. |
LeftSiblingRelId | Integer | Ei rajoitusta | Jäsenen vasemman sisarjäsenen relaatiotunnus OLAP-jäsennyksessä. Tämä arvo on NULL sellaisilla jäsenillä, joilla ei ole vasenta sisarjäsentä. |
Tila | Integer | Ei rajoitusta | Jäsenen tila voi koostua seuraavien arvojen yhdistelmästä:
|
CalcEquation | Long VarChar (työasema); VarChar (OS/390) | 32700 (työasema); 250 (OS/390) | Oletusarvon mukainen laskettavien jäsenten laskentayhtälö. Huomaa, että oletusarvon mukaista laskentayhtälöä ei välttämättä käytetä jäsenen arvon laskentaan, jos relaatiokuution laskentaan käytettävässä laskentakomentotiedostossa on määritetty jokin toinen laskutoimitus. |
UnarySymbol | Small Integer | Ei rajoitusta | Unaarisen laskennan merkki:
|
AccountsType | Integer | Ei rajoitusta | Tätä määritettä käytetään vain Accounts-dimensiossa. Se voi
sisältää jonkin seuraavien arvojen yhdistelmän:
|
NoCurrencyConv | Small Integer | Ei rajoitusta | Valuuttamuunnosasetus:
|
CurrencyMemberName | VarChar | 80 | Tähän jäseneen liittyvä valuuttakuution jäsenen nimi. |
GenerationNumber | Integer | Ei rajoitusta | Kyseisen jäsenen sukupolven numero. |
GenerationName | VarChar | 80 | Kyseisen jäsenen sukupolven nimi. |
LevelNumber | Integer |
| Kyseisen jäsenen tason numero. |
LevelName | VarChar | 80 | Kyseisen jäsenen tason nimi. |
Valenimitaulukon nimi Jokaista jäsennyksessä käytettyä OLAP-valenimitaulukkoa kohden on yksi valenimisarake. | VarChar | 80 | Tämän jäsenen valenimi sarakkeeseen liittyvässä OLAP-valenimitaulukossa. Jos jäsenellä ei ole valenimeä, tämä arvo on tyhjä. Lisätietoja aiheesta on kohdassa Valenimitunnusnäkymien käyttö. |
Relaatiomääritesarakkeen nimi Jokaista käyttäjän määrittämää RatCol-määritettä varten on yksi relaatiomääritetaulukko. | Relaatio- määrite- sarakkeen luonnin yhteydessä määritetty tietolaji. | Relaatio- määrite- taulukon luonnin yhteydessä määritetty pituus. | Kyseisen jäsenen relaatiomääritteen arvo. |
Jotta voit käyttää dimensionäkymän tietoja, sovelluksen on ensin selvitettävä dimensionäkymän nimi kuutionäkymän avulla.
Jos haluat löytää esimerkiksi Basic-tietokannan Time-dimension dimensionäkymän nimen, voit tehdä tietokantaan seuraavan SQL-kyselyn:
SELECT DIMENSIONVIEWNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW WHERE DIMENSIONNAME='Time'
Tämän kyselyn tulos voi olla esimerkiksi seuraavan kaltainen: OLAPSERV.SAMPBASID_TIME
Seuraavan SQL-lauseen avulla saat luettelon Time-dimension jäsennimistä:
SELECT MEMBERNAME FROM OLAPSERV.SAMPBASID_TIME
DB2 OLAP Server -palvelinohjelma luo kaksi näkymää tähtiskeeman keskustaulukosta ja ylläpitää niitä:
Koska keskustaulukko sisältää eri tasoisia yhdistettyjä arvoja, on arvoja yhdistävää SQL-sovellusta kirjoitettaessa varmistettava, että jokaisen dimension valittujen jäsenten joukko koostuu samantasoisista yhdistetyistä arvoista. Muussa tapauksessa yhdistetyt arvot ovat virheellisiä. Voit varmistaa tämän esimerkiksi sisällyttämällä rajoitteen dimensiotaulukon sukupolven numeroa tai tason numeroa osoittavaan kenttään.
DB2 OLAP Server -palvelinohjelman luomassa keskustaulukossa on yksi sarake jokaista kiintopistedimension tietoja tallentavaa jäsentä varten ja yksi sarake jokaista muuta dimensiota varten. Aiemmin esitettyä (Kuva 9) jäsennystä vastaava keskustaulukko sisältää seuraavat sarakkeet:
Dimensiosarakkeisiin tallennetaan jäsentunnukset, jotka viittaavat jokaisen muun kuin kiintopistedimension jäseniin. Jäsentunnukset voidaan määrittää vastaamaan jäsenten nimiä dimensionäkymien avulla. Kiintopistejäsensarakkeisiin tallennetaan varsinaisia arvoja. Kiintopistedimensioiden jäsenet voidaan määrittää vastaamaan keskusnäkymän sarakkeita kiintopistedimension dimensionäkymän avulla.
DB2 OLAP Server -palvelinohjelma käyttää keskustaulukossa sisäisiä sarakkeiden nimiä ja sisäisiä jäsenten tunnuksia. Keskusnäkymä korvaa sisäiset sarakenimet dimensioiden ja jäsenten nimillä, mutta ei määritä vastaavuutta dimensiosarakkeiden jäsentunnuksien ja jäsenten nimien välille. Tähtinäkymä korvaa sisäiset sarakkeiden nimet dimension ja jäsenten nimillä ja määrittää vastaavuuden dimensiosarakkeiden jäsentunnusten ja jäsenten nimien välille liittämällä keskustaulukon dimensiotaulukoihin.
Vaikka mikä tahansa tiuhadatainen dimensio voidaan määrittää kiintopistedimensioksi, saadaan luonnollisin vastaavuus keskus-tai tähtinäkymää SQL-sovelluksista käytettäessä ja tapauskohtaisia kyselyjä tehtäessä määrittämällä kiintopistedimensioksi Accounts-dimensio.
Keskusnäkymän nimi on määritetty kuutioluettelotaulukon FactViewName-sarakkeessa.
Keskusnäkymä sisältää vaihtelevan määrän kahdenlajisia sarakkeita:
Taulukko 17 sisältää yksityiskohtaisia tietoja keskusnäkymän
kahdenlajisista sarakkeista.
Taulukko 17. Keskusnäkymän sisältö.
Jotta voit käyttää keskusnäkymän tietoja, sovelluksen on ensin selvitettävä keskusnäkymän nimi kuutioluettelonäkymän avulla.
Jos haluat löytää esimerkiksi Sample-sovelluksen Basic-tietokannan keskusnäkymän nimen, voit tehdä kyselyn tietokantaan käyttämällä seuraavaa SQL-lausetta:
SELECT FACTVIEWNAME FROM OLAPSERV.CUBECATALOGVIEW WHERE APPNAME='Sample' AND CUBENAME='Basic'
Kyselyn tulos voi olla esimerkiksi seuraavan kaltainen:
OLAPSERV.SAMPBASI_FACTVIEW
Jos käytettävä sovellus pitää kirjaa jäsenten RelMemberID-arvoista, voit tehdä kyselyn suoraan keskusnäkymään. Voit esimerkiksi valita tuotteen, jonka RelMemberId-arvo on 3 (100-20), data-arvot markkina-alueella, jonka RelMemberId-arvo on 2 (East), ajankohtana, jonka RelMemberID-arvo on 4 (Q3) tekemällä seuraavan SQL-kyselyn:
SELECT PROFIT,SALES,COGS FROM OLAPSERV.SAMPBASI_FACTVIEW WHERE PRODUCT=3 AND MARKET=2 AND TIME=4
Yleensä keskusnäkymään tehtyihin kyselyihin kuitenkin sisältyy liitoksia dimensionäkymiin. Seuraava liitoksia käyttävä kysely vastaa edellistä kyselyä:
SELECT PROFIT,SALES,COGS FROM OLAPSERV.SAMPBASI_FACTVIEW, OLAPSERV.SAMPBASID_TIME, OLAPSERV.SAMPBASID_MARKET, OLAPSERV.SAMPBASID_PRODUCT, WHERE OLAPSERV.SAMPBASID_TIME.MEMBERNAME='Q3' AND OLAPSERV.SAMPBASID_PRODUCT.MEMBERNAME='100-20' AND OLAPSERV.SAMPBASID_MARKET.MEMBERNAME='East' AND OLAPSERV.SAMPBASI_FACTVIEW.TIME=OLAPSERV.SAMPBASID_TIME.RELMEMBERID AND OLAPSERV.SAMPBASI_FACTVIEW.PRODUCT=OLAPSERV.SAMPBASID_PRODUCT.RELMEMBERID AND OLAPSERV.SAMPBASI_FACTVIEW.MARKET=OLAPSERV.SAMPBASID_MARKET.RELMEMBERID
Tähtinäkymän nimi on määritetty kuutioluettelotaulukon StarViewName-sarakkeessa.
Tähtinäkymä sisältää vaihtelevan määrän kahdenlajisia sarakkeita:
Taulukko 18 sisältää yksityiskohtaisia tietoja tähtinäkymän kahdenlajisista sarakkeista.
Taulukko 18. Tähtinäkymän sisältö.
Jotta voit käyttää tähtinäkymän tietoja, sovelluksen on ensin selvitettävä tähtinäkymän nimi kuutioluettelonäkymän avulla.
Jos haluat löytää esimerkiksi Sample-sovelluksen Basic-tietokannan tähtinäkymän nimen, voit tehdä tietokantaan seuraavan SQL-kyselyn:
SELECT STARVIEWNAME FROM OLAPSERV.CUBECATALOGVIEW WHERE APPNAME='SAMPLE' and CUBENAME='BASIC'
Tämän kyselyn tulos voi olla esimerkiksi seuraavan kaltainen: OLAPSERV.SAMPBASI_STARVIEW
Voit valita tuotteen 100-10 data-arvot markkina-alueella Central ensimmäisen vuosineljänneksen aikana tekemällä seuraavan SQL-kyselyn:
SELECT PROFIT,SALES,COGS FROM OLAPSERV.SAMPBASI_STARVIEW WHERE PRODUCT='100-10' AND MARKET='Central' AND TIME='Q1'
Voit valita kaikki tuotteet, joiden tuottama voitto laski Central-alueella toisen vuosineljänneksen aikana, tekemällä seuraavan SQL-kyselyn:
SELECT PRODUCT,PROFIT,SALES,COGS FROM OLAPSERV.SAMPBASI_STARVIEW WHERE MARKET='Central' AND TIME='Q2' AND PROFIT < 0
Kaikki tähtinäkymän jäsenet eivät ole samalla hierarkiatasolla, joten kyselyt on muodostettava varovaisesti toteutettaessa yhdistämistoimintoja SQL-kielen avulla. Dimension valittujen jäsenten tulee olla samalla tasolla kaksinkertaisten yhdistämisten välttämiseksi.
Seuraavassa SQL-esimerkkilauseessa on valittuna eri tasoisia tähtinäkymän jäseniä. (Jotkin myyntiluvut lasketaan kahteen kertaan, koska kysely yhdistää kahdentasoisia summia.)
SELECT SUM(PROFIT) FROM OLAPSERV.SAMPBASI_STARVIEW WHERE MARKET IN ('Central','Illinois') AND PRODUCT='100' AND TIME IN ('Q1','1996')
Jos oletetaan, että alue Illinois on osa aluetta Central ja ajanjakso Q1 on osa ajanjaksoa 1996, tämä kysely palauttaa arvon, jossa on yhteenlaskettuna kahden eri tason PROFIT-arvoja. Koska alueen Illinois tiedot sisältyvät jo alueen Central tietoihin, sekä alueen Illinois että ajanjakson Q1 tiedot lasketaan lopputulokseen kahteen kertaan. Jos haluat korjata SQL-kyselyä siten, että se palauttaa kahden Central-alueen osavaltion yhteenlasketut myyntiluvut kahden eri vuosineljänneksen ajalta, esimerkkikyselystä tulee seuraavanlainen:
SELECT SUM(PROFIT) FROM OLAPSERV.SAMPBASI_STARVIEW WHERE MARKET IN ('Indiana','Illinois') AND PRODUCT='100' AND TIME IN ('Q1','Q2')