PROSESSI- JA MATERIAALITEKNIIKAN OSASTO MATERIAALI- JA KALLIOTEKNIIKAN LAITOS
Leo Salminen
KIVIAINESTUTKIMUSPROJEKTIN TIEDONHALLINTAOHJELMISTO
Diplomityö, joka on jätetty opinnäytteenä tarkastettavaksi diplomi-insinöörin tutkintoa varten Espoossa T. f f. f990
Työn valvoja ja ohjaaja
Markku Peltoniemi apulaisprofessori
Tekijä ja työn nimi : Leo Salminen
Kiviainestutkimusprojektin tiedonhallintaohjelmisto
Päivämäärä : 10.9.1990 Sivumäärä : 50
Osasto : Prosessi- ja materiaalitekniikan osasto Professuuri : Mak-33
Materiaali- ja kalliotekniikan laitos Tai. geologia
Työn valvoja : Apulaisprofessori Markku Peltoniemi Työn ohjaaja : Apulaisprofessori Markku Peltoniemi
Kiviainestutkimus on Tie- ja vesirakennushallituksen (TVH), Ympäristöministeriön (YM) ja Geolo
gian tutkimuskeskuksen (GTK) yhteisrahoitteinen tutkimusprojekti Suomen kiviainekseltaan korkealuokkaiseksi murskeeksi sopivien kallioalueiden inventoimiseksi. Sen tuloksena syntyy tässä työssä laadittu ja kuvattu ATK-pohjainen kiviainesrekisteri viranomaiskäyttöön.
Rekisteri perustuu GTK: n VAX-tietokoneeseen suunniteltuihin RDB-tietokanta- ja Fingis-karttatie- tokantasovelluksiln. Lisäksi käytössä on mikrotietokoneessa toimiva tallennusohjelma, jonka avulla maastohavainnot voidaan tallentaa välittömästi, vaikkapa tukikohdassa, ja siirtää myöhemmin RDB-kantaan.
Kustakin kartoitetusta muodostumasta tallennetaan kiven käyttötarkoitusten kannalta olennaiset geologiset tiedot ja sijaintitiedot.
Tietokanta on rakenteeltaan yksinkertainen, mikä nopeuttaa sekä tiedonsiirtoa mikron ja keskus
koneen välillä että lopulliseen tulostukseen liittyviä haku- ja lajitteluoperaatioita. Tietojen yhtenäi
syys ja oikeellisuus varmistetaan mahdollisimman pitkälle ohjelmallisesti tallennuksen yhteydes
sä.
Tulosteina saadaan halutuin kriteerein valikoituja ja lajiteltuja kirjallisia raportteja, joita on laajuu
deltaan kolmea tyyppiä, sekä karttoja, joiden alue, mittakaava ja elementit ovat valittavissa.
Ohjelmistoa on käytetty projektin koealueena olleen pääkaupunkiseudun ja ympäristökuntien kartoitustietojen tallennukseen ja tulostamiseen, jolloin sen on havaittu toimivan suunnitellulla tavalla. Ohjelmistoa tullaan jatkossa laajentamaan parhaista kohteista poimituille kivinäytteille tehtävien laboratoriotutkimustulosten tallentamiseen soveltuvaksi.
Author and name of the thesis : Leo Salminen
The data management system of the Hard Rock Aggregate Studies project
Date : September 10, 1990 Number of pages : 50
Department : Department of Materials Science and Professorship : Mak-33 Rock Engineering
Supervisor : Associate professor Markku Peltoniemi Instructor : Associate professor Markku Peltoniemi
The Hard Rock Aggregate Studies is a project for establishing the potential of particular rock units as sources for high quality crushed aggregate. The project is financed by the National Board of Roads and Waterways, Ministry of Environment and the Geological Survey of Finland. The project will result in a computer based rock unit register to be used by the authorities.
The software consists of the applications of the RDB-database and the Fingis-map-database in the VAX computer of the Geological Survey. In addition there is a storing program running in micro computers for input and preliminary storage to be carried out in a field base.
The geological parameters important for future use as well as some location information are stored for each type of mapped formation.
The structure of the database is simple, which speeds up both data transfer between PC and the central computer, and the searching and sorting processes associated to final output. The program secures the compatibility and accuracy of the data during input as far as possible.
As an output there are printed reports of three sizes, which can be selected and sorted according to wanted criteria, and also maps whose area, scale and elements can be defined by the user.
The software has now been used for processing the data of a test area which consists of Helsinki city and neighbouring districts; it has proved to work properly. In future, the software will be extended for storing the results of laboratory measurements of rock samples collected from the best study areas.
Tiivistelmä Abstract
1. Johdanto ... 5
2. Relaatiotietokannan teoriaa... 7
2.1. Käsitemalli ... 7
2.2. Relaatiomalli... 9
2.3. Normalisointi... 12
2.4. Tietokannan hallintaohjelmisto ... 16
3. Tiedonhallintatarpeiden määritys... 17
4. Tietokannan rakenne ... 19
5. Tiedon tallennus... 26
5.1. dBase IV -tietokantaohjelma... 26
5.2. Sovellus... 28
6. Tiedon haku ja tulostus VAXissa... 33
6.1. Kehitysohjelmat... 33
6.2. Sovellus... 34
7. Graafisen tiedon käsittely ... 37
7.1. Pingis ... 37
7.2. Sovellus... 41
8. Tiedonsiirto ... 45
9. Yhteenveto 47
Kiitosmaininnat 50
Liitteet
i
1. Johdanto
Ympäristöministeriön johtamien esiselvitysten seurauksena käynnistyi vuoden 1989 alussa kymmenvuotinen projekti kiviainekseltaan arvokkaiden kallioalueiden inventoi- miseksi. Projektin rahoitus jakautuu TVH:n (50 %), YM:n (20 %) ja GTK:n (30%) kesken. Tämän yhteisrahoitteisen inventointihankkeen toteuttajaksi tuli GTK (Geolo
gian tutkimuskeskus), joka perusti tätä varten projektiorganisaation.
Inventointiprojektin tuloksena syntyy ATK-pohjainen kallion kiviainesrekisteri viran
omaiskäyttöön. Rekisterin ylläpitoon tarvittavan tiedonhallintaohjelmiston kehittämi
seksi GTK teki Teknillisen korkeakoulun insinöörigeologian ja geofysiikan laboratori
on kanssa tutkimussopimuksen, jonka puitteissa on syntynyt tässä esiteltävä ohjelmis
to.
Ohjelmiston tehtävänä on luoda mahdollisuudet havaintoaineiston välittömään tallentamiseen tukikohdassa sekä kirjalliseen ja karttamuotoiseen tulostamiseen keskustietokoneella. Siksi se on koottu kolmesta varsin itsenäisestä osasta: mikrotieto
koneessa toimivasta tallennusohjelmasta sekä GTK:n VAXissa olevista RDB-tietokan- nasta ja Fingis-karttatietokannasta.
Tallennusohjelma mahdollistaa havaintolomakkeiden tietojen rutiininomaisen kopioinnin mikrotietokoneen tietokantaan sekä yksinkertaiset listaukset tallennettujen tietojen tarkastamiseksi. Se voidaan tarpeen mukaan kopioida useampaan mikroon.
RDB-tietokannan hallintaohjelmisto ei sisällä (ainakaan toistaiseksi) lainkaan tietojen tallennusmahdollisuutta, vaan ainoastaan kopioinnin mikrojen tietokannoista. Sen tehtävänä on toimia lopullisena tietovarastona ja tulostusohjelmana.
Pingis on kuvänkäsittelyohjelmisto, joka on tarkoitettu vektorimuotoisen karttatiedon käsittelyyn. Sen sovellusta käytetään kiviainesprojektin kartoittamien muodostumien esittämiseen niiden sijaintien, muotojen ja pinta-alasuhteiden havainnollistamiseksi.
Tiedonhallintaohjelmiston ja sen käyttämien tietokantojen päärakenteet tehtävineen on kuvattu menemättä kuitenkaan ohjelmointiteknisiin yksityiskohtiin. Varsinaisia
ohjelmadokumentteja lähdekoodilistoineen /6, 7 ja 8/ ei niiden laajuuden vuoksi ole otettu mukaan. Käytetyt laitteet on mainittu ja kehitysohjelmista tärkeimmät on esitelty pääpiirteittäin.
Alun relaatiotietokantojen teoriaa käsittelevässä osassa on määritelty keskeisimmät jatkossa esille tulevista termeistä. Useimmat asiat on kuvattu esimerkkien avulla, jotka sisällöltään sivuavat tulevaa aihetta.
2. Relaatiotietokannan teoriaa
ATK-sanakirjaa /1/ lainaten tietokanta on kokoelma tiettyä kohdetta kuvaavia tietoja, joita yksi tai useampi tietosysteemi käyttää ja päivittää. Ollakseen hyödyllinen tietokanta tarvitsee rinnalleen ohjelmiston, jolla ihminen saa kannasta toiminnassaan tarvitsemansa tiedot ja ylläpitää niitä. Tällaista ohjelmistoa kutsutaan tietokannan hallintajärjestelmäksi /5/.
2.1. Käsitemalli
Se asiakokonaisuus, jota kuvaavia tietoja kantaan talletetaan, on määriteltävä täsmällisesti, jotta tietokanta voidaan suunnitella rakenteeltaan mahdollisimman hyvin nykyisiä ja tuleviakin tarpeita vastaavaksi. Nykyisin yleisesti käytetty määrittelytapa perustuu käsitemalliin. Siinä kuvattava asiakokonaisuus esitetään käsitekaaviona, joka koostuu yksilöistä ja niiden välisistä yhteyksistä. Yksilöillä on ominaisuuksia, jotka saavat erilaisia arvoja. Aluksi määritellään kaikki kyseeseen tulevat
yksilötyypit, ominaisuustyypit, arvotyypit ja yhteystyypit.
Yksilöitä (entity, käytetään myös nimitystä "kohde", esim /9/) ovat ne konkreettiset tai abstraktit kohteet, joihin liittyvää tietoa kantaan talletetaan. Sellainen voi olla vaikkapa jokin geologinen muodostuma tai geofysikaalinen mittaussarja. Tietokannas
sa samalla tavalla käsiteltävät yksilöt kuuluvat samaan yksilötyyppiin. Sama yksilö voi kuulua myös useampaan yksilötyyppiin; tällöin sisällöltään laajinta tyyppiä kutsutaan kantatyypiksi ja sen osajoukkoja rooleiksi.
Kaikki tiettyyn yksilöön liittyvät sitä kuvaavat asiat ovat sen ominaisuuksia. Geologi
sen muodostuman ominaisuus voisi olla esimerkiksi korkeus. Tällöin kaikilla yksilö- tyyppiä "geologinen muodostuma" olevilla yksilöillä on ominaisuustyyppiä "korkeus"
oleva ominaisuus.
Kukin ominaisuus saa jonkin arvon. Arvotyypin avulla määritellään ne arvot, joita jokin ominaisuustyyppi voi saada ja mitä ne merkitsevät. Kuhunkin ominaisuustyyppiin liittyy yksi arvotyyppi, mutta samaa arvotyyppiä voidaan käyttää useamman ominai- suustyypin yhteydessä. Muodostuman korkeuden ilmoittamiseen voidaan käyttää arvotyyppiä "pituusyksikkö", joka määritellään positiiviseksi reaalisuureeksi, jonka yksikkö on metri. Samaa arvotyyppiä voitaisiin käyttää geofysikaalisen mittaussarjan mittauslinjan pituuden ilmoittamiseen.
Ominaisuus voi olla ehdollinen: jos geologisiin muodostumiin kuuluu joki, sille ei kenties ole mielekästä antaa korkeusarvoa. Tällöin korkeus saa arvon "puuttuva"
(null). Toisaalta ominaisuus voi olla moniarvoinen: muodostumalle voidaan mitata suurin ja pienin korkeus tai kymmenen erillisen huipun korkeudet.
Yhteys on jokin kahden yksilön välinen kiinnostava suhde, relaatio. Kaikki tiettyjen yksilötyyppien väliset samoin määritellyt yhteydet muodostavat yhteystyypin. Jos geo
fysikaalinen mittaussarja suoritetaan geologisen muodostuman alueella, näiden yksilöiden välille voidaan määritellä yhteys "suorituspaikka". Myös yhteys voi olla ehdollinen tai moniarvoinen (kompleksinen). Yhteyksien tyypin määrittely on tietokannan rakennetta määriteltäessä aivan keskeisellä sijalla, mutta niiden nimeämi
nen ei ole mitenkään välttämätöntä.
Yksilöiden väliset yhteydet voidaan kuvata käsitekaaviona. Kukin yhteys kuvataan yksilöiden välisenä nuolipäisenä yhdysjanana. Yhteyden tyyppi osoitetaan kuvassa 1 esitetyin lisämerkein.
<—O------- EHDOLLINEN YHTEYS
<4--- ---- YKSI YHTEYS
<—<--- ---- YKSI TAI USEAMPI YHTEYS
Kuva 1: Yliteystyypit graafisin merkein
Edellä esimerkkinä käytettyjen yksilöiden välinen yhteys voidaan osoittaa kuvassa 2 esitetyllä tavalla.
GEOFYS-MITTAUS GEOL-MUODOSTUMA
Kuva 2: Kahden yksilön välinen yhteys
Kukin geofysikaalinen mittaussarja suoritetaan tämän määrittelyn mukaan tasan yhden muodostuman alueella. Yhteys on määritelty pakolliseksi, sillä ei olisi mielekäs
tä suunnitella mittaussarjaa, jota ei edes teoriassa aiota suorittaa missään. Toiseen suuntaan yhteys on sekä moniarvoinen, että ehdollinen: yhden muodostuman alueella voidaan suorittaa useampia mittaussarjoja, mutta toisaalta muodostuma voi olla kannassa jonkin muun tutkimuksen vuoksi, jolloin yhteyttä geofysikaalisiin mittauksiin ei lainkaan ole.
Yhteyden tyyppi moniarvoisuuden suhteen voidaan ilmoittaa lyhyesti seuraavin merkinnöin: "1:1" merkitsee molempiin suuntiin yksiarvoista yhteyttä, "1:N" toiseen suuntaan moniarvoista yhteyttä, kuten kuvassa 2 ja "N:M" molempiin suuntiin moniar
voista yhteyttä.
2.2. Relaatiomalli
Nykyisin uusista tiedonhallintajärjestelmistä valtaosa perustuu relaatiomalliin /5/.
Relaatiomalli on käsitteenä jonkin verran epämääräinen, sillä se on useasta lähteestä alkaneen, yhä jatkuvan kehitysprosessin tämänhetkinen tulos.
Relaatiomallin mukainen tietokanta muodostuu relaatioista, joiden voidaan ajatella olevan kaksiulotteisia taulukoita /4/. Taulukon sarakkeita kutsutaan attribuuteiksi ja
rivejä monikoiksi. Yleensä yksi relaatio edustaa yhtä käsitemallin yksilötyyppiä; tällöin relaation kukin monikko vastaa yhtä ko. yksilötyypin yksilöä ja jokainen attribuutti yhtä ominaisuustyyppiä. Taulukon alkiot siis sisältävät yksilöiden ominaisuuksien arvoja.
Kullakin relaatiolla on perusavain, joka muodostuu yhdestä tai useammasta attribuu
tista. Perusavaimen tulee olla yksilöivä, mikä merkitsee, että relaation kahdella monikolla ei voi olla samaa avaimen arvoa. Toisaalta avaimen on oltava minimaali
nen: siihen ei saa kuulua attribuutteja, jotka eivät yksilöivyyden kannalta ole välttä
mättömiä. Kaikki monikon täysin yksilöivät attribuuttiyhdistelmät ovat avainehdokkai- ta. Ehdokkaista yksi valitaan perusavaimeksi, jolloin muut ovat vaihtoehtoisia avai
mia. Tarvittaessa relaatioon voidaan sisällyttää avaimena toimiva tunnusluvunomai- nen attribuutti, joka saa toistumattomia arvoja, vaikkapa kokonaislukuja juoksevasti talletusjärjestyksen mukaan.
Relaatiotietokannan relaatioiden eli siis yksilötyyppien väliset yhteystyypit toteutetaan viiteavainten avulla. Viiteavain on attribuutti, jonka arvotyyppi on sama, kuin viittauksen kohteena olevan relaation jonkin avainehdokkaan arvotyyppi. Tällaisen viiteavaimen sisältävä relaatio on lapsirelaatio ja viittauksen kohde vastaavasti isärelaatio /5/. Kumpi relaatioista määritellään isäksi ja kumpi lapseksi, riippuu yhteystyypistä. 1:1 -tyyppisen yhteyden tapauksessa viiteavain voidaan sijoittaa kumpaan relaatioon tahansa. Jos yhteystyyppi on 1:N, viiteavain sijoitetaan N:ää yksilöä edustavaan relaatioon. N:M -tyyppinen yhteys esitetään välittävän apurelaation avulla; sen ainoat attribuutit ovat kumpaankin isään osoittavat viiteavaimet.
Relaation rakenne voidaan esittää kuvasta 3 ilmenevällä tavalla.
GEOFYS_MITTAUS (Menetelmä. Aika. Paikka^
GEOL_MUODOSTUMA (Muod-Tunnus. Paikannimi, Karttalehti)
Kuva 3: Relaatioiden esitystapa
Edellä käytetty käsitekaavion esimerkki on kuvattu kahtena relaationa. Relaation nimi on isoin kirjoimin ja sen perässä suluissa attribuutit, joista perusavaimeen kuuluvat on alleviivattu. "Geofys_mittaus" relaation attribuutti "paikka" on sekä osana perusavain- ta, että viiteavain, joka saa "geoljnuodostuma" relaation avaimen arvoja. Muodostu
mille on annettu tunnukset "muod_tunnus", jotka toimivat perusavaimina; yksiosaiseen avaimeen on helpompi viitata, kuin useammasta attribuutista koottuun.
Relaatioista voidaan tarpeen mukaan koota ns. näkymiä (view). Se merkitsee useam
man relaation halutuista riveistä ja sarakkeista viiteavainten avulla koottavaa uutta taulukkoa. Esimerkiksi voitaisiin haluta kaikkien VLF-mittausten ajankohta, suoritus
paikan nimi ja karttalehti. Tällöin näkymään otetaan relaatiosta "geofys_mittaus" rivit, jotka toteuttavat ehdon "MENETELMÄ = VLF" ja näistä riveistä vain "aika" -sarake.
"Geol_muodostuma" relaatiosta viiteavaimen välityksellä valituiksi tulevista riveistä poimitaan sarakkeet "paikannimi" ja "karttalehti". Kuvan 4 kaavio esittää tätä proses
sia.
RELAATIO GEOFYS-MITTAUS RELAATIO GEOL-MUODOSTUMA
Kuva 4: Näkymän määrittelyn periaate
2.3. Normalisointi
Tietokannassa kuvattavan asiakokonaisuuden jakamiseen yksilöiksi, ominaisuuksiksi ja suhteiksi on yleensä olemassa useita erilaisia mahdollisuuksia. Tietokannan olisi hyvä olla rakenteeltaan sellainen, että sitä on helppo käyttää ja ylläpitää. Ylläpidon helppous merkitsee lähinnä sitä, että talletettujen tietojen ristiriidattomuus taataan mahdollisimman pitkälle jo tietokannan rakenteen avulla. Tällaisen rakenteen suunnittelussa voidaan käyttää apuna ns. normalisointisääntöjä. Niiden avulla tieto
kanta voidaan saattaa johonkin normaalimuodoista, joita on määritelty viisi astetta.
Tietojoukko on rakenteeltaan sitä laadukkaampi, mitä korkeampi sen normaalimuo
don aste on. Seuraavana käsitellään esimerkkien avulla normalisoinnin tärkeimmät vaiheet kolmanteen asteeseen saakka, mihin tietokannat yleensä pyritään vähintään saattamaan.
Taulukossa 1 on normalisoimaton esimerkkirelaatio, jossa nähdään seuraavia tehotto
muutta aiheuttavia piirteitä. Johtuen "mineraali" attribuutin moniarvoisuudesta kivilajia ja raekokoa on toistettu, mikä vie tilaa ja altistaa relaation ristiriitaisuuksille.
"Raekoko" attribuuttina on tietokooste, joka sisältää raekokoluokan nimen sekä luokkarajat. Vaikkapa alle 5 mm raekokoa edustavien kivilajien hakeminen tällaisesta relaatiosta tuntematta luokkien nimiä on vaikeaa. Relaation ainoa avainehdokas käsittää sen kaikki attribuutit, mikä tekee relaatioon viittaamisen hankalaksi.
Taulukko 1: Normalisoimaton mallirelaatio
KIVILAJI RAEKOKO MINERAALI
GRANIITTI KESKIRAKEINEN 1 - 5 mm KMAA GRANIITTI KESKIRAKEINEN 1 - 5 mm KVAR GRANIITTI KESKIRAKEINEN 1 - 5 mm BIOT PEGMATIITTI KARKEARAKEINEN 20 - 50 mm KMAA PEGMATIITTI KARKEARAKEINEN 20 - 50 mm KVAR
Mainituista ongelmista päästään eroon jakamalla relaatio kolmeen osaan (taulukko 2), jotka ovat ensimmäisessä normaalimuodossa (1 NM). Niiden väliset suhteet voidaan esittää kuvan 5 kaaviolla.
Taulukko 2: Ensimmäinen normaalimuoto
KIVILAJIT:
KIVILAJIN KOODI KIVILAJI RAEKOKOLUOKKA
1 GRANIITTI KESKI RAKEINEN
2 PEGMATIITTI KARKEARAKEINEN
RAEKOOT:
RAEKOKOLUOKKA ALARAJA YLÄRAJA
KESKIRAKEINEN 1 5
KARKEARAKEINEN 5 20
MINERAALIT:
KIVILAJIN KOODI MINERAALI
1 KMAA
1 KVAR
1 BIOT
2 KMAA
2 KVAR
MINERAALIT «O l> KIVILAJIT «O [> RAEKOOT
Kuva 5: Relaatioiden väliset yhteydet
Relaatio on ensimmäisessä normaalimuodossa, kun /5/
siinä ei ole toistuvia attribuutteja,
jokainen attribuutti on edelleen jakamaton kokonaisuus ja viittaukset muihin relaatioihin perustuvat avainviitteisiin.
Relaatioilla "mineraalit" ja "raekoot" on nyt oleellinen ero: "raekoot" on kattava luettelo raekokoluokista, kun taas "mineraalit" on välittävä apurelaatio kivilajikohtais- ten ja mineraalikohtaisten tietojen välillä; mineraalikohtaista relaatiota ei tässä ole esitetty.
Luonnollisesti tietoa halutaan tallettaa useamman, kuin yhden muodostuman kivila
jeista. Taulukossa 3 on sarakkeet havaintonumerolle, kunnalle ja läänille. Avain koostuu nyt havaintonumerosta ja kivilaadun koodista.
Taulukko 3: Useamman muodostuman kivilajit
HAVJJO KIVILAA
DUN KOODI
KUNTA LÄÄNI KIVILAJI RAEKOKOLUOKKA
00001 1 SIPOO UUDENMAANLÄÄNI GRANIITTI KESKI RAKEINEN
00001 2 SIPOO UUDENMAANLÄÄNI PEGMATIITTI KARKEARAKEINEN
00002 1 HÄMEENLINNA HÄMEENLÄÄNI GRANIITTI KESKI RAKEINEN
00002 2 HÄMEENLINNA HÄMEENLÄÄNI PEGMATIITTI KARKEARAKEINEN
Voidaan havaita, että osa attribuuteista ("kunta" ja "lääni") on riippuvainen vain havaintonumerosta, kun taas osa on riippuvainen koko avaimesta. Se osoittaa, että relaatiossa on tietoa kahdesta eri kohdetyypistä: muodostumasta ja kivilajista. Ilmei
nen ratkaisu on jakaa tiedot kahteen relaatioon (taulukko 4), jotka ovat nyt toisessa normaalimuodossa (2 NM).
Taulukko 4: Toinen normaalimuoto
MUODOSTUMAT:
HAV_NO KUNTA LÄÄNI
00001 SIPOO UUDENMAANLÄÄNI
00002 HÄMEENLINNA HÄMEENLÄÄNI
KIVI LAADUT:
HAV_NO KIVI LAADUN KOODI KIVILAJI RAEKOKOLUOKKA
00001 1 GRANIITTI KESKIRAKEINEN
00001 2 PEGMATIITTI KARKEARAKEINEN
00002 1 GRANIITTI KESKIRAKEINEN
00002 2 PEGMATIITTI KARKEARAKEINEN
Relaatio on toisessa normaalimuodossa, kun /5/
se on 1 NM ja
relaation avainehdokkaisiin kuulumattomat attribuutit ovat täysin funktionaalisesti riippuvaisia avainehdokkaasta.
Relaatiossa Muodostuma attribuutti Lääni on avaimesta täysin riippuvainen, mutta sen määrää yksikäsitteisesti myös avaimeksi kelpaamaton attribuutti Kunta; onhan läänin raja aina myös kunnan raja. Jälleen tilanne selkiytyy tallentamalla kuntien ja läänien väliset suhteet omaan relaatioonsa (taulukko 5).
Taulukko 5: Kolmas normaalimuoto
MUODOSTUMAT : KUNNAT:
HAV_NO KUNTAJCOOOI KUNTAJCOOOI KUNTA LÄÄNI JCOODI
00001 753 .
00002 109 109 HÄMEENLINNA 03
753 SIPOO 01
LÄÄNIT:
LÄÄNI JCOODI LÄÄNI
01 UUDENMAANLÄÄNI
03 HÄMEENLÄÄNI
:
Jos nyt jonkin läänin rajakunta muutetaan kuuluvaksi naapurilääniin, kuten toisinaan on tapahtunut, koko tietokanta saadaan ajantasalle muuttamalla yhden relaation yhtä kenttää. Relaatio on kolmannessa normaalimuodossa, kun /5/
se on 2 NM ja
avainehdokkaisiin kuulumattomien attribuuttien välillä ei esiinny täydellistä funktionaalista riippuvuutta.
2.4. Tietokannan hallintaohjelmisto
Tietokannan toteuttamiseen ja käyttöön tietokoneessa tarvitaan tietokannan hallinta- ohjelmisto. Sen tärkeimpiä tehtäviä ovat
tietokannan määrittely- ja käsittelymahdollisuuksien tarjoaminen,
tietojen suojaus laite- ja operointivirheiltä sekä luvattomalta käytöltä ja useamman käyttäjän samanaikaisen käytön hallinta.
Tietokannan määrittelyä ja käsittelyä varten on yleensä jonkinlainen komentokieli, jolla kannan rakenteisiin voidaan viitata. Merkittävin tähän tarkoitukseen suunnitel
luista kielistä on tällä hetkellä laitteistoriippumaton SQL (Structured Query Langu
age).
Yksinkertaisimpiin sovelluksiin riittää komentokielen (kyselykielen) käyttö sellaise
naan vuorovaikutteisesti, mutta laajoihin sovelluksiin tarvitaan yleensä tarkoitukseen suunniteltu sovellusohjelmisto. Sovellusohjelmointi tavalla tai toisella kuuluukin nykyaikaisen hallintaohjelmiston käsittelymahdollisuuksiin. Vaihtoehtoisia ratkaisuja ovat hallintaohjelmistoon kuuluva itsenäinen ohjelmointikieli kääntäjineen tai esikääntäjä, jolla jonkin yleisen ohjelmointikielen koodiin sisällytetyt tietokannan käsittelykomennot saatetaan kielen normaalin määrittelyn edellyttämään muotoon.
Tietojen suojaus laite- ja operointivirheiltä perustuu usein käytäntöön, jossa tietokan
nan päivityksen alaisena olevasta osasta otetaan kopio, johon tehdään halutut muutokset. Saatettuaan muutostyön loppuun käyttäjä voi hyväksyä tai hylätä sen, jol
loin vastaavasti joko päivitetty kopio tai alkuperäinen tiedosto astuu voimaan. Samalla periaatteella voidaan myöskin hallita useamman käyttäjän samanaikaiset prosessit.
Yhden käyttäjän tekemä päivitys ei vaikuta muiden hakuihin kesken prosessien, jol
loin tieto saattaisi olla puolittain muutettua ja siksi virheellistä. Suojaus luvattomalta käytöltä perustuu salasanojen käyttöön, hakemistokohtaisten käyttöoikeuksien määrittelyyn sekä tiedostojen koodaamiseen "salakieliseen" muotoon.
3. Tiedonhallintatarpeiden määritys
Kiviainesprojektin tiedonhallinnalliset tarpeet voidaan kiteyttää seuraavasti: ohjelmis
to geologisen maastohavaintoaineiston tallentamiseen ja luokiteltuun tulostamiseen kirjallisessa ja graafisessa muodossa.
Tallennettavien tietojen luonne selvinnee liitteinä la ja Ib olevasta havaintolomak
keesta. Lomakkeen alkuosa on varattu muodostumakohtaisille tiedoille ja loput kivilajikohtaisille; sivun 2 rakoiluprofiilit ovat kuitenkin muodostumakohtaisia.
Kultakin muodostumalta tallennetaan korkeintaan viiden kivilajin tiedot. Useimmat kentät täytetään lomakkeen täyttöohjeen (liite 2) luetteloista valituilla lyhenteillä.
Sivulla 2 on tila muodostuman vapaamuotoiselle yleiskuvaukselle.
Ennen maastotyövaihetta kartoitettavat muodostumat piirretään peruskartoille, jolloin asutusalueiden suojavyöhykkeet ja suojelualueet on helppo huomioida.
Ohjelmiston toteuttamiseksi oli käytettävissä päätetyöskentelymahdollisuus VAX- tietokoneella, digitointipöytä sekä AT-luokan mikrotietokone. Koneissa on tiedonhal
lintaohjelmiston suunnitteluun tarvittavat ohjelmistot, jotka kuvataan tarkemmin tuonnempana. Lisäksi apuna oli kiviainesprojektin geologinen ja GTK:n ATK- toimiston ohjelmointitekninen asiantuntemus.
Tiedonhallintaohjelmiston jakaminen kolmeen varsin itsenäiseen ohjelmaan oli projektin sisällä päätetty perusperiaate, jonka pohjalta ohjelmisto on suunniteltu.
Tieto tallennetaan aluksi mikrotietokoneeseen erillisellä ohjelmalla ja siirretään myöhemmin isoon tietokoneeseen lopulliseen tietokantaan. Tällä menettelyllä saavutetaan seuraavat edut. Mikroon oli käytettävissä olleiden ohjelmien puitteissa mahdollista tehdä joustavampi ja helppokäyttöisempi tallennusohjelma, kuin isoon
koneeseen. Tallennusohjelma voidaan tarvittaessa kopioida kannettavaan mikroon, jolloin tallennus voidaan tehdä jo tukikohdassa välittömästi tiedonkeruun jälkeen.
Käytössä oleva iso tietokone on usein niin kuormitettu, että päätetyöskentely sillä on hitaampaa kuin mikron käyttö. Järjestelyn huono puoli on siitä aiheutuva suurempi ohjelmointityön määrä.
Vaikka koko projektin aikana kerättävä tieto nykytekniikalla mahtuukin mikron massamuistiin, on tiedon siirto ja lopullinen tallentaminen isoon koneeseen kuitenkin perusteltavissa. Rakenteeltaan yksinkertaisessakin tietokannassa laajat tulostukset haku-jajärjestelytoimenpiteineen ovat epäkäytännöllisen hitaita AT-mikrolla tehtyinä.
Jos tallennusohjelmaa käytetään samanaikaisesti useammassa koneessa, on tietojen kokoaminen johonkin, oli se sitten mikro tai isompi kone, joka tapauksessa tehtävä.
Isossa koneessa tieto on paremmin saatavilla, haluttaessa jopa haltijaorganisaation ulkopuolella. Saannin tiukka kontrolli on kuitenkin tietosuojan vuoksi tarpeen.
Tietokannan käsittelyyn isossa koneessa on oma ohjelmansa. Sen avulla tietoa voidaan hakea ja tulostaa halutuin kriteerein. Ohjelman käyttö on mahdollista vain sallituilla käyttäjätunnuksilla.
Geologinen maastohavaintoaineisto on usein selkeimmin esitettävissä karttamuotoise- na. Tutkittujen alueiden koko, muoto ja sijainti voidaan esittää kerralla esimerkiksi yhden peruskarttalehden alueelta, jolloin kokonaisuus on helppo hahmottaa. Projektin tarpeisiin ohjelmiston kolmanneksi osaksi tehtiin graafisen tiedon käsittelyohjelma, jonka avulla voidaan tallentaa ja tulostaa karttamuotoista tietoa. Se tallennetaan digitointipöydän avulla peruskartalta ja tulostetaan grafiikkapäätteelle tai piirturilla paperille.
Koko ohjelmiston tehtävänjakoa on havainnollistettu kuvassa 6.
Havaintolomakkeet Täydennetyt peruskartat
Alustava tallennus
Haut ja tekstimuotoinen
tulostus
VAX
käsittely Graafisen
tiedon
Teksti- Kartta-
tulosteet tulosteet
Kuva 6: Ohjelmiston pääosat
4. Tietokannan rakenne
Projektin puitteissa kerättävä maastohavaintoaineisto on selkeästi jaettavissa kahteen ryhmään: muodostumakohtaisiin ja kivilajikohtaisiin tietoihin. Muodostumakohtaisia ovat paikka- ja päivämäärätiedot sekä mm. kivilajirajoista riippumattomat rakoi- lutiedot. Kivilajikohtaisia tietoja ovat kultakin muodostumalta erikseen tallennettavat 1 - 5 kivilajin ominaisuudet ja rakenteet. Tarkemmin nämä selviävät liitteinä la ja Ib olevasta havaintolomakkeesta.
Kun kaikki moniarvoiset ominaisuudet määritellään kohteiksi ja poiminnat täyttöoh
jeen luetteloista osoitetaan välittävien apukohteiden avulla, saadaan lomakkeen aineistolle kuvassa 7 esitetty teoreettinen käsitemalli. Se voidaan edelleen esittää taulukon 6 mukaisena relaatiojoukkona. Huomataan, että kolmanteen normaalimuo
toon saattaminen voi tuottaa yksikertaisestakin kohteesta varsin monimutkaisen tietokantamallin: relaatioita on peräti kaksikymmentäkolme.
KÄYTTÖÄ RAJOITTAA
PÄÄEAKO—
SUUNNAT <<p > <3 O»
KUNNAT
YLEISKUVAUS
NÄYTE
VÄRIT
TEKTONIKEN RAKENNE
RAOT TYYPPIÄ
ASU TEKT-RAK
TYYPIT
RAKOILU- TYYPIT
WNERAAU-
LUETTELO
ASU- TYYPIT
Kuva 7: Teoreettinen käsitemalli
Taulukko 6: Teoreettinen tietokantarakenne
Muodostuma (Muo-Tunn, Kunta-Avain, (yksiarvoiset ominaisuudet)) Paljastumaa-Rajaa (R-E-Avain, Muo-Tunn)
Rajaavat-Element it (R-E-Avain, Raiaava-Elementti) Käyttöä-Rajoittaa (R-T-Avain, Muo-Tunn)
Rajoittavat-Teki jät (R-T-Avain. Raioittava-Tekijä)
Päärakosuunnat (Muo-Tunn. Rako-No. Kaade. Kaateen-Suunta)
Rakomittaukset (Muo-Tunn. Mitt-No, Suunta, Pituus, Rakoja, Luokka)
Kunnat (Kunta-Avain. Kunta. Lääni. Seutukaava. TVL)
Yleiskuvaus (Muo-Tunn. Rivi-No. Rivi)
Kivilaj i (Muo-Tunn. K-L-No. {kivilajin yksiarvoiset ominaisuudet)) Tektoninen-Parametri (Muo-Tunn, K-L-No. T-P-No. Tyyppi. Kaade. Kaateen-Suunta)
Näyte (Muo-Tunn. KL-No. N-No, Koodi, X, Y)
Raekokoluokat (R-K-Avain, Nimi, Yläraja, Alaraja)
Väri t (Väri-Avain, Nimi)
Rakennetyypit (Rakenne-Avain, Rakenne) Raot-Tyyppiä (Muo-Tunn. K-L-No. Rako-Avain) Rakoilutyypit (Rako-Avain. Rakoilutyyppi) Päämineraalit (Muo-Tunn. K-L-No. Miner-avain) Mineraali luettelo (Miner-Avain, Mineraali)
Asu (Muo-Tunn. K-L-No. Asu-Avain)
Asutyypit (Asu-Avain, Asu)
Tektoninen-Rakenne (Muo-Tunn. K-L-No. Tekt-R-Avain) Tekt-Rak-Tyypit (Tekt-R-Avain. Tekt-Rakenne)
Tilaajan toivomuksesta /А/ tietokanta toteutettiin kuitenkin rakenteellisesti yksinker
taisempana, jolloin myös tallennus ja erityisesti tiedonsiirto mikrosta VAXiin yksin
kertaistuu. Tarkastelemalla tallennettavaa tietojoukkoa voidaan havaita seikkoja, jotka mahdollistavat relaatioiden lukumäärän vähentämisen. Myös erillisen tallennusohjel- man käyttö edesauttaa tällaista ratkaisua.
Mikään moniarvoisista ominaisuuksista ei saa yli viittä arvoa, joten apurelaatioiden tarve voidaan kiertää määrittelemällä relaatioon useampia tyypiltään samanlaisia kenttiä, joihin nämä arvot sijoitetaan. Menettelyn huono puoli on tilan tuhlaus osan kentistä jäädessä usein tyhjäksi.
Luettelot, kuten "kunnat" ja "mineraalit", joista ominaisuuksista osan arvot poimitaan, ovat tallennusohjelmassa olemassa erillisinä relaatioina, mutta niitä käytetään ainoastaan apuna tarkastettaessa ohjelmallisesti käyttäjän syöttämän arvon kelvolli
suus tai haettaessa syötetyn lyhenteen selitys. Taulukossa 7 esitetyt relaatiot ovat mukana mikrossa tällaisina referenssitaulukkoina; VAXin kannassa niitä ei ole.
Taulukko 7: Tallennusohjelman referenssitaulukoiden relaatiot
Asu (Asu-c, Asu)
Havainn (Havainn)
Järjest (Jä-c. Jä)
Kivet (KLaii-c. KLaji)
Kunnat (Kunta-c. Lääni-c. Seutu-c. TVL-c. poX. poY. Kunta)
Käyttö (Käytt-C, Käyttö)
Liuskeis (La-c. La)
Läänit (Lääni-c, Lääni)
Mineraal (Miner-c, Miner)
Raekoko (Rae-c, Raekoko)
Rajat (P-Rai c. P-Raj)
Rajoite (K-Raj-c, K-Raj)
Rapa (Rp-c. Rp)
Seutu (Seutu-c, Seutu)
Strukt (Rakenn-c, Rakenne)
Tekt-Rak (Tekt-Rc, Tekt-R)
TVL (TVL-P-c, TVL)
Väri (Väri-c, Väri)
Mikron päärelaatioissa lyhenteinä syötettävät tiedot ovat hakujen nopeuttamiseksi sekä lyhenteinä, että selväkielisinä; VAXiin siirtyvät vain selväkieliset kentät. Maasto- lomakkeessa lyhenteitä joudutaan käyttämään muodostuman kaikkien tietojen mahduttamiseksi A4-arkin tilaan. Sallitut lyhenteet on lueteltu liitteenä 2 olevassa havaintolomakkeen täyttöohjeessa.
Havaintolomakkeen sivulla 2 (Liite Ib) oleva yleiskuvaus on pituudeltaan ja sisällöl
tään vapaamuotoista tekstiä (ASCII-koodin puitteissa). dBase IV:ssä, jolla mikron tallennusohjelma on tehty, on tämänkaltaiselle tiedolle oma tallennusmuotonsa: niin sanottu memo-kenttä. Sen sisältämää tekstiä voidaan muokata editorilla tai se voidaan tulostaa, mutta sitä ei voi käyttää haku- tai lajittelukriteerinä. Lopullisessa talletuksessa VAXin tietokannassa yleiskuvaukset on sijoitettu omaan 80 merkin kentistä koostuvaan relaatioonsa.
Lopullinen tietokanta voidaan edellä kuvatuilla toimilla supistaa kolmeen relaatioon:
muodostumakohtaisiin tietoihin, kivilajikohtaisiin tietoihin ja yleiskuvaukseen. Nämä relaatiot on kuvattu taulukoissa 8 - 10; Vain mikron relaatioissa olevat koodikentät ovat taulukoiden loppupäissä tähdillä merkittyinä.
Yhdellä 1:20 000 -karttalehdellä olevien muodostumien määrä ei ylitä tuhatta /В/, joten muodostumarelaation avaimena voidaan käyttää karttalehden numeroa yhdessä
kolminumeroisen karttalehtikohtaisen järjestysluvun kanssa. Järjestysluku, josta jatkossa käytetään nimitystä muodostumatunnus, määräytyy automaattisesti tallennuk
sen yhteydessä. Kivilajirelaatioon tarvitaan edellämainittujen kenttien lisäksi kivilajin numeroa osoittava luku. Näillä kolmella kentällä relaation kukin rivi on yksikäsittei
sesti määritelty. Yleiskuvausrelaatiossa vastaavana lisäkenttänä on kolminumeroinen rivinumero.
Numerotietoa sisältävätkin kentät on määritelty tyypiltään merkkijonoiksi (C), sillä niiden käsittely on helppoa, jos laskutoimituksia ei tehdä. Poikkeuksen muodostavat päivämääräkentät, jotka ovat tyyppiä "date" (D).
Taulukko 8: Muodostuma-relaation kentät
KENTTÄ TYYPPI PITUUS SELITYS
ALUE C C 9 Aluekoodi
KL JOO C 4 1:100 000 -karttalehti
KL_20 C 2 1: 20 000 -karttalehti
KL JO C 1 1: 10 000 -karttalehti
MUOJUNN C 3 Muodost unatunnus
SIJ_X C 7 Sijainnin x-koordinaatti
SI J J C 7 Sijainnin y-koordinaatti
2_ALIN C 3 Muodostuman alin z-koordinaatti
ZJL1N C 3 Muodostunen ylin z-koordinaatti
MUO_NIMI C 20 Muodostuman nimi
KUNTA C 20 Kunta; nimi
LÄÄNI C 22 Lääni; nimi
SEUTU C 35 Seutukaavaliitto; nimi
TVL C 22 TVL:n piiri; nimi
HAVAI NN c 3 Havainnoijan nimikirjaimet
HAV NO c 3 Havaintonumero
KOKÖ_X c 4 Muodostunen koko x-suunnassa
KOKOJ c 4 Muodostuman koko y-suunnassa
P_RAJ1 c 15 Paljastumaa rajaava elementti n:o 1; nimi
P_RAJ2 c 15 Paljastumaa rajaava elementti n:o 2; nimi
P_RAJ3 c 15 Paljastunee rajaava elementti n:o 3; nimi
K_RAJ1 c 15 Käyttöä rajoittava tekijä n:o 1; nimi
K_RAJ2 c 15 Käyttöä rajoittava tekijä n:o 2; nimi
K_RAJ3 c 15 Käyttöä rajoittava tekijä n:o 3; nimi
HAV_PVM D 8 Havaintopäivämäärä
TALL_PVM D 8 Tailetuspäivämäärä
MUUT PVM 0 8 Muutospäivämäärä
TEKT1 C 2 Tektonisen parametrin tyyppi n:o 1
TEKT5 C 2 Tektonisen parametrin tyyppi n:o 5
NÄYTE_1 C 3 Näyte 1
NÄYTE_5 C 3 Näyte 5
näyteT_x c 4 Näytteen 1 x-koordinaatti
NÄYTE5_X c 4 Näytteen 5 x-koordinaatti
NÄYTE1_Y c 4 Näytteen 1 y-koordinaatti
NÄYTE5 Y c 4 Näytteen 5 y-koordinaatti
R PIT T c 2 Rakoprofi ilin 1 S-N pituus
R PIT 2 c 2 Rakoprofiilin 2 S-N pituus
R PIT 3 c 2 Rakoprofiilin 1 Е-W pituus
R PIT 4 c 2 Rakoprofiilin 2 Е-W pituus
R LUKU 1 c 2 Rakojen määrä profiililla 1 S-N
R LUKU 2 c 2 Rakojen määrä profiililla 2 S-N
R LUKU 3 c 2 Rakojen määrä profiililla 1 E-W
R LUKU 4 c 2 Rakojen määrä profiililla 2 E-U
R KPL 1 c 4 Rakoja/m S-N -suunnassa
R KPL 2 c 4 Rakoja/m E-U -suunnassa
R LUOK 1 c 2 Rakoluokitus S-N -suunnassa
R LUOK 2 c 2 Rakoluokitus E-U -suunnassa
P_SUUNT1 c 6 Päärakosuunta 1; kaade/kaateen suunta
P_SUUNT4 c 6 Päärakosuunta 4; kaade/kaateen suunta
KUNTA C * c 3 Kunta; koodi
LÄÄNI C * c 2 Lääni ; koodi
SEUTU_C * c 2 Seutukaavaliitto; koodi
TVL_C * c 2 TVL:n piiri; koodi
P RAJ1 C * c 1 Paljastunee rajaava elementti n:o 1; koodi
P RAJ2 C * c 1 Paljastumaa rajaava elementti n:o 2; koodi
P RAJ3 C * c 1 Paljastunee rajaava elementti n:o 3; koodi
K RAJ1 C * c 1 Käyttöä rajoittava tekijä n:o 1; koodi
K RAJ2 C * c 1 Käyttöä rajoittava tekijä n:o 2; koodi
K RAJ3 C * c 1 Käyttöä rajoittava tekijä n:o 3; koodi
Taulukko 9: Kivilaji-relaation kentät
KENTTÄ TYYPPI PITUUS SELITYS
ALUE C C 9 Aluekoodi
KIVI L N C 1 Muodostumakohtainen kivilajin numero
KLAJI C 50 Kivilaji; nimi
KL PROS C 3 Kivilajin X-osuus muodostumassa
MIÑERJ C 22 Mineraali n:o 1
MINER 4 C 22 Mineraali n:o 4
RAEKOKO C 23 Raekokoluokka; selitys
VÄRI C 20 Väri
ASU C 18 Asu; selitys
RAKENNE C 24 Rakenne; selitys
KÄYTTÖ C 12 Käyttösuositus; selitys
MÄÄRÄ C 5 Kivilajin määrä (tuhansina kuutioina)
TEKTON1 c 6 Tektonisen param. n:o 1 suunta
TEKTON5 c 6 Tektonisen param. n:o 5 suunta
TEKT_R1 c 30 Tektoninen rakenne n:o 1; selitys
TEKT_R2 c 30 Tektoninen rakenne n:o 2; selitys
RP c 20 Rapautuneisuuden aste; selitys
JÄ c 20 Osasten järjestyneisyys; selitys
LA c 12 Liuskeisuuden aste; selitys
HIE c 1 x = kivestä on hie
HIEKUVA c 1 x = hieestä on valokuva
MAAKUVA c 1 x = kivestä on maastovalokuva
PAKOILU c 13 Rakoilutyypit
RVA I HT c 12 Rakoilun vaihtelu
KLAJI C * c 10 Kivilaji; koodi
MINER C * c 19 Mineraalit (4 kpl) koodeina
RAE_C * c 2 Raekokoluokka; koodi
värT_c * c 5 Väri; koodi
ASU_C * c 3 Asu; koodi
RAKEN C * c 4 Rakenne; koodi
KÄYTT_C * c 1 Käyttösuositus; koodi
TEKT R1C * c 4 Tektoninen rakenne n:o 1; koodi
TEKT_R2C * c 4 Tektoninen rakenne n:o 2; koodi
RP_C * c 1 Rapautuneisuuden aste; koodi
JÄ_C * c 1 Osasten järjestyneisyys; koodi
LA_C * c 1 Liuskeisuuden aste; koodi
KUUT IOR * c 1 x = kuutiorakoilu
LAATTAR * c 1 x = laattarakoilu
K11 LAR * c 1 x = kiilarakoilu
SEKAR * c 1 x = sekarakoilu
HOMOGEE * c 1 x = homogeeninen
TASVAIH * c 1 x = tasaisesti vai hteleva
EPÄHOMO * c 1 x = epähomogeeninen
Taulukko 10: Yleiskuvaus-relaation kentät
KENTTÄ TYYPPI PITUUS SELITYS
ALUE_C C 9 Aluekoodi
Rivi_No C 3 Rivinumero
Rivi C 80 Tekstirivi
5. Tiedon tallennus
5.1. dBase IV -tietokantaohjelma
Mikron tallennusohjelma toteutettiin Ashton Tate Companyn dBase IV -tietokantaoh
jelman sovelluksena. Ohjelma koostuu käyttäjän määriteltävissä olevasta relaatiotieto
kannasta sekä ohjelmointikielestä sen käsittelyyn. Sitä voidaan käyttää valikko- ohjatusti tai komentotasolta /2/.
Ohjelmiston pääosat ovat ohjelmointikieli (ns. pistekieli), sen alainen SQL-kieli sekä näiden yläpuolella oleva ohjauskeskus, johon kuuluu sovelluskehitin. dBase IV:n tietokantaa voidaan käsitellä millä tahansa näistä osista. Osien väliset suhteet on esitetty kuvassa 8. Yksinkertaisimpien sovellusten hallintaan saattaa riittää ohjaus- keskus komentovalikkoineen; monimutkaisempiin voidaan käyttää sovelluskehitintätai ohjelmointikieltä.
Ohjelmointikieli (pistekieli) Ohjauskeskus
Sovellus
kehitin
Taulut Indeksit
Kuva 8: dBase IV -ohjelmiston osat /5/
dBase-sovellus koostuu relaatio-, näkymä- ja ohjelmatiedostoista sekä syöttö- ja tulostuslomakkeista. Nämä kaikki näkyvät ohjelman päävalikossa omissa sarakkeis
saan (kuva 9).
Catalog Tools Exit 9:34:06
dBASE IV CONTROL CENTER CATALOG: C:\DB4\KIVIVARA.CAT
Data Queries Forms Reports Labels Appiicat ions
<create> <create> <create> <create> <create> <create>
ASU HALLINTO HAVAI NN JÄRJEST KIVET KUNNAT KÄYTTÖ LIUSKE IS
KESKI LAAJA SIIRTO 1 SIIRT0~2 SIIRT0_3 SUPPEA
KESKI LAAJA SIIRTO 1 SIIRTO 2 SIIRT0_3 SUPPEA
ALUSTUS ARVOT ASETUS HAKU HALLINTO HAV_OK KELPO KV KIVILAJI
File: New file
Description: Press ENTER on <create> to create a new file
Help:F1 USE:-«—1 Data:F2 Design:Shift-F2 Quick Report:Shift-F9 Menus:F10
Kuva 9: dBase IV:n ohjauskeskuksen päävalikko
Relaatioiden ja näkymien merkitys on selitetty kappaleessa 2. Ohjelmatiedostot sisältävät dBase IV:n omalla ohjelmointikielellä koodattuja ohjelmamoduuleita, joilla tietokantaa käsitellään. Kieli sisältää monia erityisesti tietokannan käsittelyyn tarkoitettuja komentoja ja funktioita.
Syöttölomaketiedosto määrittelee kuvaruutulomakkeen, jonka avulla kannan tietoja voidaan syöttää näppäimistöltä ja tulostaa ruudulle erittäin kontrolloidusti. Tulostuslo- makkeella voidaan vastaavasti tulostaa kannan tietoja halutussa muodossa tiedostoon tai tulostimelle. Tulostukseen voidaan liittää halutuin kriteerein tehty haku ja luokittelu. Osoitelomake on tulostuslomakkeen erikoistapaus, joka on tarkoitettu erityisesti osoitelappumaiseen tulostuksen muotoiluun. Lomakkeita vastaavat toi
minnot voidaan toteuttaa myös itse ohjelmointikielen avulla.
5.2. Sovellus
Tallennusohjelmaa suunniteltaessa asetettiin ensisijaisiksi tavoitteiksi käytön helppous ja syötetyn tiedon virheettömyys. Ohjelman suoritusnopeudesta on näiden tavoitteiden vuoksi hieman tingitty.
Ohjelman yksinkertaistettu hierarkkinen lohkokaavio on esitetty kuvassa 10. Ohjelman tärkeimmät rakenteet ovat kaksi silmukkaa, jotka käyttäjälle näkyvät päävalikosta ja korjausvalikosta valittavien toimintojen toistumisena. Päävalikon toimintoja ovat
uuden tiedon syöttö, vanhan tiedon korjailu, listaus,
tiedonsiirto ja lopetus.
Näistä kahden ensimmäisen kautta siirrytään korjausvalikkoon, jonka toimintoja ovat tiedon tallennus,
lomakesivun 1 korjaus, lomakesivun 2 korjaus, yleiskuvauksen korjaus, tiedon poisto kannasta sekä lomakkeen tyhjennys.
päävalikko
korjausvaIikko VALIKOT
alkutoimet ALUSTUS
RAKO!LU
LOPETUS
KIVILAJI
SIIRTO LISTAUS
TEKTON1S
POISTO UUDET
LOMAKE 1
ASETUS
KIVIVARA
VANHAT
KORJAUS
HALLINTO TALLETUS
KUVAUS
lomakkeiden täyttö
Kuva 10: Yksinkertaistettu hierarkkinen lohkokaavio
Käyttäjälle ohjelma näkyy kahtena vuorottelevana kuvaruutulomakkeena (kuvat 11 ja 12), jotka ovat sommittelultaan käytetyn maastohavaintolomakkeen näköisiä (liitteet laja Ib) sekä kahtena valikkona, jotka tarvittaessa ilmaantuvat ruutuun lomakkeiden päälle. Ohjelman alkutilassa ruudulla on kuvaruutulomake 1 sekä päävalikko (kuva
11).
PÄÄVALIKKO 01/01/90 10:22:36
Karttal. X Zy Za Kohteen nimi Kunta
Hav.koko Palj-% Palj.Raj. Raj.Tek. Hav.pvm Tall.pvm Muut.pvm Hav. No .../--/-- --/--/-- --/--/...
KIVILAJITIEDOT : Mine- Kivilaji % raalit
1 2
3 4 5
UUDEN TIEDON SYÖTTÖ VANHAN TIEDON KORJAILU LISTAUS
TIEDON SIIRTO LOPETUS
Näy
te X
TEKT0NIIKKA: MITTAUKSET TEKT.RAKENNE RP JÄ LA OH HK MK
Uusien alueiden syöttäminen tietokantaan
Kuva 11: Kuvaruutulomake 1
Sivu 2; Päärakosuunnat: 1 01/01/90 10:22:57
RAKOILUTIEDOT:
TYYPPI VAI HT K L Ki S H T E
PÄÄRAKOSUUNNAT RAKOTIHEYS
TALLENNA TIEDOT KORJAA SIVUA 1 KORJAA SIVUA 2 YLEISKUVAUS POISTA TIEDOT TYHJENNÄ LOMAKE YLEISKUVAUS
Syötettyjen /korjattujen tietojen tallennus tietokantaan
Kuva 12: Kuvaruutulomake 2
Ensimmäisenä ohjelma tekee aikatoimet, joihin kuuluvat lomake l:n tulostaminen ruutuun, alku asetukset sekä muuttujien, ikkunoiden ja valikoiden määrittelyt. Alkuase- tukset sisältävät lähinnä kuvaruudun ja näppäimistön toimintaan vaikuttavia "set"- tyyppisiä komentoja /2/. dBase IV -kieli mahdollistaa komentovalikkojen määrittelyn, mitä on hyödynnetty ohjelman pää- ja korjausvalikkojen toteuttamisessa.
Seuraavaksi siirrytään valikon kautta yhteen ohjelman päätoiminnoista käyttäjän valinnan mukaisesti.
Tiedon syöttöön ja korjailuun liittyvä lomakkeiden täyttö on ohjelman rakenteellisen selkeyden vuoksi jaettu viiteen lohkoon (rajattu kuvassa 10 pisteviivalla). Näistä kolme ensimmäistä liittyvät lomakesivuun 1 ja loput kaksi sivuun 2.
Hallintolohkossa käsitellään sivun 1 kaksi ylintä riviä, jotka sisältävät lähinnä muodostumakohtaista aika- ja paikkatietoa. Annettavan karttalehden perusteella haetaan pienin vapaana oleva muodostumatunnus; yhdessä nämä muodostavat aluekoodin, joka on relaation avain. Annettavan kunnan nimen perusteella haetaan apurelaatiosta lääni, seutukaavaliitto ja TVL:n piiri. Paljastumaa rajaavat elementit ja käyttöä rajoittavat tekijät annetaan lyhenteinä, joille annetaan selväkieliset vasti
neet. Täytön nopeuttamiseksi "karttalehdellä", "kunnalla" ja "havainnoitsijalla" on oletusarvoina edellisellä syöttökerralla käytetyt arvot; nehän pysyvät usein samoina useamman lomakkeen ajan.
Kivilajilohkossa käsitellään tärkeimmät kivilaj¿kohtaiset kentät. Niistä useimmat syötetään lyhenteinä, joille jälleen haetaan selväkieliset vastineet. Kuutiomäärä voidaan niin haluttaessa täyttää automaattisesti, jolloin se lasketaan elliptisen paraboloidisegmentin tilavuuden kaavalla käyttäen edellä syötettyjä pituutta leveyttä ja korkeutta (z-ylin - z-alin). Tässä lohkossa täytettyjen kivilajirivien määrä tallenne
taan ja seuraavat lohkot rajoittavat automaattisesti toimintansa näille riveille.
"Tektonis"-lohkossa käsitellään tektoniset parametrit ja rakenteet, muutamia raken
nusgeologisia parametrejä sekä hie- ja valokuvatiedot.
Rakoilulohkossa käsitellään kivilajikohtaisesti rakoilun ja rakovaihtelun tyypit sekä muodostumakohtaisesti rakotiheydet ja päärakoilusuunnat. Annettujen profiilien
pituuksien ja rakomäärien perusteella lasketaan automaattisesti rakotiheys ja määrite
tään rakoluokka.
Kuvauslohkossa siirrytään automaattisesti tekstieditoriin, jolla voidaan kirjoittaa muodostumasta vapaamuotoinen yleiskuvaus. Kuvaus tallennetaan kantaan erityiseen memo-tyyppiseen kenttään /2/.
Kuvaruutulomakkeelle syötetyt tiedot siirtyvät tietokantaan vasta korjausvalikosta annettavalla tallennuskomennolla. Ohjelma tutkii, onko kyseisillä avainkenttien arvoilla jo tallennettu tietoa ja sen mukaisesti joko päivittää vanhan muodostuman tai tallentaa muodostuman uutena. Korjausvalikosta päästään päävalikkoon vain joko tallentamalla tiedot tai luopumalla niistä vaihtoehdolla "lomakkeen tyhjennys".
k
Vaikka varsinaiset haku- ja tulostusoperaatiot tehdään vasta VAXin tietokannassa erillisellä ohjelmalla, myös mikron tallennusohjelmaan on liitetty listausmahdollisuus, joka helpottaa tallennustyön edistymisen seurantaa. Muodostumista saadaan suppea, keskilaaja tai laaja listaus (liitteet 3, 4, 5a ja 5b) hakukriteerinä 1:20 000 -karttalehti, lehden alkuosa tai kunnan nimi.
Tiedon siirtämiseksi VAXiin se tulostetaan ensin kolmeksi ASCII-muotoiseksi tekstitiedostoksi. Tiedonsiirron eri vaiheet on kuvattu kappaleessa 9.
Lopetusmoduulissa tallennetaan viimeksi käytetyt karttalehti, kunta ja havainnoitsijan nimikirjaimet aputiedostoon käytettäviksi oletusarvoina ohjelman seuraavan käynnis
tyksen yhteydessä. Käytetyt tiedostot suljetaan ja asetukset palautetaan oletusar
voihinsa; nämä toimet tosin tapahtuisivat automaattisestikin, mutta ne on rakenteen selkeyttämiseksi tässä erityisesti suoritettu.
6. Tiedon haku ja tulostus VAXissa 6.1. Kehitysohjelmat
Tietokannan toteuttamiseen VAX-ympäristössä oli käytettävissä Digitalin RDB- (Relational Data Base) tietokantaohjelmisto. Siihen kuuluvalla käsittelyohjelmalla, RDO (Relational Database Operator), voidaan määritellä relaatiotietokannan rakenne ja käsitellä sen dataa.
Ohjelmointikieleksi valittiin Digitalin VAX-Pascal, joka sisältää normaalit Pascal
kielen ominaisuudet sekä monia laajennuksia. Lisäksi käytössä oli RDB-Pascal- esikääntäjä, joka mahdollistaa RDB-kannan käsittelykomentojen kirjoittamisen suoraan Pascal-koodin sekaan.
Ohjelman käyttäjäliityntä on toteutettu pääosin TDMS-kehittimen (Terminal Data Management System) avulla; sillä voidaan määritellä kuvaruutulomakkeita, jotka k- oostuvat tekstistä, kehysviivoista ja syöttökentistä. Loppukäyttäjä voi liikkua ruudulla lomakkeen kentästä toiseen ja syöttää niiden välityksellä ohjelmalle tietoa. TDMS määrittelee kenttiä vastaavat muuttujat, joita voidaan kutsua Pascal-ohjelmasta.
MMS-moduulien käsittelyohjelmalla (Module Management System) voidaan pitää laajan ohjelman moduulien käännökset ja linkitys ajantasalla. MMS tutkii automaatti
sesti, mitä moduuleita on edellisen linkityksen jälkeen muutettu sekä suorittaa tarpeelliset esikäännökset, käännökset ja linkityksen.
Käytettyjen kehitysohjelmien keskinäiset suhteet on esitetty kuvassa 13.
EDITORI TDMS-RUUDUT R D 0
▼1 1
▼
M M S
RDB-PASCAL -ESIKÄÄNTÄJ A
VAX- PASCAL-KÄÄNTÄJA
LINKITYS
▼
RDB-KANTA
Kuva 13: VAX-ohjelmoinnissa käytettyjen kehitysohjelmien keskinäiset suhteet
6.2. Sovellus
Haku- ja tulostusohjelmaa suunniteltaessa ensisijaisiksi tavoitteiksi asetettiin käytön helppous ja kontrolloitavuus.
Ohjelmaa käytetään valitsemalla toimintoja valikoista ja täyttämällä tarvittaessa ruudun syöttökenttiä. Alkutilassa ruudussa on päävalikko, josta voidaan valita jokin seuraavista hakukriteereistä:
karttalehden numero, kunta,
lääni,
seutukaavaliitto tai muu haku.
Vaihtoehdon "muu haku" sisältö on toistaiseksi avoin; siihen sijoitetaan luultavimmin mahdollisuus vapaaseen SQL-hakuun.
Kun haluttu hakukriteeri on syötetty, ruudulle saadaan hakuehdon täyttävien muodos
tumien lukumäärä; niistä voidaan tulostaa suppea, keskilaaja tai laaja listaus (liitteet 3, 4, 5a ja 5b). Suppea listaus sisältää vain muodostuman tärkeimmät nimi- ja sijaintitiedot yhdellä rivillä. Keskilaajaan listaukseen kuuluu edellisten lisäksi kunkin
kivilajin nimi, määrä ja laatuluokka sekä muutaman rivin suppea yleiskuvaus. Laajassa listauksessa on muodostuman kaikki tallennetut tiedot.
Tulostuksen järjestelyperusteet ovat kiinteät; ensisijaisena perusteena on kunnan nimi, toissijaisena karttalehden numero ja kolmantena muodostuman nimi. Tulostus luo ASCII-tekstitiedoston, joka voidaan tulostaa paperille, kopioida levykkeelle tai siirtää sähköisessä muodossa vastaanottajalle.
Ohjelman hierarkkinen lohkokaavio on esitetty kuvassa 14. Ensimmäisenä ohjelma tarkastaa käyttäjätunnuksen, jolla se on käynnistetty (lohko "Kaytt_Ok"). Tunnusta verrataan kannassa olevaan sallittujen käyttäjätunnusten luetteloon; jos tunnus ei ole hyväksyttävä, ohjelman suoritus päättyy tähän. Jos tunnus hyväksytään ruutuun tulee ohjelman päävalikko (lohko "Valinta_A"). Käyttäjän valinnan mukaisesti tehdään jokin edellä luetelluista hakuprosesseista. Tulostus tiedostoon tehdään lohkossa
"Kirjoitus". Suppealla listauksella ei ole sen koodin lyhyyden vuoksi omaa lohkoa, kuten keskirajalla ja laajalla listauksella.
KAYTTJMC VALINTA A
KIVI
KTL
KTL A
KUNTA
KUNTA A
LÄÄNI SEUTU
“I---Г
LÄÄNI A SEUTU A
KYSELY
Haku i
KIRJOITUS
L
KESKI LAAJA
L LISAA
TULOSTA
TYHJÄÄ
Lomake
Kuva 14: Haku- ja tulostusohjelman lohkokaavio
Pascal-kielessä ehdollisen formaatin mukaisen tulostuksen toteuttaminen on melko monimutkaista ja työlästä. Write-lause sijoittaa tekstin aina alkaen kursorin sen hetkisestä sijaintipaikasta. Lomakemuotoisessa tulostuksessa kukin teksti halutaan yleensä vakiosarakkeisiin riippumatta muiden sarakkeiden täytöstä. Tällaisen tulostuk
sen apuna ohjelma käyttää pientä aliohjelmapakettia "Lomake". Sen avulla voidaan melko yksinkertaisesti ensin sijoittaa tulostettavat asiat 25 * 80 -kokoiseen taulukkoon halutuille kohdille ("Iisaa") ja sitten tulostaa tämä taulukko ("tulosta"). Lopuksi taulukko voidaan tyhjentää uutta täyttöä varten ("tyhjää").
Kunkin tulostuksen jälkeen ohjelma palaa päävalikkoon, josta voidaan joko valita uusi tulostus tai ohjelman lopetus.
Koko ohjelmaa kutsutaan komentoproseduurilla, joka kirjaa ylös kutsun ajankohdan ja kutsujan käyttäjätunnuksen sekä ilmoittaa ruudulla käytetyn keskusyksikköajan.
7. Graafisen tiedon käsittely 7.1. Fingís
Graafisen tiedon käsittelyyn käytettiin Maanmittaushallituksen Karttapainon kehittä- mälle Pingis piirto-ohjelmistolle tehtyä sovellusta. Pingis (Finnish Geographic Information System) on VAX-ympäristössä grafiikkapäätteen ja digitointipöydän avulla käytettävä ohjelmisto, jonka avulla on mahdollista tallentaa ja tulostaa vektori
muotoista karttatietoa. Ohjelmiston perusrakenne on esitetty kuvassa 15. Järjestelmä koostuu kolmesta osasta: käyttöliittymästä, tiedonhallintajärjestelmästä tietokantoi- neen sekä topologisen tiedon käsittelyosasta /3/.
KÄYTTÖ
LIITTYMÄ
TOPOLOGINEN OSA TIEDONHALLINTA
JÄRJESTELMÄ
KÄYTTÄJÄ
Kuva 15: Fingis-ohjelmiston perusrakenne /3/
Sanalla "tietokanta" on Fingisterminologiassa eri merkitys, kuin normaalisti; se voidaan ymmärtää ennalta määritellyksi tiettyihin maastomillimetreihin sidotuksi suorakulmaiseksi alueeksi, johon digitointitoimet kohdistetaan. Normaalisti yhden
peruskarttalehden alue määritellään yhdeksi tietokannaksi. Kantaan tallennettavat tiedot ovat graafisien kohteiden sijaintipisteitä. Graafisia kohteita ovat viivat, symbolit ja tekstit; jatkossa niistä käytetään lyhyesti nimitystä kohde.
Käyttöliittymän avulla hoidetaan tiedon syöttäminen, tiedon tulostaminen,
kuvaustekniikan määrittäminen, ohjaustietojen määrittäminen, kyselyt,
tiedon vuorovaikutteinen tarkastaminen ja korjailu sekä tiedonsiirto Pingiksen ja muiden ohjelmien välillä.
Sen kautta myös määritellään käytettävät oheislaitteet, kuten digitointipöydät ja piirturit.
Tiedonhallintajärjestelmä huolehtii tietokantojen sisällöstä, sijaintihakemistoista ja tietokantahakemistoista. Sijaintihakemiston avulla kohteita voidaan tehokkaasti hakea niiden sijainnin perusteella. Vierekkäisiä tietokantoja voidaan tietokantahakemiston avulla käsitellä samanaikaisesti, jolloin koko hakemiston alaisuudessa olevaa kartastoa voidaan käsitellä yhtenä kokonaisuutena.
Järjestelmän topologiseen osaan kuuluu mm. aluetiedonhallinta ja tiedon inventointi ja analysointi. Aluetiedonhallinta merkitsee tietyn viivaluokan viivoilla rajatun suljetun alueen ymmärtämistä alueeksi. Inventointiin ja analysointiin kuuluvat mm. pinta-alan lasku, matkojen ja etäisyyksien mittaaminen sekä massalaskelmat.
Fingisohjelma on sen käyttämien parametritiedostojen avulla varsin joustavasti muokattavissa käyttäjän tarpeiden mukaiseksi. Jatkossa tällaista tiettyyn tarkoitukseen suunniteltua parametritiedostojen ryhmää yhdessä Pingis-ohjelman kanssa kutsutaan sovellukseksi. Kaikki kohteet ja niiden väliset suhteet määritellään parametritiedosto
jen avulla, joten mitään digitointityötä ei ennen sovelluksen määrittelyä voi tehdä.
Parametritiedostoja on 14 kpl (taulukko 11); niistä tärkeimmät kuvaillaan seuraavana.