amron tietokanta ja sen...

53
17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE GUSTAFSSON TOMMI GUSTAFSSON Mat-2.108 Systeemianalyysin erikoistyöt Systeemianalyysin laboratorio Teknillinen Korkeakoulu

Upload: others

Post on 07-Jan-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

17.12.1999

OUTOKUMPU POLARIT AMRO-PROJEKTI:

TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ

JANNE GUSTAFSSON

TOMMI GUSTAFSSON

Mat-2.108 Systeemianalyysin erikoistyöt

Systeemianalyysin laboratorio

Teknillinen Korkeakoulu

Page 2: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

2

SISÄLLYSLUETTELO

1. JOHDANTO........................................................................................................................................ 4

2. ONGELMAKENTÄN KUVAUS .............................................................................................................. 5

2.1 AMRO-projektin tausta ja ongelman kuvaus ............................................................................... 5

2.2 Outokumpu Polarit ..................................................................................................................... 5

2.3 Käsitteet ..................................................................................................................................... 6

2.4 Teräksenvalmistusprosessi.......................................................................................................... 92.4.1 Johdatus teräksenvalmistusprosessiin ................................................................................................................ 9

2.4.2 Sulatus kromikonvertterissa ja valokaariuunissa .............................................................................................. 10

2.4.3 Siirtosenkka, AOD-konvertteri ja prosessin muut osat...................................................................................... 11

2.5 Teräksen valmistukseen liittyvät tekijät ..................................................................................... 112.5.1 Koostumusrajat ja sakkofunktiot ..................................................................................................................... 11

2.5.2 Raaka-aineiden käyttörajoitukset ja saatavuus.................................................................................................. 13

2.6 Johdatus estimointiin ja optimointiin ........................................................................................ 13

3. PROJEKTIN VAIHEET JA OHJELMISTON ARKKITEHTUURI................................................................... 16

3.1 Outokumpu Polarit Oy:n AMRO-projektin historiaa ................................................................. 16

3.2 Projektin vaiheistus .................................................................................................................. 16

3.3 Outokumpu Polarit Oy:n tietojärjestelmät................................................................................. 16

3.4 Arkkitehtuuri ............................................................................................................................ 173.4.1 Periaatteet ...................................................................................................................................................... 17

3.4.2 Yleiskuvaus.................................................................................................................................................... 17

3.4.3 Tietokanta ...................................................................................................................................................... 19

3.4.4 Tietokannan käyttöliittymä.............................................................................................................................. 20

3.4.5 Optimointi- ja estimointimoduuli .................................................................................................................... 20

3.4.6 Huomioita ...................................................................................................................................................... 20

3.5 Projektin analyysi..................................................................................................................... 213.5.1 Tavoitteen saavuttaminen................................................................................................................................ 21

3.5.2 Riskit ............................................................................................................................................................. 21

4. TIETOKANTA .................................................................................................................................. 22

4.1 Johdatus tietokantoihin............................................................................................................. 22

4.2 Tietokantoihin liittyvät käsitteet ................................................................................................ 23

4.3 E/R-kaavion perusteet............................................................................................................... 25

4.4 Johdatus AMRO:n tietokantaan, SQL:ään ja tietokannan ominaisuuksiin ................................. 264.4.1 E/R-kaaviosta SQL:ään................................................................................................................................... 26

4.4.2 Päivitys- ja poistopolitiikat sekä oikeellisuustarkistukset.................................................................................. 27

4.4.3 Indeksit .......................................................................................................................................................... 29

4.5 Tietokannan taulut.................................................................................................................... 294.5.1 Yleiskatsaus tauluihin ..................................................................................................................................... 29

4.5.2 Yleisesti taulujen kentistä ............................................................................................................................... 30

4.6 Offline-tietokannan toteutus Borland Database Enginellä......................................................... 32

Page 3: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

3

4.6.1 Borland Database Enginen asetukset ............................................................................................................... 33

4.7 Tietokannan analyysi ................................................................................................................ 344.7.1 Tietokannan suunnittelun periaatteet ............................................................................................................... 34

4.7.2 Tietokannan rajoitukset ja sopivuus käyttötarkoitukseensa ............................................................................... 35

4.7.3 Parannusehdotuksia ........................................................................................................................................ 35

5. TIETOKANNAN KÄYTTÖLIITTYMÄ ................................................................................................... 37

5.1 Johdatus tietokannan käyttöliittymään ...................................................................................... 37

5.2 Perusratkaisut .......................................................................................................................... 37

5.3 Käyttöohje ................................................................................................................................ 385.3.1 Pääikkuna....................................................................................................................................................... 38

5.3.2 Näkymä.......................................................................................................................................................... 39

5.3.3 Tietueen lisäys ja editointi .............................................................................................................................. 40

5.4 Implementaatiotason rakenne ................................................................................................... 435.4.1 Käyttöliittymäohjelmiston rakenne.................................................................................................................. 43

5.4.2 DBStructure ................................................................................................................................................... 44

5.4.3 TableDialog.................................................................................................................................................... 45

5.5 Käyttöliittymän analyysi ........................................................................................................... 455.5.1 Laajennetavuus............................................................................................................................................... 45

5.5.2 Rajoitukset ..................................................................................................................................................... 45

5.5.3 Sopivuus käyttötarkoitukseensa ja parannusehdotuksia .................................................................................... 46

6. OHJELMISTON INTEGEROINTI OUTOKUMMUN JÄRJESTELMIIN ......................................................... 48

6.1 Yleiskuvaus............................................................................................................................... 48

6.2 Toteutus MVC-arkkitehtuurilla ................................................................................................. 48

6.3 Toteutus ilman MVC-arkkitehtuuria.......................................................................................... 49

6.4 Tietokanta ................................................................................................................................ 49

6.5 Käyttöliittymä........................................................................................................................... 50

6.6 Optimointi- ja estimointimoduuli .............................................................................................. 50

7. YHTEENVETO JA POHDINNAT .......................................................................................................... 52

LIITTEET: 1. E/R-KAAVIO

2. TIETOKANNAN SQL-SKRIPTI

3. TAULUKKO YKSILÖJOUKOISTA JA NIITÄ VASTAAVISTA TAULUISTA

4. DBSTRUCTURE:N UML-KAAVIO

5. ARKKITEHTUURISUUNNITELMA 1 (MVC)

6. ARKKITEHTUURISUUNNITELMA 2 (ILMAN MVC:TÄ)

Page 4: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

4

1. JOHDANTO

Tämä erikoistyö on osa Outokumpu Polarit Oy:lle tehtävää AMRO-projektia

(Adaptiivinen Metallinvalmistuksen Raaka-aineenkäytön Optimointi; Adaptive

Metallurgical Raw material Optimization), jonka tarkoituksena on tuottaa

asiakasyritykselle uusi valokaariuunin panostuksen optimointijärjestelmä.

Uudella järjestelmällä on tarkoitus korjata vanhassa havaittuja puutteita ja

vähentää raaka-ainekuluja vähintään yhdellä promillella. Ohjelmisto jakaantuu

neljään osaan: tietokantaan, tietokannan käyttöliittymään, optimointi- ja

estimointimoduuliin sekä sen käyttöliittymään. Periaatteellisen jaon lisäksi

ohjelmisto on toteutettu niin, että osat toimivat toisistaan erillisinä

kokonaisuuksina. Kaksi ensimmäistä osaa kuuluvat varsinaisesti tämän

erikoistyön piiriin ja kahta viimeistä käsittelee erikseen julkaistu Jussi

Ikäheimon diplomityö (1999). Ikäheimon diplomityöhön viitataan kuitenkin

soveltuvin osin, jotta lukijalle jää selkeä käsitys kokonaisuuden toiminnasta.

AMRO-ohjelmisto valmistetaan kahdessa vaiheessa. Ensimmäisessä vaiheessa

luodaan Outokummun tietojärjestelmistä irrallaan toimiva, nk. offline-versio,

joka kuitenkin suunnitellaan ja ohjelmoidaan siten, että siirtyminen

Outokummun järjestelmiin tapahtuu toisessa vaiheessa mahdollisimman

vaivattomasti. Toinen vaihe käsittää ohjelman integroimisen asiakasyrityksen

tietojärjestelmiin. Tämä erikoistyö on kirjoitettu ensimmäisen vaiheen

päätyttyä, joten tarkastelun kohteena on AMRO:n offline-versio. Erikoistyön

kuudes kappale on omistettu online-version tarkasteluun.

Erikoistyö on jaoteltu seuraavasti. Kappale 2 esittelee projektin taustan ja

ongelmakentän laajemmin. Kappaleessa 3 keskitytään projektin eri vaiheisiin,

ohjelmiston kokonaisarkkitehtuurin esittelyyn ja kuvataan rajapinnat sekä

ohjelman eri osien välisen kommunikaation kulku. Kappaleet 4 ja 5 on varattu

tietokannan ja sen käyttöliittymän esittelyyn ja arviointiin. Kuudennessa

kappaleessa tutustutaan Outokummun tietojärjestelmiin ja siihen, miten offline-

versio saadaan integroitua niihin online-versioksi. Seitsemäs kappale sisältää

lyhyen yhteenvedon dokumentin pääkohdista.

Janne Gustafssonin työpanos käsittää kappaleet 1, 2, 4 ja 7. Tommi Gustafsson

on laatinut kappaleet 3, 5 ja 6.

Page 5: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

5

2. ONGELMAKENTÄN KUVAUS

2.1 AMRO-PROJEKTIN TAUSTA JA ONGELMAN KUVAUS

Romujen käyttö teräksen raaka-aineena on hyvin edullista. Romut muodostavat

vain murto-osan teräksen valmistuskustannuksista, vaikka tyypillisesti lähes

40% teräksen raaka-aineesta on romua. Sen sijaan valtaosa raaka-

ainekustannuksista tulee erilaisista seosaineista. Edulliseen romujen

kierrätykseen liittyy kuitenkin kaksi ongelmaa (Lahdelma et al 1999).

Ensinnäkin romut koostuvat monista, osin havaitsemattomistakin yhdisteistä.

Riippuen valmistettavan teräksen koostumustavoitteista toiset näistä yhdisteistä

voivat olla arvokkaita seosaineita kun taas toiset haitallisia epäpuhtauksia.

Toisekseen romulaatujen sisällä esiintyy koostumusvaihtelua, joten romuista ei

voida tehdä tarkkoja kemiallisia analyysejä. Niinpä on olemassa riski, että

romujen mukana sulaan joutuu suuriakin määriä epätoivottuja aineita, mikä

johtaa pahimmillaan koko sulatuksen hylkäämiseen. Haastena onkin löytää

sellainen panostus, että saadaan mahdollisimman hyvälaatuista terästä

mahdollisimman halvoista raaka-aineista.

AMRO-projekti on VTT:n ja Teknillisen Korkeakoulun yhteistyönä toteuttama

hanke, jonka rahoittajina toimivat TEKES, Imatra Steel, Outokumpu Polarit,

Outokumpu Pori Copper ja Kuusakoski. AMRO:on kuuluu kolme itsenäistä

hanketta, joista yhtä tämä erikoistyö käsittelee. Tämän hankkeen tavoitteena on

kehittää Outokumpu Polaritille ohjelmisto, joka etsii sellaisen romupanostuksen

valokaariuuniin, jolla saadaan laskettua teräksenvalmistusprosessin raaka-aine-

kustannuksia vähintään 0,1 prosenttia. Hanketta tarkastellaan lähemmin

kappaleessa 3.

2.2 OUTOKUMPU POLARIT

Outokumpu on suomalainen metallialan konserni, joka keskittyy

perusmetallien, ruostumattoman teräksen ja kuparin valmistukseen. Vuonna

1976 toimintansa aloittanut, Torniossa toimiva Outokumpu Polaritin

terästehdas valmistaa ruostumatonta terästä ja työllistää noin 1700 henkeä.

Tehtaan teräksen laadun takaa ISO 9002 –sertifioioitu laatujärjestelmä.

Outokumpu Polarit toimii läheisessä yhteistyössä Kemin kromikaivoksen

(Outokumpu Chrome) kanssa, joka toimittaa Tornion tehtaalle kromia

Page 6: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

6

ruostumattoman teräksen raaka-aineeksi.

Outokummulla on 10% osuus Euroopan ruostumattoman teräksen markkinoista

ja 4 prosenttia koko maailman markkinoista. Vuonna 1998 Outokumpu Polariin

myynti laski runsaseen 4,3 miljardiin markkaan, mihin vaikutti hintojen lasku

ja vaikea markkinatilanne. Tavaraa toimittettiin kuitenkin hieman edellisvuotta

enemmän, noin 1,1 miljonaa tonnia (Outokumpu WWW).

2.3 KÄSITTEET

Teräksenvalmistukseen liittyy maallikolle melko vieraita käsitteitä, jotka on

aluksi syytä selventää. Lisäksi tilastomatemaattiset ja optimointiin liittyvät

termit voivat olla näihin alueisiin perehtymättömälle outoja. AMRO:n käyttöön

on vakiintunut seuraava termistö.

Alkuaineella (element) tarkoitetaan kemiallista alkuainetta kuten rautaa,

molybdeenia tai nikkelia. Alkuaineilla on kemiallinen merkki, kuten edellä Fe,

Mo tai Ni. Alkuainepitoisuus on alkuaineen prosenttuaalinen osuus

metalliseoksesta.

Raaka-aineet (raw material) ovat teräksen valmistukseen käytettyjä aineita.

Useat AMRO:n raaka-aineet ovat eri alkuaineita sisältäviä romuja (scrap) tai

ferrokromia (FeCr).

Prosessipaikka (process location) on jokin teräksenvalmistusprosessin vaihe.

Prosessin vaihe voi olla esimerkiksi uuni, johon panostetaan raaka-aineita tai

edellisestä uunista tullutta sulaa. Outokummun teräksenvalmistusprosessissa on

neljä uunia: valokaariuuni, AOD-konvertteri, kromikonvertteri ja senkkauuni.

Sula (melt) on metalliseos, joka saadaan sulatuksen jälkeen uunista. Sula ei ole

tavallisesti uuniin panostettujen aineiden summa, vaan uunin saannot

määräävät osuuden, joka panostetuista aineista saadaan sulatuksen jälkeen ulos

sulaan.

Saanto (yield) on se prosenttuaalinen osuus panostetusta aineesta, joka saadaan

sulatuksen jälkeen ulos uunista. Saantoja on kahta lajia: alkuainesaantoja

(element yield) ja raaka-ainesaantoja (raw material yield). Alkuainesaanto

ilmaisee prosenttiosuuden tietystä sulaan saadusta alkuaineesta, kun taas raaka-

Page 7: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

7

ainesaanto kertoo, kuinka suuri osuus raaka-aineen massasta välittyy

valmistettavaan sulaan. Ne osat alku- ja raaka-aineista, joita ei saada sulaan,

tavallisesti joko kuonaantuvat uunin seinämiin tai palavat sulatuksen aikana.

Saannot riippuvat uunista, sillä uunin ominaisuudet, kuten lämpötila,

vaikuttavat niissä tapahtuviin kemiallisiin reaktioihin. Raaka-ainesaantoja

voidaan käyttää laskemaan uunista saatavan sulan paino, kun taas

alkuainesaantoilla arvioidaan eri alkuaineiden pitoisuuksia kyseisessä sulassa.

Sulatus (melting, heat) tarkoittaa laajassa mielessä koko teräksen-

valmistusprosessin läpikäymistä raaka-aineiden panostuksesta valmiin teräksen

saapumiseen varastoon. Suppeammassa mielessä se viittaa yhden uunin

panostukseen ja kuumentamiseen.

Tuote (product) on teräslaatu, jonka koostumuksen määräävät sille erikseen

asetetut koostumusrajat (element limits). Koostumusrajat asettavat ylä- ja

alarajan teräslaadun alkuainepitoisuuksille ja määräävät näin tuotteen

kemialliset ominaisuudet.

Estimoinnilla (estimation) tarkoitetaan jonkin asian, tässä tapauksessa romun

alkuainepitoisuuksien, likimääräistä arviointia jollain matemaattisella

menetelmällä. Estimointi suoritetaan suuren havaintoaineiston perusteella, joka

AMRO:ssa saadaan tehdyistä sulatuksista vertailemalla valokaariuuniin

panostettuja romuja ja uunista ulos saadun sulan alkuainepitoisuuksia.

Matemaattisena menetelmänä käytetään rekursiivista pienimmän neliösumman

menetelmää (RPNS). Estimaatti (estimate) on puolestaan estimoinnin tulos; nyt

siis romun arvioitu alkuainepitoisuus.

Optimointi (optimisation) tarkoittaa joidenkin asioiden asettamista niin, että

haluttu kriteeri saa parhaan mahdollisen arvonsa. AMRO:ssa etsitään sellaista

valokaariuunin panostusta, jolla saadaan mahdollisimman hyvälaatuista terästä

mahdollisimman halvalla (kaksi kriteeriä). Optimointiin on käytössä useita

tekniikoita, ja AMRO:ssa sovellettu menetelmä on kuvattu Jussi Ikäheimon

diplomityössä (1999). Optimointi liittyy läheisesti alkuainepitoisuuksien

estimointiin, sillä optimointialgoritmien tulee tietää eri raaka-aineiden

alkuainepitoisuuksien tilastolliset jakaumat, jotka saadaan estimoinnin

tuloksena.

Page 8: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

8

Tilastollinen jakauma (statistical distribution) määrää satunnaismuuttujan

saamien arvojen todennäköisyydet. Jakaumat voivat olla hyvinkin eri

muotoisia, mutta yleisin jakaumaperhe on normaalijakauma (normal

distribution) eli Gaussin jakauma, josta on esitetty esimerkki kuvassa 1.

Kaikille jakaumille voidaan määritellä kaksi tilastollista tunnuslukua:

odotusarvo (expectation value) ja varianssi (variance). Nyrkkisääntönä voidaan

sanoa, että odotusarvo kertoo satunnaismuuttujan keskimäärin saaman arvon ja

varianssi kuvaa satunnaismuuttujan saamien arvojen vaihteluväliä. Usein

varianssia havainnollisempi vaihteluvälin mitta on keskihajonta (standard

deviation), joka on varianssin neliöjuuri. Kaikissa normaalijakaumissa 95,3 %

satunnaismuuttujan saamista arvoista jää odotusarvosta kahden keskihajonnan

säteelle.

Jakauman leveys, keskihajonta

Jakauman keskikohta,odotusarvo

Kuva 1. Normaalijakauma odotusarvolla 2 ja keskihajonnalla 1.

Page 9: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

9

2.4 TERÄKSENVALMISTUSPROSESSI

2.4.1 JOHDATUS TERÄKSENVALMISTUSPROSESSIIN

Rauta (Fe), kromi (Cr), hiili (C) ja nikkeli (Ni) ovat ruostumattoman teräksen

tärkeimmät aineosat, ja koko teräksenvalmistusprosessi tähtää näiden

alkuaineiden pitoisuuksien säätämiseen valmistettavassa sulassa. Teräkseksi

(steel) kutsutaan rautalejeerinkiä, joka sisältää korkeintaan 2 % hiiltä. Teräksen

raaka-aineet voivat sisältää hiiltä huomattavasti yli tämän määrän, ja niinpä

hiiltä joudutaan polttamaan pois puhaltamalla sulaan happea. Samalla sulasta

poistuu myös lähes kaikki pii (Si). Standardisoidut ruostumattomat teräkset

(stainless steel) sisältävät vähintään 10,5 % kromia ja alle 0,3 % hiiltä. Kromi

muodostaa teräksen pintaan kromioksidikalvon, joka suojaa terästä

hapettumiselta (ruostumiselta). Joihinkin teräslajeihin seostetaan lisäksi

molybdeenia (Mo), nikkeliä (Ni) ja typpeä (N), millä pyritään parantamaan

teräksen ruosteenkestävyyttä ja muita ominaisuuksia kuten muovattavuutta.

Seosaineet muuttavat teräksen kiderakennetta, joten teräksessä olevien ja sieltä

puuttuvien seosaineiden vaikutus teräksen ominaisuuksiin on erittäin suuri

(Outokumpu WWW). Seuraavaksi kuvattu valmistusprosessi pyrkiikin

tuottamaan rautalejeerinkiä, joka täyttää ruostumattomalle teräkselle asetetut

tiukat laatuvaatimukset. Asiakasyrityksen teräksenvalmistusprosessia kuvaava

vuokaavio on esitetty kuvassa 2.

Page 10: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

10

2.4.2 SULATUS KROMIKONVERTTERISSA JA VALOKAARIUUNISSA

Valmistusprosessi alkaa ferrokromitehtaalta ja romuvarastosta. Ferrokromi-

tehdas toimittaa ferrokromia kromikonvertterille, jossa ferrokromista poltetaan

pois pii ja suuri osa hiilestä puhaltamalla sulaan happea. Uuniin lisätään

samalla kalkkia kuonanmuodostukseen. Hiilen ja piin poltto muodostaa

runsaasti lämpöä, mikä nostaa uunin lämpötilaa voimakkaasti, ja uunia

joudutaan jäähdyttämään kuivatetulla romulla. Tällöin lämpöenergia saadaan

hyödynnettyä romun sulatukseen. Jäähdytysromua lisätään noin 550 kg jokaista

ferrokromitonnia kohden, joten ferrokromitehtaalta tulevan sulan massa kasvaa

kromikonvertterissa noin 50 %. Samalla myös sulan kromipitoisuus laskee 53

%:sta 35 %:iin (Haapalinna ja Tolvanen 1998).

Kromikonvertterin lisäksi teräksen raaka-ainetta saadaan valokaariuunissa

sulatettavista teräsromuista. Romujen koostumusta ei kuitenkaan tarkaan

tunneta, vaan romut on varastolla karkeasti jaoteltu eri luokkiin. Pääasiallisen

jakoperusteen muodostaa romujen sisältämän teräksen laatu, erityisesti sen

ruosteen- ja haponkestävyys. Romut voidaan jaotella tästä edelleen kokonsa ja

muotonsa perusteella. Teräsromujen alkuainepitoisuuksista on tavallisesti

olemassa romujen toimittajan ilmoitus, mutta toisinaan romut saattavat sisältää

joitakin alkuaineita arviosta hyvinkin poikkeavan määrän. Romuista tehdään

analyysejä, mutta romuluokat ovat sen verran sisäisesti heterogeenisiä, että

FeCr-tehdas Romuvarasto

Kromikonvertteri Valokaariuuni

SulaAOD-panos

AOD-konvertteri

Senkkauuni

Jatkuvavalu

Katkaisu

Hionta

Jäähdytys

Kuva 2. Outokumpu Polaritin teräksenvalmistusprosessi.

Page 11: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

11

yhtä, tarkkaa kemiallista analyysia romulajista ei voida tehdä.

Romut lastataan romuvarastolla koreihin panoslaskennan mukaisesti ja

kuljetetaan vaunulla uunihalliin. Täällä romut panostetaan valokaariuuniin.

Romujen sekaan lisätään arvioidun piimäärän suhteessa kalkkia ja happea.

Sulatus tapahtuu sitten sähkövoiman muodostaman valokaaren avulla.

Valokaariuunista saatavan sulan hiilipitoisuus on tyypillisesti 0,5 % - 1 %.

2.4.3 SIIRTOSENKKA, AOD-KONVERTTERI JA PROSESSIN MUUT OSAT

Romujen sulatuksen jälkeen kromikonvertterin ja valokaariuunin sulat

sekoitetaan sopivassa suhteessa siirtosenkkaan, jolla saatu sula kuljetetaan

sitten AOD-konvertteriin. AOD-menetelmällä päästään ruostumattomalle

teräkselle riittävän alhaisiin hiilipitoisuuksiin ilman, että kromipitoisuus laskee

merkittävästi. AOD-konvertterissä seostetaan vielä liian vähäisiksi jääneitä

alkuaineita sekä pyritään poistamaan sulasta epäpuhtauksia. AOD-

konvertterista sula viedään edelleen senkkauuniin, sieltä jatkuvaan valuun sekä

katkaisuun ja hiontaan. Terästä voidaan vielä jatkokäsitellä, esimerkiksi

muovittaa se.

Valmistusprosessin aikana sulan alkuainepitoisuuksista tehdään useita

mittauksia. Analyysejä tehdään ainakin kromikonvertterin, siirtosenkan ja

AOD-konvertterin sulista. Näitä tuloksia voidaan hyödyntää saman sulatuksen

aikana arvioitaessa seostamis- ja laimentamistarvetta sekä myöhemmin

estimoitaessa valokaariuuniin panostettujen romujen alkuainepitoisuuksia.

2.5 TERÄKSEN VALMISTUKSEEN LIITTYVÄT TEKIJÄT

2.5.1 KOOSTUMUSRAJAT JA SAKKOFUNKTIOT

Kun tiettyä teräslaatua ryhdytään valmistamaan, tarvitaan tuotettavan teräksen

spesifikaatiot, koostumusrajat. Ne asettavat ylä- ja alarajan teräslajin

sisältämille alkuainepitoisuuksille ja näin määräävät myös teräksen kemialliset

ominaisuudet. Koostumusrajat määrittelevät siis mistä metalliseoksesta on

kyse; onko se ruostumatonta terästä vai jotain muuta lejeerinkiä. Onkin aivan

ilmeistä, että teräslajin koostumusrajoilla on keskeinen rooli teräksenvalmistus-

prosessissa. Ne muodostavat koko prosessille viitekehyksen, jota seurataan

jatkuvasti sulatuksen alusta loppuun. Koostumusrajat ovat periaatteessa

kullekin teräslaadulle vakiot, mutta toisinaan teräksen tilannut asiakas haluaa

Page 12: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

12

erikseen määrittää ne. Tällöin puhutaan asiakaskohtaisista koostumusrajoista.

Koostumusrajoja on kahta lajia: valmistusrajoja ja laadutusrajoja. Kummatkin

rajat muodostavat intervallin, jonka sisään lopullisen tuotteen

alkuainepitoisuuksien halutaan jäävän. Laadutusrajat ovat ne pitoisuudet,

joiden välissä alkuaineiden määrät luvataan asiakkaalle olevan. Laadutusrajat

ovat ehdottomat ja niiden ylittäminen tai alittaminen johtaa sulan

hylkäämiseen. Valmistusrajat ovat puolestaan laadutusrajoja tiukemmat, ja niitä

käytetään terästä valmistettaessa. Näin pyritään varmistamaan, että

satunnaisvaihtelusta huolimatta alkuainepitoisuudet todella jäävät

laadutusrajojen sisään.

Laadutus- ja valmistusrajat pätevät vain valmiille tuotteelle, mutta niistä

saadaan yksinkertaisilla +/- -prosenttiyksikkömuunnoksilla prosessipaikka-

kohtaiset koostumusrajat, joita sovelletaan määritettäessä sulien sallittuja

alkuainepitoisuuksia kyseisessä prosessipaikassa. Prosenttiyksikkömuunnokset

ovat ominaisia kullekin teräslaadulle sekä prosessipaikalle.

Koostumusrajoja mallinnetaan optimoinnissa sakkofunktioilla. Sakkofunktiot

kertovat, kuinka paljon alkuainepitoisuuksien poikkeamisesta johtuva

Tähtäyspiste Yläraja Ehdotonyläraja

AlarajaEhdotonalaraja

Sakko

Alkuaineenpitoisuus

Kuva 3. Sakkofunktio

Page 13: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

13

lisäkäsittely nostaa teräksen valmistuskustannuksia. Esimerkki sakkofunktion

kuvaajasta on esitetty kuvassa 3.

2.5.2 RAAKA-AINEIDEN KÄYTTÖRAJOITUKSET JA SAATAVUUS

Teräslaaduille voidaan määritellä maksimi- ja minimikäyttörajoituksia, joita

sovelletaan optimoinnissa. Näin voidaan rajata raaka-aineita, joita

optimointialgoritmin käyttää kullekin teräslajille. Esimerkiksi valmistettaessa

erityisen puhdasta terästä voidaan vaihtelevan laatuisiksi todetut romulajit

jättää pois panostettavien raaka-aineiden listalta. Toisaalta tietyille, runsaasti

saatavissa oleville raaka-aineille voidaan määrätä vähimmäiskäyttömäärät.

Raaka-aineita on käytössä täsmälleen varastoon kirjattu määrä sillä

poikkeuksella, että tehtaalta tulevaa ferrokromia on saatavissa rajattomasti.

Toisinaan kuitenkin ferrokromitehtaalla on huoltoseisakkeja, jolloin

ferrokromia ei ole saatavissa. Tällöin sulan muodostukseen käytetään

pelkästään valokaariuunissa sulatettavia romuja, joihin kromi seostetaan

suoraan siilosta ferrokromierotteena. Raaka-aineille voidaan vielä määritellä

saapumisnopeudet (tonnia / päivä), jotka kuvaavat keskimääräistä nopeutta,

jolla raaka-ainetta saadaan varastoon. Saapumisnopeuksia voidaan hyödyntää

optimoitaessa pitkällä aikavälillä monta peräkkäistä sulatusta, jolloin ei voida

olettaa romujen varastomäärien pysyvän ajan suhteen vakiona. Monen

peräkkäisen sulatuksen yhtäaikaiseen optimointiin tutustutaan paremmin Jussi

Ikäheimon diplomityössä (1999).

2.6 JOHDATUS ESTIMOINTIIN JA OPTIMOINTIIN

Tämä kappale tekee katsauksen AMRO-projektissa käytettyihin optimointi- ja

estimointimenetelmiin. Niiden tarkempi kuvaus löytyy Jussi Ikäheimon

diplomityöstä (1999). AMRO-projektissa suunniteltava ohjelmisto pyrkii

löytämään mahdollisimman halvan valokaariuuniin panostettavan

romuyhdistelmän siten, että lopullisen sulan alkuainepitoisuudet jäävät

haluttuihin rajoihin riittävällä varmuudella. Tehtävä ratkeaisi helposti

lineaarisella ohjelmoinnilla (linear programming, LP), jos romujen

alkuainepitoisuudet tunnettaisiin tarkasti, mutta nyt näin ei kuitenkaan ole.

Varaston romujen alkuainepitoisuuksista on olemassa niiden toimittajan antama

ilmoitus, mutta periaatteessa romujen alkuainepitoisuudet vaihtelevat ennalta

tuntemattoman satunnaisjakauman mukaisesti. Optimointialgoritmilla onkin

Page 14: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

14

kaksi vastakkaista tavoitetta: toisaalta löytää mahdollisimman halpa panostus

halutulle teräslaadulle, mutta toisaalta minimoida alkuainepitoisuuksien

varianssia, jotta halutun laatuista terästä saataisiin mahdollisimman varmasti.

AMRO:n optimoinnissa ja estimoinnissa tarkastellaan kolmea eripituista

aikajaksoa, jolle kullekin on suunniteltu omanlaisensa optimointimalli

(Lahdelma et al 1999). Ensimmäisen mallin muodostaa yhden sulatuksen

optimointi, jossa keskitytään prosessin yksityiskohtiin ja pyritään saamaan

mahdollisimman luotettavia tuloksia estimoinnissa. Toisekseen AMRO:ssa

käsitellään monen sulatuksen mallia, jossa saatavilla olevat raaka-aineet

pyritään jakamaan optimaalisesti monen sulatuksen kesken, mutta prosessin

yksityiskohdat joudutaan nyt jättämään vähemmälle huomiolle. Kolmannessa

optimointimallissa pyritään puolestaan optimoimaan romupanostuksia

sulatusten sijasta tuotteille. Tällöin voidaan hyödyntää dataa kaikista aiemmin

tehdyistä sulatuksista ja analyyseistä eikä varastorajoituksia ole.

AMRO:n optimointiprosessin kulku (Ikäheimo 1999) on esitetty kuvassa 4.

Hieman poikkeava kuvaus löytyy toisesta lähdeartikkelista (Lahdelma et al

1999), mutta käytännön erot jäävät pieniksi. Ensimmäisen vaiheen muodostaa

romujen alkuainepitoisuuksien jakaumien estimointi tai estimaattien tarkennus.

Jotta optimointialgoritmia voidaan soveltaa, on tunnettava ensin käytettävien

Panostuksenoptimointi

Prosessin malli(Ennustus)

Prosessin malli(Tarkennus)

Sulanominaisuuksien

ennustus

Todelliset sulanominaisuudet

Romujenpanostus

Mallinparametrit

EstimointiOptimointi

Kuva 4. Optimointi- ja estimointiprosessin kulku (mukailtu lähteestä Ikäheimo, 1999).

Page 15: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

15

romujen alkuainepitoisuuksien tilastolliset jakaumat. Nämä eivät ole suoraan

tiedossa, vaan ne joudutaan estimoimaan aiempien sulatusten ja romuista

otettujen näytteiden perusteella. Lisäksi kun saadaan uutta tietoa, esimerkiksi

uuden sulatuksen analyyseja, tulee aiempia estimaatteja näiden valossa

tarkistaa. Estimointiin liittyy monia ongelmakohtia; esimerkiksi panostettujen

romujen alkuaineet eivät sulatuksen yhteydessä siirry suoraan uunista saatavaan

sulaan, vaan osa romujen materiaalista kuonaantuu uunin seinämiin. Lisäksi

ulos tulevan sulan alkuainepitoisuuksiin vaikuttavat sulatuksen aikana eri

yhdisteiden välillä tapahtuvat kemialliset reaktiot. Nämä riippuvat osin romujen

sisältämistä yhdisteistä, ja koska romujen koostumus tunnetaan

parhaimmillaankin vain kohtalaisesti, esiintyy uunin alkuainesaannossa

satunnaisvaihtelua. Kuten romujen alkuainepitoisuudetkin, saannotkin

joudutaan estimoimaan aiemmin tehdyistä sulatuksista. Ongelmaksi muodostuu

se, että yksittäistä sulatusta tarkasteltaessa on mahdotonta tietää, johtuuko

alkuainepitoisuuden poikkeama uunin saannon vai romujen

alkuainepitoisuuksien satunnaisvaihtelusta. Tämän ratkaisuun käytetään ns.

maximum likelihood –menetelmää, eli monen sulatuksen perusteella valitaan

alkuainepitoisuuksille ja saannoille ne jakaumat, joilla sulista havaitut

alkuainepitoisuudet saadaan todennäköisimmin. Jos satunnaismuuttujat

approksimoidaan normaalijakautuneiksi, voidaan soveltaa pienimmän

neliösumman menetelmää (PNS). Joskus, tavallisesti sovitettaessa suora

havaintoaineistoon, PNS-menetelmää kutsutaan lineaariseksi regressioksi.

PNS:n sellaista versiota, joka mahdollistaa estimaattien päivittämisen uuden

tiedon ilmaantuessa, kutsutaan rekursiiviseksi pienimmän neliösumman

menetelmäksi (RPNS). AMRO-projektissa käytetäänkin RPNS-menetelmää.

Estimoinnissa tulee lisäksi pohtia, kuinka aiempien sulatusten ja raaka-aineiden

näytteiden data yhdistään perustellusti. Ei nimittäin ole selvää, miten näytteitä

ja sulatuksien tuloksia painotetaan keskenään määrättäessä optimoinnissa

käytettävien alkuainepitoisuusestimaattien jakaumia.

Prosessin toisessa vaiheessa valokaariuunin panostus optimoidaan saatujen

estimaattien avulla. Sulatuksen jälkeen saadaan vielä sulien analyysit, joiden

perusteella voidaan päätellä, kuinka hyvin romujen alkuainepitoisuuksien

estimointi oli onnistunut. Uusien analyysien tulokset syötetään

estimointimoduulille, jolloin optimointi- ja estimointiprosessi alkaa alusta

estimaattien tarkennuksella. Optimointi ja estimointi onkin rekursiivinen,

itseään korjaava prosessi.

Page 16: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

16

3. PROJEKTIN VAIHEET JA OHJELMISTON ARKKITEHTUURI

3.1 OUTOKUMPU POLARIT OY:N AMRO-PROJEKTIN HISTORIAA

Alun perin kaksivuotiseksi suunniteltu AMRO-projekti aloitettiin keväällä

1997. Ensimmäistä, Kuusakoski Oy:lle tehtyä AMRO-projektia, seurasi

keväällä 1998 käynnistetty hanke, jonka tarkoituksena oli optimoida

Outokumpu Polarit Oy:n Tornion tehtaiden valokaariuunin panostus.

Loppukeväästä syntyi aiheesta yksi harjoitustyö (Haapalinna ja Tolvanen 1998)

sekä Jukka Rannan seminaariraportti. Syksyllä 1998 aloitettiin hankkeeseen

tarvittavan ohjelmiston suunnittelu, ja alkukeväästä 1999 siihen liittyvästä

tietokannasta tehtiin tiedonhallintajärjestelmät-kurssin harjoitustyö

(Gustafsson, Gustafsson ja Saarinen 1999). Koska projekti venyi, sille

myönnettiin lisäaikaa vuoden 1999 loppuun. Kevään 1999 alusta projektiin tuli

mukaan Jussi Ikäheimo, joka toteutti diplomityönään valokaariuunin

optimointi- ja estimointialgoritmit.

3.2 PROJEKTIN VAIHEISTUS

Outokumpu Polarit Oy:lle tehtävä ohjelmisto päätettiin toteuttaa kahdessa

vaiheessa. Ensiksi toteutettiin ns. offline-versio, joka olisi yhdessä PC-koneessa

toimiva optimointiohjelmisto. Tästä siirryttäisiin projektin toisessa vaiheessa

online-versioon, joka olisi Outokummun tietojärjestelmiin integroituva

hajautettu ohjelmisto. Tällaiseen vaiheistukseen päädyttiin, koska optimointi- ja

estimointialgoritmien kehittämistä ei haluttu vaikeuttaa asiakasyrityksen tieto-

järjestelmistä aiheutuvilla ongelmilla. Nämä on suunnitelman mukaan tarkoitus

ratkaista vasta siirryttäessä online-versioon. Offline-versio on kuitenkin

toteutettu siten, että siirtyminen Outokummun tietojärjestelmiin tapahtuu

mahdollisimman helposti.

3.3 OUTOKUMPU POLARIT OY:N TIETOJÄRJESTELMÄT

Outokumpu Polarit Oy:llä on kolme AMRO-projektille keskeistä, UNIX-

ympäristössä toimivaa tietojärjestelmää: Informix-tietokanta, sulaton

tietojärjestelmä SUTI sekä keskitetty ohjelmistohälytysten, käyttöhäiriöiden ja

sovellusnotifikaatioiden hallintajärjestelmä ROPI-II. Lisäksi Outokumpu

Polarit Oy:llä on Windows NT-lähiverkko, joka on kytketty UNIX-

järjestelmiin.

Page 17: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

17

SUTIin kuuluu osana C-kieliset kirjastot, joilla sovellukset voivat ottaa

yhteyden Informix-tietokantaan. Näitä kirjastoja on tarkoitus käyttää online-

version toteutuksessa. ROPI-II:een kuuluu notifikaatiopalvelu, joka hoitaa

tietoliikennettä tietokannan ja sovellusten välillä. Lisää tietoa Outokumpu

Polarit Oy:n tietojärjestelmistä saa yhtiön ATK-osastolta.

3.4 ARKKITEHTUURI

3.4.1 PERIAATTEET

Online-version arkkitehtuuri on hajautettu, eli ohjelmiston eri osat ovat

itsenäisiä ohjelmia. Tällöin yksittäisiä osia voidaan muuttaa koskematta

muuhun osaa ohjelmistoa (olettaen, että rajapintoja ei muuteta). Teoriassa myös

muut ohjelmistot voivat hyödyntää hajautettuja laskentarutiineja, mutta

käytännössä uudelleenkäyttö on kuitenkin vaikeaa, koska ohjelmiston laskenta-

rutiinit ovat hyvin ongelmaspesifisiä. Ohjelmistojen hajauttaminen on

Outokummun virallinen politiikka.

Offline-version arkkitehtuuri on tarkoitus tehdä mahdollisimman paljon online-

version kaltaiseksi, jotta siirtyminen projektin toiseen vaiheeseen tapahtuu

kitkattomasti. Online-version arkkitehtuuria ei kuitenkaan voida toteuttaa

kokonaisuudessaan offline-versiossa, sillä online-versio on monen käyttäjän

järjestelmä, kun taas offline-versiossa on vain yksi käyttäjä. Monen käyttäjän

järjestelmän kehittäminen vaatii merkittävästi enemmän työtä (mm. lukitukset)

sekä testausta usean käyttäjän kanssa samaan aikaan, joten sellaisen

ohjelmointiin ei offline-vaiheessa katsottu olevan perusteita.

3.4.2 YLEISKUVAUS

Ohjelmisto jakaantuu neljään erilliseen osaan: tietokantaan, tietokannan

käyttöliittymään sekä optimointi- ja estimointimoduuliin ja sen

käyttöliittymään. Jaon taustalla on ohjelmiston tuleva hajautus Outokummun

järjestelmiin. Online-versiossa optimointi- ja estimointimoduuli toimii

erillisenä laskentamoduulina UNIX-ympäristössä. Tietokantana tulee

toimimaan Outokummun Informix-tietokanta, joka myös toimii UNIXissa.

Molemmat käyttöliittymät toimivat Windows NT-koneissa, ja keskustelevat

ohjelmiston muiden osien kanssa Outokummun notifikaatiopalvelun kautta.

Page 18: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

18

Tietokanta ja sen käyttöliittymä on suunniteltu Model-View-Controller-

arkkitehtuurin (MVC) mukaisesti (ks. kuva 5). MVC:ssä on yksi tietokanta,

mutta käyttöliittymiä voi olla useampia. Käyttöliittymissä voi olla avoinna

useita näkymiä (ks. kappale 5) tietokannan tauluihin, jotka päivittyvät vain

tietokannan käskystä. Kun jostain käyttöliittymästä muutetaan jotain

tietokannan taulua, lähettää käyttöliittymä käskyn tietokannalle muuttaa

itseään. Käyttöliittymä toimii tällöin komentojen lähettäjänä (controller).

Näihin komentoihin tietokanta vastaa (mikäli toiminto onnistui) lähettämällä

kaikille käyttöliittymille käskyn päivittää muutetettuun tauluun auki olevia

näkymiä. Näin varmistetaan, että käyttöliittymien näkyvät päivittyvät aina, kun

tietokantaa muutetaan. MVC-arkkitehtuurin päädyttiin, koska se tuntui

luonnolliselta ratkaisulta toteuttaa monen käyttäjän tietokanta. Offline-versiossa

MVC-arkkitehtuuri on kuitenkin toteutettu vain osin, koska usean käyttäjän

ongelmia ei esiinny eikä ohjelmistoa olisi voitu testata niiden osalta.

Offline-version eri osien väliset suhteet näkyvät kuvassa 6. Online-versiossa

tämä perusarkkitehtuuri pysyy lähes muuttumattomana. Kappaleessa 6

kuvataan, mitä muutoksia arkkitehtuuriin joudutaan tekemään, kun siirrytään

online-versioon.

Ohjelmisto rakentuu laskentarutiinit sisältävän optimointi- ja estimointi-

moduulin ympärille. Tietokantaan tallennetaan optimointin ja estimoinnin

tarvitsemat tiedot, kuten sulatukset, tuotteet ja raaka-aineet. Tietokannan

käyttöliittymällä voidaan lukea ja muokata tietokannan sisältämiä tietoja, ja se

on tarkoitettu lähinnä tietokannan rakenteeseen perehtyneiden henkilöiden

Näkymä(View)

Komentojenlähettäjät

(Controller)

Tietokanta(Model)

Kuva 5. Model-View-Controller-arkkitehtuuri.

Page 19: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

19

käyttöön. Optimointi- ja estimointimoduulin käyttöliittymällä nimensä

mukaisesti käytetään optimointi- ja estimointimoduulia, eli sitä käytetään

sulatuksien panostamisen optimoimiseen. Sen kautta tietokannan tietoja, kuten

sulatuksia, ei voi muuttaa.

Koko ohjelmisto, tietokantaa lukuun ottamatta, on ohjelmoitu Borland C++

Builder 3:lla, joka valittiin yhdessä Outokumpu Polarit Oy:n kanssa

käytettäväksi tämän projektin toteuttamiseen. Tähän ratkaisuun päädyttiin,

koska Borland C++ Builder 3 on Outokummun virallinen, hyväksi havaittu

Windows NT –sovelluksien kehitysympäristö.

3.4.3 TIETOKANTA

Tietokanta tarjoaa alustan optimointi- ja estimointialgoritmien tarvitsemalle

tiedolle. AMRO-projektin offline-versioon suunniteltiin SQL2-kielellä oma

tietokanta, joka lopulta toteutettiin Paradox 7-tietokannalla. SQL-

määrittelyissä kiinnitettiin erityistä huomiota tietokannan käyttöalueen

laajennettavuuteen, redundanssin välttämiseen ja joustavuuteen. Paradox-

toteutus ei kuitenkaan tukenut suunniteltuja ominaisuuksia kaikilta osin, mutta

pääasiassa toteutuksesta tuli ennakoidunlainen. Online-versiossa ei offline-

tietokantaa käytetä lainkaan, vaan ohjelmiston muut osat integroidaan

käyttämään Outokummun omia tietojärjestelmiä, joissa on käytössä Informix-

tietokanta ja oma ROPI-II-notifikaatiopalvelu. Kappale 4 käsittelee offline-

tietokantaa ja kappaleessa 6 keskitytään analysoimaan online-integroinnin

Tietokanta(lokaali)

Tietokantarajapinta

Tietokannankäyttöliittymä

Optimointi- jaestimointimoduuli

Opt./est.-moduulinkäyttöliittymä

Kuva 6. Offline-version arkkitehtuuri.

Page 20: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

20

tuomia haasteita.

3.4.4 TIETOKANNAN KÄYTTÖLIITTYMÄ

Tietokannan käyttöliittymän suunnittelussa kiinnitettiin erityistä huomiota

käyttäjäystävällisyyteen ja monipuolisuuteen. Käyttöliittymä toimii yhdessä

pääikkunassa, jonka sisälle avataan omiin ali-ikkunoihinsa näkymiä (view)

tietokannan eri tauluihin. Näkymät esittävät sen osan tietokannan taulun

sisällöstä, joka täyttää näkymän hakuehdon (filter). Näkymien kautta

tietokannan lukeminen ja päivittäminen käy helposti. Tällaista pää- ja ali-

ikkunaratkaisua kutsutaan Multi-Document Interface- eli MDI-ratkaisuksi.

Tietokannan käyttöliittymä on kuvattu tarkemmin kappaleessa 5.

3.4.5 OPTIMOINTI- JA ESTIMOINTIMODUULI

Optimointi- ja estimointimoduuli suorittaa tarvittavat laskutoimitukset

valokaariuunin panostuksen optimoimiseksi, ja se muodostaa AMRO:n ytimen.

Moduuliin kuuluu laskentaosan lisäksi käyttöliittymä algoritmien käsittelyyn ja

tulosten esittämiseen. Tietokannan ja laskentaosan välisessä keskustussa

käytetään koko projektin yhteistä tietokantarajapintaa, millä saadaan

vähennettyä osien yhteiskoodimäärää merkittävästi. Optimointi- ja

estimointimoduuli kuuluu Jussi Ikäheimon diplomityön piiriin, eikä sitä

tarkastella tässä lähemmin.

3.4.6 HUOMIOITA

Jos moduuleista on käytössä usempia versioita, saattaa olla, että kaikki eri

versiot eivät toimi keskenään. Kehitystyössä täytyy siis varmistua siitä, että

versiot ovat yhteensopivia. Moduulien testaaminen on työlästä, jos joudutaan

käymään läpi kaikki käytössä olevat versiokombinaatiot (integrointitestaus,

katso Haikala ja Märijärvi 1998). Esimerkiksi, jos neljästä eri moduulista on

kustakin käytössä kolme eri versiota, joudutaan testaamaan 43=64 eri

versiokombinaatiota. Jos ohjelmiston eri osat ovat käytössä vain yhdessä

paikassa, ei tällaisia ongelmia esiinny. Ne voidaan välttää myös päivittämällä

kaikki osat kerralla johonkin testattuun kokoonpanoon.

Page 21: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

21

3.5 PROJEKTIN ANALYYSI

3.5.1 TAVOITTEEN SAAVUTTAMINEN

Projektin tavoitteena on vähentää teräksen valmistuksen raaka-ainekuluja

0.1%:lla. Käytännössä näin pienen muutoksen havaitseminen on kuitenkin

lähes mahdotonta, sillä raaka-ainekuluihin liittyy panostuksesta riippumatonta

epävarmuutta kuten inhimillisiä tekijöitä. Näin ollen joudutaan käyttämään

suhteettoman suuria otoksia, jotta pieni liukuminen raaka-ainekustannusten

odotusarvossa voitaisiin havaita. Raaka-ainekustannusten todellisen säästön

arvioimiseksi täytyykin käyttää tilastollisia menetelmiä, mutta pienellä

otoskoolla (< 100 sulatusta) nämäkin tuottavat liian epätarkan tuloksen.

Teoriassa optimoinnin teho voidaan kuitenkin selvittää esimerkiksi Monte

Carlo –simuloinnilla, kun verrataan aikaisempia sulatuksia ja optimoinnin

antamia panostusestimaatteja (Lahdelma et al 1999).

3.5.2 RISKIT

Projekti on kestänyt jo vuosia, ja henkilöstön vaihtuuvuus on ollut suurta.

Syynä tähän on ollut se, että suuri osa projektista on toteutettu Teknillisen

Korkeakoulun oppilaiden harjoitus-, erikois- ja diplomitöinä. Kun työ on

valmistunut, oppilaat ovat yleensä lähteneet projektista, jonka jälkeen on

jouduttu rekrytoimaan uusia työntekijöitä, jotka ovat joutuneet tutustumaan

projektiin alusta alkaen. Vaihtuvuuden takia pätevästä työvoimasta saattaa tulla

pulaa.

Toisen vaiheen integrointityö vaatii täysipäiväistä työskentelyä Outokummun

Tornion tehtailla. Tähän työhön saattaa olla vaikea hankkia opiskelijoita, joiden

tarvitsee olla lukukausien aikana opiskelupaikkakunnallaan. Näin ollen toisen

vaiheen integrointityö joudutaan mitä ilmeisimmin suorittamaan jollain muulla

työvoimalla. Uuden osapuolen tuominen mukaan prosessiin ei välttämättä

onnistu, koska projekti vaatii monen alan asiantuntemusta. Tästä syystä

integrointivaiheen aloittaminen ja läpivieminen vaatii tarkkaa suunnitelua

projektin johtoryhmältä. Yhteistyö projektin ensimmäisen vaiheen toteuttajien

kanssa on todennäköisesti välttämätöntä.

Page 22: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

22

4. TIETOKANTA

4.1 JOHDATUS TIETOKANTOIHIN

Tietokanta (database) on kokoelma tietoa, jota käsittelee tietokannan-

hallintajärjestelmä (database management system, DBMS). Ensimmäiset

tietokannat luotiin pankkien ja lentoyhtiöiden tarpeisiin, mutta ne levisivät

nopeasti myös teollisuuslaitosten käyttöön. Koska tietokannat veivät

tyypillisesti useita gigatavuja levytilaa, vielä ennen 1990-lukua tietokannat

sijoitettiin lähes poikkeuksetta suuriin keskustietokoneisiin (remote database).

Myös Outokumpu Polaritilla tietokannat sijaitsevat keskustietokoneiden

kovalevyillä. Nykyään kuitenkin tietotekniikan ja kovalevyjen koon nopean

kehityksen ansiosta PC-koneissa voidaan käyttää paikallisia tietokantoja (local

database), jollaisen yhteyteen myös AMRO:n offline-versio on ohjelmoitu.

Tietokantaan mallinnettavia ongelmakentän käsitteitä kuvataan tietojen-

käsittelyopissa usein E/R-kaaviolla (entity-relationship diagram). E/R-kaavio

on graafinen tapa esittää erilaiset käsitteet eli yksilöjoukot (entity set),

käsitteiden ominaisuudet eli attribuutit (attributes) ja käsitteiden väliset suhteet

(relationship) laatikkoina, soikioina ja salmiakkeina. E/R-kaavioiden

termistöön palataan tarkemmin kappaleessa 4.2. Todelliset tietokannat eivät

kuitenkaan perustu E/R-kaavioihin vaan huomattavasti suppeampaan ja

yksinkertaisempaan relaatiomalliin (relational model), joka kuvaa, miten

käsitteet on todellisuudessa talletettu tietokantaan. Relaatiomalliin perustuva

tietokanta jakaa käsitteet relaatioihin (relation), jotka jakautuvat attribuutteihin

kuten E/R-kaavion yksilöjoukotkin. Relaatiomalliin läheisesti liittyvässä SQL-

kielessä relaatioita kutsutaan tauluiksi (table) ja attribuutteja kentiksi (field).

Varsinaisia suhteita relaatiomallissa ei ole, mutta ne voidaan toteuttaa tauluilla

ja viitekentillä (reference). Relaatiomalliin perustuvan tietokannan

implementaatio on yksikäsitteinen ja helppo toteuttaa, ja suurin osa

markkinoilla olevista tietokannoista käyttääkin relaatiomallia. Poikkeuksen

muodostavat lähinnä uudet, oliopohjaiset tietokannat. E/R-kaaviota käytetään

kuitenkin tavallisesti havainnollistamaan tietokannan rakennetta.

Tietokantoja käsitellään relaatiomalliin perustuvalla, jo standardiksi

muodostuneella SQL-kielellä (structured query language). SQL:stä on

olemassa kuitenkin eri valmistajien laajennuksia, mutta ne kaikki pohjautuvat

samaan SQL-standardiin. Laajennusten myötä perus-SQL:stä on standardoitu

Page 23: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

23

SQL2-kieli, jota suurin osa nykyisistä tietokannoista ainakin teoriassa tukee.

Viimeisin tulokas SQL-perheeseen on SQL3, joka uusien innovaatioiden myötä

lisää standardiin mm. laukaisimet (triggers). Monet kaupalliset tietokannat

ovatkin lähempänä SQL3:sta kuin SQL2-standardia. Lisää tietoa tietokannoista

löytyy esimerkiksi kirjasta A First Course in Database Systems (Ullman ja

Widom 1997).

4.2 TIETOKANTOIHIN LIITTYVÄT KÄSITTEET

Tietokantatermistö on hyvin kirjavaa ja varsinkin suomenkielinen sanasto on

vakiintumatonta. Edellinen kappale antoi jo katsauksen tiedonhallinta-

järjestelmissä vallitsevaan moninaiseen termistöön, joka on syytä nyt käydä

läpi tarkemmin. E/R-kaavion ja relaatiomallin termien ero johtuu suurelta osin

siitä, että E/R-kaavio on käsitetason malli, joka pyrkii kuvaamaan

ongelmakentän käsitteitä ja niiden välisiä yhtyksiä. Relaatiomalli on puolestaan

tauluihin perustuva implementaatiotason malli, joka kertoo, miten E/R-kaavion

käsitteet ovat todellisuudessa talletettu tietokantaan. Seuraavaksi pyritäänkin

antamaan myös kuva siitä, kuinka eri mallinnustapojen käsitteet liittyvät

toisiinsa.

Tietokanta (database) on kokoelma tietoa. Tietokanta koostuu joukosta tauluja.

Taulu (table) on joukko yhden tyyppisiä tietoja tietokannassa. Taulu kuvaa

tavallisesti jotain mallinnettavaa käsitettä, esimerkiksi terästehtaan sulia.

Relaatiomallissa tauluja kutsutaan relaatioiksi (relation), ja E/R-kaavioiden

yhteydessä puhutaan puolestaan yksilöjoukoista (entity set). Käsitteellinen ero

taulun ja yksilöjoukon välillä on pieni. Yksilöjoukot ovat tavallaan varsinaisia

tietokantaan talletettavia käsitteitä, joita vastaa tietokannassa aina oma taulu.

Tauluja voi kuitenkin joutua luomaan yksilöjoukkojen lisäksi mm. E/R-kaavion

monesta-moneen suhteille, joten taulu on yksilöjoukkoa hieman yleisempi

kokonaisuus. Taulu jakaantuu kenttiin sen mukaan, mitä tietoja sen käsite

sisältää. Sulataulussa kenttiä olisivat ainakin sulan koodi ja massa.

Kenttä (field) sisältää taulussa yhtä, määrätyn sisältöistä tietoa, esimerkiksi

sulien massoja. Sekä E/R-kaavioissa että relaatiomallissa kenttiä kutsutaan

attribuuteiksi. Kenttä voi olla tietotyypiltään ainakin merkkijono, kokonaisluku

tai liukuluku.

Page 24: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

24

Tietotyyppi (data type) määrittelee toteutustasolla, minkä tyyppistä (ei niinkään

minkä sisältöistä) tietoa kenttä sisältää. SQL-standardit sisätävät ainakin

seuraavat tietotyypit: tarkalleen n:n pituinen merkkijono CHAR(n), korkeintaan

n:n pituinen merkkijono VARCHAR(n), tarkalleen n:n pituinen bittijono

BIT(n), korkeintaan n:n pituinen bittijono BIT VARYING(n), kokonaisluku

INTEGER (tai INT), liukuluku FLOAT (tai REAL), päivämäärä DATE ja

kellonaika TIME.

Tietue (tuple) on yksi tauluun tallennettu tietorivi, joka käsittää arvon kullekin

taulun kentälle. Toisinaan tietueita kutsutaan monikoiksi ja E/R-kaavioissa

yksilöksi (entity).

Taulun kentät voivat olla yksilöiviä (unique). Tällöin taulun kahdella tietueella

ei voi olla kentässä samaa arvoa, vaan sellaiset lisäykset ja muutokset, joiden

tuloksena kentään tulisi kaksi samaa arvoa, estetään. Kentät voivat olla myös

yhdessä yksilöiviä. Tällöin taulussa ei saa esiintyä samaa kenttien arvojen

yhdistelmää useasti. Kentät ovat usein pakollisia (mandatory, NOT NULL),

jolloin kenttiin on pakko syöttää jokin arvo. Pakollisia yksilöiviä kenttiä

voidaan käyttää tietueen yksikäsitteiseen tunnistamiseen taulusta.

Taulun avain (key) on se pakollinen yksilöivä kenttä (tai joukko kenttiä), jonka

perusteella tietueet tunnistetaan taulusta. Avain voi myös olla joukko pakollisia

kenttiä, joiden yhdistelmä on yksilöivä. Jokaiselle taululle on määriteltävä yksi

avain.

Viite (reference) on kenttä (tai kenttäjoukko), joka voi saada arvoikseen vain

toisen taulun avaimen arvoja. Mikäli kohdetaulun avain on joukko useita

kenttiä, käsittää myös viite yhtä monta kenttää. Viitteet voivat lisäksi olla joko

yksilöiviä (single value constraint) tai viite-eheitä (referential integrity).

Yksilöivä viite voi joko osoittaa yhteen kohdetaulun tietueeseen tai olla

viittaamatta yhteenkään, jolloin kentän arvo on NULL. Viite-eheä viite

puolestaan osoittaa aina täsmälleen yhteen kohdetaulun tietueseen. Viitteet ovat

relaatiomallin käsitteitä, ja niitä käytetään tavallisesti toteuttamaan E/R-kaavion

suhteita.

Suhde (relationship) on yhteys kahden yksilöjoukon (ks. taulu) välillä.

Tällainen voisi olla esimerkiksi viittaus sulatuksesta teräslajiin. Suhteella

voitaisiin tällöin määritellä, mitä teräslajia (toisen taulun tietueita) sulatuksessa

Page 25: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

25

valmistetaan. Suhteet voidaan toteutaa tietokannoissa monella tavalla.

Systemaattisin tapa on luoda kaikille suhteille omat taulunsa, joista on viitteet

suhteeseen liittyviin tauluihin. Osa näistä suhdetauluista (tarkkaan ottaen kaikki

attribuutittomat monesta-yhteen suhteet) voidaan kuitenkin redusoida yhdeksi

viitekentäksi monesta-pään tauluun. Suhteet voidaan luokitella kolmeen eri

ryhmään niiden moninaisuuden (multiplicity) perusteella: yhdestä-yhteen,

monesta-yhteen ja monesta-moneen. Moninaisuus määrittelee, kuinka moneen

kohdetaulun tietueeseen taulun yhdestä tietueesta voi olla viittaus ja

päinvastoin.

4.3 E/R-KAAVION PERUSTEET

Kuvassa 7 on esitetty E/R-kaavion tavallisimmat symbolit merkityksineen.

Laatikot kuvaavat ongelmakentän peruskäsitteitä, yksilöjoukkoja.

Yksilöjoukkon attribuutit esitetään puolestaan soikioina laatikon vieressä.

Alleviivatut attribuutit osoittavat, mitkä kentät muodostavat kyseistä

yksilöjoukkoa vastaavan taulun avaimet. Suhteita kuvataan E/R-kaaviossa

salmiakkikuvioilla, jotka yhdistävät ainakin kaksi yksilöjoukkoa toisiinsa. E/R-

kaaviossa voi yksilöjoukkojen lisäksi myös suhteilla olla attribuutteja. Kuten

yksilöjoukkojenkin attribuutit suhteiden attribuutit kuvataan E/R-kaaviossa

(Vahva) Yksilöjoukko

Heikko yksilöjoukko

Heikkosuhde

Attribuutti Avain

Suhde

Attribuutti

Viite-eheys

Yksilöiväarvovaatimus

Kuva 7. E/R-kaavion merkinnät.

Page 26: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

26

salmiakkikuvioon yhdistetyillä soikioilla. Suhteilla ei kuitenkaan voi olla

avainattribuutteja; se on taulujen erityispiirre.

Jotkut E/R-kaavion yksilöjoukoista ovat ns. heikkoja yksilöjoukkoja, jotka

merkitään kaavioon kaksinkertaisilla viivoilla. Heikkoon yksilöjoukkoon liittyy

aina vähintään yksi heikko suhde, joka on osoitettu kaksinkertaisella

salmiakilla. Heikko suhde on suhde, joka on samalla yksilöjoukon avain tai sen

osa. AMRO:n E/R-kaaviossa on useita heikkoja yksilöjoukkoja. Tällainen on

esimerkiksi “Raaka-aineista otetut näytteet” -taulu. Kyseisen yksilöjoukon

avain muodostuu attribuutista (koodi) ja suhteesta raaka-ainelajeihin.

Ainoastaan näiden kenttien arvojen yhdistelmä on yksilöivä ja siispä eri raaka-

ainelajeista otetuilla näytteillä voi olla samat koodit. Heikkoa yksilöjoukkoa

ajatellaankin usein hierarkkiana: heikko yksilöjoukko on hierarkkiassa sen

yksilöjoukon alla, johon heikko suhde viittaa. AMRO:n E/R-kaaviosta löytyy

myös kolmitasoinen hierarkkia: sulatukseen kuuluu monia sulia ja suliin monia

näytteitä.

Suhteiden yksilöivyys on osoitettu E/R-kaaviossa nuolilla. Täytetty nuoli (¦ )

kuvaa, että suhteen toinen pää on viite-eheä (täsmälleen yksi). Tavallinen nuoli

(← ) osoittaa puolestaan yksilöivää arvovaatimusta (0 tai 1). Nuoleton viiva

kuvaa suhteen monesta-päätä.

4.4 JOHDATUS AMRO:N TIETOKANTAAN, SQL:ÄÄN JA TIETOKANNAN OMINAISUUKSIIN

AMRO:n offline-version tietokannan E/R-kaavio on esitetty liitteessä 1.

Vaatimusmäärittelyn sekä optimointi- ja estimointiosan implementaatio-

vaatimusten perusteella tietokantaan on luotu 25 taulua. Taulujen formaaliin

määrittelyyn (liite 2) on käytetty SQL2-kieltä, jota kuitenkaan offline-version

Borland Database Engine (BDE) ei tue kaikilta osin. Niinpä esitetty

implementaatio on tehty silmällä pitäen vaativampia tietokantoja, erityisesti

Outokummun Informixia. Taulut on kuvattu tarkemmin kappaleessa 4.5 ja

niiden toteutukseen BDE:llä tutustutaan kappaleessa 4.6.

4.4.1 E/R-KAAVIOSTA SQL:ÄÄN

Tietokannan taulut on E/R-kaaviossa numeroitu (nollasta alkaen)

yksilöjoukkojen ja suhteiden viereen. Yllämainittun periaatteen mukaisesti

attribuutittomat monesta-yhteen suhteet on toteutettu yhdellä kentällä monesta-

Page 27: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

27

puolen taulussa. Tällaisia suhteita ovat kaikki heikot suhteet sekä muutama

muu suhde. Suurimmalle osalle E/R-kaavion suhteista luodaan kuitenkin omat

taulunsa. Taulut ja näiden kentät nimettiin tietokantaan englanniksi päinvastoin

kuin E/R-kaavioon, jossa käytettiin suomea. Perusteena ajateltiin, että on

luontevampaa käyttää SQL:ssä sen alkuperäiskieltä, jolloin mm.

ääkkösongelmat, jotka kohdataan skandinaavisten kielten kanssa, eivät vaikeuta

tietokannan tekoa. Sen sijaan E/R-kaavion ensisijainen vaatimus on sen

havainnollisuus ja tältä osin turhien kielimuurien pystyttäminen nähtiin

tarpeelliseksi välttää. Jotta taulujen ja kenttien yhteydet englanninkielisen

tietokannan ja suomenkielisen E/R-kaavion välillä tulisivat selviksi, liitteessä 3

on esitetty tietokannan taulut ja niitä vastaavat yksilöjoukot attribuutteineen.

Kentät on esitetty siinä järjestyksessä kuin ne esiintyvät tietokannan

taulumäärittelyissä.

Tietokannan taulut luova SQL-skripti on liitteessä 2. Tämä SQL-ohjelma

määrittelee viime kädessä miten todellinen tietokanta toimii, mutta sen pitäisi

olla täysin yhteneväinen E/R-kaavion kanssa. Taulujen SQL-skriptistä voidaan

todeta pari asiaa. SQL on muutoin hyvin selkeää, mutta viitteiden määrittelyyn

tulee kiinnittää huomiota. Yhden kentän viitteet luodaan SQL-kielellä

avainsanalla REFERENCES. Mikäli viite käsittää useita kenttiä, tulee käyttää

edellisen sijasta FOREIGN KEY (… ) REFERECES (… ) –rakennetta

taulunmäärittelyn lopussa. Taulujen avaimet määritellään sanoilla PRIMARY

KEY joko heti avainkentän jälkeen tai sitten taulunmäärittelyn lopussa, jolloin

voidaan määritellä suluilla myös avainkenttäryhmiä.

4.4.2 PÄIVITYS- JA POISTOPOLITIIKAT SEKÄ OIKEELLISUUSTARKISTUKSET

Viite-eheyksien hallintaan määritellään tietokannoissa usein päivitys- ja

poistopolitiikat (update / deletion policy). Perusajatuksena viite-eheyksissä on,

että riippumatta tietokantaan tehtävistä lisäyksistä, poistoista ja muutoksista

viite-eheydet säilyvät aina eikä olemattomiin tietueisiin viittaavia viitteitä pääse

syntymään. Päivitys- ja poistopolitiikat kertovat tietokannan hallinta-

järjestelmälle, kuinka jonkun tietueen avainkenttää muutettaessa (tai tietue

poistettaessa) kyseiseen tietueeseen viittaavat tietueet päivitetään. Päivitys- ja

poistopolitiikkoja ei ole kuitenkaan niiden pituuden tähden kirjoitettu liitteen 2

SQL-skriptiin, vaan ne lisätään, jos Outokummun Informix-tietokanta tukee

niitä.

Page 28: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

28

Viitteitähän oli kahta lajia: yksilöiviä ja viite-eheitä, joista viite-eheys oli

rajoittavampi. Viite-eheille viitteille voidaan määritellä kaksi poistopolitiikkaa:

estopolitiikka (default policy) ja ketjupolitiikka (cascade policy). Estopolitiikka

estää tietueen poiston niin kauan, kun siihen on olemassa yksikin viittaus.

Ketjupolitiikka puolestaan poistaa myös kaikki poistettavaan tietueeseen

viittaavat tietueet. Monen tason ketjupolitiikalla saadaankin helposti aikaiseksi

suurten tietomäärien tuhoutuminen, kun yksi ylimmän tason tietue poistetaan.

Esimerkiksi tällöin AMRO:n tietokannassa tuotteen poistaminen tuhoaisi

kaikki siitä tehdyt sulatukset, mikä puolestaan poistaisi kaikki näiden sulat,

niistä tehdyt analyysit ja niille lasketut tavoitepitoisuudet. Tästä syystä

AMRO:ssa käytetäänkin yksilöjoukkojen välisten suhteiden viitteissä

estopolitiikkaa. Sen sijaan suhdetaulujen viitteissä poistopolitiikkana on

ketjupolitiikka. Tämän perusteena on se, että suhteista ei ole

ketjuuntumismahdollisuuksia pidemmälle ja suhteiden attribuuttien arvot ovat

merkityksettömiä ilman niiden viitetietueita. Attribuutittomat suhteet pitää

luonnollisestikin poistaa, kun niihin liittyvä tietue poistetaan. Yksilöiville

suhteille voidaan määritellä vielä lisäksi nolla-arvopolitiikka (set-null policy),

joka poiston tapahtuessa asetaa viitteiden arvoksi NULL. Tämä onkin yleisin

yksilöivien viitteiden poistopolitiikka myös AMRO:ssa.

Päivityspolitiikkoja on kummallekin viitetyypille vain kaksi: estopolitiikka

(default policy) ja ketjupolitiikka (cascade policy). Estopolitiikka toimii kuten

poistopoliitiikankin yhteydessä, mutta ketjupolitiikka muuttaa nyt viitteiden

arvot vastaamaan muuttetun avaimen uusia arvoja. Offline-toteutuksessa tätä

hyvin hyödyllistä ominaisuutta on kuitenkin käytetty rajatusti, sillä BDE:n

Parodox 7 –tietokanta ei tue monen tason ketjupolitiikkaa. Periaatteessa

päivityspolitiikkana tulisi kuitenkin poikkeuksetta olla ketjupolitiikka.

Tietokannan oikeellisuuden valvontaan voidaan SQL2-standardissa määritellä

vielä tarkistuksia (check) ja assertioita (assertion). Tarkistus on kenttä- tai

taulukohtainen sisällön oikeellisuuden tarkastus. Assertiot puolestaan

määritellään taulujen ulkopuolelle ja ne voivat valvoa toisistaan riippuvien

taulujen oikeellisuutta. Näitä voitaisiin suunnitella AMRO:on hyvinkin suuri

joukko, mutta eri tietokantojen tukemisepäselvyyksien vuoksi niitä on tehty

minimaalinen määrä. Tarkistukset voidaan muutenkin toteuttaa ohjelmallisesti

käyttöliittymän päässä, mikä on turvallisempaa ja helpompaa Windows-

sovellusten tietokantoja paremman päivitettävyyden takia. Joitakin

tietokantapuolen tarkistuksia kuitenkin käytetään: erityisesti otoskoko –kentistä

Page 29: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

29

tarkistetaan, että asetettu kokonaisluku on nollaa suurempi. Assertioita ei

AMRO:n tietokantaan ole luotu lainkaan.

4.4.3 INDEKSIT

Tietokantojen kenttiä voidaan indeksoida, jolloin tietokantaan luodaan

eräänlainen “puhelinluettelo” kentän sisältämistä arvoista ja niitä vastaavista

tietueista. Tietueiden haku indeksoidun kentän arvojen perusteella onkin

merkittävästi nopeampaa (~ log(N)) kuin haku vastaavanlaisesta mutta

indeksoimattomasta kentästä (~ N). Indeksoinnin haittapuolena on tietokannan

päivitysten hidastuminen, kun tietueiden arvojen lisäksi myös indeksit pitää

päivittää. Indeksejä kannattaakin käyttää vain sellaisille kentille, joiden

perusteella tehdään usein hakuja. Mikäli tietokantaa päivitetään hyvin harvoin,

voi olla perusteltua luoda vähemmän käytetyillekin kentille omia indeksejä.

Tietokannat luovat tavallisesti kaikkien taulujen avainkentille indeksit

automaattisesti. Koska AMRO:ssa suurin osa hauista tehdään juuri

avainkenttien perusteella ja lisäksi kun tiedetään, että tietokantaa päivitetään

varsin usein, ei projektin tietokantaan ole luotu lisää indeksejä.

4.5 TIETOKANNAN TAULUT

Tässä kappaleessa kuvataan lyhyesti, mitä vaatimuksissa esitettyjä

ominaisuuksia tietokannan eri taulut toteuttavat ja mitä tauluilla saadaan

ohjelmiston kannalta aikaan. Esitys on pyritty pitämään tarkoituksella

mahdollisimman kompaktina. Numerointi vastaa liitettä 3.

4.5.1 YLEISKATSAUS TAULUIHIN

AMRO:ssa on viisi vahvaa yksilöjoukkoa: raaka-ainelajit (0), alkuaineet (2),

prosessipaikat (4), tuotteet (5) ja sulatukset (6). Nämä muodostavat tietokannan

ytimen.

Raaka-ainelajeista otetaan näytteitä, joiden pitoisuustulokset talletetaan

tauluihin 1 ja 8. Estimointi tuottaa lisäksi alkuaineittain pitoisuusestimaatteja,

jotka tallennetaan tauluihin 3 ja 7. Prosessipaikoittain halutaan vielä tallentaa

estimoinnin antamat raaka-ainesaannit, ja nämä on sijoitettu tauluihin 9 ja 10.

Estimoinnista niin ikään saatavat prosessipaikkojen alkuainesaantianalyysit on

talletettu tauluihin 11 ja 12.

Page 30: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

30

Sulan koostumus valmistusprosessin eri vaiheissa (prosessipaikoissa) talletaan

tauluhin 13, 14 ja 15. Sulan koostumus määritetään siitä otetuista näytteistä, ja

näiden tiedot ovat nyt kahdessa jälkimmäisessä taulussa. Sulille lasketut

tavoitepitoisuudet halutaan myös talletaa jälkitarkasteluja varten tietokantaan,

ja tätä varten on perustettu taulu 16. Erityissulat –taulu (23) osoittaa tyyppi-

kentän perusteella mm. estimoinnissa viimeiseksi käytetyn sulatuksen.

Tauluihin 18 ja 19 voidaan tallettaa tuotteen koostumusrajat ja asiakaskohtaiset

koostumusrajat, jotka ovat luonnollisesti tärkeitä valmistusprosessin ja

optimointialgoritmin kannalta. Lisäksi taulu 20 sisältää suuren osan muita

optimointiin tarvittavia parametrejä kuten sakkofunktioiden määrittelyn ja

koostumusrajojen muunnosparametrit. Taulussa 17 määritellään kunkin

tuotteen raaka-ainerajoitukset ja tauluun 21 talletetaan lopulta optimoinnin

tuloksena saatavat panostusarvot. Tauluun 21 voidaan määritellä tyyppi-kentän

perusteella myös muita arvoja kuten panostuksessa todellisuudessa käytetyt

arvot.

Rekursiivisen pienimmän neliösumman menetelmän tarvitsemat kovarianssi-

matriisit talletaan tietokannan tauluihin 22 ja 24.

4.5.2 YLEISESTI TAULUJEN KENTISTÄ

Seuraavaksi pyritään valottamaan eri taulujen kenttien merkityksiä, ja sitä,

miksi kentän ylipäätään tulee olla taulussa. Jussi Ikäheimon diplomityöstä

(1999) saa laajemman käsityksen AMRO-projektissa käytetystä

tilastoanalyysistä; tässä pyritään antamaan asiasta vain nopea katsaus.

Monessa AMRO:n taulussa (mm. analyysit, katso taulukko 1) esiintyy

tilastoanalyyttisiä termejä kuten odotusarvo, odotusarvon keskihajonta ja

keskihajonta. Toisissa (näytteet) käytetään puolestaan sanoja keskiarvo ja

otoskeskihajonta. Näillä termeillä on tarkka käsitteellinen ero. Keskiarvo ja

otoskeskihajonta lasketaan aina todellisista otoksista (useasta näytteestä tai

näytesarjasta). Keskiarvo on tulosten aritmeettinen keskiarvo ja

otoskeskihajonta lasketaan käyttämällä samantyyppistä kaavaa. Odotusarvo ja

keskihajonta, jotka kuvattiin jo kappaleessa 2.3, ovat puolestaan jonkun

hyvinmääritellyn tilastollisen jakauman tunnuslukuja. Lisäksi

normaalijakaumissa odotusarvo ja keskihajonta ovat samalla jakauman

Page 31: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

31

parametrejä, joilla määrätään jakauman huipun paikka x-akselilla ja jakauman

leveys. AMRO:n estimointiosuus pyrkii määrittämään romujen

alkuainepitoisuuksien tilastolliset jakaumat eli juuri nämä kaksi parametriä.

Estimoinnin tuloksena saadaankin siis estimaatit romujen alkuainepitoisuus-

jakaumien odotusarvolle ja keskihajonnalle. Estimointi ei kuitenkaan anna

ainoastaan todennäköisintä arvoa (varsinainen estimaatti) parametreille vaan

myös parametrin mahdollisten arvojen jakauman, jonka leveyttä kuvaa

estimaatin keskihajonta. Odotusarvon yhteydessä tätä kutsutaan odotusarvon

keskihajonnaksi ja varianssin (keskihajonnan neliö) yhteydessä varianssin

keskihajonnaksi. Tietokantaan voisi siis periaatteessa talletaan neljä tietoa:

odotusarvon, odotusarvon keskihajonnan, varianssin ja varianssin

keskihajonnan. Varianssin keskihajonnan merkitys optimoinnissa on kuitenkin

niin mitätön (paitsi laskujen vaikeuttamisessa), että se on jätetty pois

optimointialgoritmistä ja täten myös tietokannasta. Sen sijaan muut estimoinnin

antamat tulokset hyödynnetään optimoinnissa. Edellä esitetystä voidaankin

päätellä, että näytteitä tallettaviin tauluihin tulee sisällyttää kentät keskiarvo ja

otsokeskihajonta, kun taas estimaatteja sisältävillä tauluilla tulee olla

odotusarvo, odotusarvon keskihajonta ja keskihajonta.

Useassa taulussa esiintyvä lähde –kenttä kertoo tavallisesti kuka tai mikä on

tiedon tietokantaan syöttänyt. Päiväyskenttä on sisällytetty useimpiin tauluihin

aikaperspektiivin säilyttämiseksi. Otoskoko liittyy hyvin läheisesti keskiarvoon

ja keskihajontaan, ja se on erityisen tärkeä laskettaessa alkuainepitoisuuksien

tilastolllisia jakaumia. Mitä suurempi otoskoko, sitä tarkemmin raaka-aineen

tilastolliset jakaumat saadaan estimoitua. Myös SSR-kenttä (Sum of Squared

Residuals) liittyy estimointiin, ja se kuvaa estimaatin tarkkuutta. Sen

absoluuttinen arvo on kuitenkin mitäänsanomaton, mutta jakamalla se

kokonaisneliösummalla (vertaa Ikäheimo, 1999) saadaan käyttökelpoinen

vertailusuure. SSR-kenttää tarvitaan rekursiivisessa (itseään tarkentavassa)

estimoinnissa. Alkuaineiden laskennassa-kentällä voidaan säätää optimoinnin

ja estimoinnin huomioimia alkuaineita, ja raaka-ainelajien käytössä-kenttä ajaa

saman asian romujen osalta. Käytössä-kentällä on kuitenkin kolme eri arvoa:

“estimoinnissa”, “käytössä” ja “poissa käytöstä”. Estimoinnissa oleva romu

otetaan mukaan uuteen estimointiin mutta käytössä olevaa ei. “Poissa käytöstä”

–asetus määrää, että romua ei käytetä estimoinnissa eikä optimoinnissa.

Prosessipaikan muunnos- ja sakkoparametritaulu on eräänlainen moninaisten

parametrien kokoelma. Tänne on kerätty kaikki sakkofunktion määrittelyyn

Page 32: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

32

tarvittavat parametrit: sakko ala- ja ylärajalla, sakkofunktion kulmakerroin ylä

ja alarajan jälkeen, sakkofunktion referenssiala- ja ylärajat sekä

romutuspitoisuus. Referenssirajat viittaavat yhteen viidestä

koostumusrajataulun rajoista ja romutuspitoisuus kertoo alkuaineen sen

prosenttimäärän, jonka ylitys johtaa välittömästi sulan romuttamiseen. Taulussa

on lisäksi prosessipaikkojen muunnosparametrit, joilla valmiin teräksen

koostumusrajat saadaan muutettua prosessipaikkakohtaisiksi rajoiksi

yksinkertaisilla +/- -prosenttiyksikkömuunnoksilla.

4.6 OFFLINE-TIETOKANNAN TOTEUTUS BORLAND DATABASE ENGINELLÄ

Offline-version tietokanta luotiin käyttämällä Borland C++ Builder 3:n mukana

tulevaa Database Desktopia, jonka käyttöliittymä näkyy kuvassa 8. Database

Desktop käyttää Borland Database Engineä (BDE), joka on C++ Builderiin

integroitu tietokantarajapinta. BDE:n avulla voidaan vaivattomimmin luoda

käyttöliittymästä saavutettava tietokanta, ja niinpä Database Desktop oli

luonnollinen valinta offline-tietokannan tekemiseen.

Database Desktop sallii useiden eri tietokantaformaattien käytön, mukaan

lukien dBase, Foxpro, Paradox ja monta muuta. Näiden joukosta pyrittiin

löytämään sellainen, joka tuki parhaiten SQL2-standardia, jolla AMRO:n

tietokanta oli suunniteltu. Monen vaiheen jälkeen päädyttiin Paradox 7 -

tietokantaan, joka oli myös BDE:n oletusformaatti. Jostain syystä Database

Desktop katsoi parhaaksi muuntaa tauluja Paradox 4.0, 5.0, 6.0 ja 7 –

formaattien välillä riippuen taulussa käytetyistä SQL-ominaisuuksista, joten

lopulta AMRO:n tietokanta muodostui varsin monentyyppisistä Paradox-

tauluista. Nämä toimivat kuitenkin saumattomasti yhteen, joten suurta

Kuva 8. Database Desktop.

Page 33: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

33

käytännön merkitystä tällä ei juuri ollut. Paradoxin tietotyypit eivät suoraan ole

saman nimisiä kuin SQL2-standardissa, mutta seuraavia vastaavuuksia

käytettiin: Alpha (koko 255) – VARCHAR(255), Long Integer – INTEGER, ja

Number – FLOAT. Paradox ei myöskään tukenut usean tason ketjupolitiikkaa,

joten tätä käytettiin ainoastaan alimmilla tasoilla (suhteissa) ja muutoin

käytettiin estopolitiikkaa. Nolla-arvopolitiikkaa Paradox ei näyttänyt tukevan

lainkaan. Muutoin tietokannan määrittely onnistui varsin helposti.

4.6.1 BORLAND DATABASE ENGINEN ASETUKSET

AMRO:n offline-versio vaatii BDE:n toimiakseen, joten tietokoneessa, jossa

halutaan AMRO:n offline-versiota käyttää tulee olla C++ Builder 3 tai ainakin

sen BDE-osa asennettuna. C++ Builder vaatii oman lisenssin joka tapauksessa,

mutta ei ole aivan selvää, voiko BDE:tä käyttää lisenssittä, vai joudutaanko

sillekin hankkimaan oma lisenssi.

BDE:n tulisi asentua automaattisesti C++ Builderin asennuksen yhteydessä.

Asennuksen jälkeen Windowsin ohjauspaneeliin (Control Panel) tulisi ilmestyä

BDE Administrator -ikoni, josta BDE:n hallintajärjestelmän saa käynnistettyä.

Täällä jokaiselle BDE-tietokannalle tulee luoda oma aliaksensa (alias), joka

Kuva 9. BDE Administrator.

Page 34: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

34

määrittelee tietokannan ajurit ja mistä hakemistosta tietokannan tiedostot

löytyvät. AMRO:n offline-versio käyttää "AMRODB"-nimistä aliasta. Tämä

saadaan luotua valitsemalla Object -valikosta New. Tietokannan tyypiksi tulee

Standard, Default Driver on Paradox, Enable BCD False ja Path viittaa

hakemistoon, johon tietokannan tiedostot on asennettu. Kuvassa 9 on esitetty

BDE Administrator ja AMRODB:n oikeat asetukset.

4.7 TIETOKANNAN ANALYYSI

4.7.1 TIETOKANNAN SUUNNITTELUN PERIAATTEET

Tietokantaa suunniteltaessa on sekä ajateltu joustavuutta että vältetty

redundanssia. Joustavuudella pyritään mahdollistamaan tietokannan rakenteen

laajentaminen ja muuttaminen yksinkertaisesti. Joustavuuden perustan

muodostaa ongelmakentän käsitteiden jakaminen omiksi yksilöjoukoikseen

E/R-kaavion avulla, jolloin päästään uusien riippuvuussuhteiden luonnin ja

tietokannan laajentamisen kannalta parhaaseen rakenteeseen. Redundanssin eli

toisteisuuden välttäminen viittaa puolestaan turhan tai toisteisen tiedon

poistamiseen tietokannasta. On selvää, että saman tiedon tallettaminen moneen

paikkaan tietokannassa on sekä tilaa vievää että päivittämistä hankaloittavaa.

AMRO:ssa onkin jouduttu jakamaan käsitteitä kahteen tauluun, jotta toisteiselta

tiedolta vältyttäisiin. Esimerkiksi sulan näytteet ja niiden tulokset ovat eri

tauluissa (yksilöjoukkona ja attribuutillisena suhteena alkuaineisiin). Näytteelle

on määritelty päiväys ja otoskoko, jotka ovat yhteisiä koko näytteelle. Jos

näyte-taulu haluttaisiin poistaa ja yhdistää nämä tiedot näytteen

alkuainepitoisuustauluun, olisi tuloksena sama päiväys ja otoskoko kyseisen

näytteen kunkin pitoisuustuloksen jälkeen. Tällöin tietokantaan syntyisi

toisteista tietoa eli redundanssia. Tietokanta, jossa ei ole toisteista tietoa, on

Boyce-Codd-normaalimuodossa (Boyce-Codd normal form, BCNF, ks. Ullman

ja Widom 1997). Näin voidaankin todeta, että myös AMRO:n tietokanta on

BCNF:ssä.

Käyttäjäystävällisyyteen on kiinnitetty erityistä huomiota suunniteltaessa

viitteiden päivitys- ja poistopolitiikkoja (kappale 4.4.2), joilla poistot ja

päivitykset viitetietueissa automatisoidaan. Lisäksi tietokannan käsitteiden

joukko on alusta alkaen valittu niin suureksi, että optimoinnin ja estimoinnin

laajentaminen koskemaan koko prosessia valokaariuunin sijasta ei välttämättä

aiheuttaisi muutoksia tietokantaan. Erityisesti prosessipaikka –taulu on luotu

Page 35: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

35

sovellusalueen laajentamista ajatellen. Prosessipaikka -taululla voidaan

tietokantaan mallintaa halutunlainen valmistusprosessi, eikä sen tarvitse

välttämättä muistuttaa Outokummulla käytössä olevaa prosessia.

Tietokannan suunnittelun periaatteina voitaisiin vielä pitää oikeellisuutta ja

johdonmukaisuutta. Näiden mukaan tulee varmistaa, että riippumatta tehdyistä

päivityksistä tietokanta pysyy aina eheänä eikä virheellisiä viittauksia tai muita

epätoivottuja asioita pääse syntymään. Näiden periaatteiden toteutumiseen on

kiinnitetty huomiota viitteiden määrittelyssä.

4.7.2 TIETOKANNAN RAJOITUKSET JA SOPIVUUS KÄYTTÖTARKOITUKSEENSA

Huolimatta joustavuusperiaatteesta on tietokanta jouduttu rajaamaan

suhteellisen tarkasti. Tietokanta on suhteellisen joustamaton käytettävän

estimointimenetelmän suhteen, ja sen vaihtaminen saattaa vaatia osin suuriakin

muutoksia tietokantaan. Optimointi- ja estimointiosuuden tietojen talletus olisi

myös mahdollista suunnitella systemaattisemmin, mutta johtuen projektin

aikana tehdystä jatkuvasta optimointi- ja estimointialgoritmien kehitystyöstä ei

näiden vaatimaa tiedontallennustarvetta ole voitu etukäteen arvioida kattavasti.

Niinpä tuloksena on tietoja talletellaankin hieman kirjavasti eri tauluhin.

Offline-tietokanta on suunniteltu erityisesti ajatellen asiakasyrityksen

valmistusprosessia, joten katsomme, että se sopii erinomaisesti

käyttötarkoitukseensa. Ongelman saattaa kuitenkin tulevaisuudessa muodostaa

ohjelmiston integroiminen Outokummun tietojärjestelmiin, joissa tulisi käyttää

siellä valmiiksi olevia tauluja. Mikäli näitä ei ole eriytetty joustavasti, saattaa

integroimisvaiheessa esiintyä merkittäviäkin ongelmia esimerkiksi tärkeiden

suhdetaulujen luomisessa.

4.7.3 PARANNUSEHDOTUKSIA

Parannusehdotukset on projektin aikana pyritty toteuttamaan valmisteilla

olevaan ohjelmistoon, joten niiden määrä tähän kappaleeseen on

ymmärrettävästi jäänyt pieneksi. Tämän kappaleen parannusehdotukset

koskevat pääasiassa AMRO:n offline-tietokantaa.

Suurin parannus offline-version tietokantaan saataisiin vaihtamalla sen alusta

vaativampaan käyttöön tarkoitettuun tietokantajärjestelmään, esimerkiksi

Microsoftin SQLServer 7.0:aan. Tällöin kaikki tarvittavat päivitys- ja

Page 36: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

36

poistopolitiikat voitaisiin helposti toteuttaa ja liitteen 2 SQL-listausta

kyettäisiin suoraan käyttämään tietokannan taulujen luontiin. SQLServerin tai

muun vastaavan tasoisen tietokannan hankintaan ei ole kuitenkaan ryhdytty

kustannussyistä, sillä saavutettava hyöty on pieni ja yhteensopivuusongelmat

Borland C++ Builder 3:n ja tietokannan välillä saattavat osoittautua

merkittäviksi.

AMRO-projektissa E/R-kaavio ja SQL-skripti luotiin toisistaan erillään, mikä

saattaa aiheuttaa niissä poikkeavuuksia. Markkinoilta on kuitenkin saatavilla

E/R-kaavioiden luontiin erikoistuneita ohjelmistoja, joiden kaaviot voidaan

suoraan muuntaa SQL-kielelle. Tällaisen ohjelmiston käyttö olisi ollut myös

AMRO:ssa suotavaa, mutta kustannussyistä ja koulutustarpeen takia tähänkään

ei lähdetty, vaan E/R-kaavio toteutettiin Microsoft PowerPointilla ja SQL-

listaus tekstieditorilla.

AMRO:n offline-version tietokanta olisi voitu suunnitella muistuttamaan

enemmän Outokummun omaa tietokantaa, mutta tietokannan dokumentaatiota

ei kuitenkaan onnistuttu saamaan suunnitteluryhmän käyttöön ennen offline-

version valmistumista. Niinpä integroimisvaiheeseen jää hieman enemmän

työtä, kun osa tauluista joudutaan korvaamaan Outokummulla jo valmiina

olevilla tauluilla ja suhdetaulut joudutaan sopeuttamaan tehtyihin muutoksiin.

Tietokannassa on lisäksi ratkaisematon tehokkuusongelma. Tämän hetkisellä

toteutuksella kovarianssimatriisien (taulut 22 ja 24) käsittely on tuskastuttavan

hidasta eteenkin, jos estimoinnissa on mukana paljon eri raaka-ainelajeja.

Kovarianssimatriisien alkioiden määrä on verrannollinen raaka-ainelajien

neliöön, ja niinpä romujen määrän kasvaessa tiedontallennustarve nousee

voimakkaasti. Tällä hetkellä jokainen kovarianssimatriisin alkio joudutaan

talletamaan erikseen tietokannan eheyden takaamiseksi raaka-ainelajeja

poistettaessa ja lisättäessä, minkä seurauksena koko kovarianssimatriisin

talletus on suhteettoman hidasta.

Page 37: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

37

5. TIETOKANNAN KÄYTTÖLIITTYMÄ

5.1 JOHDATUS TIETOKANNAN KÄYTTÖLIITTYMÄÄN

Tietokannan käyttöliittymä on tehty tietokannan taulujen sisältämän tiedon

muokkaamista ja lukemista varten. Se ei tarjoa erikoistyökaluja, mutta sen

perusimplementaatio riittää useimpien toimenpiteiden tehokkaaseen suoritta-

miseen. Käyttöliittymällä ei kuitenkaan voi muuttaa tietokannan rakennetta,

vaan se on tarkoitettu ainoastaan taulujen tietuiden käsittelyyn. Tietokannan

käyttöliittymää ei tule sekoittaa optimointi- ja estimointimoduulin

käyttöliittymään, joka on oma ohjelmansa.

5.2 PERUSRATKAISUT

Käyttöliittymän pääikkuna on MDI-ikkuna (Multi-Document Interface), jonka

sisälle näkymät (view) aukeavat ali-ikkunoihin. Näkymä on ikkuna, joka liittyy

johonkin tietokannan tauluun. Se sisältää ne taulun tietueet, jotka täyttävät

näkymän hakuehdon (filter). Näkymiä avataan pääikkunan valikoista, ja

samaan aikaan voi olla auki useita eri näkymiä.

Viitteet on toteutettu käyttöliittymässä siten, että kohdetietue valitaan

näkymästä, joka avautuu, kun viitekenttää yritetään muuttaa. Tällä tavoin

käyttäjä näkee, mitä vaihtoehtoja on olemassa, ja joutuu valitsemaan näistä

yhden. Näin varmistetaan, että viitekenttään voidaan syöttää vain sallittu arvo.

Valintanäkymä toimii samalla lailla kuin tavallinen näkymä, eli siitä voidaan

luoda, muuttaa ja poistaa tietueita. Tämä sallii kohdetietueen luomisen samalla,

kun sitä ollaan valitsemassa.

Tietuiden poistoissa ja niiden avainkenttiä muutettaessa viite-eheys säilytetään

joko esto- tai ketjupolitiikalla (default policy tai cascade policy). Se, kumpaa

käytetään, on viitekohtainen ominaisuus, joka on määrätty tietokannassa.

Offline-version Paradox 7 ei kuitenkaan tue kuin yhden tason ketjupolitiikkaa,

mikä ei riitä AMRO-tietokannan tarpeisiin. Monen tason ketjupolitiikka on

kuitenkin toteutettu ohjelmallisesti offline-version käyttöliittymässä, mutta se

toimii ainoastaan tietueiden poistoissa. Tästä syystä tietueiden avainkenttiä ei

voi muuttaa, jos niihin on monen tason viittauksia.

Page 38: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

38

5.3 KÄYTTÖOHJE

5.3.1 PÄÄIKKUNA

Kuvassa 10 on tietokannan käyttöliittymän pääikkuna. Raw Materials-,

Meltings-, Products-, Elements- ja Process Locations-valikoista voi avata

näkymiä tietokannan tauluihin. Kuitenkin jos käyttäjä yrittää avata jo olemassa

olevan näkymän toiseen kertaan, ei uutta näkymää luoda, vaan olemassa oleva

näkymä tuodaan etualalle. Samaan tauluun voi kuitenkin olla auki monta

erilaista näkymää, jotka poikkeavat toisistaan hakuehdon (filter) osalta.

Pääikkunan Main-valikossa on Toggle Recursive Deletion -toiminto, jolla

valitaan, käytetäänkö ketjupolitiikkaa (vai estopolitiikkaa) tietueiden poistoissa.

Perusasetuksena on estopolitiikka. Tämä toiminto implementoi ohjelmallisesti

monitasoisen ketjupoiston, mutta luonnollisesti sitä ei tarvitse käyttää, jos

tietokanta tukee toimintoa. Monitasoinen ketjupolitiikka on toteutettu ajatellen

offline-version Paradox 7 –tietokantaa, joka on hyvin rajoittunut viite-eheyden

käsittelyssä.

Windows-valikko sisältää MDI-ikkunan perustoiminnot ali-ikkunoiden

lajittelemiseksi: Cascade, Tile ja Arrange Icons. Cascade lajittelee auki olevat,

minimoimattomat näkymät siistiin pinoon. Tile taasen jakaa pääikkunan tilan

Kuva 10. Pääikkuna, jossa on auki kaksi näkymää.

Page 39: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

39

tason auki olevien kesken. Arrange Icons –toiminnolla voi lajitella minimoidut

näkymät siten, että ne muodostavat rivin pääikkunan alalaitaan.

Pääikkunan Help-valikon Contents-toiminto avaa käyttöliittymän ohje-

tiedoston. Offline-versioon ohjetiedostoa ei ole tehty.

5.3.2 NÄKYMÄ

Näkymät aukeavat omiin ali-ikkunoihinsa. Ali-ikkunan otsikkorivillä lukee sen

taulun nimi, mihin näkymä osoittaa. Taulun nimen perässä on näkymän

hakuehto, joka on muotoa <kenttä> = <arvo>. Kun pääikkunasta avataan

näkymä, sen hakuehdoksi tulee “All”, eli siinä näkyvät kaikki kyseisen taulun

tietueet (ks. kuva 11).

Näkymän pääosan muodostaa taulukko, jonka riveillä näkymän tietueet ovat.

Tietueita ei voi lisätä tai muokata suoraan taulukosta, vaan se tehdään erillisestä

ikkunasta, joka avautuu Add- tai Edit-napista (ks. kappale 5.2.3). Tietueiden

poisto käy valitsemalla poistettavat rivit ja painamalla Delete-nappia. Jos

poistettaviin tietueihin on viittauksia, on viite-eheyden säilyttämiseksi

käytettävä jotain poistopolitiikkaa. Mikäli on valittuna estopolitiikka, ei poistoa

suoriteta, vaan ne tietueet, joista on viittaus, pitää poistaa ensiksi käsin (jos ne

ylipäätänsä halutaan poistaa). Jos käytössä on ketjupolitiikka, poistaa tietokanta

automaattisesti ne tietueet, joista on viittaus poistettavaan tietueeseen..

Yksi näkymän tärkeimmistä toiminnoista on filtteröidyn näkymän avaus

sellaiseen tauluun, josta on viite näkymän tauluun. Tämän tapahtuu

valitsemalla näkymästä tietue ja painamalla hiiren oikeaa nappia, jolloin

avautuu popup-valikko (ks. kuva 12). Tässä valikossa on kaikkien niiden

Kuva 11. Pääikkunasta avattu näkymä. Hakuehtona on “All”.

Page 40: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

40

taulujen nimet, joista on viittaus auki olevaan tauluun (sekä Refresh-toiminto,

jolla näkymä voidaan päivittää manuaalisesti). Välttämättä yhdestäkään

taulusta ei ole viittausta näkymään, jolloin valikko on Refresh-toimintoa lukuun

ottamatta tyhjä. Valitsemalla jokin taulu valikosta avautuu uusi näkymä tähän

tauluun. Tämän näkymän hakuehdossa lukee edellisestä näkymästä valitun

tietueen avain, esimerkiksi “Element ID = Cu” (ks. kuva 13). Tällä tavoin

voidaan valita ensiksi Meltings-taulusta sulatus ja avata Melts-taulu tällä

sulatuksella, jolloin Melts-taulusta näkyvät vain ne sulat, jotka liittyvät

valittuun sulatukseen. Melts-taulusta voidaan yhä avata Melt Samples -taulu,

jolloin nähdään kyseisestä sulasta otetut näytteet. Melt Samplesistä voidaan

edelleen avata Melt Sample Contents, josta löytyy kyseisen sulanäytteen

sisältö. Useimpien taulujen käyttö onkin vaikeaa, ellei mahdotonta, ilman

tällaista filtterointia. Ilman filtteröintejä voi käyttää lähinnä RawMaterials-,

Meltings-, Products-, Elements- ja ProcessLocations-tauluja. Käyttäessään

käyttöliittymää kannattaakin aloittaa näistä tauluista ja filtteröidä haluamansa

tiedot muista tauluista.

5.3.3 TIETUEEN LISÄYS JA EDITOINTI

Tietueita lisätään ja muutetaan erillisestä ikkunasta, jossa näkyvät eri kenttien

ominaisuudet (ks. kuva 14). Kentät voivat olla pakollisia (mandatory), avaimia

(primary key), viitteitä (reference) ja/tai yksilöllisiä (unique). Nämä on merkitty

erikoismerkillä kentän nimen perään. Pakollisia kenttiä ei voi jättää tyhjäksi.

Avainkenttiä voi olla taulussa yksi tai useampia. Ne määräävät yhdessä

tietueelle yksilöllisen tunnisteen. Avaimien avulla tietokanta etsii ja tunnistaa

Kuva 12. Popup-valikko, josta voi avata filtteröityjä näkymiä.

Page 41: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

41

tietueita, ja näkymät myös filtteröidään avaimien mukaan. Viitteet voivat

muodostua yhdestä tai useammasta kentästä riippuen siitä, kuinka monta

avainta viittauksen kohdetaulussa on. Viittaus osoittaa aina kohdetaulun

avainkenttiin. Joskus myös avainkentät ovat viittauksia, jolloin taulua sanotaan

heikoksi yksilöjoukoksi. Yksilöllisissä kentissä kahdella tietueella ei saa olla

samaa arvoa.

Kun tietueen lisääminen aloitetaan, käyttöliittymä tarjoaa uusiksi arvoiksi

kunkin kentän perusarvoja. Usein esimerkiksi päivämääräkenttiin tarjotaan sen

hetkistä päivämäärää. Kun muutetaan olemassa olevaa tietuetta, muokkaus-

ikkunassa näkyvät tietueen alkuperäiset arvot. Tietueen kenttiä voi muuttaa

napsauttamalla niitä hiirellä kahdesti tai painamalla Enteriä. Kentät eivät

hyväksy mitä tahansa arvoja, vaan ne ovat joko merkkijonoja (string),

kokonaislukuja (integer), desimaalilukuja (real) tai päivämääriä (date). Niiden

tyyppiä ei näe käyttöliittymästä, mutta yleensä se selviää kentän nimestä.

Erityisesti ID-tyyppiset kentät ovat merkkijonoja. Päivämääräkenttien

hyväksymä päivämäärän muoto riippuu tietokoneen asetuksista. Windows NT

–käyttöjärjestelmässä päivämäärän muoto asetetaan ohjauspaneelin (Control

Panel) maakohtaiset asetukset (Regional Settings) –valikosta. Samasta paikasta

voidaan myös asettaa desimaalierottimen tyyppi.

Kun viitekenttää yritetään muuttaa, avautuu uusi näkymä siihen tauluun, johon

viittaus osoittaa (ks. kuva 15). Tästä taulusta valitaan se tietue, johon

viittauksen halutaan osoittavan, ja painetaan OK-nappia. Kyseinen tietue

voidaan myös luoda avautuneesta näkymästä, mikäli se on tarpeen. Kun

Kuva 13. Filtteröity näkymä Element Yields –tauluun. Hakuehto on “ElementID = Cu”.

Page 42: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

42

viitetietue on valittu, sen avaimet kopioituvat viitekenttiin.

Tietuiden lisäys suoritetaan erillisessä ikkunassa, koska kaikki muutokset pitää

kirjoittaa tietokantaan kerralla. Tällä tavoin mahdollistetaan myös muutosten

peruminen, mikä ei olisi mahdollista, jos näkymän kenttiä muutettaisiin

välittömästi. Online-versiossa tietokannan taulut pitää lukittaa siksi aikaa, kun

tietueita muutetaan, jotta eri käyttäjät eivät muuttaisi samaan aikaan samoja

tietueita.

Kuva 14. Ikkuna tietueen lisäämiseen ja muuttamiseen. Quantityn, ArrivalRaten, Pricen ja In Usen aloitusarvot näkyvät kuvassa.

Kuva 15. Elements-tauluun avattu valintanäkymä. Ainoa ero tavalliseennäkymään on oikeassa alareunassa olevat OK- ja Cancel-napit.

Page 43: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

43

5.4 IMPLEMENTAATIOTASON RAKENNE

Tässä kappaleessa käsitellään tietokannan käyttöliittymän koodin rakennetta ja

siihen liittyviä kysymyksiä. Nämä tiedot on tarkoitettu lähinnä käyttöliittymää

kehittävien henkilöiden tiedoksi.

5.4.1 KÄYTTÖLIITTYMÄOHJELMISTON RAKENNE

Käyttöliittymän ikkunat on lueteltu taulukossa 5.1, ja sen koodi rakentuu

taulukon 5.2 mukaisesti.

Taulukko 5.1. Käyttöliittymän ikkunat.

Ikkuna KuvausAboutBox Ilmoittaa tietoja ohjelmistosta ja sen tekijöistä.DBForm Sisältää tietokannan käsittelyyn vaadittavat kontrollit.EditForm Tietueiden lisäykseen ja muokkaukseen käytetty

ikkuna.MainForm Käyttöliittymän pääikkuna.TableDialog Näkymä tietokantaan.

Taulukko 5.2. Käyttöliittymän koodin rakenne.

Tiedosto SisältöAbout.cppAbout.h

AboutBoxin implementaatio. Generoitua koodia.

AmroDBMgr.cppAmroDBMgr.h

Alkuproseduuri. Generoitua koodia.

DBCtrls.cppDBCtrls.h

DBFormin implementaatio. Generoitua koodia.

DBFunc.cppDBFunc.h

C++ tietokantarajapinta.

DBStructure.cppDBStructure.h

C++ implementaatio tietokannan rakenteesta.Riippuvuus tietokannan rakenteeseen.

Edit.cppEdit.h

EditFormin toiminnallisuus.

Global.cppGlobal.h

Globaalit muuttujat.

globaldef.cppglobaldef.h

Globaalit määrittelyt.

iniwrite.cppiniwrite.h

Ini-tiedoston luku- ja kirjoitusrutiinit.

MainCode.cppMainCode.h

MainFormin toiminnallisuus.

TableMDIDialog.cppTableMDIDialog.h

TableDialogin toiminnallisuus.

WindowPos.cppWindowPos.h

Ikkunan keskitys- ja paikantallennusrutiinit. Vaatiiiniwrite.cpp:n toimiakseen.

Keskeiset tiedostot ovat MainCode.cpp, Edit.cpp, TableMDIDialog.cpp,

Page 44: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

44

DBStructure.cpp ja DBFunc.cpp sekä näihin liittyvät header-tiedostot. Näistä

kolme ensimmäistä implementoivat käyttöliittymän keskeiset ikkunat ja kaksi

viimeistä vastaavat käyttöliittymän rajapinnasta tietokantaan.

5.4.2 DBSTRUCTURE

DBStructure.cpp ja DBStructure.h vaativat erityistä huomiota, sillä ne

implementoivat tietokannan rakenteen. Tietokannan taulut, viitteet ja kentät on

implementoitu olioina, eli kyseessä on relaatiotietokannan mallintaminen

oliopohjaisesti. Relaatiotietokannan osia vastaavat DBStructuressa DBTable-,

DBReference- ja DBField-oliot. Näiden välisiä suhteita kuvaa liitteenä 4 oleva

DBStructuren UML-kaavio. DBTable-olioiden välisiä suhteita kuvaavat linkit

(link). DBTablen linkit ovat osoittimia sellaisiin tauluihin, joista on

DBReference-viite kyseiseen tauluun. Käytännössä ne implementoivat

viitteiden takaperoisen navigoitavuuden, joita tarvitaan näkymien

filtteröinnissä. Linkkien tallettaminen DBTable-olion listaan on oikeastaan

tiedon monistamista, sillä sama tieto saataisiin käymällä kaikki viittaukset läpi

ja valitsemalla niistä ne, jotka osoittavat kyseiseen DBTable-olioon. Näin ei

kuitenkaan menetellä, koska viittausten läpikäyminen olisi työlästä ja se monin

paikoin epäselventäisi koodia.

Tietokannan rakenne on koodattuna edellä mainituilla oliolla

DBStructure.cpp:n funktiossa CreateAmroDatabase(). Tämän rakenteen on

ehdottomasti vastattava todellisen tietokannan rakennetta. Mikäli tietokannan

rakennetta muutetaan, esim. lisäämällä uusi kenttä johonkin tauluun, on

vastaava muutos tehtävä myös DBStrucure.cpp:hen. Jos näin ei menetellä,

käyttöliittymä olettaa tietokannan muodoksi muuta, kuin mitä se

todellisuudessa on, mikä todennäköisesti johtaa virhetilanteisiin.

Liitteenä 1 olevassa E/R-kaaviossa, jokainen tietokannan taulu on numeroitu

yksilöllisellä numerolla. Tämä numero edustaa taulujen luomisjärjestystä sekä

SQL-skriptissä että DBStructure.cpp:ssä. Se on erityisen tärkeä

DBStructure.cpp:ssä, jossa – vastoin kuin SQL:ssä – ei voida viitata tauluihin

niiden nimen perusteella, vaan täytyy käyttää luomisjärjestyksen numeroa.

DBTable-oliot luodaan tables-listaan, joka on määritelty DBStructure.h:ssa. On

tärkeää huomata, että tauluja ei voida luoda missä järjestyksessä tahansa, vaan

on noudatettava melko tarkkaan määrättyä järjestystä. Rajoitukset muodostuvat

siitä, että sellaisiin tauluihin, joita ei ole luotu, ei voida viitata.

Page 45: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

45

Mikäli tietokannan viittauksia muutetaan radikaalilla tavalla, voi olla, että

taulut joudutaan luomaan eri järjestyksessä, jolloin myös niiden numerointi

muuttuu. Tällöin suuri osa CreateAmroDatabase()-proseduurista joudutaan

kirjoittamaan uudestaan, mikä on aikaa vievää ja virhealtista.

5.4.3 TABLEDIALOG

Tietokannan näkymäikkuna, TableDialog, toimii kahdessa eri moodissa: MDI-

alaikkunana ja modaalina dialogina. Ensimmäisessä moodissa ikkuna on

“tavallinen” näkymä tietokantaan, joka avautuu pääikkunan sisälle.

Jälkimmäiseen moodiin ikkuna avataan vain, kun siitä tehdään viitteen

valintaikkuna. Tällöin ikkuna avautuu pääikkunan ulkopuolelle erilliseksi

dialogiksi, ja siihen myös ilmestyy OK- ja Cancel-napit. OK-nappia

painettaessa valinta talletetaan TableDialogin selectedKeys-muuttujaan, josta se

voidaan jälkeen päin lukea. Dialogimoodissa näkymästä ei voida avata

filtteröityjä näkymiä.

5.5 KÄYTTÖLIITTYMÄN ANALYYSI

5.5.1 LAAJENNETAVUUS

Tässä dokumentissa käsitelty tietokannan käyttöliittymää voidaan käyttää

minkä tahansa staattisen tietokannan käyttöliittymänä (tietokannan, jonka

tauluja ja kenttiä ei muuteta, eikä uusia tauluja luoda). Tämä edellyttää

DBStructuressa määritellyn tietokannan muodon uudelleenkoodaamista.

5.5.2 RAJOITUKSET

Käyttöliittymällä ei voida muuttaa tietokannan rakennetta, eikä sitä voida

käyttää kuin staattisten tietokantojen kanssa. Se on tarkoittettu yksin omaan

tietueiden muokkaamiseen. Koska AMRO-projektin yhteydessä käytettävä

tietokannan rakennetta ei muuteta aktiivisesti, oli luonnollista, että rajoituttiin

vain tällaisten tietokantojen käsittelyyn. Koska koko tietokanta sisältää vain

optimoinnin ja estimoinnin vaatimaa tietoa, ei sen rakennetta voida muuttaa

ilman, että muutoksen vaikutukset optimointi ja estimointimoduulissa

huomioidaan.

Tietokannan käyttöliittymä ei tue vapaita SQL-kyselyjä, vaikkakin niiden

Page 46: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

46

toteutus olisi verrattain yksinkertaista. Käyttöliittymä on kuitenkin tehty juuri

SQL-kutsujen korvaamiseksi, joten toimintoa ei nähty tarpeelliseksi toteuttaa.

Monimutkaisia SQL-kutsuja ei ole myöskään toteutettu. Niistä keskustellaan

enemmän seuraavassa kappaleessa.

5.5.3 SOPIVUUS KÄYTTÖTARKOITUKSEENSA JA PARANNUSEHDOTUKSIA

Tietokannan käyttöliittymän käyttäminen vaatii melko hyvää tuntemusta

tietokannan rakenteesta, koska näkymien filtteröinnin hallinta vaatii sitä.

Esimerkiksi jos haluaa tarkastella tietyn tuotteen laadutusrajoja, ei pidä avata

laadutusrajataulua, vaan tuotetaulu, josta sitten avaa filtteröidyn näkymän

laadutusrajatauluun. Tämän hetkinen filtteröinti sallii ainoastaan karsinnan

avainkenttien perusteella. Toiminnallisuutta esimerkiksi siihen, että haluaa

hakea tiettynä päivänä tapahtuvat sulatukset, ei ole.

Käyttöliittymä ei tarjoa erikoistyökaluja yleisimpiin toimintoihin, vaan niihin

on käytettävä käyttöliittymän näkymiä. Erikoistyökaluja ei ole voitu toteuttaa,

koska ei ole tutkittu, mitkä toiminnot olisivat tärkeitä ohjelmiston käyttäjille.

Yksi yleisimmistä ohjelmistoprojektien virheistä on turhien ominaisuuksien

toteutus (Haikala ja Märijärvi 1998). On selvää, että väärien tai turhien

ominaisuuksien kehittäminen ohjelmistoon sekä vaikeuttaa ohjelmiston

jatkokehitystä että hukkaa resursseja. Kuitenkin kun ohjelmistoa integroidaan

Outokummun tietojärjestelmiin, voidaan käytettävyysanalyysi suorittaa, ja sen

perusteella päättää, mitkä toiminnot vaativat parempia ominaisuuksia käyttö-

liittymältä ja mitkä kannattaa suorittaa jo olemassa olevalla toiminnallisuudella.

Tietokannan käyttöliittymästä puutuvat online-ohjeet. Niiden tekeminen ei

kuitenkaan ollut ajankohtaista ensimmäisessä vaiheessa, sillä käyttöliittymä

tulee todennäköisesti muuttumaan, kun siirrytään Outokummun järjestelmiin.

Käyttöliittymään tulisi jatkossa implementoida kaikki tärkeimmät tietokanta-

toiminnot. Nämä tulisi selvittää käytettävyysanalyysin perusteella. Näitä

olisivat sellaiset SQL-kyselyt, joita ei voisi suorittaa näkymän filtteröinnillä.

Esimerkiksi tekememättä olevien sulatusten haku on tällainen toiminto.

Näkymiä tulisi voida filtteröidä vapaamuotoisen hakuehdon perusteella,

esimerkiksi “Päivämäärä <= 1.1.1999” tai “Source = N.N.”. Jotta hakuehdoista

saataisiin käytettäviä, niiden implementaatio tulisi miettiä tarkkaan.

Page 47: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

47

Hakuehtojen avulla käyttäjä voisi valita sellaiset tietueet, joita ei saa tämän

hetkisellä filtteröinneillä tehtyä. Esimerkiksi tiettynä päivänä tehtyjen

sulatusten haku onnistuisi tällaisilla filttereillä.

Tietuiden muokkausikkunassa kenttien tyypit voisi lisätä erikoismerkkilistaan.

Toisaalta liiallinen erikoismerkkien paljous voi haitata käytettävyyttä.

Pahimmillaan kentän nimen perässä voisi siis olla neljä tai viisi erikoismerkkiä,

ja tällöin katoaisivat tavalliset kentät, joiden nimen perässä ei ole yhtään

erikoismerkkiä.

Parantamista löytyy myös SQL-kyselyden virheilmoitusten hallinnasta. Käyttö-

liittymä voisi ilmoittaa tarkan virheilmoituksen eikä ainoastaan että virhe

tapahtui.

DBStructureen voisi lisätä tulevaisuuden varalta tietotyypin time, jota SQL

tukee.

Tulevaisuudessa on mahdollista luoda tietokantaeditori, jolla tietokannan

muoto voitaisiin koodata ja tallettaa tiedostoon, josta käyttöliittymä lukisi sen.

Paras mutta työläin tapa olisi tehdä käyttöliittymään SQL-kieltä ymmärtävä

parseri, joka lukisi tietokannan rakenteen suoraan tietokannan luovista SQL-

skripteistä. Tällainen toteutus mahdollistaisi myös dynaamisen tietokanta-

arkkitehtuurin, jossa tauluja ja uusia kenttiä voitaisiin luoda ajon aikana.

Tällöin vastaava toimenpide pitäisi suorittaa myös DBStructuressa.

Jotkut edellä mainituista ominaisuuksista jätettiin toteuttamatta offline-

versioon, koska rajallisen ajan puitteissa pyrittiin keskittymään vain

ohjelmiston olennaisiin osiin. Osaa ominaisuuksista ei voitu toteuttaa, koska

niiden tarpeellisuudesta ei ollut varmuutta (vrt. Haikala ja Märijärvi 1998).

Page 48: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

48

6. OHJELMISTON INTEGEROINTI OUTOKUMMUN JÄRJESTELMIIN

6.1 YLEISKUVAUS

Projektin toisessa vaiheessa ohjelmiston offline-versio integroidaan

Outokumpu Polarit Oy:n Tornion tehtaiden tietojärjestelmiin, eli siitä tehdään

online-versio. Online-versiossa ohjelmiston eri osat on hajautettu siten, että

tietokanta ja laskentamoduuli ovat UNIX-ympäristössä, ja käyttöliittymät

keskustelevat niiden kanssa Windows-ympäristöstä notifikaatiopalvelimen

avulla. Tietoliikenne tapahtuu TCP/IP-protokollalla, joten periaatteessa se voi

kulkea internetin kautta. Kuitenkin turvallisuuskysymykset saattavat estää näin

laajan käytön. Todennäköisesti ohjelmistoa tullaan kuitenkin käyttämään vain

Outokummun Tornion tehtaiden sisäisessä verkossa.

Online-versio on suunniteltu toteutettavaksi MVC-arkkitehtuurilla, jonka

pääperiatteet kerrottiin kappaleessa 3. Tässä kappaleessa taas keskitytään

online-version yksityiskohtiin.

6.2 TOTEUTUS MVC-ARKKITEHTUURILLA

Liitteenä 5 olevassa kaaviossa on kuvattu, kuinka ohjelmiston arkkitehtuuri

muuttuu siirryttäessä online-versioon. BDE:stä luovutaan ja siirrytään

käyttämään Outokummun notifikaatiopalvelua. Eri ohjelmien funktioiden

rajapinnat pidetään samanlaisina kuin ennenkin, mutta itse funktiot muutetaan

käyttäämään sqlclient-kirjastoa, jolla tietoliikenne notifikaatiopalvelun kautta

tapahtuu.

MVC-arkkitehtuuri vaatii, että tietokanta rekisteröi siihen yhteydessä olevat

käyttöliittymät, jotta päivityskutsut voitaisiin lähettää. Tästä syystä joudutaan

lisäämään käyttöliittymiä kirjaava palvelu tietokannan ja käyttöliittymien

väliin. Tästä palvelusta käytetään tässä nimeä AMRO-SQL-Server. Se myös

vastaanottaa kaikki tietokannalle tulevat SQL-kyselyt ja lähettää ne edelleen

tietokannalle. Jos kyselyn tuloksena tietokanta muuttui, AMRO-SQL-Server

lähettää päivityspyynnön kaikille siihen kirjautuneille käyttöliittymille.

AMRO-SQL-Server toteutetaan käyttämällä Outokummun sqlserver02-

kirjastoa.

Tietokannan käyttöliittymille joudutaan kirjoittamaan prosessi, joka kuuntelee

Page 49: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

49

jatkuvasti, mitä pyyntöjä AMRO-SQL-Server lähettää. Tyypillisin näistä on

näkymien päivityspyyntö, mutta myös virheilmoitukset lähetetään samalla

tavalla. Virheilmoitukset menevät tyypistä riippuen yhdelle tai useammalle

käyttöliittymälle. Tietokanta ja sen käyttöliittymät toimivat ikään kuin client-

server-arkkitehtuurissa.

6.3 TOTEUTUS ILMAN MVC-ARKKITEHTUURIA

Online-versio voidaan toteuttaa myös ilman MVC-arkkitehtuuria. Kaavio tästä

vaihtoehdosta on liitteenä 6. Tässä arkkitehtuurissa käyttöliittymät päivittävät

itse tietojaan aina silloin, kun niitä tarvitaan. Käyttäjä ei kuitenkaan voi olla

varma, näkyykö näkymissä tietokannan todellinen sisältö vai onko se ehtinyt

muuttua. Hän voi kuitenkin päivittää näkymän halutessaan. Tämä arkkitehtuuri

on ongelmallinen poistojen ja muutosten yhteydessä, koska käyttäjä ei voi olla

varma, onko hänen valitsemaansa tietuetta jo muutettu tai onko sitä enää

olemassa. Tällaiset tilanteet johtavat helposti omituisiin virheilmoituksiin,

joissa todetaan esimerkiksi, ettei valittua tietuetta löydy.

Tämän toteutuksen etuna on se, ettei AMRO-SQL-Serveriä tarvita, eikä

suhteellisen monimutkaista client-server-kommunikointia tarvitse siis toteuttaa.

Jos tietokannalla on melko vähän käyttäjiä tai käyttäjät operoivat yleensä eri

tauluja, virhetilanteet ovat harvinaisia.

6.4 TIETOKANTA

Online-versiossa Paradox 7 vaihdetaan Informix-tietokantaan, joka on

Outokummun virallinen tietokanta. Koko tietokanta joudutaan luomaan alusta

lähtien. Mikäli Informix tukee SQL-skriptejä, voidaan tietokanta luoda liitteenä

2 olevalla skriptillä. Tähän tietokantaan lisätään ne tietokannan eheyden

säilyttämiseen tarvittavat rajoitukset, joita Paradox 7 ei tukenut (ks. kappale 4).

Riippumatta online-version arkkitehtuurivalinnasta käyttöliittymä joutuu

lukittamaan tietokannan taulun aina, kun se on muuttamassa sitä. Lukitettua

taulua ei voi muuttaa muista käyttöliittymistä. Tämä takaa sen, että useampi

käyttäjä ei voi muuttaa samaa tietuetta samaan aikaan. Mikäli tällainen tilanne

syntyy, käyttäjät joutuvat odottamaan, että edellinen lukitus vapautuu, ennen

kuin he voivat itse lukittaa taulun. Tämä voi hidastaa tietokannan käyttöä

merkittävästi.

Page 50: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

50

Mikäli Outokummulla on tietokantatauluja, joiden käytöstä he eivät halua

luopua, on mahdollista, että ne halutaan integroida ohjelmistoon. Tämä voi olla

kuitenkin suhteellisen vaikeaa tai jopa mahdotonta, jos taulut eivät sisällä

kaikkea optimoinnin ja estimoinnin tarvitsemaa tietoa. Lisäksi, jos taulujen

rakenne ja hierarkia poikkeavat merkittävästi offline-versiossa olleesta,

joudutaan ohjelmisto kirjoittamaan paikoin kokonaan uudelleen. Erityisen

vaikeaa tämä on optimointi- ja estimointimoduulin kohdalla, jonka

muuttaminen vaatii käytettyjen algoritmien tuntemusta.

6.5 KÄYTTÖLIITTYMÄ

Jos online-versio toteutetaan MVC-arkkitehtuurilla, käyttöliittymään joudutaan

implementoimaan prosessi, joka vastaanottaa AMRO-SQL-Serveriltä viestejä –

erityisesti päivityspyyntöjä. Vanhasta päivitystoiminnallisuudesta säilytetään

näkymien Refresh-toiminto (ks. kappale 5.3.2), jolla käyttäjä voi halutessaan

varmistua siitä, että taulun tiedot ovat ajan tasalla. Lisäksi tietueita

muutettaessa täytyy huomioida, että kyseisen tietueen taulu voi olla lukitettuna.

Online-versioon siirryttäessä tietokannan taulujen rakenne saattaa muuttua.

Varsinkin, jos Outokummulla on olemassa jo valmiita tietokantatauluja, jotka

ovat olleet pitkään käytössä ja joihin he ovat tottuneet (ja joiden rakenne on

todennäköisesti aivan erilainen kuin offline-versiossa oleva), on mahdollista,

että näitä joudutaan käyttämään. Tällöin DBStrucuressa oleva tietokannan

rakenne (ks. kappale 5.4.2) joudutaan koodaamaan uudelleen.

6.6 OPTIMOINTI- JA ESTIMOINTIMODUULI

Optimointi- ja estimointimoduulin integrointi ei varsinaisesti kuulu tämän

erikoistyön piiriin, mutta muutamia yleisiä huomioita voidaan tehdä.

Optimointi- ja estimointimoduuli käyttää samaa rajapintaa (DBFunc)

tietokantaan päin kuin tietokannan käyttöliittymä, joten tietokantakutsuja ei

tarvitse uudelleenkirjoittaa kuin kertaalleen.

Optimointi- ja estimointimoduuli ja sen käyttöliittymä on muokattava

toimimaan MVC-arkkitehtuurissa. Itse moduuli operoi tietokantaa AMRO-

SQL-Serverin kautta. Tarvittavat taulut – joita on paljon – on joka tapauksessa

Page 51: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

51

lukitettava optimoinnin ja estimoinnin ajaksi, jotta tiedot eivät muuttuisi kesken

prosessia. Optimointi- ja estimointimoduulin käyttöliittymään on joko tehtävä

samat MVC-arkkitehtuurimuutokset kuin tietokannan käyttöliittymään tai sen

on lukitettava tarvitsemansa taulut käynnistyessään. Jälkimmäinen tapa on

kömpelömpi mutta helpompi toteuttaa.

Tietokannan lukittumisen takia online-versiossa optimoiminen ja estimoiminen

on syytä toteuttaa silloin, kun tietokantaa ei muuteta, esimerkiksi iltaisin tai

öisin. Mikäli tällaiseen ei haluta ryhtyä, niin tietokanta voidaan kopioida

optimointia ja estimointia varten. Tällöin alkuperäistä tietokantaa ei tarvitsisi

lukita.

Page 52: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

52

7. YHTEENVETO JA POHDINNAT

Outokumpu Polarit AMRO-projektin pääasiallisen haasteen muodostaa jatkossa

offline-version integroiminen osaksi Outokummun tietojärjestelmiä. Projektin

toisen vaiheen riskit voidaan jakaa viiteen luokkaan: tietokantaan, tietokannan

käyttöliittymään, optimointi- ja estimointimoduuliin, arkkitehtuuriin sekä

projektin hallintaan liittyviin riskeihin. Tietokantaan liittyvän riskin muodostaa

erityisesti Outokummun käytössä olevan tietokannan rakenne, joka saattaa

poiketa ennakoidusta. Lisäksi kovarianssimatriisien talletusongelma vaatii

pikaista ratkaisua. Tietokannan käyttöliittymään kohdistuu riskejä

toiminnallisuuden riittävyyden osalta. Optimointi- ja estimointimoduulin

riskejä ei ole tarkemmin kartoitettu, sillä ne eivät varsinaisesti kuulu tämän

erikoistyön piiriin. Arkkitehtuurin tulevana haasteena on monen käyttäjän

MVC-arkkitehtuurin onnistunut toteuttaminen. Projektin hallinnollisista

riskeistä vakavin on projektin henkilöstön voimakas vaihtuvuus, joka hidastaa

projektin etenemistä, kun uudet työntekijät joudutaan tutustuttamaan aiemmin

tehtyihin asioihin.

Katsomme, että offline-version tietokanta ja sen käyttöliittymä suoriutuvat

tehtävistään mainiosti. Lisäksi ohjelmiston MVC-arkkitehtuuri, tietokannan

joustavuus ja käyttöliittymän oliopohjaisuus ovat periaatteita, joiden pohjalta

jatkokehityksen tulisi olla helppoa ja vaivatonta. Uskommekin, että online-

version riskit voidaan välttää asianmukaisella riskien ja projektin hallinnalla.

Page 53: Amron tietokanta ja sen käyttöliittymäsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.4108/...17.12.1999 OUTOKUMPU POLARIT AMRO-PROJEKTI: TIETOKANTA JA SEN KÄYTTÖLIITTYMÄ JANNE

53

Lähdeteokset

Gustafsson, Janne, Gustafsson, Tommi, Saarinen, Mikko (1999). Terästehtaan sulatusten optimointi, Tik-76.143 Tietojenhallintajärjestelmät, harjoitustyö, TKK.

Haapalinna, Ville, Tolvanen, Tuomas (1998). Valokaariuunin panostuksen simulointi. Case: OutokumpuPolarit Oy, Tornio. Mat-2.170 Simulointi, 3. harjoitustyö, Systeemianalyysin laboratorio, TKK.

Haikala, Ilkka, Märijärvi, Jukka (1998). Ohjelmistotuotanto, Suomen ATK-kustannus.

Ikäheimo, Jussi (1999): Adaptive raw material charge optimization system for a steel plant,Systeemianalyysin laboratorio, TKK.

Kuronen, Tommi (1998). AMRO-vaatimusmäärittely, Outokumpu Polarit.

Lahdelma, Risto, Hakonen, Henri, Ikäheimo, Jussi (1999). AMRO - Adaptive Metallurgical Raw MaterialOptimization.

Outokumpu Polarit (1995). 9113 ROPI-II Keskitetty ohjelmistohälytysten, käyttöhäiriöiden jasovellusnotifikaatioiden hallinta: Toiminnalliset vaatimukset.

Outokumpu Polarit (1998). SUTI / 9113 ROPI-II, The Connect to the Dynamic Database Server: FunctionalDefinitions.

Ullman, Jeffrey D., Widom, Jennifer (1997). A First Course in Database Systems, International Edition,Prentice-Hall.

WWW-osoitteita

http://www.outokumpu.com/