Järjestelmäkäsikirja


Tietokanta

Kantaan tehdyt muutokset

Yleistä

Järjestelmä perustuu varsin aktiiviseen tietokannan käyttöön. Syyt tähän ovat toisaalta käyttäjien muokattavissa olevan tiedon runsaus, toisaalta taas WWW-ympäristön erityisvaatimukset. Tietokannan pääsisällön muodostavat erilaiset seikkailun juonta, paikkoja ja esineitä kuvaavat tiedot.

Tietokantapalvelimeksi on valittu korkeakoulukäytössä ilmainen mSQL (Mini SQL), joka sisältää osan SQL-standardin mukaisista ominaiskuuksista. mSQL on jatkuvan kehitystyön alla, ja se toimii useilla UNIX-alustoilla. mSQL:n ominaisuuksia ovat mm. keveys ja nopeus sekä suhteellinen yksinkertaisuus, mitkä sopivat yhteen projektin päämäärien kanssa. mSQL:stä tosin puuttuu monia ominaisuuksia, mitkä olisivat tehneet siitä miellyttävämmän työkalun.

Tietokannan liittymää ohjelmaan käsitellään erikseen luvussa Tietokantaliittymämoduuli.

Tietovarasto

Johtuen järjestelmän luonteesta (muokattava seikkailupeli) sekä järjestelmän toimintaympäristöstä (WWW) todettiin jo varhaisessa kehitysvaiheessa järjestelmän tietorakenteen monimutkaisuus. Syitä tähän ovat mm.:

Normaalin UNIX:in tiedostojärjestelmän käyttö tämän rakenteen ja toiminnallisuuden toteuttamiseksi olisi ollut suuritöinen ja toteutus ylläpidettävyydeltään heikko. Lisäksi projektiryhmän kokemus tietokannoista vaikutti päätökseen ottaa käyttöön tietokantaohjelmisto. Projektin alkuvaiheissa oli mSQL-niminen tietokanta ainoa vapaa (ilmainen) UNIX-SQL-tietokanta, joka oli aktiivisen kehityksen kohteena. mSQL:n valintaan vaikuttivat myöskin tietokannan väitetyt ominaisuudet, mm. keveys, helppo siirrettävyys eri ympäristöihin ja nopeus sekä muutamien mielenkiintoisten lisäosien saatavuus.

mSQL

mSQL:n ominaisuuksien kehitys toivottavasti jo projektin ensimmäisen vuoden aikana tuo lisäominaisuuksia, jotka mahdollistavat tiettyjen toimintojen siirron suoraan tietokantamoottorille. Nykyhetken mSQL:n rajoituksia, jotka vaikeuttavat implementointia ovat mm.:

Jos tietokantaa vaihdetaan tai mSQL:stä tulee kehittyneempiä versioita, voidaan näistä ongelmista päästä eroon. Tietokantariippuvat kohdat ohjelmasta on pyritty erottamaan, jotta päivitys olisi helppo.

Tietokantamoottori muodostaa UNIX-koneessa oman prosessin, joka käynnistetään ajamalla mSQL:n bin-hakemiston msqld-ohjelma. Valittuun pid-nimiseen hakemistoon muodostuu silloin pid-niminen tiedosto, johon mSQL tallentaa prosessin id:n.

mSQL:ssä muodostetaan ja poistetaan tietokantoja msqladmin-ohjelmalla. Samalla ohjelmalla voidaan myös sulkea tietokantapalvelin. LAG käyttää yhtä tietokantaa, joka on nimetty LAG:ksi. Tietokanta sijaitsee tiedostorakenteessa mSQL:n databases-hakemistossa. Taulurakenne luodaan normaaleilla SQL:n CREATE TABLE -lauseilla. mSQL:ssä on msql-niminen terminal-ohjelma, jolla voidaan syöttää suoraan SQL-lauseita.

Yhteys LAG:sta tietokantapalvelimeen luodaan mSQL:n kuuluvalla C-funktiokirjastolla, joka muodostaa yhteyden /dev/msqld:n kautta. Saatavilla on myöskin Perl'illä sekä muutamilla muilla ohjelmointikielillä olevia kirjastoja. Se mitä lopullisessa versiossa tullaa käyttämään riippuu erilaisista tehokkuus, yhteensopivuus ym. kysymyksistä.

Mini SQL:n manuaali löytyy osoitteesta http://Hughes.com.au/product/msql/manual.htm.

Looginen rakenne

Taulukko tietokannan taulujen kenttien sisällöstä on liitteenä.

Tietorakenteen keskeisimmät entiteetit (ja tietokannan taulut) ovat:

Jokaisella näistä on primary keynä long integer -tyyppinen laskurikenttä (ID), jota käytetään identifiointiin eri relaatioissa ja tietojen etsinnässä.

N:N Relaatioita on:

E-R-Kaavio.

PostScript-versio:

Tietokannan implementaatio tauluineen, kenttineen ja relaatioineen.


Tietokannan taulut

Users-taulun kentät:

Groups-taulun kentät:

Adventures-taulun kentät:

Locations-taulun kentät:

Actions-taulun kentät:

ActionConditions-taulun kentät

ActionParts-taulun kentät

Items-taulun kentät

Properties-taulun kentät

ItemLocations-taulun kentät

PropertyValues-taulun kentät

LocationsBeen-taulun kentät

ActionsDone-taulun kentät

Pictures-taulun kentät