Relaatiotemporaalinen tietomalli mittaustiedon hallintaa varten



Samankaltaiset tiedostot
SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

HELIA 1 (17) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

SQL - STRUCTURED QUERY LANGUAGE

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Mittaustietojen SAF-aineistokuvaus kaasudatahubiin

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

SELECT-lauseen perusmuoto

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Relaatiomalli ja -tietokanta

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

2. Käsiteanalyysi ja relaatiomalli

Tietokantakurssit / TKTL

HELIA 1 (14) Outi Virkki Tiedonhallinta

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

HELIA 1 (14) Outi Virkki Tiedonhallinta

TIETOKANNAT JOHDANTO

Testidatan generointi

Kyselyn yleisrakenne:

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta]

IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI ( )

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

A TIETOKANNAT, 3 op Syksy TI07. Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32

Sovellusarkkitehtuurit

CSE-A1200 Tietokannat

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely

Fyysinen suunnittelu

Muita tietokantaobjekteja. Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

HAAGA-HELIA heti09 1 (27) ICT05 Tiedonhallinta ja tietokannat O.Virkki Relaatiomalli

17 BUDJETOINTI. Asiakaskohtainen Budjetti Ylläpito-ohjelma. Dafo Versio 10 BUDJETOINTI. Käyttöohje. BudgCust Yleistä

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

TIETOJEN TUONTI TIETOKANNASTA + PIVOT-TAULUKON JA OLAP-KUUTION TEKO

Harjoitustehtävä 1. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. SQL kysely

Jouni Huotari OLAP-ohjetekstit kopioitu Microsoftin ohjatun OLAP-kuution teko-ohjeesta. Esimerkin kuvaus ja OLAP-määritelmä

Tietokantojen suunnittelu, relaatiokantojen perusteita

Kirjasto Relaatiotietokannat Kevät Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

Sisältö. 2. Taulukot. Yleistä. Yleistä

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences

SYÖTTÖPOHJA LUKUJEN SYÖTTÖÖN ERI TARKOITUKSIIN

Aurinkoenergiajärjestelmien etäseurantajärjestelmä

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu

FYYSINEN SUUNNITTELU

Sisältö. 22. Taulukot. Yleistä. Yleistä

Access-kyselyt. Luetteloinnin kehittämispäivä Mia Kujala

VeRan laboratoriotietojen siirtoformaatti

A TIETOKANNAT, 4 op Kevät TI09

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja

FYYSINEN SUUNNITTELU

Tietokanta (database)

Denormalisointia turvallisesti. Ougf syysseminaari Pörssitalo Helsinki Timo Raitalaakso

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

HELIA 1 (12) Outi Virkki Tiedonhallinta

Tietotekniikan laitos Käki-projekti TIETOKANTASUUNNITELMA. 1. Johdanto

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

MySQL ja PostgreSQL Seminaarityö

Maiju Mykkänen Susanna Sällinen

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Tietokantojen perusteet

RADAR - RANDOM DATA GENERATOR

TERADATAN JA SAS DI STUDION YHTEISELO CASE LÄHITAPIOLA

TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Transkriptio:

Automaatio 1999, 14.-16.9.1999, Helsinki. Relaatiotemporaalinen tietomalli mittaustiedon hallintaa varten Antoni Wolski Johannes Arminen Antti Pesonen VTT Tietotekniikka, PL 1201, 02044 VTT, Finland Puh. (09) 4561, Fax. (09) 456 6027 sähköposti: {antoni.wolski, johannes.arminen, antti.pesonen}@vtt.fi AVAINSANAT aikasarja, temporaalinen tietomalli, prosessinhallinta, mittaus 1. JOHDANTO Teollisuusprosesseissa syntyy suuria määriä tietoja, joita hyödynnetään automaatiojärjestelmissä ja prosessinhallintajärjestelmissä. Tiedon määrän kasvaessa ja prosessinhallintaohjelmien monimutkaistuessa tiedon joustava käyttö on yhä tärkeämpää. On tiedonhallintakeinoin taattava, että prosessissa syntynyt tai jalostettu tieto on tallessa niin, että erilaisia, toisistaan poikkeavia sovellusten tietotarpeita voidaan tyydyttää tehokkaasti ja ohjelmoinnin kannalta helposti. Perinteisillä tietotekniikan sovellusalueilla tietokannanhallintajärjestelmiä on käytetty tähän tarkoitukseen. Joustavan, sovellustarpeisiin muokkautuvan käyttötavan lisäksi ne takaavat tiedon eheyden ja pysyvyyden erilaisten rinnakkais- ja toipumistekniikoiden avulla. Perinteiset tietokantaratkaisut (jotka nykyisin pääosin perustuvat SQL-kieleen [ISO92]) eivät kuitenkaan sovi hyvin teollisten prosessinhallintajärjestelmien pohjaksi. Yksi syy on SQL-tietokantojen pohjana oleva relaatiomalli, joka ei sovellu luontevasti ajallisten ilmiöiden mallintamiseen. Tarvitaan uusi tietomalli, joka sopisi paremmin prosessitiedoissa esiintyvien aikasarjojen esittämiseen. Toisaalta SQL-kielen vakiintunut asema tietokanta-alueella vaatii, että uusi malli on yhteensopiva SQL-kielen kanssa ja erityistoiminnot on turvattava SQL-kielen laajennusten avulla. VTT Tietotekniikassa kehitetty RQL-kieli ja sitä vastaava tietomalli on kehitetty yllä mainitulla tavalla. Uusi tietomalli on toteutettu RapidBase-nimisessä aikasarjatietokantaohjelmistossa, joka sopii pohjaksi moneen tosiaikaisia prosessitietoja hyödyntävään sovellukseen. Luvussa 2 analysoidaan tarkemmin aikasarjan rakenne ja ja tietokannanhallintajärjestelmalta vaaditut ominaisuudet. Luvussa 3 tarkastellaan erilaisia tapoja esittää aikasarjat relaatiotietokannoissa ja näihin tapoihin liittyvät ongelmat. Luku 4 sisältää muiden kehityssuuntien yhteenvedon. Luvussa 5 esitetään RQL-kieli ja tietomalli. RQL-esimerkkien avulla demonstroidaan tietomallin ominaisuuksia. 2. AIKASARJAN ANATOMIA Koska prosessin yksittäiset mittaukset (ja usein myös niistä johdetut tiedot) ovat sidottuja aikaan, tiedoista muodostuu aikasarjoja, joilla on seuraavat yhteiset ominaisuudet: Tietopiste on rakenteellinen tieto-olio, joka esittää reaalimaailman mittauspistettä. Osa tietopistettä kuvaavista tiedoista on ajasta riippumattomia, kuten nimet, mittauslaitteen tyyppimerkinnät ja tekniset tiedot. Aikasarja esittää jotakin ajassa mitattua tietopisteen suuretta tai suureita. Aikasarjassa olevia tietoja yhdistää kronologinen järjestys. Aikasarjan tietue kertoo yksittäisestä mittauksesta. Jokaisen tietueen yhteydessä on olemassa tieto mittausajasta ja mahdollisesti tietueen voimassaoloajasta (valid time). Tietueeseen kuuluu yksi tai kaksi aikaleimaa, riippuen toteutustavasta. Aikasarjan tietueen alkio on tietueen elementti. Se esittää mitatun arvon. Tietopistetyyppi on valmis kaava, jonka mukaan voidaan luoda uusia tietopisteitä aikasarjoineen.

2 Tietopisteryhmä on kokoelma tietopisteitä, jotka yhdistää jokin tekijä. Aikasarjatietokanta on joukko tietopisteitä tyyppeineen, ryhmineen ja aikasarjoineen. Sitä hallitaan ja käsitellään sopivan ohjelmiston avulla. Tyypillisin aikasarjatietokannan toiminto on voimassaoloajan perusteella tapahtuva liitos (eli voimassaoloaikaliitos, valid time join). Sellainen tarvitaan, kun esimerkiksi halutaan tietää, mikä oli prosessin tila ajanhetkellä t 1. Silloin ei riitä, että järjestelmä tietää mittausarvon mittaushetken tiedossa pitäisi olla myös hetki johon asti mittaus on voimassa. Silloin vasta voidaan muodostaa tulos kaikista mittausarvoista, joiden voimassaoloaika sisältää kyseisen ajanhetken t 1. Aikasarjojen hallintajärjestelmälle voidaan asettaa muitakin vaatimuksia, kuten että mittausarvot interpoloidaan mittaushetkien välillä, koostearvot (esim. keskiarvot) lasketaan automaattisesti ja vanhentuneet tietueet poistetaan. Aikasarjat voivat olla myös ainakin kahta eri tyyppiä. Säännöllisessä sarjassa mittausajat ovat säännöllisin aikavälein. Epäsäännöllisessä sarjassa mittausajat voivat olla mielivaltaisia. Aikasarjakyselykieli tarvitaan ja aikapohjaisten toimintojen (kuten voimassaoloaikaliitoksen) optimointi on tärkeää. Yleiskäyttöisen aikasarjahallinnan tarpeet olivat hyvin pitkään vailla niille kuuluvaa huomiota. Tutkimusalalla on herätty ongelmaan vasta viime aikoina [Dre94]. Viime vuosina on kaupallisiin tietokantajärjestelmiin tuotu joukko aikasarjalaajennuksia, jotka eivät kuitenkaan tue hyvin mittausaineiston tallennustarpeita. Ensin pohditaan, miksei relaatiotietokanta taivu tähän tarpeeseen. 3. TAIPUMATON RELAATIOTIETOKANTA Aikasarjan tuominen relaatiokantaan on kivuliasta vaikkei mahdotonta. Esimerkiksi seuraava taulu esittää lämpötila-antureiden mittauksia. Taulun joka rivillä on mittaushetken aikaleima. Probe_id Time Tempr TEMP12 10:20 24 TEMP34 12:10 99 TEMP12 13:10 20 On selvää, että aikaleima kertoo voimassaoloajan alkuhetken, kuten rivillä (TEMP12, 10:20). Mutta missä kerrotaan voimassaoloajan loppuu? Se löytyy jollakin toisella rivillä, joka esittää samaan yksilöön kohdistuvan seuraavan muutoksen, eli tässä tapauksessa rivillä (TEMP12, 13:10). Kun halutaan suorittaa eri mittaustaulujen voimassaololiitos, tulosrivi muodostetaan voimassaoloajaltaan leikkaavista lähtötaulujen riveistä. Miten sitten kirjoitetaan yllä olevan taulutyypin mukaisista tauluista lähtevä SQL-kysely? Ei mitenkään, koska SQL ei tunne käsitettä ajassa seuraava rivi. Ratkaisuna on koko voimassaoloaikatiedon kirjoittaminen joka riville, kuten seuraavassa esimerkissä. Probe_id Beg End Tempr TEMP12 10:20 13:10 24 TEMP34 12:10 NULL 99 TEMP12 13:10 NULL 20 NULL-arvot tulkitaan siten, että tieto on voimassa nykyhetkelläkin.

3 Täten rakennettujen taulujen voimassaololiitos onnistuu nyt yhdellä SQL-lauseella, mutta siitä tulee monimutkainen. Voidaan myös perustellusti epäillä, kuinka hyvin tietokantatuotteen optimoija selviää tehtävästään. Vaikka ratkaisu toimii, siinä on muitakin ongelmia. Aikatiedot on esitetty tuplasti ja tietojen päivityksissä täytyy noudata tiukkoja sääntöjä: rivin lisäämiseen tai muuttamiseen liittyy aina jonkun toisen rivin muuttamista. Taulun aikaeheys voi helposti rikkoontua, eikä sitä voi ylläpitää automaattisesti järjestelmän toimesta. Lähteestä [Gol93] löytyy muitakin keinoja, mutta relaatiomallin kankeudesta ei niiden avulla pääse eroon. 4. MUUT LÄHESTYMISTAVAT Tietokantakirjallisuutta tuntevat lukijat tietävät, että temporaaliset tietokannat ovat tulossa. Tietokantatutkijoiden yhteistyönä luotu kieli TSQL2 on kuvattu kirjassa [Sno95] ja useissa artikkeleissa, kuten [Sno94]. TSQL2 on otettu pohjaksi standardi SQL-kielen laajennuksessa, jonka nimi on SQL/- Temporal. Nykytiedon mukaan laajennuksen standardi valmistuisi vuonna 2001. Kaupallisia toteutuksia ei vielä ole ja aika näyttää tuleeko niitä. TSQL2-pohjainen tietokantajärjestelmä ratkaisisi ylhäällä esitetyt ongelmat, mutta puutteita on silti: toisaalta aikasarjakäsittelyn kannalta TSQL2-kielessä on tarpeetonta painolastia ja toisaalta joitakin ominaisuuksia puuttuu, esim. aikasarjatietueen käsite ja eri tyyppisten aikasarjojen tuki. Tietokantaohjelmistojen valmistajat IBM, Informix ja Oracle ovat tuoneet tuotteisiinsa aikasarjat laajennustietotyypin muodossa. Toteutukset on suunnattu finanssimarkkinoiden sovelluksiin. Mittausaikasarjoja voidaan niiden avulla toteuttaa, mutta käyttö on hankalaa ja tehotonta. Yhtenä haittana on tarve turvautua erityisiin funktioihin, jotka ovat erillään itse tietokantakielestä. Teollisten valvomo-ohjelmistojen valmistajat ovat aina tukeneet mittausaikasarjoja jossakin muodossa. Tällaisia tuotteita ovat mm. Wonderwaren InTouch, National Instrumentsin LabVIEW ja Gensymin G2. Näillä välineillä on kuitenkin vaikea rakentaa yleiskäyttöinen aikasarjatietokanta. Pisimmällä on Wonderware IndustrialSQL Server -tuotteella, jossa Microsoftin SQL Server on laajennettu aikasarjarakenteilla. Rakenteet ovat kuitenkin hyvin yksinkertaisia (tietopistetyypit ja aikasarjatietueet puuttuvat), eikä aikasarja-alkiota voi muuttaa luomisen jälkeen. 5. RQL-KIELI ja -TIETOMALLI Olemme VTT Tietotekniikassa yrittäneet luoda helppotajuisen ja tehokkaasti toteutettavan aikasarjatietomallin. RapidBase-aikasarjatietokantajärjestelmässä on toteutettu RQL-kieli (RapidBase Query language) ja sen pohjalla oleva laajennettu relaatiomalli. Kuva 1 kertoo, miten esitetään prosessimallin olioita RQL-taulujen avulla. Yksi perustaulu vastaa tietopisteen tyyppiä ja rivi yhtä tietopistettä. Esimerkiksi kaikki lämpötila-anturit voitaisiin esittää yhdessä perustaulussa. Jos halutaan lisätä yksi anturi prosessimalliin, taulun lisätään yksi rivi. Tietopisteen pysyvät tiedot on esitetty tavallisilla perussarakkeilla, kuten perinteisessä tietokannassa. Sen sijan jokainen tietopisteeseen liittyvä aikasarja esitetään erityisellä HISTORY-tyyppisellä sarakkeella. Tällaisen sarakkeen arvona on kronologisesti järjestetty aikasarjatietueiden sekvenssi. Aikasarjatietue jakautuu alisarakearvoihin, jotka ovat rivin esittämän olion tietyn hetken tilaa kuvaavia tietoja. Jokaisella tietueella on sisäänrakennettu aikaleimatieto, jonka perusteella järjestelmä päättää tietueen voimassaolon ajasta.. HISTORY-tyypin arvoilla eli aikasarjoilla on ominaisuudet, jotka puuttuvat relaatiotietomallista. Järjestelmä ylläpitää tietueiden järjestystä, aikaleimaa tietueet automaattisesti (ellei sovellus anna aikaleimaa) ja takaa historian maksimaalisen pituuden poistamalla vanhennetut tiedot tietokannasta. Jos vanhentuneet tiedot halutaan kuitenkin säilyttää, tietokantaan määritellyt arkistoijaoliot pitävät huolen tietojen arkistoinnista toiseen taltioon.

4 alisarake HISTORYsarake VALID 1998-02-13 14:02:01.00 perussarake perustaulu VALID NOW Kuva 1. RQL-tietomallin mukainen perustaulu (esimerkki). RQL-malli supistuu helposti tavalliseen relaatiomalliin, jos vain nykyinen tila on käsittelyn kohteena. RQL-perustaulu voidaan silloin nähdä SQL-perustauluna (kuvan 1 etualalla oleva tummennettu osa). Tavalliset SQL-komennot kohdistuvat tähän 'nykynäkymään', johon kuuluvat aikasarjojen kronologisesti viimeiset tietueet. Laajennetun kieliopin avulla pystytään myös helposti päivittämään ja hakemaan aikasarjoissa olevia tietoja. Kahden historian perustaulu voidaan luoda esimerkiksi seuraavalla RQL-lauseella: CREATE TABLE tempr_probes ( probe_id CHAR(8), name VARCHAR(80), type CHAR(10), scale INT, measur_h HISTORY ( tempr INT, quality TINYINT ) SIZE 10000 state_h HISTORY ( state CHAR(8) ) SIZE 1000 Tässä esimerkissa taulun historiasarakkeista toinen on tarkoitettu mittausarvojen tallentamiseen ja toinen anturin tilan (ON/OFF) seuraamiseen. On prosessimallin suunnittelijan tehtävä valita mistä olion ominaksista halutaan historiatietoja talteen ja mistä ei. Uuden anturin lisääminen prosessimalliin käy seuraavalla lauseella: INSERT INTO tempr_probes (probe_id, name, type, scale, state_h.state) VALUES ('TEMP34', 'Axis head tempr meter', 'TM2', 10, 'OFF') Yllä oleva lause alustaa uuden rivin perussarakearvot ja yhden historian tilaa. Historiaan state_h on kirjoitettu arvo 'OFF' ja historiatietuen automaattinen aikaleimä kertoo arvon luomisen hetkestä. Toinen historia on vielä kuitenkin alustamaton ja se arvo (ja myös alisarakkeiden arvo) on NULL, eli 'tyhjä'.

5 SQL-tietokannoissa sarakearvojen muuttaminen tapahtuu UPDATE-lauseella. Jos RQL-kielessä UPDATE-lause kohdistetaan historian alisarakkeeseen, sen nykynäkymän mukainen arvo muuttuu ja vanha arvo siirtyy historiaan. Uuden anturin tila muutetaan näin: UPDATE tempr_probes SET state_h.state = 'ON' WHERE probe_id = 'TEMP34' Mittausarvoja syötetään vastaavalla tavalla. Tässäkin tapauksessa käytetään UPDATE-lausetta, koska kyseessä on nykynäkymän päivitys: UPDATE tempr_probes SET measur_h.tempr = 124, measur_h.quality = 3 WHERE probe_id = 'TEMP34' Tähän asti esitetyt INSERT ja UPDATE-lauseet ovat SQL-standardin mukaisia. Jos SELECT-lause esitetään standardinmukaisella tavalla, sekin kohdistuu RQL-taulun nykynäkymään. Esimerkiksi lause SELECT probe_id, name, measur_h.tempr WHERE state_h.state = 'ON' tuottaa tulostaulun, jossa on ON-tilassa olevien antureiden tunnustiedot ja tuoreimmat mittaukset. RQL-kieli tuo laajennukset, joiden avulla historiatiedot voidaan ylläpitää ja hakea. Esimerkiksi vanhoja historiatietoja päivitetään UPDATE HISTORY -lauseella. Historiatiedot haetaan tavallisella SELECT-lauseella, jossa on jokin historiaan viittaava temporaalinen predikaatti. Temporaalisista predikaateista kätevin on VALID-predikaatti, jolla annetaan haettavien tietojen voimassaoloaika. RQL-kielen SELECT-lauseessa VALID-predikaatii on aina mukana vaikka käyttäjjä sitä ei antaisi. Sen oletusarvomuoto on VALID NOW, joka viittaa nykynäkymään (kuva 1). VALID-predikaatissa voidaan antaa aikapiste, jolloin haetut tiedot ovat voimassa. Esimerkiksi lause SELECT probe_id, name, state_h.state, measur_h.tempr WHERE VALID '1998-02-13 14:02:01.000' tuottaa listan kaikista antureista ja niiden tiloista ja mitatuista arvoista mainitulla hetkellä. VALID-predikaatilla on useita aikapisteiden ja jaksojen määrittelyyn sopivia muotoja. Esimerkiksi näin haetaan viimeisen minuutin mittaustietoja: SELECT ots, probe_id, name, measur_h.tempr WHERE VALID FROM NOW INTERVAL '1' MINUTE Sarake ots (object timestamp) on tulostaulun virtuaalinen sarake ja se kertoo mittauksen ajankohdan. Se sisällytetään aina tulostauluun, jos tuloksessa on historiatietoja.. Sen arvo on laskettu historiatietueiden aikaleimatiedoista. Kun kaksi tai useampi historia yhdistetään yhteen tulostauluun, järjestelmä suorittaa historioiden voimassaololiitoksen niin, että kussakin tulostaulun rivissä on samassa aikajaksossa voimassa olevia tietoja.. Seuraavaan lauseen kahden historian voimassaololiitoksen tuloksessa jokaisen tulosrivin voimassaoloajan kertovat sarakkeet ots ja ots_end (viimeksi mainittu on myös virtuaalisarake) SELECT ots, ots_end, probe_id, state_h.state, measur_h.tempr WHERE VALID BEFORE NOW

6 Usein tarvitaan tietoa säännöllisin aikavälein voimassa olevista arvoista (esim. trendinäytön tuottamiseen). RQL-kielen aikapisteliitos (timepoint join) tuottaa tarvittavan tuloksen. Se voidaan kohdistaa samassa lauseessa muodostettuun voimassaololiitokseen, kuten esimerkiksi tässä lauseessa, joka tuottaa 10 sekunnin aikavälein tila- ja mittaustietoja yhden tunnin ajalta. SELECT ots, probe_id, state_h.state, measur_h.tempr TIMEPOINT SERIES INTERVAL '10' SECOND WHERE VALID FROM NOW INTERVAL '1' HOUR Tässä kuvattu RQL-kieli ja tietomalli on toteutettu VTT Tietotekniikan RapidBase-järjestelmässä 1. Sovellusohjelmat käyttävät RapidBase-tietokantaa lähettämällä RQL-lauseita RapidBase-palvelimeen tavanomaisten SQL-tietokannoista tuttujen etäkäyttöliittymien kautta, kuten ODBC ja JDBC. Oma RapidBase C++-pohjainen liittymäluokkakirjasto on myös käytettävissä. Tässä esitetyn tietomallin lisäksi RapidBase-järjestelmän erikoisuuksiin kuuluuvat muunmuassa keskusmuistipohjainen tietokannan toteutus ja ilmaisuvoimainen laukaisinjärjestelmä, johon kuuluvat myös sumean päättelyn pohjalta toimivat laukaisimet. 6. LÄHDELUETTELO [Dre94] W. Dreyer et al.: Research Perspectives for Time Series Management Systems. SIGMOD Record, 23(1), March 1994, sivut. 10-15. [Gol93] R. Goldring: An Introduction to Time-Series Data. InfoDB, 7(2), Spring 1993, sivut 22-25 [ISO92] [Sno94] [Sno95] ISO/IEC 9075. Information processing systems - Database language SQL. International standard, third edition, 1992. Ref. No. ISO 9075 : 1992 (E). R. Snodgrass et al.: TSQL2 Language Specification. ACM SIGMOD Record, 23(1), March 1994, sivut 65-86. R. Snodgrass (ed.): The TSQL2 Temporal Query Language. Kluwer Academic Publishers, 1995, 674 s. 1 http://www.vtt.fi/tte/projects/rapid/